Jump to content
  • Advertisement
Sign in to follow this  
Spykam22

Creating an Open World

This topic is 2299 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello!

I'm developing an open world game and was wondering how I should make the world. Should I make it through code or model the world in 3ds Max? How do developers create their game's world?

Thanks!

Share this post


Link to post
Share on other sites
Advertisement
This really depends on a lot of stuff. Some developers hire an artist to do it. Others run terragen a few times until they're happy with the result, then sprinkle vegetation and buildings on the map and build their plot around the map's features. Other developer types happen to be artists and do it themselves with a 3d modelling tool (like 3dsmax) and import it into their game.

If your world is going to be very, very large (possibly infinite) you could consider generating it procedurally, but beware this makes the game more computationally intensive and considerably more limited artistically (it is difficult to fine-tune procedural content wrt buildings and stuff, so this only works well for games with no world-related plot e.g. minecraft)

What is your game about? If you just need a natural landscape, you could model it procedurally in code relatively easily, but if you need buildings, cities, other man-made features you'd probably want to do it in 3dsmax or do a hybrid world generation algorithm.

Share this post


Link to post
Share on other sites

http://community.eu....s/td-p/16064509

That's the game I'm making. I don't want the map to be too big but pretty big. I kind of want to do a medieval kind of world. I want to add buildings and roads.

It seems you could benefit from a randomized level generation method here, since you mention levels (or you could have both - hardcoded levels, and random levels). You could do this by first generating the terrain heightmap procedurally, then adding buildings (castles, farms, etc...) at reasonably flat location and connecting them with roads which will try and avoid steep terrain. A randomized algorithm also gives you the advantage of being able to change the level size easily, but of course the bigger you make it the longer it'll take to generate the map.

In terms of quality, usually nothing beats a good human-modelled map, because you can add specific features, but random levels add a new dimension and lots more replayability as well, so there's a balance to strike.

For generating the terrain, you could look up Perlin noise or fractional brownian motion, these are good places to start. Or there are more mechanical methods that work by generating a quite rough landscape and repeatedly eroding it to simulate what actually happens in the real world. If you're feeling adventurous, look up voxels, which will allow you to render three-dimensional topology (= not just heightmaps but actual overhangs and caves, although that might not be so useful in a game where the focus is on the villages and towns).

Then, to add the buildings and vegetation, it's useful to think about how people choose their locations. Usually, towns are built near water, for obvious reasons, but sometimes they are in the middle of a large plain, so that there is plenty of space to grow crops and make farms. Castles are usually built on top of small hills, to be able to better see invading armies and scouts. As for trees, they usually grow in forests, which also happen to grow near water usually. Use common sense here, and build a small set of rules, and tweak them until the result looks just right.

Share this post


Link to post
Share on other sites
Cool, Thanks! I'll look into perlin noise and the others. Also, if I do randomly generate terrain, can I save it into a file then load it when the user loads the save? Edited by Spykam22

Share this post


Link to post
Share on other sites

Also, if I do randomly generate terrain, can I save it into a file then load it when the user loads the save?

Yes, you can always save the whole terrain into a file and load it back, by definition, but if the player cannot modify the terrain, then you can do better by simply saving a "seed" (which is usually the seed of the pseudorandom number generator which resulted in a given map) which will reproduce the terrain exactly. If the player can alter the landscape and buildings, it's still possible to do this but you also need to store any player actions so that they may be performed again when you load the map.

Unless your world is gigantic, I would probably go with saving the whole terrain directly with no shortcuts for now, as this is the most flexible method. Later, towards the end of your development cycle, you can optimize this, since you will know exactly what to save and what to generate when needed.

Share this post


Link to post
Share on other sites
It sounds like your "open world" will essentially be a city? This makes it very simple. Each level can be procedurally generated (I don't recommend total random generation as Bacterius suggested, unless you plan on generating it all at once and then saving the entire 'world' in the game save) and both civilians and 'police' can be generated at random.

If each level will be in a different city, disregard my above opinion -- random generation of levels would result in the most replayable game possible, as well as the potential for an infinitely long game, both of which would generally be good things.

Share this post


Link to post
Share on other sites
Hey! Thanks for the replies. I decided that I am going to manually make my world with 3DS max as I am not sure if the PS Vita can handle terrain generation yet. I might still do terrain generation. It depends.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!