Advertisement

Open/Infinite worlds in CryEngine

Started by December 06, 2017 03:43 PM
5 comments, last by Scouting Ninja 6 years, 11 months ago

Background

I'm new to game development as a whole but I've been programming for almost 7 years now, it's my daily job. I work mainly in web development creating data aggregation and analytic tools. I currently work for a company called Concept Gaming, we design and develop online casino based games like roulette, slots and blackjack etc..

I'd like to move more away from my field and experiment with game engines like CryEngine in order to create AAA games. Now I'm not an naive, I understand that these types of games requires heaps of time and effort and usually a dedicated team. So my goal is not to create a game as of yet.

That being said I've decided to learn CryEngine rather than Unity or Unreal. Most will probably mention that Unity has a much more community friendly environment in terms of helping beginners out and I will agree, however I've chosen CryEngine by preference. I found that after downloading all 3, CryEngine seemed to be the one to appeal to me the most.

 

Question

So I want to know how you'd go about creating an open/infinite world in CryEngine. I know it's practically impossible to just straight up create a universe due to memory constraints and processing power etc.. but if you take a look at games like Star Citizen who also use CryEngine, they've managed to actually achieve some way of simulating a seamless universe. Now I do know that they work closely with the CryTek team and they're solution is mostl likely proprietary, but could someone please explain how I'd go about achieving this in CryEngine?

 

much appreciated,

~ Kieron

15 minutes ago, Kieron Wiltshire said:

So I want to know how you'd go about creating an open/infinite world in CryEngine. I know it's practically impossible to just straight up create a universe due to memory constraints and processing power etc.. but if you take a look at games like Star Citizen who also use CryEngine, they've managed to actually achieve some way of simulating a seamless universe. Now I do know that they work closely with the CryTek team and they're solution is mostl likely proprietary, but could someone please explain how I'd go about achieving this in CryEngine?

 

Star Citizen rewrote a grand majority of the cryengine code base, and switched to lumberyard because of the lack of support from Crytek and the fact that they seem to be an incredibly unstable company right now , a lot of closures , not paying staff, lack of support, etc.

Open world and infinite world are two completely different things, but there is some overlap. Both need streaming systems, I believe Star Citizen uses an instancing system , and there are dozens of other things that need to be done. Your question is somewhat like asking how to make an mmorpg. 

Advertisement
6 hours ago, AxeGuywithanAxe said:

Star Citizen rewrote a grand majority of the cryengine code base, and switched to lumberyard because of the lack of support from Crytek and the fact that they seem to be an incredibly unstable company right now , a lot of closures , not paying staff, lack of support, etc.

Open world and infinite world are two completely different things, but there is some overlap. Both need streaming systems, I believe Star Citizen uses an instancing system , and there are dozens of other things that need to be done. Your question is somewhat like asking how to make an mmorpg. 

Understood, thanks for the reply. So how would one go about creating a large open world that's seamless in cry engine? Or would it be best to create an in-house solution?

6 minutes ago, Kieron Wiltshire said:

Understood, thanks for the reply. So how would one go about creating a large open world that's seamless in cry engine? Or would it be best to create an in-house solution?

Switch to Unreal 4. It has updated it's rendering in the last few releases and now exceeds what Lumberyard can do. Lumberyard is in a real messy state right now and not recommended, there updates are slow.

You will need to learn about batching(merging meshes) and hierarchical 

" rel="external">instancing.

You also need to keep in mind that meshes have a 64 000 triangles limit in unreal before they split into 2 or more meshes, actually 64 000 tri not vertices like other engines still smooth groups and UV maps count to this limit so keep models at +/- 50 000 tri.

Then learn level streaming and how to work with the terrain. Learn LODs(all kinds particles, mesh, shaders).

 

If your insistent on using cry engine then just learn the same but for cry engine; unreal kind of copied and improved on what cry engine was doing.

 

The coding part is much more strait forward than the graphics part, just learn to be optimal. Use object pools, simpler is better. Don't collide with things that don't need it and "LOD" your math code so that you can use faster functions to simulate the world that is far.

I want to point out this is a lot of work and can take a single person very long to do.

 

Making a seamless world isn't hard, just time consuming.

14 hours ago, Scouting Ninja said:

Switch to Unreal 4. It has updated it's rendering in the last few releases and now exceeds what Lumberyard can do. Lumberyard is in a real messy state right now and not recommended, there updates are slow.

You will need to learn about batching(merging meshes) and hierarchical 

" rel="external">instancing.

You also need to keep in mind that meshes have a 64 000 triangles limit in unreal before they split into 2 or more meshes, actually 64 000 tri not vertices like other engines still smooth groups and UV maps count to this limit so keep models at +/- 50 000 tri.

Then learn level streaming and how to work with the terrain. Learn LODs(all kinds particles, mesh, shaders).

 

If your insistent on using cry engine then just learn the same but for cry engine; unreal kind of copied and improved on what cry engine was doing.

 

The coding part is much more strait forward than the graphics part, just learn to be optimal. Use object pools, simpler is better. Don't collide with things that don't need it and "LOD" your math code so that you can use faster functions to simulate the world that is far.

I want to point out this is a lot of work and can take a single person very long to do.

 

Making a seamless world isn't hard, just time consuming.

Thanks man, but I'd prefer to stick with lumberyard or cryengine. Do you know where I can find any tutorials or documentation explaining how to do things like level streaming etc?

1 hour ago, Kieron Wiltshire said:

Do you know where I can find any tutorials or documentation

It was in there documentation, I did a quick search but couldn't find it. I will keep looking for it, for now check this: http://docs.aws.amazon.com/lumberyard/latest/userguide/level-intro.html

http://docs.aws.amazon.com/lumberyard/latest/userguide/level-layers-streaming.html

Found it.

This topic is closed to new replies.

Advertisement