Spiridios is a Software Developer in Redmond, Wa who likes to try his hand at making games now and then.
About Spiridios (twitter: @spiridios)
Ludum Dare 27
Ludum Dare 26
Ludum Dare 23
Ludum Dare 17
Could the theme “10 seconds” be interpreted as 10 individual seconds? Could a game be made where something interesting could happen inside of 1 second? From those questions came Snap Encounters, an RPG with no RPG elements due to lack of time.
Was the experiment a success? Feedback so far is pretty unanimous: 1 second is too short to make a real decision and there’s too much text.
Too Much Text
Since this is a story-based game, that’s like saying an FPS has too much shooting. Since reading is a free action and isn’t timed, I’m not sure this is a valid criticism or just an issue of wrong target audience. I can certainly tweak it a bit since my writing does tend toward verbosity.
1 second is too short
As implemented, a player must examine the 32×48 pixel encounter creature, examine their two 48×48 pixel choices, interpret all that, and pick a choice appropriate for the encounter. All within one second. Since there’s no HP, making the wrong choice means you die and have to slog through the same encounters all over again (or give up and go play a more fun game).
How To Fix
I think 1 second can still work, but there needs to be a lot less for the player to process for each encounter. My tentative idea is to remove the randomized choices entirely. For each encounter you get the same three choices: fight, flee, or fraternize. The tutorial part of the game will teach these to you, so that by the time you need to make a snap decision, all you have to think about is “oh, that’s an ogre and I’m level 1, RUN!” instead of “That’s an ogre, my choices are, uh, let’s see. Oops, too late, I’m dead.”
Also, the sting of making a wrong choice will be reduced when the RPG elements are introduced. Instead of “oops, I gotta go through all that again?” it’ll be “ouch, I hope I find a health potion soon.”
If you want to see how hard making a decision in 1 second really is, go play Snap Encounters, it’s HTML5, so should run just about anywhere that has web and a keyboard.
It’s just after midnight here so there’s 18 hours to go! I have two of my ten required encounters in. The encounters are hard to get a screenshot of since they only last 1 second, so here’s a shot of the title screen. Yes, I know the text is a bit hard to read over the trees. That’ll be fixed… Time permitting.
Oh, seems I failed to say “I’m in”.
I’m using C#/XNA, SpiridiEngine, with a port to HTML5 via JSIL after compo end. The game code itself is pushed periodically to bitbucket in case my desktop burns down, takes my file server with it, and I have to continue working using only my underpowered laptop.
When I thought of minimalism, I thought of removing the entire visual experience and leaving only sound – essentially making you blind. It turns out I wasn’t the only one who thought of minimizing graphics to near non-existence without going the text adventure route. Here’s a rundown of the games I’ve found so far in which limited vision play a role. Feel free to link in the comments more games in which limited vision is a mechanic, I’d love to play more takes on this!
- You Must Escape
- Out of Darkness
- Come No Closer (this one’s a bit on the edge, since you do get a flashlight and there’s no downside to using it)
- The Blind MazzzZZZZe of Colors
- Blind guy Vs Zombies
- BlindSight (another flashlight game, but the flashlight does play into the mechanic)
- Conversion (my game)
Many many thanks go to Kevin Gadd for implementing panning support in JSIL, despite my feeble and failed attempts at implementing it myself. And not only doing it, but doing it in three days! You can now play Conversion in Chrome at least. It may work in Safari (I do not have a Mac to test it on). It does not work in Firefox.
So for anyone who skipped this amazing(ly short) audio experience because it required Windows and XNA, go rate it now! Unless you’re a diehard Firefox or IE fan who refuses to use any other browser, then, err, have a puppy.
I wrote a game titled Conversion, after the condition known as Conversion Blindness. You cannot see, so you must complete the game using only your sense of hearing and sense of touch. It’s minimalist by reducing your senses and distilling the environment down to the remaining senses. The game is intentionally vague about what’s going on in an attempt to immerse you in the confusion of someone who just had a traumatic event trigger blindness.
That’s already a bit of a spoiler, so if you don’t want to be spoiled further, go rate Conversion and come back. We’ll wait.
It’s almost halfway and and my game logic is kinda sorta there. I just got done recording a pile of sound effects, since the majority of my content is audio in nature. I need to sort through them and edit them and then I can actually get into the meat of the game.
I’m trying to make an audio-centric game, but XNA’s positional audio doesn’t work like I had hoped it would. Plus, it’s not JSIL supported so no web version. Pondering faking it with 2D audio so I can control more aspects of it and get JSIL support.
Here’s a screenshot of the only screen that’s not developer-only at this point.
Argh, what an awful theme….. Except, I’ve got an interesting concept for a game. Dunno if I can pull it off, but I’m actually excited.
Potato’s results are in:
|12.||Potato||Votes for: 1086||Votes neutral: 204||Votes against: 1311||Total votes: 2601|
Whether you voted for potato, voted against potato, or voted meh potato, potato has the most voter turnout for any theme in Ludum Dare history* Long live/Death to/I don’t care about Potato!
* well, technically I only looked back to LD 21, but back in those days we’re only talking a few hundred participants rather than thousands.
I declared my in-ness a couple weeks ago, but I still need to declare my library usage:
- Compilers: Visual C# Express, JSIL
- Libraries: XNA, SpiridiEngine
- Editors: Visual C# Express, Notepad++
- Debuggers: Visual C# Express, Chrome developer tools
- Graphics: GIMP
- Map/Level editing: Tiled
- Music: autotracker-bu, OpenMPT, and possibly Abundant Music
- Sound Effects: bfxr, possibly my iPod classic + microphone
- Sound other: Audacity
- Whatever else I need as I go.
Also, I guess I should throw fuel on the potato pile. Uh, potatoes contain poisonous solanine when green, have a famine named after them, can be used as ammo in cannons, and are starchy. Potatoes are extremely dangerous and should be banned! Therefore, potato is a wonderful theme for LD!
I’m running through the Slaughter and I notice a pattern:
- If Wishes Were Horses
- Past Prologue
- Move Along Home
- The Storyteller
- In The Hands Of The Prophets
- A Man Alone
- Captive Pursuit
Maybe I’m just showing my own biases by noticing a pattern here….
(Edited to add another that just showed up)
So I see the stream of “I’m in” posts increasing as the date approaches. I guess since I already requested Jam-Monday off from work, I should declare. I’ll be in the compo. Unless I’m not, then I’ll be in the jam. Unless I’m not. Failure most definitely is an option, for if I don’t make the deadline, I still come out better than I started. Disappointment is temporary, improvements to skill and design are permanent.
I’ll be using XNA (shush, I’ll port to HTML so you don’t have to install it) plus a library of helper code (sprite handling, collision handling, tile map rendering, etc) I’ve been working on for a while now. I’ll declare the library later, as I’m actively developing it as part of another game. Offline tools include GIMP, Tiled, autotracker-bu, bfxr, OpenMPT, and whatever else I find I need as I go.
What it is
This is what was done by 3 hours after Jam closing. You can spam the “3″ key (no other key does anything) and lightning enemies will spawn at random locations and swarm the Goat Ship. The Goat Ship will attempt to target the nearest enemy until it’s dead, then target the next enemy, and so on. Since the lightning ships can’t actually shoot lightning yet, you pretty much have to spam enough up them to overwhelm the firing rate of the Goat Ship (4 shots a second). The 10 in the upper left corner is the number of enemies that are currently being tracked (two are in the process of exploding). There needs to be around 40 to overwhelm the Goat Ship.
What it was supposed to be
The bars at the top of the window are different kinds of energy. You press the corresponding number key to spawn an enemy that uses that kind of energy. If the enemy damages the Goat Ship, you get more of that energy back for your bar, allowing you to spam more enemies of that kind or allowing you to save that energy up for the final battle.
In the final battle, you are the end boss. The end boss moves around the screen in a pre-determined or random path (the player has no control over this) and you can use your energy stores for attacks. Only the end boss can kill the Goat Ship.
What went wrong
On theme night I lost 6 hours due to not coming up with an idea that I thought was completable in 48 hours. My initial idea was a platformer where you’re the end level boss (very similar rules to those stated above), but I thought a platforming AI would be a bit beyond my ability. It wasn’t until nearly midnight that I realized the idea could still work so long as I didn’t have any pesky platforms to have to jump around.
The next two days development was pretty slow. I did get a decent amount of content done. I spent entirely too much time playing with autotracker-bu and Open-MPT (generated approximately 50 songs), and though I’m quite proud of my pixel art, it took me a while to get it done. Most of the real hardcore development occurred after the compo deadline and during the final jam day. But that just wasn’t enough time for me to get through all the little oddities I hadn’t expected to come up. In hindsight, nothing really sticks out as something that tipped the failure point though.
What I’d do different
I don’t know if I could do anything different about theme selection – if inspiration doesn’t hit you there’s not much you can do short of just going with a bad idea. But once I had an idea, I should have got the core mechanic in without any assets. I wasn’t very motivated this weekend, and having something in front of me moving and playing is one of the best motivators. While I had a Goat Ship in the game on Saturday and the lightning ships in on Sunday, they didn’t do anything in game except animate in place until late Monday!
It’s the end of day one here (well, technically the start of day 2). Only a bit more then 17 hours left, and I’m about to dedicate 8 of them for sleep. I’m pretty far behind, so this may end up being a jam game. Right now what you see is pretty much what’s there. No gameplay at all.
The AI will pilot an oddly shaped ship and you’ll be the end-level boss that the AI has to fight. We’ll see how much of the core mechanic gets in.
I said I’d be using some 2d library code I wrote. I also have a skeleton “Base code” that just gets a screen on, err, screen. I’m only posting this now because up until now I was still adding basic features like animated sprite (which doesn’t work yet!)
SpiridiEngine (don’t look at it. It’s an awful conglomeration of code written in past Ludum Dare’s)
BaseCode (It uses the engine, so it’s just as ugly)
For those of you without a lick of musical talent, there is hope for getting something music-like in your game.
First, see this LD post. The link in that post is dead but there appears to be a version up on github. Note that the Ludum Dare tools page links to an earlier version of autotracker, but that link is dead too. See my LD23 entry for a sample of the music generated, though it creates a variety of tempos and moods that all sound very 8-bit. The general approach is to generate a ton of songs and pick the one that best fits. You can load the output into a tracker to mess with it if you have more talent than I.
Next up, for a little more control, there’s Lemon’s Procedural Music Generator. You control the number of tracks, instruments used, and algorithm+seed for each track. It uses your default midi device, so it will probably sound very 8-bit. Record is supposed to export to midi, but it wasn’t working for me, so manually recording the audio is probably the only other thing to do.
Lastly, Otomata creates music with a very particular feel to it. Here’s an example of something that I put together when I should have been working. You have control of how many automata there are and what their starting orientation and position are. After that, they follow some simple rules to make sounds.
It’s probably worth mentioning WolframTones. It can produce a variety of music, but the license excludes it from any real use. This post has a discussion on it.
Hopefully one of these resources will help someone out. If anyone has any other resources, please reply!
[Edit to add direct link to autotracker-bu]
So many “I’m in” posts, no one’s going to see mine! Mwuahahahahahaha. Err… Yeah.
Anyhow, not sure if I’m partaking in the compo or the jam. Thanks to finally having a job that’s not totally stingy with the paid time off, I’ll actually have Monday off to use for the jam if I want. Or to use as recovery for the brutal weekend.
- C# (express) with XNA.
- My 2D game library (I’ll post it soonish).
- Probably JSIL and/or Silversprite for final submission.
- Sound effects by http://www.bfxr.net/ or my iPod microphone.
- Audacity for finalizing the sound effects.
- GIMP for graphics.
- Uh…. I’ll get back to you on that.
I just started a new game project and I don’t want to lose momentum on it. I’ll be spending the 48 hours trying to finally get something up on screen other than solid green! Darn work’s been keeping me from getting more than an hour here and there on it. At this point, I’ll settle for just getting the GUI in! =p
I decided to port TPod from Python over to something that runs in a browser, and Silverlight won out as the technology to do it in. It was largely a toss-up between a Java applet and C# Silverlight, and since I work in Java daily I figured I’d refresh my C# skills.
I would have posted this during the compo, but my productivity wasn’t exactly at competition levels and I literally ported the last feature the day voting ended. Which is probably good, since I don’t think this really should count under the “porting” provision. This wasn’t just a “tweak a build file and correct a backslash” kind of port. This was a “rip the guts out, since even the language itself is fundamentally different” kind of port. Those who played the Python version should recognize the game, but will see I implemented some of the suggestions from the comments. The source code largely mimics the Python code, though Silversprite/XNA do things a bit differently than PyGame, and I did refactor and implement some things better now that I had time for such luxuries as “encapsulation”.