• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
busho

how to design a virtual world

6 posts in this topic

Heya!

I am currently working on my game project which will hopefully be successful someday.
I am now having problems planning the design of some of the core systems for the game.

The game will be a 3d game. Before i start developing i would like to be comfortable with managing my virtual world and entities inside it. I will use entity component system as a standard approach to managing input, movement, ai, etc. These tasks will be split among actual physical services which is an underlying design decision.
My actual problem is designing the world as in splitting it in cells, linking entities to cells and handle movement etc. Basically scene graph on server side with functionality split between different processes.
How to load 3d world from file? How does that relate to underling containers of entities? What are standard map file formats, what info do they include? Do i split the world in x,y,z cell grid, maybe use some other approach? Hoe are the containers important in relation to client side/render engine? Stuff like that:) basically the whole fundational architecture to work on gameplay from there:)

If you can link to some of the articles, examples or concepts that would be amazing. Any general directions to standard solution would be greatly appreciated:)

Thanks for help!:)
0

Share this post


Link to post
Share on other sites

I know how is knowing nothing about what things are correct and what aren't, but, the only thing I can tell you is: you have to think what kind of things are generic and what aren't and try.

 

Eg.

 
Did you know how to manage your time to spend it correctly?
I want to learn from the development process?

I really want a Game or a Game Engine or both?

My "Game World" can be used as an Tech Demo to get that job I've been dreaming, or is just a Game with my signature?

 

Suppose you've finished your game. Congratulations! Now you have your name in the source code! :-). Now let's forget about everything I learned. That's not the best approach.

Suppose your friend is a Graphics Programmer and want to develop with you. You have just a 3D World that do everything. How can your friend do his part of work knowing nothing about the way you've planned the Game? It's not impossible but is very hard to him. 

The best development architeture that I found the best is the Layered/Modular architeture (search on the forums). Is fast, compreensive, and you can learn how to simulate physics forgeting that 3D Modeling class for a while. Your friend now can write an "Graphics Manager" class without needing to know your "Game Manager".

 

You know that the games are approaching more and more to movies. If so, why not name it a "CScene" and a Game's Entity an "CActor"?
 
Also I recommend that you read things slowly.
 
Irlan
0

Share this post


Link to post
Share on other sites

Thank for these replies guys.

 

I might have worded my question a bit odd so it came out the wrong way, so let me try again :)

 

Suppose I am planning on creating a 3D area/landscape, just basic terrain with mountains etc. For that I will create a height map file. Now the actual problem with thinking ahead is how to load this file and figure out the size of this area (for 3d landscape I need 3 lists of coordinates: x,y,z, no?).

This part of the code will not do with any rendering whatsoever, but merely managing the scene, entity coordinates and (later) movement, collision detection etc.

 

So my questions are specific in this regard:

 - I know there are many file formats for height maps, but is it possible to export (lets say from some terrain generator program) a heighmap, textures and navigation meshes, collision detection rules, etc?

 - How do I manage this "scene"? As in, how do I get the size of the landscape (bounds of those 3 lists), so I can later place objects (trees, etc) to specific locations.

 - Can I use any existing solution for this? Note again, I do not need to render anything here, just need to manage collision detection and the actual 3 lists and entity interaction.

 

Basically any suggestions, solutions, links to tutorials/articles are most welcome :)

 

I hope I will make more sense now :D

0

Share this post


Link to post
Share on other sites


Note again, I do not need to render anything here, just need to manage collision detection and the actual 3 lists and entity interaction.

 

Some tough love comin' atcha'.

 

It appears you're still tripping all over yourself. You have lots of ideas about the general form of a fairly extensive app, but, from the questions you're asking, it seems apparent, however, that you're not familiar with the aspects of programming the concepts you want to incorporate.

 

As mentioned a couple times above, your first step should be to become familiar with the types of things you want in the app you're thinking about. Have you actually written a program that loads a height map, just a height map without entities, locations, collision engines, etc.? If not, then, per your request for suggestions: googling for "height map file" yields 164 million hits. Take a look at a few of them and try one or two to get a better understanding of what it takes to load a height map.

 

For other aspects you mentioned, do the same. E.g., try out a collision engine or two. Become familiar with what it takes to use one. That will provide you with a better idea of how to incorporate it into your program. Get experience with the individual pieces that make up the whole.

 

Just a comment: IF you're planning on graphics being part of your program, and you want to import, manage and save the state of a whole list of things, you really should consider what it will take to render them. That will influence greatly what form you'll want your import/export/management/collision data to be in.

2

Share this post


Link to post
Share on other sites

Let's see if I got all the questions.

  1. How to load 3d world from file?
  2. How does that relate to underling containers of entities?
  3. What are standard map file formats ...
  4. ... what info do they include?
  5. Do i split the world in x,y,z cell grid, maybe use some other approach?
  6. How are the containers important in relation to client side/render engine?
  7. is it possible to export (lets say from some terrain generator program) a heighmap, textures and navigation meshes, collision detection rules, etc?
  8. How do I manage {a terrain scene}? As in, how do I get the size of the landscape (bounds of those 3 lists), so I can later place objects (trees, etc) to specific locations.
  9. Can I use any existing solution for this?

 

 

  1. First you figure out at high level what your game/app needs to do. Then you figure out what information you need to make that happen. Then you take this abstract information and sketch out a document specification where you describe how info x gets mapped to a certain set of bits and you get a file format out there. At that point you probably know already how to load it. I suggest writing your own format for engine use and go with standard formats for DCC tools.
  2. In general, there will be a special structure being "the world". The world might be solid or not or include "solidity" info. If the world is nonsolid then it's likely there will be another special entity being "the physical world". The rest of the structures might be for example put a light here, there and there. They usually have a very bland correlation with the world, both graphical and physical, at this stage of your app. I strongly suggest using a physics library.
  3. No standard.
  4. ID based engines basically include (3). Unreal based engines are fairly more advanced but if you cut a lot of corners they're basically the same thing and you can bet at this 10,000ft of abstraction everything looks pretty much the same.
  5. Splitting in fixed sized cells is relatively inflexible but some games go with it and they work fine. For a first iteration, I suggest to just reduce the batch count as much as you can and optimize your life by minimizing your efforts first. Then you figure out what you need with the experience you got from rigging up the prototype.
  6. What are you asking here?
  7. Yes... for some program... for some import filter... for some data. 
  8. Size of terrain is a 3D vector. Terrain has an origin which is a 3D vector. It might also have a orientation which is either a quaternion or a 3x3 matrix. Placing terrains is often not very different from placing entities, and entities are usually (but not always!) very loose on definition.
  9. Yes, a pre-made engine. You will also get a ready to go toolchain. Have a look at Unity or UDK.
1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0