soundmud / soundrts

A real-time strategy audio game
http://jlpo.free.fr/soundrts
Other
44 stars 32 forks source link

feature request: add a programatically api for external programs #135

Open sanslash332 opened 2 years ago

sanslash332 commented 2 years ago

I don't know if this is possible currently or not, but considering that soundrts currently is more a engine than a game, will be awesome that the engine itself has a public library to allow programers create games but using the soundrts engine.

A library that allow to you create a match, set the players, the map, the units, can read in real time the game in progress (to allow external events that the engine itself doesn't support or dettect triggers, etc) and something other things that will be interesting to try exploit all of the awesome features that soundrts currently has.

soundmud commented 2 years ago

Actually, SoundRTS is more a mod-friendly game prototype than an engine you can rely upon.

If the goal is to have debugging/monitoring tools, then please examine test_desync.py https://github.com/soundmud/soundrts/blob/master/test_desync.py It creates a multiplayer network game (launching automatically a server and several clients). And it "injects" different behaviors to the existing classes without cluttering the main code.

If the goal is to to create a different game, maybe the previous approach would be interesting, or maybe just edit the existing code. Some parts of the main code base are messy anyway, so maybe the two code bases will diverge inevitably sooner or later. I don't know.

sanslash332 commented 2 years ago

not really, the point isn't create a different game.

The point is create a software using the soundrts as engine, and that program can modify aspect on the fly during a game. To give to them more powerful tools than the AI, or current map options :)

Currently you do that on that file?

this will be awesome for some things, like create multyplayer map with extrange and custom rules (check all the things that the playerbase do on the warcraft III custom maps or starcraft II) or powered much more the campaigns without touching much the current codebase :)