In: programming
14 Aug 2009Last week I released an update to “The Player Demo” on the Ogre3D forums. If you’ve never heard of it, the demo is essentially an example of the basic concepts behind creating an online, multiplayer game with Ogre3D and RakNet. In the demo, you can login with a nickname, run around the terrain, and chat with other players.
My motivation for creating the demo is to get more people interested in creating their own online games and to provide them with a well-documented example that’s easy to hack and modify. I personally learned the most by reverse-engineering other people’s code (I grew up writing server emulators for most of the popular MMORPGs) and so I thought this might be helpful way to teach others.
Eventually, I would like to expand the demo a little bit more with an additional scripting layer (I’m thinking Lua or Javascript via V8) and back-end database (possibly MySQL or SQLite) as well as implement basic NPCs, fighting, death/respawning, player stats (HP/Exp./Level), and user accounts/registration. The trick will be trying to exemplify some of the most common features of today’s MMORPGs without getting too specific (which would limit applicability of the demo) or too complex (which would impact the project’s size and ease of understanding the codebase).
Anyways, here’s a few screenshots from the latest update to “The Player Demo”:
You can download the precompiled binaries and source for the demo here.
Hey there, I’m Adam Simmons and this is my blog. I generally use this space to write about software (usually my own), games, emerging web technology, 3D stuff, and other nifty things as well as post photos and videos that are relevant to my life.
5 Responses to The Player Demo – V2 Update
Daniel
August 14th, 2009 at 11:53 pm
Cool! Have you considered porting the network layer from RakNet to enet? I just discovered http://enet.bespin.org/ when working on some research code. It’s really easy to port raknet code to this open source lib. The MIT license it’s under is very liberal and the code very simple, plus you get some of the nicest features of SST. Would love to see this running on top of enet.
But great idea to do this sample OGRE game
adam
August 15th, 2009 at 12:08 am
I actually did consider porting to ENet– I’m using it right now in another project and love its simplicity and minimal footprint. I decided to use RakNet for this demo primarily due to its automatic translation of timestamps which I’m using to compensate for lag during walking.
Klaim
August 15th, 2009 at 3:51 am
“I personally learned the most by reverse-engineering other people’s code (I grew up writing server emulators for most of the popular MMORPGs) and so I thought this might be helpful way to teach others.”
That explain a lot O__O
Charles Wyandt
August 17th, 2009 at 7:40 pm
I recommend using AngelScript as the scripting language, it is much easier to implement than Lua, and has C++ based syntax.
Xplod
October 14th, 2009 at 12:57 pm
I’d be very interested in WASD movement and how you do Lag compensation. It would be something VERY useful for everyone! Thanks