Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(1 edit) (+1)

So, I’m in the middle of implementing actual levels.

I’m currently trying to figure out how to best manage and display level geometry and objects appearing in the levels like buildings and obstacles.

I think some of my basic approaches already work quite well, like creating a file format that combines 3D geometry that is needed for the current level with placeholders that tell the game where the geometry needs to be rendered.

However, I have a good amount of work still ahead of me. At this step, some of the challenges of the perspective the game is rendered in become apparent:

  • Rendering parts of the landscape from far away requires that the landscape geometry extends quite far to the sides, otherwise the landscape ends too early on the left and the right when rendered at a distance.
  • When approaching the landscape, the parts on the left and right will vanish outside the screen quite early, so it’s important not to put too much detail into these parts.
  • I will probably need some kind of LOD system for landscape geometry and larger objects in the game. It doesn’t make sense to render an object at full detail if it is too far away and too affected by fog.
  • I will probably need different viewing distances for small and large objects. It doesn’t make sense to render a coin or an item when it is basically only a pixel large, but I don’t want large objects to pop into existence in the last second either.

There is already some early version of the level system visible in the game. Some of the problems are quite visible, but should be fixed relatively easily:

Some cosmetic problems with the early level system in Savanna Sam

When flying a little higher, the problems with the viewing distance become very apparent:

The viewing distance in Savanna Sam is too damn low!

I hope I will make some progress on this in the coming days and weeks.

(+1)

I assumed you were using Unity.

Having to write your own rendering engine for your game is pretty impresive.

Happy to see progress from you.

(+1)

Yeah, I decided to not use engines like Unity or Godot that can export to HTML because I feel that these engines bring a lot of overhead with them. Even when exporting an empty scene with nothing happening, the resulting HTML files will still have a considerable file size.

I am not writing my own rendering engine from scratch though, I am using three.js, which covers a lot of the basics, which helps a lot. :-)

But, more complex features like level of detail functionality you still have to do yourself.