The MMO Project - Part 1: MM-No
So after having a solid fight with Unreal and courses for it I ended up slinking back to Godot. That's not a terrible thing, but it is kind of annoying. Maybe I will give it another shot when UE5 comes out, in the meantime I would like to use my C and C++ to work through Lazyfoo's SDL tutorials and Bheej's guide to network programming then maybe try and pick up Vulkan, might need to go through OpenGL first.
While I continue work on Mantilogs and Tamakai I have spent the weekend working on the start of an MMO client. No server yet though I might get started on that today. I should (in theory) have at least some form of playable prototype by the end of the week. I plan to spend most M,W,Fs working on it until I have some kind of presentable prototype for people to test out.
Once I get to a state I am happy with it I will probably switch my schedule up a bit and start studying the two aforementioned "courses" in between working on my 3 main projects. I may have it be Tuesday and Thursday, reversing the previous schedule. I figure if I study my way into OpenGL I can contribute to Godot. Bheej's guide to network programming should help me get to the refactoring of the mmo project server.
I decided to start on the MMO project as it will give me a chance to work with the skills I have gained while also realizing a dream I have had since I first got into programming. In fact it was an MMO that got me into this in the first place. It was this little game called Endless Online, it was very simple but it had me hooked somehow... there was character to it. I also made friends playing that game that I still have today. I wanted to make my own Endless Online since those days in my youth.
I know it wont really be an MMO at first, it will be an ORPG. There is a lot of work to do in order to get the first M in there. Not sure if the server being in Godot will allow for the level of speed I would need for that. However it will give me a good place to start, a place to test and figure things out and with much less work than sitting my ass down and coding it from the start in C++. Refactoring it into C++ (If I need to) will be much easier once I have figured a lot of the concepts out. I have a pretty good idea already but it's nothing solid til I can login and walk around with other people, eh?
Other than a complete refactor there is a chance I could just write the functionality I need in C++ as an API and include it into Godot with GDNative. But I will cross that bridge when I come to it. I will probably have to write my own ORM for Godot if I want to use PostgreSQL anyway. I has also considered building a python interpreter into Godot and just writing the DB facing code with SQLAlchemy, storing things like player position in a redis db and only commiting that once every minute or so because commiting that to the db across however many players every millisecond just... nah. My disks, they wont like that. Storing that stuff in memory and only firing an insert or update statement once in a while will certainly help that.
Well, I better get to work finishing up the features I want in the client before I start working on the server. I want to have some combat stuff in so I can test it on the server side. (Projectiles will probably be rough. Having to update that with the server every frame would be insane)
Cheers. Also in that screenshot I hadn't yet implemented damage from the AoE skills. I did that right after. Though I have not added cooldowns yet as I want the server handling those(otherwise you could trick the client into letting you spam that shit).