dota service是通过grpc播放dota 2的服务

dotaservice的Python项目详细描述


dotaservice

dotaservice icon

注意:在k8s环境中使用dotaservice的项目是DotaClientrepo。

dota service是通过grpc播放dota 2的服务。有一类python绑定 以及示例,这样您就可以像使用openai健身房api一样玩dota。

它功能齐全,超轻。启动dotaobs = env.reset()需要5秒, 环境中的每个obs = env.step(action)都需要10到30毫秒。

您甚至可以设置render=True的配置,并且可以观看游戏的实况播放。每场比赛 在有dota演示(重播)和控制台日志的地方关联uuid和文件夹。

demo

在本地运行dotaservice

运行dotaservice以便以后可以将客户端连接到它。每台服务器只有一个客户端 支持,并且每个虚拟机只有一个dotaservice(例如本地或每个docker容器一个)。

python3 -m dotaservice
>>> Serving on 127.0.0.1:13337

运行分布式dotaservice

docker/README.md

要运行两个dockerservice实例,一个在端口13337上,另一个在13338,f.e.run:

docker run -dp 13337:13337 ds
docker run -dp 13338:13337 ds

您可以运行任意数量,直到端口或IP地址用完为止。如果你穿着 你那条漂亮的裤子,用库伯内特斯来部署数百万人。

客户代码

fromgrpclib.clientimportChannelfromprotobuf.DotaService_grpcimportDotaServiceStubfromprotobuf.DotaService_pb2importActionfromprotobuf.DotaService_pb2importConfig# Connect to the DotaService.env=DotaServiceStub(Channel('127.0.0.1',13337))# Get the initial observation.observation=awaitenv.reset(Config())foriinrange(8):# Sample an action from the action protobufaction=Action.MoveToLocation(x=..,y=..,z=..)# Take an action, returning the resulting observation.observation=awaitenv.step(action)

这对于提供一个强化学习的环境是非常有用的,它的服务方面使得它 特别适用于分布式训练。我计划提供一个客户端python 这个模块(PyDota)模仿典型的openai健身房api。也许我都不会做皮多塔 GRPC客户端就足够了。

dotaservice connections

要求

  • Python3.7
  • unix:macos,ubuntu。还提供了dockerfile,请参见:docker/README.md

安装

从pypi安装:

pip3 install dotaservice

用于开发;从源安装:

pip3 install -e .

(可选)编译python的protos(从存储库根目录运行):

python3 -m grpc_tools.protoc -I. --python_out=. --python_grpc_out=. --grpc_python_out=. dotaservice/protos/*.proto

注释

我的开发人员注释:NOTES.md


致谢

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX TableView更新单元格,不更新对象值   在扫描器中使用分隔符的java   java OkHttp 4.9.2,连接无法重用,导致端口耗尽   eclipse中的c JNI:运行Java代码   java是否在出厂的所有硬件设备中都有/mnt/sdcard/Android/data文件夹(或等效文件夹)?   Java,在eclipse中访问资源文件夹中的图像   java为什么Bluemix dashDB操作抛出SqlSyntaxErrorException,SQLCODE=1667?   JavaHtmlUnitWebClient。getPage不处理javascript   Google API认证的java问题   java如何将JSON数组反序列化为Apache beam PCollection<javaObject>   ServerSocket停止接收命令,java/安卓   来自Java类的安卓 Toast消息   java如何自动重新加载应用程序引擎开发服务器?   java是否可以尝试/捕获一些东西来检查是否抛出了异常?   java如何做到这一点当我按下load game时,它不仅会加载信息,还会将您带到游戏中?   Java选项Xmx代表什么?   Java映射,它在插入时打印值   设置“ulimit c unlimited”后,java无法生成系统核心转储