The past three weeks I’ve been doing a complete overhaul of the engine to build networking in. It took me two weeks to get it compiling again.
Now the engine is split in two parts. The logic on the server and the renderer on the client. The client still has some logic but mostly just stuff that only the client needs such as loaded textures, gui and client-side cut-down versions of server-side objects.
How it works
By default the engine hosts the server as part of the client. And internally does network communication with itself to run as a single user/player mode. The only thing that happens to change it to multiplayer is it opens up the server part.
Headless mode is exactly the same as a client. But only has the server and doesn’t run the client at all.
I’ve found many game engines to be a pain in the way they require a graphical context to run. The way I’ve done this should allow for cross-platform hosting on rented servers and ones without any graphics capability at all. (64-bit is still a requirement)
It also takes the same amount of effort to build a singleplayer game as it does a multiplayer game. However all the hard stuff is handled by the engine itself.
How much longer?
So far the editor is connecting to the engine, adding some default components. And setting the engine to edit mode. So far this has taken 27 edit mode commands and 4 normal mode commands.
The engine needs to do a bit more talking back to the clients in order for them to have enough information to display anything on screen.
I can’t give an exact estimate on the time it will take as my time available to work on EE varies a-lot from week to week.