a chaotic roguelike for the 2025 brackeys game jam
christian Games
Check their projects out: The NameLess Hero - A Platform game :), Space Information, Anime Quiz
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
Project has now been submitted to the gamejam! Its 3 am and i am realllyy tired. Gamejam ends in 8 hours. Since the last devlogs ive just been setting up the itch page with the description and images and logos and all that. I also had to whack down some bugs i found and also make F key open inventory, rather than exclusively using Escape, because on web builds, pressing esc will leave fullscreen. This is the type of thing you dont think about until last minute.
I'm not really that satisfied with this project, i feel like i shouldve kept a smaller scope, but none the less im just glad i finished the game. I might spend some more time working on the project to perfect it to the point i just didnt have the time for this week, but who knows. Right, im going to try shipping this after i publish this devlog, so wish me luck on that lol
If you want to try out the game, the demo link should work hopefully, and you dont have to download anything, it just runs in your browser. I wish the game had a bit more content and variety, oh right, and sound effects. Had planned on adding that on the last day, which i thought was tomorrow, but was today. Guess the game doesnt have sound because i had to focus on more important aspects of the game (sorry sfx nerds).
Anyways, will ship now, bye!
added win/loss states! for the first time since the start of the project the game doesnt crash on death! also added some hover tooltips when standing near items which was desperately needed, so you for instance know what item you're buying in shop, rather than just going off looks.
added a main menu! game jam is due in 10 hours!????? i thought i had one more day :sob:
currently speedrunning main menu, bug fixes, game content and this devlog
ADDED NEW WORLDS! i made the starting world that ive been using all this time instead be a forest, and have the next world be the crypt, which is full of skeletons. one of the enemies in the crypt is literally just the executioner from clash royale lol (shhh).
right now each worlds has 12 levels, when you complete all you move on to the next world, but i sort of want to rework this, since i want some more variety in the earlier game. I considered making the first world only have 5 levels or something, but a bit unsure. Just dont want people playing the game for the first and only time and only getting to play a single world with the same enemies. game design is hard :<
One bug ive got to fix is related to picking items up. basically, i want items picked up to automatically place themselves in the respective slot type, if there is any available, rather than by default ending up in inventory. This is also sort of necessary because theres a curse called less inventory, that if you get 5 stacks of, will literally remove your entire inventory. this makes it literally impossible to equip any items, since you cant for example pick up a helmet directly off the ground on to your head, it currently HAS to go through your inventory first.
other than that, i kinda just want to add some more items and maybe one more world. tomorrow is last day of gamejam though so ill have to speedrun this lmao
a simple way for you as the maker of a game to artifically increase the amount of content of the game is to add random modifiers, which ive now done with random enchantments!
the enchantments themselves are really simple, basically just an optional extra Stat
property of each item, but it still adds a lot of variety. see, imagine youre using a longsword that you really like, but then find a longsword of holiness, youre still going to want to get that new longsword. it also means pursuing the perfect loadout will be harder as theres more rare stuff to get.
i also mutated items damage as rounds progress to make items found later have higher base damage to compensate for the harder levels. dont want this to get too OP though, just an underlaying layer of progression. i also fixed some ui problems, in that previously the ui wasnt allowed to fill out the entire screen, and existed only in the center area. now ive made it fill the entire screen, which really helps because now the curses ui wont cover up potential enemies.
will work on more worlds and enemies i think, prob also more curses.
:>
I added a new item type , talismans! I want them to let you sort of specialize your build, by offering somewhat more complex mechanics, like the fire neclace you see in the video, that has the effect that whenever you deal fire damage, it also causes one of those extra burning fires to spawn on the enemy, sort of making the fire spread. Then later in the game, i also want to add item enchantments which could for instance make your sword deal fire damage, and then these items could synergize really well. Eh you get the point. I also just improved the way projectiles work a bit, one problem i had earlier was that projectiles traveling too fast would just pass through enemies, but now i force projectiles going over 6.0pixels/frame to calculate their hit detection in smaller steps (still moving same speed total though). I also gave projectiles unique radiuses, so that larger projectiles have larger collisions than say a small arrow.
Most fun devlog yet!!! I was unsure what direction to take the game but I had an idea, a chaos demon shop. The way you get items is by buying items from this shop that appears after every room. When you buy an item, you also get a chaos curse. These are intended to be really random, so they might not even be a curse, but rather a blessing of sorts. My idea is that you'll maybe see an item you really want that would make a cool build or something, and you'll be forced to make a deal with this demon, a sort of gamble, as the consequences could be detrimental. The theme of the GameJam is Risk it for the biscuit, which i think fits pretty well on this, as you're taking a risk to get a reward you really want. I previously had another idea for how to incorporate the theme in to the game, but i much prefer this. I also really like the chaos demon shopkeeper, its cute.
I added 9 curses so far, of which 4 are positives. Some examples are enemy shields, acid puddles, bonus enemies and repair armor. All curses also stack, so for example, each enemy shields curse you get, it will give all subsequent enemies 5 extra shield HP.
Now, I just gotta add a bunch more chaotic curses and cool items. Also I still want to add more worlds, but i'll make them linear, unlike my previous idea of having the player able to move on to next world whenever. Byea :>
New items ! I had already drawn most of these textures a while back so most of them i didnt even have to draw and could just add the code and stats for. I did have to also add some new mechanics surrounding projectile on-hit effects, to make the star bazooka (see image), cause an explosion on impact. Still not perfect, but it looks cool none the less. Not the most interesting devlog but at least i have some items to test with rather than just like 4 :>
Honestly, will either just work on adding more items next, or adding the other worlds. Probably the latter, just to switch things up. bye!
Added some item hover information so you can see item's statistics and name. It looks pretty basic right now but it still took some time to implement. for one, I wanted different keywords to be color coded, and for this i ended up implementing something a bit similar to ANSI escape codes. If you dont know, ansi escape codes are special magic sequences of bytes, that when printed to a terminal, change something about the terminal state, most often use to color text in terminal apps.
I added something like this, but just with the bytes for \x00, \x01, \x02, ..., \x06. Each byte's value is an index to a color lookup table. Then I use GL shaders to recolor whats drawn next to be the color specified. i wrote this shader some devlogs ago when i added enemy hit effects, when i used it to make them flash white. Now i added an argument for what color to change to.
Guess I'll finally work on adding actual content (items) to the game.
[SEE VIDEO]
i added ITEM PODIUMS which means the game technically has some sort of progression as you now get rewards at the end of each round! I think the animation looks satisfying as they emerge from the ground.
theres only like 5 items in the game total though, but now the system is sort of in place! though i havent made any sort of specialized RNG, its currently a perfectly even chance to get each item, which is not how i intend for it to work later on. Items should also have their stats mutated by some factors, such as which room you are on, the further you get, the better the rewards basically. Will work on finally adding items next!!!!!!!
would you look at that!!! ive added a really solid system for enemy behaviours, allowing them multiple phases, each giving them different behaviour and/or appearance. Each phase also has an End Condition, which could be something like end after 30 frames, or end immediately, or end on collision with wall, which is the glue that allows these phases to be chained together.
YOu can see in the video attached this enemy, that does a sort of charge towards the player every few seconds.
The enemy technically has three phases, first, stand still for 60 frames, then, for one frame, chase towards the player, then, until collision with wall, just keep running in the same direction. The reason for that single frame chase towards the player is just so its angled towards the player.
I think this sytem will allow for both cool late-game enemies, with complex behaviours, but also just some slightly more interesting early-game enemies, like idk a slime that moves like a wormm, or enemies that run away from you, then shoot a projectile, then run towards you, etc. Pretty simple a system, but it allows for complex enemies, which is what kinds of systems i love!!!
i finally decorated the arena youve been playing on this whole time! its not much, but it feels a lot more polished. I also added that door which opens when you finish arrow, allowing you to progress, and when you pass through, theres a sick lil transition :)
Again, not much, but helps the game feel polished. thoughh...... i still havent added any way to get items, or any items for that matter, or the different worlds this game is about, or any other sort of progression, so i still have a bit to work on. Remember, this is for a Game Jam that ends in like 3 days. i dont actually know if i'll make it, but a fun project none the less :>
But yeah, i should defo work on post round rewards, and the different worlds (i think ill make just like 3 or so)
Made game properly scale for any resolution! The last game I made had a fixed aspect ratio of 4:3, but thats honestly quite annoying if you want to play in fullscreen, and you dont have a 4:3 monitor (which you very likely dont). For this game I figured I could just pad the sides to make it fit any resolution. Currently its just black, as you can see, but i plan on making it have some sort of wall-tile background. I also made the game taller, so the actual content is now not 16:9, but rather something 50% taller. I think this will be good as the game felt very cramped on previous versions. I also added enemy-to-enemy collision (if you can call it that), basically, in their movement, i check if theyre really close to any other enemy, if so, move away from the other enemy. It really looks like theyre colliding though, as it will rapidly switch from moving away to moving towards where it was going, making it appear to get stuck behind something. I thought this was necessary because previously, all enemies who were chasing the player would inevitably congregate in to a single pile, which looked odd.
Devlog 8! i've implemented item stats, some UI and an inventory system. I want interesting items like the ones in Tiny Rogues (like this project is very influenced by), where most item's will affect the player's stats in some way. A lot of these stats can be quite complex, like making all modifiers to your movement speed also apply to your attack speed. I dont think I'm going to add something like this directly, but complex modifiers like this is something I definitely want, so a lot of time was spent on setting up this stat system. Something I learnt from my last game is to write down a list of mechanics that I want to achieve, and from there build out to figure out how complex the system needs to be.
the inventory is pretty simple, you have some free slots, and some slots for active equipment. You can also drop items by dragging them outside the inventory area.
Will work on making a proper gameloop, instead of having levels just infinitely spawn until you die.
Added levels of some kind! I created a variety of layouts/formations for enemies to spawn in, which will be filled with enemies from your current world. The formations get progressively harder and harder as you progress rooms on the current world, and I intend to try to make it scale exponentially, as you're also supposed to get better and better gear. But when you progress to the next world, theres new, stronger enemies, but the formations return to basics, and once more progress as you complete rooms on the current world.
I added a hit effect to enemies, to make it more obvious when you hit, and because its kind of satisfying. Macroquad supports gl shaders, which is what I used to make the effect, basically, on hit, change the draw Material to use a shader that replaces each non-transparent pixel with #ffffff (a.k.a white).
The trickest part was getting transparency to work, for some reason, by default, these shaders dont support transparency. I did eventually see the keyword Pipeline in the macroquad docs (macroquad is the gfx library i use), which sounded relevant to how things are drawn, and I managed to configure it to use transparency.
Added enemy & player health, as well as gave the enemies health bars! I decided to go for the route Tiny Rogues- a cool roguelike - uses, where the player has a fixed set of hearts, but the enemies have a floating point health bar. This way your weapons and gear can scale nicely, while still always having the risk of a single stray bullet taking one of your precious lives, which I also think fits the vibe of the game where risk is central.
Will possibly add some UI for player lives, otherwise I'll focus on more core mechanics and adding items and perhaps a level to play on!
So Summer of Making's Media was down for the last two devlogs, which is why you (at least right now) can't see the attachments. So the gif here is meant to show what was basically done in those devlogs. Ive started adding enemies and items, and a player. I also added the ability to perform combat rolls as you can see.
I started adding projectiles and particles too, but haven't got very far. Will work on player health and enemies next :)
Working on items and enemies! Different enemies will have different behaviours, the one in the video is simply set to wander, but ive also implemented chase and still. I think enemy variety has to be good for this game to be fun. I also added visual armor and held items, as you can see the character is wearing a little chestplate and is holding a sword. The reason why i made the item float like that in front of the player is just to make it clear where you're aiming. If it looks weird I might remove it later, IDK.
Set up basic player infrastructure! I've created the player struct with properties for armor and equipment. Something cool about loading textures directly from an asesprite (pixel art tool) project file is that I can for instance have only the second layer be the one used in-game, while the first layer is just reference or template that I dont want actually shown in-game. Will work on enemies and player items next!!
FIRST DEVLOG! This game is going to be my submission for the 2025 brackeys game jam! I've set up the project with my favorite graphics/game library for rust, called Macroquad
. Something I learnt from the last game like this I made, is that using asesprite (a pixel art drawing app) with PNG files suck, because they lose so much formatting every time you close the app, so I decided to see if I could have my assets loaded directly from .ase
files, and turns out, there is a rust library for that! So I've set that up, which will make my life 1000 times easier!
The game is going to be a roguelike, and since the theme is risk it for the biscuit, I want the game to be split in to worlds. Each worlds has levels, each getting exponentiall harder, but you can stop any time, and move on to the next round, however, if you do, you'll miss out on the exponentially growing rewards for each level. I think this would be cool, but this early on in the project, my idea will probably change a LOT, so if you're reading this devlog in the future when the project is something totally different uh... thats unfortunate. Anyways, wish me luck!