My Ludum Dare 72-Hour Jams
LD#24 -- One Last Chance (Unity web & Android .apk)
About recursive frog (twitter: @RecursiveFrog)
My Ludum Dare 72-Hour Jams
Ludum Dare 26
Ludum Dare 25
Ludum Dare 24
Ludum Dare 23
Ludum Dare 22
recursive frog's Trophies
Quality Reviewer Award
Awarded by caranha
on December 23, 2011
recursive frog's Archive
If you’re like me, you look about at everything that exists and realize that it always has existed since the beginning of time, just in a different form than it exists at this particular moment. We all have untold experience as collections of atoms and subatomic particles in infinite space. This moment in time is all too fleeting, and while the collection of physical matter that makes this body will assuredly continue to exist in perpetuity on into the future farther than can be determined, its existence as a biomechanical unit driven by a series of biochemical reactions has entirely too little time for its own liking.
When I saw the theme “You only get one”, I immediately had a couple of game ideas, but more than that it hit a certain existential note for me. I’ve had a lot of transformative experiences in the past few months that have hammered home a number of hard lessons, and I’ve come to view all manner of interactions and activities in an entirely new light. You only get one life, and its duration is only so long, so you need to act like it. Was I acting like it? Well, yes and no.
In terms of technical knowledge and inspiration, absolutely. If I wanted to learn something I would throw myself at it until it stuck. If I had trouble I’d put it down and come back to it, and ultimately find some way to make it work. On the other hand, and I’m sure there are plenty of you out there in the game developer community who can identify with this, I’ve had a lot of trouble throwing myself at and sticking to learning and implementing social knowledge.
Quick show of hands. Who here was the ugly kid growing up? The fat kid? The unpopular kid? The poor kid? The outcast? Of you all, who has struggled against the legacy that your formative experiences left you with? I’d be surprised if none of you could say the same for yourselves. That fear of being rejected, ostracised, ridiculed… it denies a person so much over time. What once felt like a valid defense mechanism as a child becomes a maladaptive behavior as an adult. Truly, it stood in my way of treating this one life as though it is the only one I’ll ever live.
So to honor the theme “You only get one”, I did not spend my weekend programming a game in 48 hours, or even in 72 hours. Instead, I made it my goal to meet and talk to as many strangers as I could bring myself to, in possibly one of the coldest and least social cities in the continental USA. If I could find something about their outward appearance that I could relate to, or if there were some situational shared event, or if they had an Android phone that looked like it would run one of my games, and failing that if they just looked my way and smiled, I would immediately approach them, introduce myself, and say hello. Some people aren’t in the mood to talk. Some people are exuberantly in the mood to talk. It helps if you are confident, or at least can feign confidence long enough to get the ball rolling… but it’s fun! And scary! But fun!
So that’s my game jam for this Ludum Dare.
I didn’t submit it as a Ludum Dare Jam entry, but if even one of you guys really want me to, just leave a comment and I’ll make a Ludum Dare submission with the few rules of this game. If not, that’s no big deal. You probably have an idea how it’s played anyway.
So, I’ve got a few favorites from this competition. Oddly, they were mostly games I found on the very first day after submission, totally at random.
Laugh all you want, but this game pretty much nails the theme. Say what you will about the technical achievement, but I think it’s probably my favorite entry from the entire competition so far.
Another game where the simplicity really shines through, and a nice instance of a contestant stretching his comfort zone successfuly. The mobile version is a bit difficult to play, so stick with the desktop/laptop version.
Playing this one on my phone was a really interesting experience. I liked the thought of an old style terminal interface on my phone… which suddenly was overtaken by a mysterious being.
Judging by the screenshot you would think this to be a creepy entry, and in some ways it might be… but it’s also a really colorful and wonderful entry, that’s wrapped its colors up under a cloak. NEEDS HEADPHONES and is worth it!
While this one feels incomplete, and probably off-theme, I enjoyed its style and presentation. I enjoyed the “Catherine” reference at the bar. And I enjoyed the reference to the author’s previous LD entry in the framed portrait of the mediaval world. I hope there’s a sequel forthcoming!
And so goes my 5th Ludum Dare, with what is really a very new experience for me : inventing a card game.
The first hours, after theme selection
What is a 48 / 72 hour jam if not minimal already? As themes go I felt this was an incredibly poor one as it offers no particular guidance. I didn’t think there was a theme in the list that would have been worse than Potato until I saw the actual winner. My very first instinct was “I’ll just submit an empty page with a link to a 404. Total work time, less than 5 minutes. Minimal to the core.”
Fitting as that would have been though, it’s not the reason we take part in these jams. So I asked myself what I could do that would be minimal in the context of a video game. Then I realized that it probably shouldn’t be a video game at all.
My original thought was to make a card game based on the Rider-Waite Tarot deck, but as I started to come up with ideas for gameplay I realized that the cards simply had too much personality and too many pre-conceived associations tagging along with them. The game was shaping up to be a narrative guided by random card draws, and I realized that I’d be spending all my time writing up how narrative flows for a ridiculous number of card scenarios.
That wouldn’t be minimal.
So I took it a step backwards and picked up a deck of 52 playing cards at the store. I looked at them and pondered the suits. I realized that there are a number of similarities in playing card suits and Tarot suits:
Diamonds easily translates in meaning to Pentacles
Clubs easily translates in appearance to Staves
Hearts easily translates in meaning to Cups
Spades has linguistic connections to the Spanish “Espada”, which is a Sword.
So I laid all the cards out in front of me and imagined what each of these things could really represent. It occurred to me that they all were elements of a State:
Diamonds / Pentacles : Riches, Treasury, Natural Resources
Clubs / Staves : Knowledge, Power, Skill, “Magic”
Hearts / Cups : Happiness, Bounty, Emotional contentment
Spades / Swords : Insight, Conflict, Tumult
I considered how states use these things to gain advantage over others, and how without one of the four states historically have trouble with continued existence. So the idea then is to get a lot of each of these and to steal them from your opponents. But how? There’s got to be some method to this or else you’d just aim for the one place your opponent has the least of at any given time.
So if the idea is that a state falls if it has no resources left in one of the four categories, perhaps there’s a way to make sure the category is well defended? That’s where the idea behind the advisors came in. The royal cards, rather than ruling the city directly, ensure that no matter what happens a city won’t be defeated by running out of their given resource. So a famous, skilled general (King of Spades) will ensure that no matter how battered your City-State’s military, it will never be an avenue by which the state will fall. In mechanical terms, this means the Advisor offers a +1 bonus, permanently, to their suit.
I wanted the actions to be highly constrained because of the “Minimalism” theme.
- You must attack some other player
- You must choose a means of attack
- You must choose a resource to plunder
I wanted attacking to be completely unrelated to plundering, and to make sure that attacking and plundering both are related only to one suit at a time. Therefore, if you use swords to attack, the defender must use swords to defend. Likewise, if your goal in victory is to gain Treasures/Diamonds, then you can’t just steal Guilds/Clubs and put them in your treasure column. If you want Treasures you have to take Treasures.
Base Game Complete : 3 hours in
Ummm… huh. Wow, it’s only 3 hours in and I’ve finished the game rules. Well, I guess I could submit it now!
But is that really why we’re here at Ludum Dare?
So in 3 hours I had the card game…
In 3 days I had the video game.
For a strategy game conceived in 3 hours, this actually is not that bad. I’ve played a few rounds with other people and while there are some balance issues with the rules as written there’s a really solid core idea. I think that had I spent more time on the initial card game rules and less on the video game, it would be a stronger concept… but then the video game wouldn’t have been completed. But again, maybe that would have been for the best?
It’s really interesting to build narratives out of the actions people take in this game. How do states use Guilds to steal Farmland? I can think of a few ways, and it’s fun to leave it to the imagination.
As far as the video game goes, my use of finite state machines made coding the game flow a total breeze. There’s a lot of content and a lot of states, but they are pretty well arranged such that it’s easy to keep track of the flow, or insert new states into the flow.
Balance. The 2 player version really isn’t well balanced at all. Would more rules help? I don’t know… more rules would surely break the “Minimalism” requirement…
Explanation. The rules are *really easy* to demonstrate because there are so few things you can actually do. On the other hand they’re *really hard* to explain with words alone. When I show people how to play the game face-to-face I can do it easily. With the video game though, I struggled hard to come up with a good way to explain the actions to someone not already familiar with the game.
Unity was kind of crashy and unstable. I don’t know if it was my project structure or if it was some combination of plugins, but when I tried to export for Android my Unity editor would crash and burn in a firey mess. I sent a bug report to Unity, and they actually wrote back with a workaround and also a note that the bug would be fixed in the next release. On the other hand, once Android did finally publish I found a rendering bug. Ultimately this meant that the Android release was not ready in time to submit… just the web player version. I have since solved the issue, however.
So, I’ve never invented a card game before. You can probably tell! This was a very different experience from my “typical” (as much as you can call them that) video game development. It surely did lead down a totally different path of ideation and implementation. I think overall it was good.
Also, I notice that when the rules of a video game are awful, people just complain about it. When the rules of a card game are broken, people don’t have to hack your source code to fix it… they just house-rule and experiment themselves and tell you what worked for them. That was the really interesting takeaway for me.
:: Play and rate City-States here ::
City-States is Complete.
I’ve got a lot of thoughts to share about this one, but not just now. Once ratings begin for the 72 hour Jam I’ll ba back with some notes and a Post-Vivium.
Goodness, I’m not sure I can deploy my entry to all the screens I wanted.
For some reason the rendering for my game is very wrong on Android, and Unity crashes when attempting to export a Mac build. All I really have is the web build, which isn’t quite as much fun. It does at least function correctly, but it’s still somewhat disappointing.
I was already going to submit it as a Jam entry, but within the 2 days alloted for compo… but the technical issues might push me out into Monday. Oh well.
Isn’t it already sufficiently minimalist to participate in a 2 or 3 day jam? I have to say, I didn’t think there would be a theme that would make me wish for Potato to have won, but this surely was it.
So, what did I do? I made a card game. That’s minimal, right? The rules took only a few hours to come up with.
And just as a bonus
I even decided to make a playable video game version. There’s no AI, though. It’s purely multiplayer/single client.
The frog may not recurse for this LD.
Given the schedule constraints of working a job as well as continuing work on Agents from the last Ludum Dare, there’s not a lot of time to throw at another game jam just now.
That said, I’m keeping an eye on the theme. Does the frog have an idea for another interesting game mechanic or two? Or three?
Oh yes indeed, he does.
And if the stars are right, and if the time is available, and the theme works out… well… who knows?
AGENTS : Update
You might remember the voice-controlled game Agents from Ludum Dare 25. You might also remember that there were a lot of devices that it simply did not play well with, and a distressing number of them were modern and popular phones!
You can see here that I’ve put in the time to fix these issues. I’ve tested on other popular Jellybean-running devices as well, and the problems appear to be resolved there as well.
Now that the code is in a state such that it is fit for wide distribution, I’ve removed the original game from Google Play. When next we see it, the game should be quite a bit more interesting (and less frustrating) for everyone.
Just in time for Valentine’s Day, the HUGMONSTER has snuggled his way into your tablets and phones!
In another lifetime, four Ludum Dares ago, I entered my very first game jam with a little platformer called “HUGMONSTER”
HUGMONSTER was a Unity web player game (yes, there was a time when I wasn’t making only Android titles!) It had a title screen, and ending, and six or seven levels. It also had art completely composed of typefaces.
Very soon, HUGMONSTER will have its official, world debut as a mobile game, specifically designed for tablets! It features:
- 20 Levels of puzzle platforming pandemonium!
- 5 Animated movie intermissions!
- An awesome soundtrack!
- A touchscreen-friendly UI!
- Art still mostly composed of typefaces!
And here’s a quick trailer
More details to come!
– Agents –
I’ve been considering what I would have to say about Agents in a ‘post-mortem.’ I find that I’m beginning to really dislike the term ‘post-mortem’ in this context, as it implies that the project is dead when it is anything but.
I think this theme brought out the best in a lot of us as designers, and I know I was thrilled when I saw it end up as the selection, even despite the recent tragedy that had occurred only days prior. I had thought to do an audio-only game for a while, but was not settled on a concept or a storyline. After the theme was announced, and after spending a couple of hours formulating (and disposing of) some very dark concepts that I ultimately wasn’t comfortable with, I came across the idea of commanding field agents on a clearly nefarious infiltration mission. I feel this concept was much stronger than any of the others that came to me, so the theme really worked to my advantage.
The sound designer I worked with did an incredible job with the ambient sound effects, and as the voice of Agent 1. HE ALSO SIMULTANEOUSLY DID THE SOUND DESIGN FOR THE GAME “The Fall of Mr. Wily” (Which won 3rd place Overall in the Jam). He managed to keep this a secret from both teams until the contest ended. Neither I nor Stone Monkey Studio had any idea that our audio guy was double-jamming.
Also, I had way too much fun doing the voice for Agent 2.
Drawing a map :
Yes, a game with no graphics actually has a world map. I found it impossible to arrange in my mind the world or its features without drawing it out on paper first. Once I did that, I was able to place guards, lay out a sensible building, and weave a scenario that at least makes some sense.
This is not my first time making a game, or even my first Ludum Dare. My old blog handle and contestant name was “dr_soda” if you’re curious. The change to “recursive frog” reflects a newfound sense of inspiration and outlook.
Some of you remember from my older LD entries that the little froggy has been my mascot for a while, and you might also notice the endless sequence of frogs drinking coffee, posing in front of computer screens with wallpapers of frogs drinking coffee, posing in front of… (ad infinitum). I call it “Looking down the ribbit hole” It is also reflective of how I approach most things these days.
You probably guessed by now that I am in fact a reasonably experienced Android developer. Normally I don’t call out fragmentation as being particularly troublesome, as I find that for most applications and games it’s an overblown concern, and that people normally think only of screen dimensions when they express fears about it.
But this… this time it was pretty awful.
It wasn’t lost on me that a lot of users had trouble running the game. There were a number of reasons for this, some of which were easily fixed by just handling audio playback differently, but others were much more insidious and in fact endemic to the particular devices or OS versions. I’ll say it right out : Speech recognition in Android is fragmented and it’s a real challenge to compensate.
You might wonder “How did you get around the classic Zork problem in which people hit a situation and they don’t know what to say to get out of it?” And the answer is that I didn’t! I ran face-first into that problem and got clobbered for it. My biggest failing here, I think, was to properly set up the situation such that players can know what to do, or at the very least know how to ask for help. It’s not a technical issue, but rather one of design.
Breaking the “rules” :
No, not cheating at the rules of the competition. Rather, defying conventional wisdom. The two biggest rules broken were…
- Only use toolchains and APIs you’re familiar with
- A game requires visuals
These factors all were double-edged swords. While I always choose a language I’m familiar with when I make an LD game, I almost always use some API or toolchain that is completely unfamiliar to me. Prior to this LD, I had never before touched speech recognition. Because I had not, and did not know the dangers and limitations, I actually tried this concept, and that was clearly a good choice based on the first place Innovation award, and with a 4.74 total score at that! Were I aware ahead of time the issues that Jellybean presents, I might have passed the idea over… and that would have been bad. This sense of bravery in terms of tackling unfamiliar concepts has served me well not just in Ludum Dare, but outside as well.
Likewise, a game with such a minimal UI takes incredibly poor screenshots, so I had to be creative in how I expressed the progress of the game and “advertised” it (because of course, what are our screenshots other than advertisements). The YouTube video was a great success, and I’m happy that you all enjoyed it. I honestly was very reticent about posting video of myself for this project, but ultimately I think it was the right decision to show the game in action for the benefit of those who could not experience it for themselves.
Every one of you who played these games, left feedback about them, told me what was right and what was wrong about them have helped me more than I can express adequately. Thank you all for your feedback, and for helping a little froggy to find the fun hiding under his little lillypad.
Thank you everyone!
I’m glad you all enjoyed seeing the results of Agents as much as I enjoyed conceiving the idea. I’ve been holding off on doing a post-mortem for a while now. I might just have to write one up after this.
And I have just rated my 200th game.
In honor of 200 ratings, here’s the one that took spot #200
The game is more a prototype than a finished product, and there’s the beginnings of a complex gesture system that sadly has only one spell it recognizes. This entry needs polish and some tweaking, but the concept is very interesting and solid even with only one spell and one enemy type.
Agents – Bug Fixes
A number of people here and elsewhere who tried to play my voice-controlled Android game for LD25 were on Jellybean devices. That’s great for you guys, because Jellybean is pretty snazzy and you actually have devices running it!
BUT, it was unfortunate for me since the game totally didn’t work on them (the voice commands would not interpret at all). As such I have fixed the problems that I’ve found in Jellybean so the game is now actually playable, as you can see in the video above. The solution isn’t perfect, but it’s at least playable now.
Why do I care so much about supporting Jellybean?
All the conventional wisdom around Android development says that you have to support older OS versions at the expense of all else. Talking heads point to pie charts that show big slices of Gingerbread out there in people’s hands (nearly 50% of the total market), and tiny slices of Ice Cream Sandwich and Jellybean.
But my own download numbers for Agents?
Gingerbread : ~20%
Ice Cream Sandwich : ~22%
Jellybean : ~50%
Others : <10%
Close to fifty percent on Jellybean. Let that sink in for a moment. JB may account for less than 5% of the total devices wandering around in the wild, and maybe lots of people out there have older OS versions in their hands (like in my Droid 3), but those older device owners aren’t the ones doing the downloading.
If you tried the game before, and you were on OS version 4.1.X or 4.2, and couldn’t get it to recognize your speech, give it another try.