*Crickets*
Okay, maybe it’s time for me to make a blog post about something. Let me see… Well, maybe I should talk a bit about some interesting bugs I’ve had fun with while working on my pet MMORPG project. These bugs were related to procedural world generation and they were really kinda annoying to track down. They were caused by some silly misconceptions and wrong assumptions I had about the C++ standard library.
Even though Trolddom might lack in the flashy graphics department, you’ll find that in terms of baseline game mechanics, it is very similar to traditional MMORPGs. Anyone who has played a game like World of Warcraft, should be able to intuitively understand how most things work. The 2D grid nature of the game, however, leads to some fundamental differences, one of them being how movement is blocked by other players, enemies, and NPCs.
Finding time to ramble on a blog can be quite tricky when you feel that any minute you spend on it, might be better spent actually working on your project. If I was just following my nature, I’d long ago crawled into a mountain cave, just to sit there to crank out code, only to come down from the mountain occasionally to stock up on canned beans. However, I’m quite aware that such a lifestyle can be quite detrimental to the grand scheme of things, so let this sunny day be the occasion for another blog post.
All the simplest, and probably most reasonable, designs entail that a client will only ever be connected to a single game server at a time. This implies that once in a while the client will have to switch from one server to another. As mentioned earlier, this could be when he enters through an instance portal into a dungeon, or if he takes the boat to another continent or island.
Now it’s time to dive into the wonderful world of data storage for MMORPGs. If your business is MMORPG, player progress data is going to be your crown jewels and handling them with care is essential. Players tend to invest a lot of time and effort into these kinds of games, so if they lose anything they’ve acquired or accomplished in the game, they’re going to be very unhappy. Just one guy posting on reddit or twitter that his Flaming Sword of Epic Dragonslaying disappeared from his inventory, could have disastrous consequences for your game.