This game uses MonoGame 3.2 for the build, and the Lidgren network library. The solution is set up for a Windows/Windows 8 build- I'm not yet able to try to build it for Linux of Mac OS X.
What started out as a small side project seems to be turning into a full-fledged game with many details. As you may know, it began with a custom ECS framework and then adding game logic to test it out with. Then I got interested in adding networked multiplayer. So I'm making this a longer term project and as a stepping stone to build other games from.
Current features are, one power-up, support for keyboard and controller buttons/D-pad (no joystick input yet), up to 4 players, and rudimentary Game Screen states. I plan to finish this game with added polish, and more features.
There is just enough to show the gameplay interaction and flow of game states. Upon starting the game, you are greeted with a message on the screen telling you to choose between hosting a game server or connecting to one as a client. After making your choice, the game starts and you can control your character.
What's left to do
The game is very much a work in progress so there are a lot of bugs and things missing from the game currently. I'm a noob to networking code here, and this is the first time I've tried it on a game. Networking is nothing more than a check to send test messages, as they have no impact on the gameplay whatsoever. But it works at least!
There needs to be more power-ups, input controls can only handle one unique set of inputs per player, so there's still the issue of one set of inputs controlling all characters on the screen. I might need to add the ability to deep-copy components that have reference type variables. I didn't include sprite assets because I am using copyrighted sprites as placeholders currently. I will add free placeholders later.
Next Mini Ludum Dare [s]is around the corner[/s] has just begun and I hope it is my first one to participate and try this codebase out for other things. Probably not the network code, though, since that is still very basic. The theme was just announced as "Pong" so it shouldn't be too hard to make something out of that.
Feedback and comments are welcome. I hope this code could be of use to someone wanting to see yet another approach to coding a game.