I kinda don't like networking and having to deal with it. It is a really big pain. Here are some of the realizations that hit me when working on this, and how I dealt (I think) with them.
1) Networking Object Instantiation: I realized late last night (~2 am) that when a player was creating a building, the data was not being shared with other clients. All buildings were being created locally which is not good for an RTS multiplayer game. I then had to figure out how to create network objects, and how to pass that information/creation event to other clients and the server. This involved some RPCs and some code reworks, but I think it works. Tomorrow, I will be doing the first-ever multiplayer test, so I hope the gods are smiling down on me.
2) Networking Data Creation and Management: Next up is how to pass/update information when it is created or needs to be changed. I needed this for the terrain management system. The creation of the tiles, along with the updating of tile occupancy needed to be networked so that when the map is created it properly functions, additionally ensuring that multiple people can't place multiple buildings on the same tile.
3) Client-to-Client Interactions: I also needed to create a system for the auction house that would allow people to discard their cards, and have them appear on the other client's screen. This is very important as part of the game is managing what you play as well as what you allow other players to play.
I also then worked a bunch on some game features. Here are the following:
1) Settlement Systems: Leveling up settlements is a big part of the game as your cities need to grow as they thrive and develop. I made a system that upgrades the cities and then expands them. Expansion involves claiming new tiles, checking population stats, and building stats.
2) Map Generation: I believe I reworked the map generation system to just have the server create the map, then have the server tell the clients to create the same map as the server does while the server is creating it in real-time. This works better than passing the tiles one at a time after the server generates it, therefore removing the theoretical advantage the server/starting client would have.
Thats around it, I am going to keep plugging around in the code, but I wont bother with another update tonight. Good night, and fare well.
Comments
Post a Comment