Revisiting DMUX

September 4, 2017 - 2 minutes

Project on life support

For a while I wanted to try out new tools such as Godot and Panda3D, for a while I tried to make a version of DMUX using these tools but for different reasons I failed each time. During this time I put DMUX on pause, because the project was putting too much stress on me.

Revival of the project

Earlier this week, I was feeling dissatisfied with Godot, the networking stack in particular. So I decided to relax a bit and play with what has been named DMUX-legacy. Come to find I miss making games with C++, especially how much I enjoyed doing networking with RakNet.

What I did so far

On my local branch I have some new refactors I had planned previously but I gave up on. So far I: - Removed the settings file, did the new serialization scheme; basic form type classes are serialized and am getting rid of custom structs. - Got an entirely new master server set up based on a Flask master server and HTTP RakNet’s HTTPConnection class. It figures that Flask is really the way to go for making something simple like a master server. - Got a task list going on a Wekan board - Tore out a bunch of old functionality.

I will try to make a feature-compatible version of DMUX previewed in this video I made a long time ago

This refactor has been really relaxing to me, at the time of this writing I am leaning towards picking this codebase back up.

Here is a screenshot of the main menu with the new master server functionality

master server list

No noticeable difference from the old list, except the game mode is now a string instead of an int. Not to mention the code dealing with this is much cleaner. Thank you to Clainou for pointing out to me the minetest master server, which helped me realize that making a master server with python and Flask is the way to go. Hopefully I can announce the revival of DMUX in the coming weeks.