-
Notifications
You must be signed in to change notification settings - Fork 1
Home
What is the dream of every (game) developer out there? Creating your own MMO-RPG. At least that was a long dream of myself (and I know a lot of other people out there which share the same dream). Creating a vast world, inhabited by monsters, NPCs and items. Unfortunately this is quite a big task (even if you want to do a single-player RPG). We will face a lot of technical and artistical challenges along the way. In a big commerical MMO-RPG there are teams of hundreds or thousands of developers, artists, sales people and community managers. Just take a look at the World of Warcraft credits or the size of the game client. We cannot do this in this little project. So we have to limit ourselves that we can make it.
So this is not what we are going to create:
Let's start with the visual department. Most modern MMO-RPGs are huge worlds rendered in beautiful 3D. This alone would require us to either use a pre-made 3D rending engine or write one from scratch. As we want to write everything from scratch this is probably way beyond the scope of this experiment. So we will stick to simple 2D top-down game like the early Zelda games. I'm going to use pixel art as well, because I'm very bad in creating assets and drawing some very simple pixel art is all I am capable of.
The sound / music department is going to be very very easy. We just use a bunch of freely available 8-bit sound effects and music which is found on itch.io. I'm not a musician either.
Most MMO-RPGs are very complicated and use more or less the whole keyboard for actions, spells and provide a big user interface for everything. Think of bags, crafting, fighting and skill trees. We are going to limit the input also. If you think of Links Awakening on the GameBoy it was possible to play with just 8 buttons. A, B, Select, Start and the 4-way dpad.
This is something where we can start endless discussions about the network model. I'm planning to use an extremely simple approach here with a UDP based thin client. But more on this on the networking chapter.