Advertisement

Help! I'm looking to start developing a 3d open world simulation type thing.

Started by June 24, 2023 05:39 PM
21 comments, last by Geri 1 year, 4 months ago

I'm starting as an almost total newbie. I used to do some simple game programming when I was younger, but that knowledge is basically gone now.

I want to make a simulator / game where all you really do is walk around. I want it to be open world like... You can explore for a really long time and go into different buildings and those buildings have more stuff to look at. I know I want it to be 3d models for everything.

I've spent countless hours looking for resources, but I've gotten almost nowhere. The things I'm seeing are for more complicated games or something entirely different from what I want.

Realistically, how hard would it be to create my idea?

Where should I start? What programs should I look into?

Anything can help, I'm very passionate about making this, so I will use any and all answers. Please let me know if you know anywhere else i can post for more help. Thank you.

As beginner creating an open world game is almost impossible you're just setting yourself up to fail. I'd recommend making lots of small games and slowly learning mechanics that way once you've created a few games and feel confident, you can then start on something bigger.

Advertisement

open world?

3D?

rooms and buildings to explore?

only do this if you want to dedicate the next 5 years to figuring and learning how to do this.

Our company homepage:

https://honorgames.co/

My New Book!:

https://booklocker.com/books/13011.html

It's a lot of work. I know because I'm working on something like that and I'm not even using a game engine. Your best bet would be to download Unreal 5.2 That at least will make it a lot easier than what I'm attempting. You should be able to create a world that you can walk around in reasonably fast (and by that I'm mean months), but you will still have to put in a lot of effort just learning the engine. At least there are many tutorials though.

Making a truly huge world or planet (as I'm doing) is going to be harder though. It depends on exactly what you want out of it. I assume you want some sort of game play.

It's almost certainly not viable for a new developer to do such a thing.

I'll at least explain how I tackle the problem of needing to present individual locales all over the earth (but not seamless, discrete level loads).

Being UFO-Like I effectively have to do the whole world (aside from some countries I just kill in plot) I do everything outdoors in a tileset so different biomes are mostly a reskin of the tilesets with different decorating rules, all that matters is that they align with each other on their seams. I continue using the tileset outside of the mission bounds for a good while before I move to using a either a procedural skybox (wilderness) or an OSM-Blender skybox with the center cut away ("we're in that cut-away spot") for quite a few major cities (a few hundred right now, most US state capitals, significant European cities, African capitals, and so on).

I went with a very large 8x8 meter tile size, which although it makes the need for lots of a custom tiles and variation tiles keeping it to that large of a space let me put in stone large monster navigation and posing issues. I went overkill with seams. I store displacements for each edge warp to match to a pair edge of anything else, those are determined by laplace deforming the edge verts onto the other edge verts, to work all pairing tiles have to use the same edge tessellation, the deformer gets applied as the tiles get baked at load time into lists of clusters (I'm doing meshlettes).

OG tileset from early-dev, was more than plenty enough to get things going

I do the procedural wilderness cubemaps at load time as a simple heightfield with sprites and basic sky+clouds model. The heightfield is based on a low resolution heightfield of the earth that contains height and an error-factor computed for a much much much larger (~1gb) heightfield to estimate how noisy the generated field needs to be in that area. Another globe texture map specifies the grayscale displacement textures that'll be used for heightfield displacement. Some special work so major nearby mountain ranges seem to be visible when near those.

Buildings are made in a tweaked version of TrenchBroom and have a lot of extra annotation properties that tells a brush which other brushes are support structures, if the face is outside facing, etc. Wall faces get lofted using a variety of loft profiles or tiled mesh-inserts.

Urban maps are made the same as dungeon generation using BSP, the dividing lines form the roads and the cells the parcels of where things go. Division continues until everything fits a parcel. Zoning works pretty the same as well, one side of the division goes civilian and one side goes business/industrial/etc.

Towering cities only have usable structure on the ground floors (unless hero building like a mall) and from above that they extend out into a tower of w/e chosen procedural height. Here I use another globe texture that informs the building height ranges. I use maps about max/average building heights construct this texture to the extent that I can. I exclude THE max heights and treat the max as significantly shorter as those buildings are most likely in my OSM rendered skyboxes as they'll be iconic structures and I prioritized seeing those when placing cube positions (ie. you have to see big ben in london).

I still haven't gotten around having to do completely dedicated structures. Asian architecture is an entire bundle of stuff all of its' own that's easily been as much work as making the generic tweakable set. Trailer parks, shanty-towns, and Tuscan/Grecian are next on my list.

Recommended watching:

@generaljist lmao I plan on dedicaticating the rest of my life to this. This is going to be basically the only thing i work on forever. More of a developing project than a fully fleshed out start to finish game… I hope that makes sense

Advertisement

@gnollrunner I actually more want it to be like an ongoing art project for me. There isn't going to be any real goals or anything like that to complete in the "game." Just somewhere you can walk around and get lost in. Like a walking simulator in a ghost town. No NPCs or anything

@TyMaxwell27 Well keep in mind you can make something reasonably fast using an existing engine and asset flipping, but it will tend to look pretty generic. If you want something unique you will have to spend more time and effort.

TyMaxwell27 said:

@gnollrunner I actually more want it to be like an ongoing art project for me. There isn't going to be any real goals or anything like that to complete in the "game." Just somewhere you can walk around and get lost in. Like a walking simulator in a ghost town. No NPCs or anything

That's pretty doable. You'd probably find Genarri's stuff interesting http://3dworldgen.blogspot.com/​.​ There's this pretty insane software rendered free roam that's all about being a learning tool in reading topomaps and geocaching https://grelf.itch.io/forest​ with some useful background material to read about too.

So yeah, a ghost town walking simulator open world is doable. Still a stretch for someone new to build all the skills required, but it's not as insane as what anyone reading what you initially said was thinking you were wanting.

#include <gl/glut.h>

#include <gl/gl.h>

short int mylevel[1024][1024]={0,};
short int monsters[1024][1024]={0,};
short int myheros[8];

void glutmainloop{

for(int y=0;y<1024;y++){
for(int x=0;x<1024;x++){
if(mylevel[y][x]){…}; // do something

if(monsters[y][x]){…}; // do something
}

}

int main(){

glutcreatewindow

glutkeyboardcallback

glutmousecallback

enterglutmainloop

}

This topic is closed to new replies.

Advertisement