This week has been the first week of fulltime work on Ymir, monday to friday with office hours!
Alpyro also joined me and is working fulltime on Ymir too, though we’re still working through skype.
The first days were mostly used to setup some tools to be able to work as a team, yet i’ve done more in a week than in a month and a half at the rate of last year.
However now that i’m moving away from a prototype and towards a professional standard, i have to review, cleanup and optimize lots of things.
After reworking the way UI works, I’m now mainly working on the worldmap creation and the editor, and the display of the map and regions.
This editor will be part of the game client, and will for be used to create custom worldmaps.
First I completely reworked the way the worldmap is displayed and optimized its rendering to increase the framerate.
The worldmap display is now modular. What this means is that its no longer ‘merged’ with the game itself, and it allows the editor and the game to share the same worldmap display module.
Then i created a system of what i call “chunkers”. Chunkers are objects holding a grid of “chunks”, each chunk representing a small area of the map. When a new sprite is added to a chunker, it’s automatically assigned to the correct chunk depending on where that sprite is. Chunkers then hide or display chunks depending on the camera position, meaning everything outside the field of view is unloaded.
This makes the size of a worldmap irrelevant to the framerate and the loading time, allowing to display much bigger maps that can be displayed instantly without loading times.
This new chunker system also allows me to do LODs ( levels of details ), where sprites can become hidden when the camera zooms out. This makes rendering faster and compensates for the fact that more and more tiles are visible the more you zoom out. Low spec machines will be able to reduce the quality of the map and less details, and high spec machines will be able to keep details longer even when zooming out.
When zooming out , the worldmap progressively transitions to a minimap really cheap to render, allowing for 200FPS even when fully zoomed out.
Here you can see a map i made for fun to test the editor. This map is huge compared to any worldmap used in previous tests, though it renders at a much higher framerate.
I’ve also created new debug tools and made a visual debug menu that i can use to diagnose visually the way my new features work. Here you can see the chunkers debug : each grid is a chunker managing a different LOD. each red tile is a chunk disabled, and the green ones are the ones currently displayed because they’re in the field of view.
Meanwhile, Alpyro started working on a new illustration and reworking the existing trees of the game. New ones will also be added to make each climate more specific.
A new type of cosmetic procedural vegetation will also be prototyped, containing things like animated tall grass and various bushes to add life to the environment.
WIP of a replacement for the old umbrella pine in mediterranean climates and some quick placeholders that will be used to test new vegetations.