Releases: wolkenwelten/wolkenwelten-rs
0.1.2
Good morning,
for this release I ended up mostly fixing minor issues that bothered me, mainly the mob AI/physics which should now be somewhat stable and also prove quite challenging. Also started work on a new world generation procedure, which while not that great should at least set the tone somewhat for subsequent iterations. I'm also adding official ARM64 GNU/Linux binaries, these should work on Raspberry Pi 4(00) systems running the 64-bit Raspberry PI OS Distribution, other SBCs might run these as well, but they are untested. ARMv7 is currently unsupported, though you might get it to compile.
Next release will probably be a bit late due to the holidays, but apart from that world generation/items are on the top of my queue for next weeks release.
Hope you enjoy this release,
Ben
Changelog (summary)
-
Change: New worldgen - more island themed but still very much WIP
-
Change: Removed grenade shooting on E
-
Change: Much improved mob physics/behaviour
-
New: ARM64 / Raspberry Pi 4(00) releases
-
New: Permadeath screen with score
-
Minor: Much better distance fade
-
Minor: Made digging more time consuming
-
Minor: Added missing player hurt sfx
-
Minor: Player now starts without XP
-
Minor: Better crab attack animation
-
Minor: Mobs get properly distance faded now
-
Minor: Crabs float less and don't attack when player is in no-clip
0.1.1
Good evening,
this time I focussed mostly on gameplay related issus, mainly making the crabs defend themselves as well as allowing players to gain experience and level up. Apart from that there is now water in the game, this is mainly in preparation for some coming worldgen changes which will probably land in the next version. Apart from that also fixed a couple of minor bugs/issues.
Hope you have fun with this release,
Ben
Changelog (summary)
- Fix: Mobs spawning multiple times
- Fix: Players can't hit mobs and mine simultaneously anymore
- New: Crabs now defend themselves, and chase the player when coming too close
- New: Water, including (simple) flow as well as swimming/diving (no drowning for now)
- New: Experience / Levels, gain xp by killing mobs, level ups increase max health
- Change: Removed starting items
- Minor: Made crabs slightly rarer
- Minor: Crabs now jump the player
- Minor: Added new sand block
- Minor: Nicer particle effect when hitting a mob
- Minor: Some UI improvements
- Minor: Some new SFX as well as removal of the jumping sound
0.1.0
Good afternoon,
pretty excited about this one, since with this release all the foundational systems are present in some way!
This then marks the beginning of the 0.2 development cycle where I'll focus mostly on building up a simple Hack'n'Slay Rogue-lite.
Regarding this release: most work went into the overall architecture, to make the game easily extendable/more modular. One could for example simply replace the way the sky is rendered via some third-party crate, without the core game needing to be changed in any way. Apart from that one of the bigger additions was the firt Mob, which you can already interact with (although they won't hit back... for now).
See you next week,
Ben
Changelog (summary)
- Fix: Fixed missing blockfaces in dense chunks
- Add: We have crabs, which can wander/take hits/die and drop items
- Minor: Switched from deno_core to v8, greatly decreasing executable size
- Minor: UI improvements
- Minor: Better explosions that repulse entities/damage mobs
- Minor: Somewhat nicer hand
- Minor: Windows builds now have icons/metadata and updates/refactor
Fixes
Fixed missing blockfaces in dense chunks
Because chunks are now 32^3 instead of 16^3 we ran into issues with using 16-bit indices in very dense chunks. Switching to 32-bit indices fixed that issue and so far performance doesn't seem to have been impacted at all.
New stuff
We have crabs, which can wander/take hits/die and drop items
Their physics are still quite janky, and their behaviour is pretty boring it is a first step. Also experimented with animation here and went for the simple route of just having multiple voxel meshes, one for each frame, which I think looks kinda nice, and most importantly was quite simple to create.
Minor changes
Switched from deno_core to v8, greatly decreasing executable size
While this decreases executable size, this should also increase performance (though I didn't measure), since we can interact more directly with the underlying V8 runtime, and not have to go through that.
UI improvements
Cleaned up a lot of little issue, hope you like it
Better explosions that repulse entities/damage mobs
Explosions now throw ItemDrops/Mobs around and damage them, additionally there is a small chance that a block that has been removed by an explosion will be mined, so you get a couple of items that way.
Somewhat nicer hand
Didn't like the old one at all, although this one isn't much better, expect another version next week :)
Windows builds now have icons/metadata and updates/refactor
Not much to add here
v0.0.4
Good evening,
this weeks release should somewhat snappier, apart from that a lot has happened regarding items/mining and it's starting to resemble an actual game :)
Next week will mostly be spent on actually integrating v8 and experimenting with the scripting layer.
Hope you have fun with this one,
Ben
Changelog (summary)
- Add: Sound effects should now be spatial
- Add: Entities now have (simple) shadows
- Add: Simple inventory / hotbar
- Add: Items can now be dropped/collected, mainly blocks for now
- Add: Blocks can now be mined
- Change: The currently held item is now rendered, including a hit animation
- Change: Optimized the mesh generation
- Minor: Added a step sound
- Minor: Added a new spruce tree
New stuff
Sound effects should now be spatial
At least distance attenuation seems to work, kinda tricky to test the other parts since right now pretty much every sound gets emitted due to the player doing something, like mining, the block right in front of them. So it may need some more fine-tuning down the line.
Entities now have (simple) shadows
Just a simple port of the effect from the C version, makes ItemDrops look less of and not a particularly complicated effect to implement.
Simple inventory / hotbar
The game now has a simple inventory system, with everything just displayed in the hotbar directly.
Items can now be dropped/collected, mainly blocks for now
To drop a block you can press q
, apart from that there shouldn't be anything too suprising here.
Blocks can now be mined
Now they don't just disappear immediatly, instead you actually mine them, with each block taking a different time to mine.
Game(play) changes
The currently held item is now rendered, including a hit animation
So instead of the grenade always being rendered, the held item is shown, or a very ugly approximation of a hand/fist if no block
is selected. This also introduced a very simple animation system, which right now is only used to display a hit animation for characters.
Optimized the mesh generation
Nothing too fancy, just made sure that we don't do too much duplicate work.
Minor changes
Added step sound
Now you can hear you character walking about
Added a new spruce tree
Really like how this one turned out, especially the roots interact very nicely with the way they are placed during worldgen.
v0.0.3
Hello again,
got around to doing another release, highlights of this version are probably the improved world generation and lighting model. Next week will be spent focusing on performance, since everything has become quite slow.
Hope you enjoy this one,
Ben
Changelog (summary)
- Fix: Lighting artifacts across chunks!
- Fix: Removed superfluous block faces between chunks
- Fix: Proper chunk distance fade-in
- Fix: Fixed bleed through of other windows on ChromeOS
- Fix: Improved chunk fade in
- Fix: Better texture filtering
- New: Moved to static .vox assets for worldgen
- Game: Bigger grenade explosions
- Game: Improved character collision detection
Bugfixes
Lighting artifacts across chunks!
Now light propagates across chunk boundaries, this removes
the very obvious bright grid that could be seen in older versions. It does have a considerable performance impact though, hopefully I can mitigate that by focusing on optimization during this week.
Removed superfluous block faces between chunks
Hidden surfaces are now removed even across chunk boundaries, this improves rendering performacne quite a bit, but at the cost of more expensive mesh generation.
Proper chunk distance fade-in
Minor tweak, fixed an issue where chunks just suddenly popped in without a smooth fade-in transition.
Fixed bleed through of other windows on ChromeOS
Seems that somehow on ChromeOS/Crostini all windows are transparent and because of unexpected defaults in glium this resulted in this issue where one could see hidden windows instead of chunks fading in.
Better texture filtering
Before this commit block faces would use nearest-neighbor interpolation, even when minifying, which resulted in a very grainy/noisy look. Now we minify with linear interpolation giving a much smoother look into the distance.
New stuff
Use .vox assets during worldgen
I've removed all the old tree/shrub/rock code and instead we are now just placing static .vox assets. This looks far
better than I anticipated and creating the models only takes minutes. This is also a very neat way of allowing the worldgeneration to be extended in the future, since mods could just register new trees/shrubs/whatever, and modeling objects in Goxel is so much easier than writing code.
Game(play) changes
Bigger grenade explosions
Not much to write about, grenades produce a bigger boom for testing purposes.
Improved character collision detection
Only added some more workarounds, will have to rewrite this whole subsystem properly in the future, but for now it seems to work somewhat reliably when going on and about.
WolkenWelten - 0.0.2
Hello there,
I'm now trying to do weekly releases, this time even with a changelog. Apart from the changes listed below quite a bit improved internally as I'm learning more about Rust and find better ways to structure the codebase.
I hope you enjoy this release, and please open an issue in the (likely) case that you stumble upon a bug.
Bugfixes
No more color distortion in particle effects
Block breaking or placement particle effects use the 2 colors
stored for each blocktype and use this color with a random offset to generate the final particle color. Since we were just randomly offsetting the RGB values we would get a color/hue drift, which was especially apparent with stones. Now we preserve the hue and only change the saturation/lightness value when calculating the particle color.
Fixed graphical glitches on MacOS/RPI4
These were caused by us drawing more vertices than were in a buffer, which led to visual artifacts on MacOS/RPI4
Fixed panic on RPI4 / GLES devices
This is still a workaround until it has been fixed properly in glium directly, the problem is that right now glium may set GL_VERTEX_PROGRAM_POINT_SIZE
even for OpenGL ES contexts, where this enum is not available, resulting to a panic.
New features
Nicer world generation with alpine vistas
I've been experimenting with the noise
crate and am quite
content with the results so far, seems at least more appealing than the floating spheres from before.
Added a simple healthbar
The healthbar is back, which is pretty self-explanatory I assume.
Fall damage and player respawn
Collisions can now cause harm to the player, which is most likely due to falling down from high places.
Gameplay changes
Slowed the player down to a more manageable pace
With the new landscape the super high speed of the player didn't make that much sense, so I've turned it down quite a bit.
Increased players terminal velocity
Not that noticeable anymore with the new world generation, but before there was a very low terminal velocity for characters which didn't feel quite right, increased it to a more reasonable speed. This became especially apparent after adding health/fall damage.
v0.0.1
An experimental release to test the pipeline