Nordic Game Jam starts tomorrow! I really want to be able to show bits of ESA 2 and Snake Game there, so I spent today’s stream polishing some tiny bits of both. Thursday will be mostly quiet so I hope that I’ll be able to pull off some more polish in preparation for the actual event.
In ESA 2 I finally updated the double jump effect as well as the hookshot’s graphical look. Not 100% sure about the latter because of how “lasery” it looks, it almost feels as if this new hookshot should be able to be used offensively. Nevertheless, it’s an improvement. I’ll try to add some polish to certain early-game areas as well so that I could show off the beginning of the game without feeling that it’s way too work-in-progress.
In Snake Game I worked a bit on a cutscene/hub area that’ll be used for accessing the various encounters in the game. I needed to implement a ladder for said area, and to be honest the code for it is fairly hacky, but hopefully that won’t become a problem later on. I’ll try to get this area polished further before NGJ so that the player can somewhat seamlessly move from the main menu to the first encounter while learning controls on the way.
Hahah, I didn’t realize that the 50th progress post would be now! Oh well. Today’s stream was shorter than usual due to other things, but I feel that I managed to work on ESA 2 fairly nicely – A new enemy and a new room were added! I wasn’t intending to add a gif this week, but I guess I ought to celebrate this milestone somehow so there we go. I’ll try to have an extra stream later this week.
So! I spent some more time working on my image generator algorithm based on/inspired by the Wave Function Collapse algorithm.
Here’s what I ended up with the last version of my first generator:
At that point it was really really slow even with very small input pics (you’ll notice that the output image is smaller to help; the gifs don’t represent the actual generation speeds!)
I decided to re-do the whole thing, this time trying to implement as much as possible in lua. In the end I got it working much, much faster:
I implemented some more things after taking that gif, but sadly didn’t make any new compilation gifs. I think this next one is done with a later version (tried to make an input that’d generate roguelike-like areas). Fairly sure I kept improving the algorithm after that, too!
Finally, I made some simple roguelike-like map generation using the final iteration of the algorithm! First with a more basic “tunnels, walls (and water for some reason)” pattern:
…And then with a more complicated pattern:
All in all I’m really happy with how this thing turned out, even though it’s not really a match for the WFC algorithm. I think this could be useful when generating levels, although I think it’d have to be comboed with multiple input images to really work. Maybe first an input image that defines various ‘areas’, then separate inputs for all those area types? I’d like to release the source of this but I think I’ll have to ask ExUtumno who made the WFC algorithm first, since my algorithm is very heavily inspired by it.
Today’s stream saw the return of an old friend, made in the very beginning of the game but taken out due to changes in plans. I’ll have to tweak said entity to make it fit its new home, but I think things’ll be fine. Also spent time on making slime feel more slimy and adjusting the area currently in the works, as seen above! Next week we’ll get into some even more slimy areas, though!
(Aaghh this game has been in development for 2 years soon)
(Also toyed around with the procedural generation algorithm! It’s been a fun little sideproject and I’ll try to utilize the results in a roguelike or something (inspiration from Caves of Qud, which successfully uses the actual WFC algorithm for dungeon generation, as far as I know. I think my homebrew algorithm could manage something similar, even if not equally consistently!)
After seeing the developer of Caves of Qud utilize the Wave-function collapse generation algorithm successfully for generating roguelike environments, I felt like it’d be fun to try to implement something akin to that in Multimedia Fusion 2. The original algorithm (You can find it here!) was written in C# and after trying to parse the code for a while I gave up and thought up how to approach the algorithm based on the general description of it on the git repository. The result isn’t nearly as nice and tidy, but it was fun to dabble with and it just might be useful for something if I can get it optimized a bit.
After some tweaks:
As you can see, the algorithm suffers from slight misalignments here and there, making the results less neat, as well as small holes that are technically ‘handled’ by the algorithm but for one reason or another don’t get assigned anything. The generation is also very slow, something that can’t be seen in the gifs.
Anyway!! Ludum Dare #37 results arrived! Sadly, Salvage Star didn’t fare very well – it got in the top50 in the Graphics category, but that’s it. Very much understandable since the game ended up being really hard and frustrating + I guess people have kind of seen the ‘singular huge enemy you climb’ -thing already at this point. Still, I of course kinda wish it had fared better! Maybe next time. At least the game gave me some good data on how to get moving platforms to play nice.
Today I started of kinda slow due to not feeling too well; however, the pace kinda picked up over time and I ended up implementing some nice little things. Among these were 1 new room, adjusting several others, fixing many bugs, scrapping an old powerup and implementing another, decorating some areas and discussing about certain design things with the chat. The reaper enemies shown here were made earlier, though.
There are multiple large things looming in the future that I’ll have to re-implement; this’ll be fairly annoying but the results will hopefully be worth it! Biggest of these is reverting the collision code back to what it originally was – I already re-implemented it once to allow for better moving platforms, but now that my knowledge of lua is better I can return to the old, simpler system and handle the moving platforms via lua code. As a result, several other things will become easier to implement while the moving platforms will hopefully end up being way less buggy!
So, Ludum Dare #37 came and went; the theme, One room, didn’t inspire me much and at first I didn’t think I’d finish anything this time around; however, eventually I just decided to ignore the theme altogether and make an idea that came to my mind after reading about the release of The Last Guardian and discussion about the upcoming The Legend of Zelda: Breath of the Wild. I streamed the whole development process, which was pretty interesting! The result isn’t quite as polished as I’d have hoped, but it gave me new opportunities to add to my knowledge on how to implement moving platforms, and I feel I learned some stuff that could come in handy with, say, the Snake Game. Unfortunately this also means that I’d kinda like to continue this project!!
Anyway! The game’s very difficult but hopefully feels interesting nonetheless! I didn’t have time to add proper sounds and, since I don’t want to be a jerk anymore, left the entry like that.
A fairly productive stream, yay! I added two new rooms, an important mechanic for the ruins area, two new traps (or one trap and one map feature that behaves similarly), and a new enemy. Also some decorative tiles, woo!! I’ll have to up my room design game a bit soon because I’ve been working on the ruins area for several weeks now; the good thing is, though, that I think I’m really starting to get a good feel to the area! The next area to work on will be very very different and located kind of awkwardly, so I’ll have to do some plans regarding that before tackling it.
I was informed by ZenSoturi in the stream chat about the upcoming Ludum Dare! Despite my earlier regrets, I feel like it might be fun to join this time around. However, whether I’ll actually join or not remains to be seen.
Today I worked a bit on the ruins area. I’ve got to admit that there’s currently such a huge amount of little glitches, bugs etc along with unfinished content that it’s starting to tax on my motivation. I guess I should take a couple days just fixing all the bugs I currently have on my todo list along with polishing stuff I’m not content with; however, that doesn’t sound very motivating in itself so we’ll see what happens.
Anyway, a new enemy got added along with a new room! Also some bugs were fixed and certain earlier areas got a bit more polish. The chat was fairly active and that was great! :)