Spiridios is a Software Developer in Redmond, Wa who likes to try his hand at making games now and then.
About Spiridios (twitter: @spiridios)
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”.
So it’s probably time to do a post-mortem of my project, T-Pod. The submission page is here if you want to check it out.
I started off on the wrong foot. I took hours on Friday to come up with an idea. The theme just didn’t inspire me – no offense to anyone who was inspired, because there’s some really great interpretations on the theme out there. My brainstorm page was filled with doodles, but nothing was saying “create me!” The idea I finally came up with was mostly just desperation to get started on something, and it really wasn’t original in any way.
When I had two hours remaining I had the game you see here and still a long todo list. I opted for a refactor of the explosion code since it was hacked in and messy (alien saucers don’t explode, lasers do. Hey, it seemed like a good idea a the time!) and I wanted to make the planet explode too. That took almost the hole two hours, not the 20 minutes or so I was hoping for. It also introduced a ton of bugs that I had to clean up last minute. And in the end, the code is still just as hacked in and messy, and I never did get the planet to explode. Next time: messy but working code stays until AFTER compo. In that time I could’ve had a third alien AI behavior, more tuned alien spawning/speed, or just general balance fixes.
Also, my particle effects were supposed to fade with time, but my unfamiliarity with PyGame left me with the always red particles you see in the game. If you check out the resources you’ll see the particle graphic is grey so I can tint it at runtime. Unfortunately the only way I could find to tint a graphic was to do an alpha fill on the surface…. Which would mean a separate surface for each particle, a complex system that keeps surfaces for each possible color, or a fill to a temp surface just before blitting. Instead I opted to just work on other features (like the useless refactor!)
So what went right? I completed the game and actually had time for polish I’ve never had time for before (music? I actually managed music? Oh yeah, it’s autogenerated). I learned enough Python and PyGame to make a finished game! Prior to this, my only real experience with either was the practice conversion I did of my earlier LD48 game about a week earlier.
Thanks to everyone who’s left a comment on my game! Here, have a cat with a Wii remote on its head.
I have a rudimentary game! I even have sound!
Though two depressing things happened today:
I learned my idea isn’t all that unique (duh), there are others working on this exact game! =(
I learned that my idea so unoriginal I used it in LD17! =(
Even the enemies look the same as the enemies in my ld17 submission! =p (I used the enemy sprite from LD17 as a placeholder since it’s late and I don’t feel like drawing anything right now)
For tomorrow I have to play with the mechanic a lot to try and make it more inverted Gyruss and less Evil Lair Command. I also have to get py2exe working again. I was going to post an alpha, but I couldn’t build an executable. I had it working before the compo on my test project. I’ll have to see what’s gone wrong.