MechanicsI will make a game of 2D minigolf on small planets in space, Spacewar meets Desert Golfing. The tee and hole will often be on different planets, requiring the player to exploit orbital mechanics to negotiate the course. I'd like to procedurally generate the levels, but I'll start with just having a single level. I've long wanted to make a 2D physics game like this and Desert Golfing recently gave me the right mechanic metaphor. Longer term-inspirations include the Ender's Game Battle Room (at least as described in the book, I haven't seen the film) and The Little Prince.
I think I want gravity to be mostly constant near the surface of planets, and then fall off fairly quickly. I can't use realistic gravity because the scale of planets, the ball, and spaces between planets is inconsistent...the ball would either fly off the surface too easily or smash into planets too hard. I'd like players to play around a planet, like a conventional minigolf hole, and then hop up to another planet, occasionally banking around smaller satellites. A single set of mechanics and algorithms should then lead to two different kinds of play.
I plan to have the UI involve dragging backwards and releasing, in the manner of Angry Birds and Desert Golfing. One important question for the UI is whether to draw an indicator going backwards (likely not), forwards (like Desert Golfing), or forwards in the arc that the shot will take (like Gravitee).
|Spacewar, originally developed in 1962. The spiral is a black hole whose gravity draws the ships and missiles.|
|Desert Golfing, 2014 procedural minigolf in the plane.|
Art DirectionThe graphics will be solid-color or simple gradient polygons and the UI a simple drag mechanism, maybe with a choice of clubs if I get fancy. I could imagine polishing by adding some simple comets and scrolling starfield in the background but am going to try to prevent myself from polishing graphics for this jam to focus on mechanics.
From looking at the reference art that I've collected, there is a particular way of drawing tiny planets with a white-blue-black radial gradient behind them. This implies an atmosphere and avoids the desolation of a pure black "space" background. I'mg going to try to avoid drawing any interiors on the planets, maybe filling them with a gradient to avoid too much flatness.
There will be only a generic swing and hit sound in the game. A future polished version could have music, sound on each collision, and reset sounds. Sound production is not the problem here--I don't want to invest time connecting the collision response system in Box2D to the audio events.
|Collected reference art for small planets|
|Monument at Tufts University by wealthy lunatic Roger Babson, which along with the Institute for Centrifuge Research ("gravity is a mistake") will be my totem for this jam.|
If there is any raster art for the game at all I'll draw it in Photoshop, but I expect almost everything to be vector based and procedural.
I intend to use Subversion for revision control. I prefer Mercurial for new projects, but codeheart itself is in Subversion and it will be easier for me to keep the game in a private fork of the codeheart repository in case I need to update codeheart itself.
Desert Golfing and Spacewar were already mentioned above.
- Gravitee (visualizes the ball path, mostly about hopping between planets instead of playing on them. goal is a hoop to shoot through)
- Orbital (launch multiple projectiles to hit specific targets)
- Galaxy Golf (space themed mini-golf with regular gravity and interesting environment interactions)
- Fuzzy's World of Miniature Space Golf (3D minigolf with a space theme)
- Space Mini Golf (3D minigolf on the equivalent of MarioKart's rainbow road)
- Galactic Gravity Golf (Like Gravitee, but with bank shots off walls sometimes. The "hole" is a black hole. UI allows adjusting previous shot and there are bonus coins to pick up; all about making hole in one. Allows flying the ball while in motion.)
I plan to work four hours during the work day on Friday for the jam, and then another four hours late at night. Saturday I'll mostly work in the late evening, with a few short sessions during the day, and Sunday I will put in a block of time in the middle of the day as needed. I'm estimating 12 hours of total development time. My milestones are:
Before jam: prep Box2D.js and learn to use it, collect reference art, revise this plan in a few passes.
Friday 11am: complete one-screen of a Desert Golfing clone. Tee, hole, procedural ground, ball physics, UI (mouse/touchscreen only)
Friday 3pm: Golf on the surface of a planet. Add UI code for auto-adjusting the view transformation to keep the golfing position always with the ground down
Friday 5pm: Multiple planets
Saturday 1pm: Sufficiently tuned for first play test
Saturday 6pm: Reasonable graphics. Planets of different colors with simple gradients, some simple star parallax in the background when the view moves
That leaves late Saturday night and Sunday for playtesting and mechanical polish.