Many of you know I am making an RTS engine in Python.
I am doing okay - certainly on game setup, - I can get it up to just before server loop.
But, I am overwhelmed by errors I can't trace. As my first Python project, and needing to make an RTS, I know I'd do
better if I had a complete and error free server and client engine from experienced people.
I am outlining a project for freelancer.com
What changes are crucial in my outline below?
I’d like experienced games programmers to create an invulnerable RTS engine for me in Python for potentially huge games. - Like 5, 6, 7,8,9 FFA, ( and big x vs. x) like in Blizzard, MS games, How many players realistically is MAX?. There are many coders out there that know this front to back.
I’d also like the Client class to be abstract, so that I can create an abstract method, ‘ClientProcess() ’ to be called the instant the new client game state is updated and processable. The Client will have various ‘move’ methods to control units. I need the servers to be stored on my machines to disallow map hacking. Only valid vision must be sent to each player of the game-state. A terrain like Starcraft 1 would be desirous ( data structure wise) 3-D would be too ambitious.
I have client joining and pre-game working on client and server, and need it to be absolutely perfect, but from experienced minds for the transfer from pre-game into in-game server activity and client handling. The server must have a TCP and UDP link for each client, and,
1) client actions are sent to the server via UDP, be it an action or an empty cycle.
2) The game state is maintained and updated accordingly per cycle on the server.
3) The server sends to the clients the encodings of their visible units’ movements, activity, + newly visible units for that client’s vision.
3) The server sends periodic TCP complete-visible-game-state updates to the clients to guarantee synchronization.
4) Once the server receives a datagram per cycle from each client, a ‘ServerProcess()’ method can be called to include these client movements into the game cycling on the gameState Object.
So, There must be a gameState class in the server that can be updated every cycle with the passing in of client activity datagrams to be enacted on units, e.g attacks, moves, constructions - also, it is in this class how the game-state is maintained and incremented on the server. No hackable, useful data must exist on the client, only valid vision (e.g for a visual game window)
5) En-Masse MPG unit moving on screen over terrain, with melee or ranged engagement would be a desirous demonstration of functionality. (This must be a window that extends the client class and updates the frame when the abstract ClientProcess() method is called after the new game-state is acquired. As my first serious Python project, but not first RTS, I don’t want to waste time making mistakes that are beyond repair in this complicated a situation.