Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I want to know how I can create a virtual town or city (like skyrim towns or gta4 liberty city)

Should I create something on paper and copy coordinates? (Building1 floor corner coordinates are these, ceiling coordinates are these, 2nd floor coordinates are these etc, and then road1 coordinates are these...) And then apply texture on these things? Start with just 1 building and extend it in time?

But this seems like a ton of work. For simplicity if we assume that there are 5 buildings on a road, this is like 90 vertices. And if I decide to make a house wider, then many things will be affected and I have to find new coordinates for every house corners. How did the developers of GTA 4 do it for example?

I would like to know an appropiate method to create a static virtual map where the player can move into houses and interacts with objects in it. Please note that these buildings are not cosmetic only. I should be able to place objects in houses such as tables and the player should be able to jump on it etc.

Thank you, I will vote when I have the reputation.

share|improve this question
1  
my interpretation has always been something like: build the complete building structure in a modeling program (all floors plus the foundation if you want it to completely connect with the terrain even if it is rounded), import the house into your game and position it, then add the objects (like doors furniture, children's toys, etc.) inside the position house. Then repeat until your town is complete. –  Benjamin Danger Johnson Jul 16 '13 at 16:05

3 Answers 3

The models themselves are usually done in a dedicated graphics program (3ds MAX, Maya, etc if you have the funds, Blender and others if you don't). Once you load such models into your program (either by writing your own importer, or using your engine's importer), you can place the like blocks.

Modern engines usually come with a dedicated editor where you place the premade objects. Play around with Skyrims creation engine for a better grasp of how it works.

Once you load the mesh data it is used for collision detection.

share|improve this answer
    
Thank you for your fast response. This would make things way easier. (I cannot vote your answer due to my reputation.) –  Kogesho Jul 16 '13 at 14:27
2  
You should note that mesh data isn't always automatically used for collision detection. While most programs do have the option to create colliders using mesh data they are often really slow (although accurate). Usually you are better off creating 'collision geometry' yourself inside the engine. The collision geometry is usually just spheres and cubes around areas the player cannot walk though (so a table could just be one big cube for the entire shape and space underneath or a cube for the top and one more cube for each leg). –  Benjamin Danger Johnson Jul 16 '13 at 16:11

There are really several approaches to this. The way the maps for Grand Theft Auto 3 and beyond were (likely) made is the entire map or large parts of the map is/are created in a 3D modeling program such as 3DS Max or Maya, then split up into pieces (a single lot or a neighborhood may be a piece, an airport runway may be a piece, a bridge will be a piece) which can be loaded into the game as the player approaches them. There are also low-poly Level-Of-Detail versions of these pieces which can stand-in for the high-detail version of a piece when viewed from a distance. In-engine, these pieces are fitted together to create the entire map.

I can't speak for Skyrim because I don't have the game or the editor, but TES: Oblivion and Fallout 3/New Vegas as well as Far Cry and Crysis make use of a large heightmap for terrain and then objects such as buildings and rocks and trees are placed upon the heightmap. CryEngine would probably be excellent for making such a map. You still must model the objects themselves in a 3D editor, but this may be the easiest route.

share|improve this answer

For many simple games, you can use an existing editor. I think for some purposes, people have managed to just use 3D modelling programs as their editor, but I've never done that.

Another random example: Valve's Hammer Editor stores block data as text files in their .vmf's. If you're making a pretty small test game with little need for optimization, you could load those text files as your levels.

Otherwise, consider the possibility of implementing an existing open-source level editor, creating your own in your choice of UI-development language, or, as some recent engines have done: Integrate a level editor with your game, so it's easy to jump to game mode and check how well something works.

share|improve this answer
    
+1 for the level editor approach. –  Bloodcount Jul 17 '13 at 6:39

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.