Rumors has it that a particular being is currently roaming about, targeting only those whom it deems a threat. Careful now, as reaching a certain number of points might leave you within its sights.
Happy jaunting!
Changelog: (Careful, spoilers! dont check if you wanna keep it a surprise)
- Added backgrounds
- Added a new boss: Bounty Hunter
- You’ll catch the Bounty Hunter’s attention upon reaching 1000 points, at which points enemies stop spawning. Once you rid the entire arena of enemies, the boss will spawn.
I got back to coding somewhere around last week, so here’s a progress check.
Getting back after a long break means I have to refresh my memory of the code, and massively rework on the code to apply new things I’ve learned during the break. So yeah, so far my work has been back-end stuff.
Standardized AI system
Before, every enemy has an AI file which dictates its behavior. However, there’s no real structure to it - i just mishmashed their actions and movements and everything else together. So I fixed that.
Now, each AI has several different batches of code:
DoInitialize(), for initializing the enemy
DoMovement(), for, well, movement
DoAction(), this would handle ‘actions’, e.g. shooters shooting
DoDeath(), which handles anything that happens on death.
It might not sound like it’s important (whatever works, right? who cares if it’s a mess), and it might be true for now, but it is essential for long-term. For example, let’s say I’m going to implement a paralyze effect, which stops enemies movements but not their actions (e.g. they can still attack, shoot, etc).
Before, I’ll have to update every single AI to tell them how they’ll behave when paralyzed. Having a standardized system, on the other hand, means I can simply disable DoMovement() when paralyzed and it will apply what i want to every enemy.
Entity manager
While the above update is more on the coding side with little effect to the game itself, this one tackles a very real, important issue: Performance.
Here’s how the system used to work: When an enemy spawns, I create the object. When it dies, I delete the object. Problem: This is slow. Creating/Destroying can be expensive since there needs to be some memory handling running in the background. Enemies alone might still be manageable since their numbers normally wont exceed hundreds, but if there are lots of objects i’m creating/deleting (e.g. bullet sprays), it will really harm performance.
Solution? Well, don’t create/delete. Here’s the thing: Creating/deleting objects is expensive. Moving the objects and activating/deactivating them is cheap. That’s what my Entity Manager does!
Instead of deleting something when they die, they get sent to the shadow realm somewhere off-camera, and is deactivated. When i need to create an object, I check the shadow realm first. If there’s a deactivated version of it there, i just reset it, move it where i need it and put it back in action. I only create when i need, and barely delete unless i have a population problem. It should help improve performance, and is more or less essential if I want to have lots of things going on in the screen later on.
Background
Well, this one is pretty straightforward, and yet is probably the most impactful to the game. I’ve added a background. No more playing on solid black, yay!
That’s all for now. I’ll release a new version soon, right after i’ve added one more lil’ thing. Stay tuned!
Jaunt v0.30 Alpha is released! - (Click here to download)
This update’s mostly about the UI - fixes, and most importantly, a main menu!(Pardon the weird title image ahah, Im still not sure where i was going with it)
Changelog:
Added Main Menu and screen transitions
You can now properly exit the game
GUI Fixes - Healthbars and score should now work regardless of resolution (16:9 ratio, e.g. 1280x720, is still the recommended resolution though)
Bomber explosions are sped up to make it more difficult to dodge
With the main menu done, it’s now officially a game! now I can promote it everywhere else and stuff - Enjoy!
Download link
Sprites update, polished tutorial, and new enemy added - Bomber!
Bombers function as landmines, exploding upon player’s approach or on death, effectively making them fearsome navigational hazards.
They die in one hit (or selfdestructs on approach), and awards 40 points.
As always, feedback is forever appreciated! Enjoy!
It’s hereeee
Nothing much in terms of new stuff tbh, scraped this together at the last minute to make it to the showcase. Lil balance fixes/design tweaks, but most importantly there’s now a tutorial at the beginning to help new players.
Yes the quit button has been turned into makeshift repeat tutorial button do use alt+F4 for quitting ahahah
Get it here! (dropbox link till i gather enough motivation to move to an actual hosting site).
Extract and run the .exe, windows only.
WASD to move
Mouse aim and left click to perform a jaunt
Right click after jaunt to perform a backjaunt
Esc to pause/exit
Super incomplete and balance/pacing is all over the pace… which is exactly why i published it. I’m probably going to have to showcase this in a school event REALLY soon, so quick feedback would be appreciated!