SakeTami
Speiger
Speiger

patreon


4 Steps forward. (Tiles are back)

Recap: 

It's been a while since the last post.
Since then I was a very busy Bee. 

4 Weeks ago when I showed my progress on how much I have achieved on the Game Engine, I managed to scramble together a simple implementation of the Terrain, to show of at least "something" that wasn't in the background.

Since then, I finished the Terrain Manager, Water-Renderer and Model Compression (Yes I figured out why it didn't work).

I didn't realize my mistake until I had it almost fixed.
So now thanks to the Improvements the Terrain Model uses 96 Bytes instead of 384 Bytes.
(Total goes from 98kb to 24kb)

Next thing was to test the Terrain and my Memory Manager wasn't as finished as I wanted to because it had this "Random" hole in the terrain, which took me quite a bit of testing until I realized, hey your data that you insert uses the "Empty Value" that isn't supposed to be used. So I changed the Empty Value to a less likely case and everything was fixed.

Tile System:

The Tile System was the Next big Step of what the was needed to be re-added to the Game.
First I was thinking. Keep the old System but make some Tiny changes to make it more flexible in the update logic.

That quickly dropped when I realized what I wanted. First I tried to re-implement that old System, and fell on my nose that even with my improvements it was to "Dynamic" for some things. So new Set of Rules had to be made before I even thought of implementing it.

The rules defined what it should be able to do and what not. Here is a simple list:

- It should be a 2 Step Process. Data-Generation and Data-Transfer (to the gpu)
- Data-Generation should be done off-thread. To make sure it wasn't slowing down the game.
- Changes should be made without affecting rendering. In other words keep track of changes and only apply these when requested.
- No Option between Dynamic & Batched rendering. It wasn't used and caused overhead.
- Batches should only contain data and should not render!
- Reduce OpenGL Calls to bare minimum.
- Batches can not be drawn manually, and Chunks have dedicated batches that are fixed size.

These rules allowed me to make a better Tile Renderer, that is faster, has a Smaller Memory Footprint, can run off-thread and also has a lot less code to execute.

The Manager that handles all "what does what" is after a couple rewrites also somewhat clean but on larger settings or a lot of small changes a bit to slow on things but it's still in the "Acceptable" range. Though it stays on my "To improve" Todo-List.

This has nothing to do with the TileRenderer itself, but the manager that transfers changes to the TileRenderer. On Reasonable view distance the Performance is good/okish.

Overall Progress:

After that most of the 4 weeks have been over already and my Todo-List looks a lot better.

I added a couple more Overlays for myself to see some internal data and also Chunk Alignment. 

This is not final and can be toggled as needed though I am not sure if it will be in the final game.

But this basically finishes the 0.1 Version I wanted to achieve.
Now that this is done I am going to plan what has to be done for the 0.2 Version.
I already have a couple entries for that but I need to think of some things first before I am starting.

Anyways sorry that this post took a bit long to come (It was late as you were able to see)
But the extra waiting time payed of because now a lot more is done.

Anyways, Thanks for reading.
I am reporting again once more progress is done.
We will see what stuff I come up next again.

4 Steps forward. (Tiles are back)

More Creators