Archive for August 26th, 2012
Pinbology is a retro-style pinball game where the zones, combos, and actions are themed around evolution. Originally I’d considered doing a Tower Defense game, but I thought that this would be far more unique.
Historically, pinball games have been themed with virtually every topic under the sun, from westerns to poker to movies — though I’m not sure if one has been made with “Evolution” before.
It was a challenge to create a physically accurate simulation of a 1950’s style electro-mechanical pinball machine while also conveying the spirit of the theme and doing some things that are only possible in a computer simulation.
I believe that my implementation of various pinball components (bumpers, kickers, spinners, drop targets, and rollovers) is relatively true to life, though unfortunately the lack of sample sound from a real cabinet blunts the authenticity. Additionally, it’s important to note that Pinbology works best with a fast computer, especially one with hardware-accelerated physics.
On the other hand, I was able to introduce elements that are impossible or impractical in the physical world, such as an organic “puddle” space to play in — a sort of platonic pool of primordial ooze where early life may have developed. Additionally, I wanted to introduce some over-the-top “toasts” when various events occurred, partially as a way to increase excitement and communicate the theme, but also because in many real pinball machines it’s not clear to the player what actions are activating various bonuses and enabling various combos.
Some of these are obvious, such as the camera shift when your “creature ball” enters geographical isolation, or the particles and lighting that emanates from the “breeding pool” (i.e. the ball lock mechanism that triggers the multi-ball). Some of these are more subtle: For example, when a “multi-ball” (a.k.a. “Survival of the Fittest”) is triggered, the color of the balls diverges from the “parent” ball, and the last ball to leave play is considered to be the dominant species and its color is used to spawn future balls.
My first goal in this, my 3rd competition, was to create a game that was first and foremost fun (especially considering the moodiness and over-ambition of my last two games). I really believe that I’ve accomplished this, but I also hope that I’ve also successfully expressed the theme — albeit in a unique and more indirect manner. I resisted the urge, both for time and also for the faithfulness to pinball, to add extreme “evolution” mechanics, such as changing the ball physics mechanics or transforming the paddles. These would not have been difficult to do (a mere tweaking of scaling, for example), but they didn’t feel appropriate for the game.
This game was made entirely before a livestream audience of 200-500 people. While I created all the art and program code myself, they provided invaluable moral support and inspiration, and I want to thank everyone who watched. I can’t wait for LD #25!!!
Two levels complete and starting on the third — we might just finish our 5 level goal. I am very proud of how we all worked together this weekend. It was a lot of fun.
Latest drop is here:
PS — Yes we totally ripped our tile-sheets from SM3!!!
I’ll do my post-mortem for Digital Generation now, rather than putting it off until never.
What went right:
- Gameplay: I focused more on simple, achievable gameplay this time. I focused on making the game start out easy, and introduce new elements that you can figure out one at a time rather than all at once. My last Ludum Dare game just dropped you into the middle of everything.
- Sound effects: I was hoping for music (see below), but I settled for sound effects. Even though some of them are shrill and annoying, they make it feel “real”. (Turn your volume down when playing my game.)
- In-game help: In the final hour, at the bottom of my TODO list, was an in-game help system. Each level has a list of strings which get printed at the bottom of the screen as help messages. People don’t read READMEs, after all.
- AI behavior on level 2: I just get such a kick out of how the AI behaves on level 2.
What went wrong:
- Audio subsystem: The audio subsystem is my most recent addition to the base code library, and it’s got some problems. There are a couple bugs in it that I know for certain can cause crashes. The resampler is also total garbage, and the game only sounds decent at 48 kHz. If your system is set to 44.1 kHz, it sounds terrible.
- Music: I wrote background music, but the audio subsystem doesn’t support it — so it goes to waste. The soundtrack is available as a separate download.
- Sleep: I felt seriously ill half the time I was working on the game, and I think it was due to a combination of excitement and bad sleep patterns. Or I could have been genuinely ill, who knows? If I do Ludum Dare next time, I’m keeping to a strict sleep schedule. It doesn’t help that I’m trying to prepare for 8 hours of jet lag.
Finally it’s over.
This was my first Ludum Dare and I’m pretty happy with the end result. Even though it was a bumpy road.
After the first ~35 hours, I realized that my game-idea was dull and needed way more work that I could’ve been able to do in the remaining time. So I kinda lost motivation and died inside. I decided that I was gonna skip the submitting and just play games you guys created. But after couple of hours of hard self-evaluation, I decided to try one more time. I had already finished a randomly generating dungeon algorithm and the arts for it. And thought I’d build something simple around that. That’s when I got the idea of “Dusty Balls” ;).
In Dusty Balls, player tries to move as many balls through the underground temple dungeons without hitting any hazards on the way.
As the game progresses, dungeons get longer( and spikier ) but most importantly the amount of balls you have to control at the same time, increases.
You see, each ball moves whenever you use your movement controls, so the game gives you a slight brain hurt, especially in the later levels ( there is total of 9 levels in game, which means the last level will have 9 balls bouncing around at the same time. You do have 9 pairs of eyes, right?)
I’m pretty happy the way I got the controls done, they feel very intuitive.
I think my personal best score is around 25 at the moment. Tell me if you can get close to 45, which is really, I mean REALLY kinda fricking hard.
I’m totally gonna try and find time to participate to Ludum Dare in the future, I really like the atmosphere you guys have in your community.
Thanks guys, and let the fun begin.
Try out the latest dev build here.
I wanted to give a much clearer feedback when picking up repair nodes. Before a sound is played when it is picked up, now I’ve added a blue flash. This will be a much stronger feedback for players.
- Pick-up feedback
To do list:
- Dying event
- Highscore indicator
- Kongregate API integration
- More polish
Well, I finished.
My game has a good end to it and should keep you entertained/frustrated for a while
PLAY IT. It’s fun, but very hard. If the boss is too hard, press w once to disable automatic world updates. Press it again to switch back to normal.
Yes, there are a couple of bugs, but they are not too serious (I hope)
If anyone has trouble, feel free to comment and I will try and help.
I will keep posting updates as I progress my game post-LD.
I hope you enjoy it.
What went well:
I have a good game that can be developed further
My game is fun (for me anyway)
I had a fun weekend
What went wrong:
It’s a bit short
The boss is hard and requires complex planning with water that is uncontrolable except with lots of complex wood patterns
No actual victory, just surviving the boss is how to win
Wasted 2 hours trying to learn GUI programming with LWJGL.
Lost my textures once when my laptop crashed
School lost me 5 or so hours
No sound (because you haven’t evolved ears yet ;D)
Impossible to win if you make a mistake.
We are glad to present what we have so far and hope to bring even more polish in the next day. Play it here.
“Darwing is a space dragon alien thingy and his egg has crash landed on a planet full of evil boars. Help Darwing evolve so he may escape. ”
I forgot to post here when I actually finished it, so I guess I might as well post it now.
I ran out of time to do proper sounds, so I just made sounds with my voice instead. They turned out better than I expected
I didn’t really get time to properly playtest and balance it, but whatever.
Try it out! http://struct.ca/games/madness/LD
Yah, says the robot, thanks for bringing me into being!
Noo, says the robot, why couldn’t you make me better!?
Aghhhghahaha! yells the robot!
Haha! Excuse me being a tad delirious, here is some meaty stuff:
Making games is fun!
Packaging games for others to play, trying to make a timelapse of collected photos, and feeling really tired are things that are not fun!
Anyways, I am so happy, as I just got those unfun things finished (minus timelapse, which just was not working, so I kind of…erm…gave up), and here are my thoughts:
- Learned new tools quickly, and managed to make a complete game
- Made more complex graphics and collision than ever before (but they are still quite simple, don’t get too excited, folks!)
- Finished everything up despite the approaching deadline, go TEAM ROCKET….oh…I meant to say TIME MANAGEMENT!
- Already rated a game, gonna go rate some more!
- Did not get a truly playable prototype quick enough, I had something running, but it wasn’t really playable
- Graphics were cool and complex, but did not get to round out the entire package
- Music creation, which I love, was pushed till the end, and I made a psuedo-decent tune in a few minutes and then shipped the game off
- Lacked knowledge of tools/language I was using
- Thus overall, some more polish was needed, and I needed to be more focused and a tad quicker
I thought I’d be in, but other commitments intervened, too busy with school. I spent 1 hour working on some basic code for a title screen, spent time debugging it to work properly in GWT (HTML5) and then realised I don’t have time to spend figuring out an idea that went beyond some basic mechanic about something evolving.
I take my hat off to everyone who did make something to submit and shall see you either in a mini-ld or the next LD in December with a more open theme hopefully!
I did make a game in less than 48 hours, unfortunately I couldn’t submit it because I run out of time.
I wasted friday night and saturday working in a gameplay that didn’t work very well and it wasn’t funny at all.
On sunday I had only 5 to 6 hours to put together a new game mechanic, and finished a couple of hours after deadline.
Anyway, I submitted the game to the Jam compo (entry here)… and maybe tomorrow (I still have like 20 hrs) I made some changes to parts of the game that need improvements: more levels, better music and I may invite some friends to improve the graphics.
This is my 48 hrs game in case you care: 48 hrs HTML5 version
Good luck to all!!!
not far from finishing the game O.o
I didn’t finish everything I wanted and a couple issues near the end forced me to comment out some features. The core idea is you interact with your spaceship by touching individual blocks and you can combine them together by using button blocks. Click the image below to check it out. (requires the Unity web plugin)
Whew, I finished!
I didn’t have nearly as much time as I would have liked, but I still managed to put together a passable game! I think I can do much better next time, if I prepare a little bit more in advance.
My last game ended up being absurdly short, because I had to hand-script every piece of content. This time, I wanted to get higher bang-for-buck by making more repeatable, “grindy” content. I decided to go with sort of an adventure/RPG, where you have to grind up levels to access the next area.
Unfortunately, to make a grindy game design work, I think you still need a few hand-placed elements to give the player some goals. I kind of failed at that because I ran out of time. I think adding a few boss battles, hidden areas to explore, and power-ups to find would have helped the game a ton!
What Went Right
I really like the look I used for my little blob creatures. I’m terrible at art, but this was easy and cute. I was able to layer different types of eyes, horns, tails, etc. to make different looks, which was great for an evolution-themed game. I just wish I had time to make more variations.
World Map design
To make the world, I simply drew a giant 1024×1024 texture using palletized color, and blew each pixel up to a 32×32 tile. I could easily query the color of each tile, and I defined different terrain properties based on the index in the color palette (for example, blue is water, so you can’t walk in it). My original plan was to draw a texture for each tile, but I ended up liking the way it looked.
I used a similar technique to define difficulty levels for each part of the map. I “painted” level bands onto different parts of the continent using Gimp, which let me throw in a lot of content very quickly. Areas colored darker shades of red auto-spawn higher level enemies.
This went surprisingly smoothly. The enemies don’t really pathfind, they just attempt to slide around obstacles, but it ends up looking pretty good most of the time.
What Went Wrong
Lack of goals
As noted earlier, I think this game would really benefit from having a few bosses, secret areas, etc. to break up the gameplay. An ending would also be awesome. I wanted to do this stuff, but I just ran out of time.
Low bang-for-buck art
I wasted a lot of time making really terrible artwork. For example, the boulder that covers the cave entrance. It doesn’t look that good, and it doesn’t match the style of the world map. I wish I had just embraced the uber-pixellated style to begin with, and spent that time on more content.
Movement speed upgrades
Toward the beginning of the game, you move agonizingly slowly, and you slowly upgrade until you move so fast it’s annoying. Why on earth did I do that?The tail is cool, because it’s a one-time bonus, but constantly increasing your movement speed just doesn’t work very well as a progression mechanic.
Overall I think I have a lot of good stuff in this game, and I’m definitely tempted to put more time into it. My original plan was to have different terrain “hazards” that you could evolve adaptations for, e.g. ice, lava, learning to swim, etc. The engine is already set up to do that, I just didn’t quite get around to it. I’d also love to add a few more “special” mutations, add some bosses, and try to improve the combat gameplay and enemy variety.
I think my basic strategy was pretty good this time, so next time I’m going to focus on cutting corners, nailing down the art style earlier, and preparing my code/engine in advance. I think if I squeeze out just a few extra hours, I can make something really cool next time.