Josko / aura-bot

Warcraft III high-performance hosting bot written in C++14.
76 stars 42 forks source link

Feature: RPC suport ? #50

Closed JiLiZART closed 7 years ago

JiLiZART commented 7 years ago

Hi there! Glad to see that w3 game hosting and Varlock children lives :) I start porting ghost++ to js https://github.com/w3gh/ghost.js But have some troubles with game.cpp and map crc calculation issues Why js, cuz it everywhere and can be integrated anywhere :)

So, i have some ideas about bots organization. Architecture presents a Master bot and host bots

Master bot - always sits in channel and receive commands, have all core logic, decides who ban in a game, reacts on proxied from host bot commands. Host bot - only can host games and communicate with master bot and send all needed stuff, like map stats and so on

https://grpc.io/ have nice docs

Argon- commented 7 years ago

That makes no sense. JavaScript is interpreted by programs written in C/C++ and therefore the coverage is exactly the same. All you will get is a (way) slower experience?

JiLiZART commented 7 years ago

If js bot acts like master bot and sits only on channel speed make no sense, cuz channel have send restrictions.

Some useful cases i see: Some user run 4 host bots and 1 master bot on linux server master bot joins to channel, and start web server now user can enter to http://mysite.com:3030 and see: all what happened with host bots (he interact with them thru grpc) can chat as master bot on channel can admin host bots, ban, kick, host etc

Anyway it's just idea

Josko commented 7 years ago

Hey, while I do think porting to JS is a great way to learn both JS and how to possibly to improve the bot workflow and what not, I don't think RPC or anything so complex would be a huge win here.

Adding like interprocess shared memory, RPC and what not would be an enterprise level overkill for this project and I guess for any WC3 bot now with the dwindling playerbase. It is not needed unless you are offering enterprise level business support. This bot was always meant as a simple, fast bot that just works for you and if someone wants to implementing something it's a good code-base to start with.

So you are free to implement it and I can help you with it to an extent, and it might get merged if it's done well enough but IMHO it's a waste of time for this particular project.