The MMO Project Part 13: Talking to myself
Today I aim to finish up some things I started the last couple days, mainly the NPC dialog and the UI for Experience, Levels and Stats. First I need to finish the NPC dialog system, then get to work on the UI for the HP, MP, EXP bars and Gold. Also need to create a new stats window, then wire it up to the character. This isn't terribly important so I might skip it for now. I do need to get to work on Chat though. We'll see how much time it takes to get the first couple things done and circle back on it.
Got the dialogue state wired up. All good there now.
And if you choose "Yes"
The NPC will reset back to their original state when the player selects a goodbye option. I will need to constrain the range of interaction when I add server-side collision but for now this works.
Next thing I should do I suppose is add in the UI for HP, MP and EXP. Then one for gold.
Now I just need to wire them up. I also need to figure out a way to get the Experience TNL from the server to the client, I guess it's
Alright, we got it in and updating the Exp. I need to handle sending level ups to the client yet, but we got exp updating and the bars get setup on login to reflect the character's max and current hp/mp as well as the exp they have vs exp TNL.
So the server, when it sees a character level up, should inform the client that the character has leveled up. This should change the max on the exp bar to reflect the new TNL as well as change the level on the character nameplate (It probably wont stay there but I need it where I can easily see it for now). I will also have to change it on the dummies, which will be actually not so hard I think. If I remember my way around my own code, that is.
Almost starting to look like a game.
Though, I do want to add a small margin to the gold display's icon and text. Sitting a little to close to the left edge for me.
Now what in the hell do I do with about making a chat system?
Now I just have to write the logic. Which should be easy, in theory. I have written dozens of chat systems over the last 16 or so years.
You just send a message to the server, then broadcast it to all clients. Gotta disable player character input while chat is active though. Otherwise you got the character moving while WASD are pressed and that's no good. I should probably make the client talk to it's player container on the server and format the message in there or you could spoof your name in chat. There are some shitty people out there that would take advantage of that to sew chaos. People like me, the bastards.
Some small bugs but it functions.
Alright, to make it simple and similar to other games I played a lot of... you hit Enter to get into the chat input. Then you hit Enter to send the message. The send button is just a decoration, who would need it anyway? It just breaks up the UI in a way that says "This is the chat" to me. I might remove it later.
The adventures of Cakeman and Banana continue!
In the future this will be the global chat system but there is only one map for right now, as I have not handled map changes yet. I might want to get server-side collision in before that though.
Might make items and inventory next. Let's have a good look at the Codeck and the logs of Vult-R from when he developed Endless Online. Nothing as early as I am now in dev but it should give me some thoughts.
Oh, I just remembered I will soon have an Office Whiteboard to plot on, thanks to my bro Donni. This will make it way easier to implement complex systems because I can draw out big diagrams and notes without having to be flipping back and forth through pages in my notebooks.
Given how complex the inventory is I might wait to do that then. This could be my excuse to take a long weekend and play video games for a bit. We'll see.
So there is map change, securing server to server connections better, optimizing the enemy movement controller on the server (Which I might wait and do when I add the collision, actually), and I need to remake the stats window. I think I will outline the stats window today. I have some stuff to do with my beetles and worms that just came in so I wont have much time for anything else. I'ma go get my drill and make some air holes for some critters in some new cultures real quick.
Alright, with that it's 4:30 and I got some bugs to deal with. I will wire this thing up tomorrow and look at what else I can do then. For now,
Cheers.