Having a go at voxel physics. Hope to extend eventually in 3d once worked out 2d.
Having a go at voxel physics. Hope to extend eventually in 3d once worked out 2d.
Updated the renderer to be a culling mesher instead of drawing each block every frame. Also I changed the hash function for the chunks to use murmur32 instead of crc32. You can see the stats for the chunk hash map on the screen, doing this I found out that the crc32 hash wasn't distributing the hash uniformly. I also implemented frustum culling of the world so only chunks that are in the camera frustum are actually generated.
I'm only at a render distance of 10 chunks so I think I still need to improve the performance if I want to reach something like 32 chunk render distance. I think that'll be changing the mesher to a greedy mesher, and speeding up the meshing code.
At the end of the video you can see where the world hasn't generated yet
Now animating Minecraft models exported from Blockbench. Only had to change my skeletal animation code a little to accommodate the way Minecraft animates it's models.
Progress on my minecraft clone. Finally got it to render at a useable frame rate. But need to optimise more.
Added drop blocks that get out of the way of other blocks. The red flashes is when the pickup blocks is inside a block.
You can read a little blog post here about it
https://olster1.github.io/minecraft_drop_blocks.html
Starting on a top down game again. There's a game convention next year so I'm using that as something to work towards. Thought I'd show things as I go. Here I've got the json save/load level working using tinyfiledialogs library for opening the save/open dialog window. Thought this would be a bit more user friendly than using a in-game console. It saves to a mock-json format for each entity and tile in the world. The file I saved looks something like this { id: "1725057927-2019344589-292950135" idHash: -2140098387 type: "ENTITY_PLAYER" pos: 0.000000 -0.014167 10.000000 } { type: "ENTITY_TILE_MAP" tileType: "TILE_SET_SWAMP" pos: -1.000000 4.000000 0.000000 tileMapId: 4 1 }
. Chose this format instead of binary format while making the game so would be alot less hassle when new fields are added to the entities.
Added ambient occlusion to minecraft clone.
I think there could still be a bug there. And maybe need to interpolate across the quad not just the triangle.
Started making flappy bird, uses samurai7 d3d11 tutorial https://github.com/Olster1/flappy_bird_clone
Added search buffer to my text editor - using Boyer Moore algorithm to search
Had a go at redrawing the character walk animations and sword swing. Still a bit to work on 😆 but happy with the progress
Been on a tangent of web programming. Trying to emulate React components using meta programming. You write the component in regular html, then run the meta program that turns it into javascript 'Create element' calls. Then when I create them on the website I use the meta generated function. The goal is seeing if you can have a front end framework experience with just using plain javascript.
Saving user progress now, the example in the video is the door and chest are still open when I come back to the level. It uses the same thing to load progress when you close the program aswell.
For the collision of the level instead of having collision boxes enclosing the level, I went for the opposite where you map out the valid squares you can walk on to avoid any werid collision bugs.
Added the ability to tile walls. Still need to find the best way to show the room when you go behind one.
Got shadow mapping working for the directional lights 🌞. Might hold out on point light shadows for a bit 😅
Added more dialog options. Using Ryan's devlog video as inspiration, the string used for this looks like "{s: 1}Welcome to Illoway. Town of exceptional beauty. {s: 2.0}This is a faster sentence. {s: 0.5 c: 1 0 0 1}This is red and slow. "
Added path finding for the enemies. Yellow squares are the path it can see the player on.
Experimenting with normal maps (only on the cobble stone). Not sure if I'll keep it yet. I used a program called 'Laigter' which is free on itch.io. It worked pretty well.
Added an image picker to my gui code. Going to use it to select tiles for the map.
Update on my game. The hero enjoys long walks on the beach, relaxing in his house and strolls at night.
Added a new inventory. Copied off a new game 😅 but is a good starting point.
Added rendering of text in world space. I had been putting it off doing it thinking it would take ages thinking I had to modify the existing draw text function. But just made a new function and was finished in about 10mins 😀
Werewolfs in the forest Ah!
Sorry for the quality need to find a better way of making the videos.
Changed my 2d side scroller to a top down 2.5 game. Added a blend map for the floor as well.
Added while loops. Not sure how to handle infinite loops for the user though. https://youtu.be/c4T-OxchO9s
Added if's to the program. Doesn't support && or || yet. Called them 'when', not sure if thats a good idea. https://youtu.be/ZqYY1xVf10M
Also on the visual programming train 😛 https://youtu.be/pIZ-3y_8Acw
This is a game I've been working on for the last few months. The idea is an infinite runner type game where you've got to keep moving, kind of like the boulder levels in Crash Bandicoot. I wanted to take that & see if you could add other game elements to it like what it some levels are puzzles, obstacles, enemies & so on.
Right now there's a bunch of predefined 'rooms' that I create, then I tag it with some predefined tags. Then each level knits these together based on what it is about. So if it's about collecting crystals, it will ask for rooms just tagged with crystals.
Right now the levels aren't very good, have just done the rough first pass on it but thought I'd share what I've got. If you've got any ideas for it, like the sound of it or have any comments please let me know :).
https://www.youtube.com/watch?v=UKiuvnSzYr0
This is a level with more stuff in it: https://www.youtube.com/watch?v=x2EZwgTcxLk
Have been working on the profiler for the game. Still need to do alot more though, but it useful already seeing what's using up the time. First time doing a scroll handle that resizes, which was fun.
Had a couple of months off but am back working on my engine. You can drag around entities now. https://www.youtube.com/watch?v=FNT6c27xCyA&feature=youtu.be
Finished my color picker! https://youtu.be/OCDJFPDyRs4
Inspired by DearIMGUI & @ryanfleury the melodist editor, i just push stuff on in the frame & use LINE& FILE as an id to store state, so the frontend doesn't have to predeclare anything. https://www.youtube.com/watch?v=pH3cZx1Acw4&feature=youtu.be
Drawing bounding boxes around models. Going to use this for raycasting to pick entities & going to try make a simple collision detection with it. Right now this is super slow for drawing around every model (I'm just drawing 12 cubes per model), any thoughts on a better way for just a debug system would be very handy. https://youtu.be/YaPeGW7kfmQ
https://youtu.be/NE2meuutd1A Implemented the procedual clouds from @Chen blog post (https://monter.handmade.network/blogs/p/3309-engine_work__procedural_volumetric_cloud_rendering). First time doing ray tracing type stuff, so feeling like I'm understanding stuff more 🙂
Handled e notation & more than four vertexes on a face in the obj loader. Also loaded some more models.