Woops, I almost forgot the most important part: 3D layers! Once I get the character moving around, we'll be moving and building a world in 3D.
Woops, I almost forgot the most important part: 3D layers! Once I get the character moving around, we'll be moving and building a world in 3D.
Look at that beautiful auto-tiling dirt! The game now picks the right sprite automatically based on the surrounding tiles, so all I have to do is place stuff. 16 iterations was a lot of sprites considering that I'm probably just going to throw them all away, but honestly it's worth it; it looks so much nicer now. Everything places very smoothly now too, since I've implemented a simple line-fill to make sure I don't miss anything in between frames.
I'm setting aside explorations on different auto-tiling options for now and just going with the simplest one. I'll come back to it later when I can think of a better way to auto-tile in 3D. If anyone knows any novel approaches to reducing the number of sprites I need to draw for tiles to connect, let me know! My plan for now is to use logically-offset tile textures for each combination of four corners, and then just choose which one goes on top when they overlap. Until then, the next task is putting a character back in the game again. This time I'm going for something a little more humanoid; we'll see if my art skills are up to the test.
Got asked to make a quick demo of two soft-body circles colliding. Definitely room for improvement, but I got it working!
Finally: Smooth, working collision that I understand as well as I understand my rendering code.
Not sure of the name of this algorithm, but how it works is by calculating the start/end times of a collision in each axis (in frames, capped at 0-1); if those times overlap, it's a collision.
Hopefully, I can expand/replace the collision system a lot easier in the future if I ever outgrow this one.
Finally, I have enough stuff in place to give a better picture of what I'm making.
I don't have proper occlusion nor fade-out for when the foreground should be in front of an entity, but hopefully this gets across the basic idea of the game idea this engine was built for.
First step towards making my 3d 2d platformer game: basic rendering looks done enough that I can probably do something else now if I want. Not sure whether I'll focus on physics next, or if I'll expand the renderer to handle connectivity.
Probably won't be able to work on this more today, so it's time to consider this day 1 of &vireac. So far it's just parsing a copy/paste of its own assembly code from msvc into a bunch of colored circles, but all the different instructions are distinguishable, and I can scroll through them easily. Step 1 is complete.
Step 2 will be grouping them up based on the c++ code that produced them, and trying to make them visually distinct by shape rather than color.
I finally have a renderer that generates the shapes I want for terrain in one of my game prototypes, completely algorithmically, entirely within the vertex shader! It turned out to only need about 16 lines of code, not counting comments/whitespace. Maybe it took longer than it should have, but at least I can say I thoroughly understand 3d math now.