Holding Out by Jeremy Ryan

Overview
It's your two least favorite things: customer support and the zombie apocalypse. Fend off the undead horde as you grapple with ordering ammo and equipment over the phone.

About
Made in 48 hours for the Ludum Dare 53 compo. All art, music, sound effects, and programming was done in that time. I used some boilerplate code from past Ludum Dare games, including pieces of the animation system, dialog system, and camera controller.
There are eight instances of cat ears on inanimate objects. Find them all! Or don't.
Engine: Python with pygame
Art: Paint.NET
Music/SFX: Audacity, SFXR, MuseScore
Fonts: RPG System
Special Thanks
As always, games are made "from scratch" but not entirely in a vacuum. Some major inspirations for this game jam:
Enter the Gungeon: The genre-defining twin-stick shooter roguelike! I drew inspiration mechanically (with the dodge roll) and visually (goofy medium-resolution pixel characters).
Slime Crime: Last event's "Fun" category winner by @pazzi and @no-whone! Lots of games have a similar upgrade system, but this is the most recent I remember playing.
Jazz Standards: The "hold music" was inspired by classic jazz standards like Blue Bossa.
Past Game Jam Games: This is my third attempt at a twin-stick shooter, after Ammodillo and Six Shooter.
:joystick: Play the game (Web/Windows) :joystick:
Ratings
| Overall | 6th | 4.395⭐ | 59🧑⚖️ |
| Fun | 15th | 4.263⭐ | 59🧑⚖️ |
| Innovation | 97th | 3.702⭐ | 59🧑⚖️ |
| Theme | 47th | 4.289⭐ | 59🧑⚖️ |
| Graphics | 4th | 4.658⭐ | 59🧑⚖️ |
| Audio | 8th | 4.393⭐ | 58🧑⚖️ |
| Humor | 1th | 4.667⭐ | 59🧑⚖️ |
| Mood | 14th | 4.316⭐ | 59🧑⚖️ |
| Given | 15🗳️ | 43🗨️ |
In my first run, I died due to running out of ammo while zombies swarmed the phone. In my second run, I got Cricket (I think, the ability which gave you higher damage in exchange for reduced fire rate) as my first upgrade, and it felt way too powerful. It allowed me to one-hit all the zombies (even the stronger variant), making ammo pretty much a non-issue. Afterwards, I got a mix of Green (the ammo refund one) and Flourish (shooting when dashing), which had a pretty broken synergy together (probably a bug, but still): Flourish only cost 1 ammo, but Green refunded each shot separately, which very quickly led to basically infinite ammo, and made the rest of the game a cakewalk.
Nevertheless, I really enjoyed it! Great entry!
@hacktic Had a lot of fun putting together the layered music, glad it paid off. And Gungeon was definitely a major influence (included it in the Special Thanks section of the game page).
@frogman Love to hear about the broken combos --- I was definitely aware that certain upgrades were more strong, or more strong in combination! I actually developed the "fix" that made the bullets from Deadly Dodge not count toward refund chance for Green, then undid it because clever players deserve a broken build every now and then. :slight_smile:
As for the theme, this game takes it very interestingly and unique, yet it still fits so perfectly. For something made in 48 hours AND solo, balance might not be something that comes to mind at first when creating the game, especially of this quality, but can really be felt while playing the game... It's understandable tho. The previous comment has also mentioned it, cricket and extra ammo are the most important upgrades, and sometimes it comes down to luck, also sometimes either the ammo is too little or the hold times are too long... But hey again, totally understandable.
But when it comes to the gameplay... This was definitely very innovative and creative. There is a mix between strategy of trying to save ammo, trying to talk on the phone, and not dying. Enemies are pretty easy to kill, and so the twinstick shooter elements are not really the main selling point, but rather the unique phone call system.
Overall, really great game... Amazing work!
Games like this are what I aspire to create in these LD jams.
@no-whone Haha, awesome that you ran into this entry after I linked your game! Glad to hear you enjoyed it and definitely very useful feedback on balance and SFX.
@jdeedubs Thanks for playing! The music is original (not a cover), just drew inspiration from familiar jazz/bossa nova tunes. :slight_smile:
You made the controls really simple to use and I feel like the balancing of having ammo and staying on hold was perfectly timed. I don't know how you did it, but it resulted in really smooth gameplay that still felt like a fun challenge.
I appreciate your hold music as well. That's a good representation!
Thanks for making this, I'm definitely going to be keeping this one around.
Anyways, this game is AWESOME. The polish is really incredible, and most importantly, it's on top of a simple and fun gameplay loop. Shooting zombies is fun. You have a constant objective and progression to keep going.
Is it me or is the shooting a little off sometimes? It could be because of the seeking upgrade later, or maybe the cursor image isn't properly aligned with the true cursor position, or it could be me going crazy!
The polish is really cool especially for pygame, way to represent. The camera has weight, moves with cursor.. really good camera system. I love that when I walk into the phone I don't stop, I get pathed around it. Not really sure how that happens, but I noticed it and love it (are you.. using.. circular hitboxes in pygame..?) The customer support dialogue is top notch as well. Very good voicing.
Also thanks for including an "end game", even though unfortunately it doesn't last long with lag. My new favorite entry, congrats. I won't bother including what would have made it better, because I think it's obvious and it's 48 hours.
Edit: oh I also forgot to compliment the enemy collisions! Very cool to see them push around dead bodies, almost seems like physics
Everything Excellent.
Congratulations!
@qooorti There is a ~5 degree spread on your gun, so it doesn't always land exactly on the cursor. This might not have been a great decision in hindsight with the default fire rate; it's not really fast enough to get a sense for the spread right away... and it's especially painful with "Cricket" when the difference between hitting and missing an enemy is very significant.
> unfortunately it doesn’t last long with lag
Very aware of this, but decided it was still more entertaining to leave it in! I think a lot of the lag is coming from the zombie corpses and poorly-optimized bullet and enemy collision code that scales poorly with large numbers of enemies. There's no batching, for one. Hard to optimize for performance in 48 hours, especially since I only added the endgame mode in the last hour or two!
> are you.. using.. circular hitboxes in pygame..?
Yes. In the words of Gary... they're easier to code.
Thanks for playing!
Game so smooth, I like it.
I don't have any tips or criticism :)
Well done!
This is a really really strong entry.
And bonus point for using python and pygame.
Also thanks for the "Pdelivery" :wink:
Well done :thumbsup:
The game is really funny, I really love the idea! Writing is great too, and graphics are amazing for a compo. Those screenshakes feels perfect.
The only issue is balancing (tho it makes sense that it's the lowest priority in compo). The name of the game is amo and that's it. I feel like I'm missing a slow and/or hard way to kill enemies for free, so when I'm in control I can save amo (and only use them in critical situations).
Good job, great entry!
PS: The end is also really fun, I played until my fps died.
And finally, the gameplay is simple but super satisfying. I'm a big fan of games like this and I thoroughly enjoyed this (Though it does get hard after the third delivery, haven't finished it yet). Thanks for making this!
The game mechanics feel good and are finely tuned.
Just getting started on my games rating sweep and had to start with the illustrious Jeremy Ryan AKA plasmastarfish!
Solid entry dude! The pic is from my first attempt, guessing there is no end game? It was frustrating to have to wait on hold (of course!) but I thought your spin on the delivery theme was pretty unique! I am a HUGE fan of Enter the Gungeon so as soon as I saw your entry I knew I had to give it a try.
Impressive balancing from what I could see too! Definitely going to play again and see if I can beat this score (also, I think I've figured out the strat but I won't spoil it hehe).
As far as the cat ears on inanimate objects I could find: the reticle, the coffee mug, the phone, the headphones, nametag, window, and floor tile... I guess I'm missing just one!
Game seems super polished from the perspective of movement, kinesthetics, sound effects, varying music track and simple controls that have the tutorial lying on the floor, how creative! I know this is a compo entry so the only thing I have to critique is that I wish there was more!
Great job again, excited to see how you rank up this time around. Peace out :sunglasses:
If you’d like to rewatch the playthrough, you can find it here: https://www.twitch.tv/videos/1814621596?t=5h0m27s
Good luck on your ratings, see you next LD! :D
💜 Elysia Griffin AKA Button Feedback Lady
https://www.twitch.tv/elysiagriffin
Gameplay could definitely stand to be more interesting... Definitely a tricky balance trying to get enemies that are threatening while still being able to talk on the phone with them on screen. It was one of those jams that I frontloaded the art/audio and ran out of time for fine-tuning.
@elysiagriffin Thanks for playing! Congratulations on finding all of the cat ears and the super secret
~~playtesting shortcut~~ **cheat code.**
Was thinking about submitting to your queue earlier this week but your description said web games only. I hope my buttons were up to your standards!
A recurring theme I'm noticing in streams --- players sometimes don't notice they're supposed to interact with the phone again (happened your first run, which is why you were short on ammo). It probably would have been smart to add a very obvious indicator somewhere other than just the hold music going away --- one of those things that you only catch from live feedback!
Only thing I would have hoped was some more challenge. The enemies came frequently enough for you to get off the phone from time to time, but I didn't feel the need for the upgrades after the damage upgrade and didn't have to use the dodge roll for more than once when a cyan zombie was right next to me while picking the next upgrade. I think some rare special zombies that would do a charge or maybe explode for example, would mix up the gameplay enough for you to feel actually threatened.
Otherwise the game felt good, gameplay was solid and mood was there. Nice work!
I wanted to let you know, so maybe you could look into it, that on my first attempt the game crashed; I'm not sure what I did wrong? The error seems pretty vague: 
One thing I would change might be the pacing of the game. It is really slow at first and then quickly becomes difficult.
I could have played longer :D
I hate Gary! Where is my ammo Gary!
Please Gary stop eating your fucking donut. Give me the delivery! lol
The dialogue is *dumb*, and I mean that as the greatest compliment I can give. I loved every line that I had the chance to read, which reminds me of a comment I have once received on a humorous game. The dialogue is hilarious, yet I know for a fact I was missing comedy gold, because my priorities were staying alive > reading the funny. Good humor shouldn't be missed as a means to meet an objective.
I think after the package arrives, you should have a large arrow pointing to the phone, to tell the player that they gotta ask for another package. Once I got an upgrade, my instincts were to immediately give it a try and see how it works! It's very easy to overlook calling him back for a second package.
Anyway, I loved the heck out of this, and I recorded my gameplay to provide even more feedback!
https://www.youtube.com/watch?v=M0Vkb_IgtE4
Good point on players potentially missing the jokes. Definitely a little disheartening to see the mechanic actively discourage you from reading the voice lines during your playthrough.
Thanks for playing and for the video! Live feedback is always the most valuable.
I played earlier on stream if you wanted to watch initial thoughts (timestamps in the description to jump to your game!) [youtube link](youtu.be/VWB4DGknN6k)
1) The *phone call* is sometimes a bit too slow / can feel; I would suppose that if it was very fast - like 0.5-1.0s this would add to a *frenzy feeling* and make the game feel even more dynamic ; I know this is a game mechanic, so that player should be taking the risk while on the phone, but that could be compensated by just having several more lines (which go rapidly but go for the same amount of time in total)
2) Sure, as others noted, it's a bit intimidating and it feels like maybe too hard; what about giving players another power or a way to *survive* while on the phone? :)
Overal, very *fun* and *funny* / *hilarious* *polished* game with a *solid core loop*. Thank you!