Feature-wise, I think I need to do just two shaders: membrane and organelle, and then have all the floating things showing up. Then there’s the editor and the organelles, but the organelles after the first one is done need just a bit of config tweaking to select the right model and texture files. So I’d say more than half-way done, maybe even 60-70%. Though, now I need to work on an asset import tool for the engine as the transparent shaders take so long to import (this is a classic example of something new suddenly popping up in a programming project). But I think I have enough time to get it done before I don’t have time once again. Of course the Windows version might be a lot of trouble.
Finished doing the import tool. And surprisingly it takes just a couple seconds to run (compared to taking dozens of seconds when directly importing in the game).
I also tweaked the cloud shader to make it render before the cells (so now it is always behind them). Here’s a screenshot of that:
Membrane wiggle is back
Also I almost completely accidentally made it so that the wiggle depends on world position, so now when the cell moves it wiggles more. There is some slight weirdness with the texture swapping directions sometimes, but I’ll leave it for now.
I hit an issue with the lighting (BSF now for me doesn’t want to import any transparent shaders with lighting… hopefully this can be resolved), so for now the cell doesn’t have any lighting on it.
First look at chunks. The lighting seems to not be smooth and instead the vertex boundaries are very visible.
Also iron_01 and iron_02 models are missing… and many of the model names don’t correlate with the .blend files we have…
Turns out the non-smooth lighting was due to “mark sharp” option on all the edges of the rock models.
This is after editing the models:
The light is still a bit strong, but I’ll do the editor next before doing a final round of tweaking.
Working on the editor now. For some reason the script exposed versions of the mouse position to world coordinate translation didn’t work, so I swapped the scripts to call the C++ get target point method.
Also added style to the scroll bar (which now works with the mouse wheel):
Some work on getting organelle models showing up in the editor:
A ton of the models are either named something strange or the texture names are missing, so only just one organelle works for now.
The editor is now working (at least the organelles I could test):
But for some reason they don’t show up in the stage yet. Once I get that done, I think I’m mostly done with everything and can jump over to Windows to fix the build there.
Remade the organelle shader. This also has the lighting issue (https://discourse.bsframework.io/t/importing-transparent-shader-with-lighting-fails/482?u=hhyyrylainen) so they don’t react to light.
Video player is now done:
So I think this means that, while there are a bunch of stuff still do, it’s time to commit to svn and start thinking about merging.
There’s a ton of changes:
I already did a merge with the engine. If anyone wants to check the commit history on that, it’s here: https://github.com/hhyyrylainen/Leviathan/pull/47
I also created a pull request for thrive: https://github.com/Revolutionary-Games/Thrive/pull/790
I’m not going to merge it just yet
Great work on this, you’ve made really rapid progress
Things are getting closer to being done: https://github.com/Revolutionary-Games/Thrive/pull/790#issuecomment-514331968
Soontm it will be time do a public tech test to see if the game runs on different computers.
Getting closer to having animations on flagella again:
Those are just the changes needed to handle importing the animation data…
Code for the flagella animation is now done (hopefully). However the model and animation is a bit broken, but that is already being worked on by @Uniow. So hopefully the flagella will look good soon.
Added skybox importing and I added one to thrive. Seems it doesn’t do much for the membrane:
But in the editor it makes the grey hexes look less dull:
Speed changing of the flagella animation is back in.
Positioning of the flagella is now correct (on the membrane edge):
Opened an issue about the resizing being broken: https://github.com/GameFoundry/bsf/issues/382
I guess I should post something here as well for this week.
I did mostly non-visible stuff:
- fixed compiling bsf on windows: https://github.com/GameFoundry/bsf/pull/386
- fixed the GUI being flipped when using directx
- added formatting script running to circleci, as my jenkins is being silly with it for some reason
- found out that vulkan is broken on linux, and reported it: https://discourse.bsframework.io/t/vulkan-crash-on-linux-after-update/492
I took a few screenshots just to put here:
Here I accidentally used the vertex buffer size for rendering so only a part of the membrane showed up.
Here’s a screenshot of renderdoc showing how the membrane is now a triangle list (to support directx):
I don’t have a screenshot of the working membrane as it looks exactly the same as before.
The membrane is now rendering as a triangle list, which means that directx support is closer.
The bsf version is now ready for early testing:
I forgot to mention that the pull request is now merged. All that’s left to do is fix a bunch of stuff and hopefully find some way to squeeze more performance on intel, however that might be a bit problematic:
I’m currently working on fixing crashing on shutdown (so that I can debug the reported memory leak): https://github.com/GameFoundry/bsf/pull/391
The high memory usage was due to each organelle loading its texture (instead of there being one copy). There is now a partially working solution (I think it causes everything to be loaded exactly twice):
Fixing this properly needs a bunch of changes to the resource import process to create a manifest file. The good news is though that there was no memory leak related to bsf. However I did find one small(ish) memory leak, that is now fixed in Leviathan.
I’m also working on moving my custom hacky bsf setup, to be supported in bsf directly: https://github.com/GameFoundry/bsf/pull/391