I came up with the idea of making a shooter based on drawing arrows after seeing a concept sketch for another arrow game by fellow LD participant Sparky. In the week before the contest, I entertained the idea and tried to think of ways to make it “themeable”. I came up with what I thought was a great idea for “Rain” – falling stars, that you would use as ammunition. When I saw the theme “Advancing Wall of Doom”, I decided to keep the mechanics from “Rain” and just work the actual theme into that. In retrospect, this might have been a mistake. Read why after the break.
On a scale from “Amorphous Blob” to “Rigid Idea”, this is where my idea fits in:
|In other words, I had pretty much settled on what idea to use. I was also pretty certain I would be using Java as the language, Slick (an OpenGL-based 2D library) for graphics rendering and SFXR for sound.
Despite being relatively sure about what I was going to do, I didn’t get as far in the first day as I have in past contests. I more or less had my technology working, but no game to speak of. The second day, I woke up with a terrible headache that prevented me from working on the game for a couple of hours. Something was clearly wrong (see the image to the right).
A bit of technology
Before discussing a few gameplay issues, I’ll try to explain how the underlying technology used for the arrows and stars works. The stars are in fact controlled by a vector field with relatively sparse density (every 20 or 30 pixels or so). Each vector will turn downwards and change its length according to the strength of gravity over time. When an arrow is drawn, a new vector (that points along the arrow) is added to the vector field at every point in the arrow. This means that multiple arrows will create a stronger effect. For each star, the closest four vectors are then interpolated and added to its velocity once per frame.
The vector field without gravity looks something like in the screenshot below. Note that the arrows faded out a bit too quickly compared to the vectors when I took this screenshot.
What went wrong
Shooting mechanics: I spent a fair bit of time tweaking the rain, gravity and arrow effect mechanics, trying to make it fun. Despite this, a lot of people have said that the arrows did not work as expected. The general sentiment seems to be “I expected the stars to follow the arrows closely”. I can appreciate this, and I did have this plan in mind briefly. In retrospect, I should probably have abandoned my attempt at making a somewhat more “correct” physics model, and instead let stars follow the arrows.
Rain: Having the stars fall down from above seemed like a great idea, but in reality it just made sure that the bottom of the screen never got any “ammunition” to use. A few alternative approches that I could have used are:
- Letting the stars be “attached” to the sky, leaving a limited amount of ammunition per screen. With this approach, one would need to be more careful with arrow drawing (to avoid wasting ammunition). Perhaps stars could also grow back over time.
- Having stars come from particle sources to the left or right, thus avoiding the “no stars in a given area” problem.
- Creating stars for each arrow – perhaps they’d stick for a while and fire a couple of stars before disappearing? This could be coupled with more limited arrow-drawing and enemies that can only be shot from below, or behind, or at a certain point.
Lack of variation: The game lacks variation. There needs to be more enemy types and more variation in the shapes you’ll use for the arrows.
What went right
Visuals: I am primarily a coder, and not an artist. Despite this, several people have said that they liked the visuals of the game, and that is something I am happy with. While the arrows don’t quite match the pixelated style of the rest of the game, I think that the overall style is rather coherent.
Proof of concept: Having more or less settled on the idea in advance, I knew turning it into a fun game would be a challenge. However, I think I got at least halfway there, and I feel confident that further experimentation with the concept could yield a fun game. Several people have also told me that the mechanics may be suitable for touch screen or Wiimote-style controls.
Polish: Even if I didn’t have time to fully develop the gameplay, I think the game feels relatively polished; I’m happy with both the title screen and game over effect. I often skip both of these when making games, but taking the time to make them was well worth it.
Visually and polish-wise, I am happy with the results. I’m also relatively satisfied with how the game turned out overall, but I feel the gameplay could have used another day or two. A little bit of variation and better shooting mechanics could’ve made this game a lot better!
This was my third time participating in Ludum Dare. Once again, it’s been a lot of fun! I’m looking forward to competing again soon. 😀
Here’s a screenshot of the title screen from the final version:
…Okay, I exaggerated a bit in the post title. There’s just one stick figure. Sorry :/