Programming a game online is at least three times more work than something single player.
Not only do you need extra programming for the server, but you also need to have the server double checking what a client sends it to make sure it’s valid, and something they should be able to do. Cheat prevention, basically. It’s a lot of extra work, unless you’re Planetside2 and decide that sort of stuff is a waste of time. Cheating/Mods is fun for some people, and is a perk of an offline game, but since this is an “MMO” it’s something I have to do.
As a result, this update took a while, even though it doesn’t look like a big improvement. The last one was all running locally. Now the server is running a sim, and it even does the decoding of map textures and just sends the client that decoded data. This will help a lot if I ever decide I want massive maps that would lag slow computers/browsers that are trying to decode and process them.
I also had to set up a new physical server for the game-server to run on. I wanted to keep it separate for performance and scalability advantages. With how I’m writing it, it’s sharded so I could handle tens of thousands of players if not more, just in case this really works out.
Some new features are here as well:
- You can see the number of other players in an area
- You can chat to others in the area. (There is map wide chat as well, but it’s disabled as it’s lacking a UI)
- It now gives you information about the area you’re on. Going to new areas will trigger events in the future(mob/NPC encounters)
No code this time. Server code is pretty privy.
The UI is still really bad, I know. I’m working on getting features here. UI work is a pain.
Here is another little alpha demo of what I have so far. Note: This may not work if you’re looking at it from the future. It relies on the server being running, and for the server at that time to be compatible with this old client.
Next I’ll be working on character creation and the writing interpreter(to modify the writing based on your character).