Utilizing procedural development in an MMORPG
Posted: Sat Jul 20, 2013 5:20 pm
So I'm working on an MMORPG built utilizing a Sails.js backend with mongoDB, Pixi.js for rendering, and SoundManager2 for sound. My development and design process is as follows: Take baby steps, and after each minor milestone: play the game. At that point I decide what would be nice/fun/important to have next. Then I implement it, test for stability, and make performance tweaks. Rinse and repeat. But now, I'm at a place now where I feel like the world/terrain could use some fleshing out. For this I've chosen to use a procedural algorithm, similar to what is used in Minecraft.
I've worked with procedural terrain generation before in a singe player strategy game built in XNA. That was a fun experience, and made me love how powerful these algorithms can be when used in the appropriate context. In an MMORPG however, I worry about some of the implementation details.
If I'm going to move forward with a procedural terrain generation engine, I want to make sure it is properly utilized. Meaning I can't just run it once for each game shard (assuming I decide to even have separate shards) and be done with that world. I need players to be able to somehow go on from the normal world, have the procedural generator run, and then they'd have a whole new world to explore.
The setting of this particular game is high fantasy. So I don't want to have things like, say, Starbound, where each planet is procedurally generated, and players travel between them using spaceships or what have you. That said, I'm not opposed to having portals that take players to different worlds.
So the idea as it currently stands is this: Have a pool of "world types" which are essentially the same as biomes. As far as my data is concerned, these would simply have pools of tiles / resources of different types they could choose from when generating the terrain. The first world created for the server would be of a default type, and portals would be generated around the world. At the time of generation, these portals don't know where exactly they would go. Upon first use, they would be labelled as a transport to whichever world they go to, and that "world" would be generated. These worlds would be all of the same biome, and would be large enough that players could explore and build (haven't gotten this far in development, obviously) if they so choose.
The scenes would then consist of "worlds", and mini-zones like dungeons and caves that could be generated inside any of the worlds. The mini-zones are one-way back and forth within their worlds, where worlds might be able to be teleported to through either their portals, or other various player-made means.
How does this sound? Is there a possibly better way to go about this? This is in the design phase for me so just spout out ideas and we'll see what we come up with. This is an integral part of my game, so I want to make sure I approach this properly.
Also, please note that this is specifically about how to utilize procedural terrain generation in an MMORPG, not about the biomes or details of the generated content itself.
I've worked with procedural terrain generation before in a singe player strategy game built in XNA. That was a fun experience, and made me love how powerful these algorithms can be when used in the appropriate context. In an MMORPG however, I worry about some of the implementation details.
If I'm going to move forward with a procedural terrain generation engine, I want to make sure it is properly utilized. Meaning I can't just run it once for each game shard (assuming I decide to even have separate shards) and be done with that world. I need players to be able to somehow go on from the normal world, have the procedural generator run, and then they'd have a whole new world to explore.
The setting of this particular game is high fantasy. So I don't want to have things like, say, Starbound, where each planet is procedurally generated, and players travel between them using spaceships or what have you. That said, I'm not opposed to having portals that take players to different worlds.
So the idea as it currently stands is this: Have a pool of "world types" which are essentially the same as biomes. As far as my data is concerned, these would simply have pools of tiles / resources of different types they could choose from when generating the terrain. The first world created for the server would be of a default type, and portals would be generated around the world. At the time of generation, these portals don't know where exactly they would go. Upon first use, they would be labelled as a transport to whichever world they go to, and that "world" would be generated. These worlds would be all of the same biome, and would be large enough that players could explore and build (haven't gotten this far in development, obviously) if they so choose.
The scenes would then consist of "worlds", and mini-zones like dungeons and caves that could be generated inside any of the worlds. The mini-zones are one-way back and forth within their worlds, where worlds might be able to be teleported to through either their portals, or other various player-made means.
How does this sound? Is there a possibly better way to go about this? This is in the design phase for me so just spout out ideas and we'll see what we come up with. This is an integral part of my game, so I want to make sure I approach this properly.
Also, please note that this is specifically about how to utilize procedural terrain generation in an MMORPG, not about the biomes or details of the generated content itself.