折腾了一个月, 把自己一直想做的东西终于折腾出来了。
AI 对战, 你写的AI 和 别人的AI 进行 对战。
先看演示示例:
youtube:
<amp-youtube data-videoid="V6PkjlUXV6w" layout="responsive" width="480" height="270"></amp-youtube>
youku:
http://v.youku.com/v_show/id_XNTk0OTk2Mjg0.htmlCodeBattle 这个项目包含四个部分。
server:
https://github.com/yueyoum/codebattle-serverclient:
https://github.com/yueyoum/codebattle-clientproto:
https://github.com/yueyoum/codebattle-protoai:
https://github.com/yueyoum/codebattle-aiclient 是一个unity3d的项目,它用来建立房间,以及显示AI的操作.
proto , client 和 server 之间的数据交互 使用了 google protobuf 来序列化和反序列化数据.
ai 这个就是此项目的重头戏, 你根据数据交互格式,以及游戏规则写自己的AI,来和别人的AI对战。
大家主要看的是 proto 和 ai 这两个repo,
proto 定义的数据格式, ai 里面有游戏规则,以及示例ai。
如何开始:
在 client repo 中找到 编译好的 client 下载链接, 下载解压后运行。
如果你使用 我提供的server,那么 默认的 ip 和 port 不用更改,直接 create room。
你就会到达一个新场景,顶部是room id, 但场景中没有一个 marine。
这需要你的AI 加入这个room, 才会为你的AI创建marines, 当两个AI都加入同一个房间后,
对战就开始了。
刚开始你没有自己的AI,可以运行 ai 这个repo 中的示例AI,来感受一下整个流程。
当然 ,你也可以设计出新的玩法,然后 checkout server repo, 修改后在你本地运行。
client 中也包含了 unity3d 的项目文件, 你也可以 checkout 后 自行修改,添加自己想要的功能
fangzhzh
2013-08-12 18:14:41 +08:00
楼主知道一个叫 robocup 的项目吗,已经很完善
楼主的服务器和client通讯 延迟怎么处理, 安全怎么处理, 一些对现实的混淆(比如风俗)的模拟怎样, 视觉根据距离依次减弱的模拟 怎样的
作为AI, 那么选一个好的切入点很重要, 一个好的背景 ,可以让参与者专注AI, 忽略运动的特殊性, 楼主貌似做的是飞机大战之类的是吧, 那么重要的是单个的技能, 不同agent之间的配合的重要性貌似就很低了,这样的话, AI的训练感觉就没有太多的空间
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://tanronggui.xyz/t/78872
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.