#1GAM Game 1: Dash Maximus

At the start of the New Year, I made a sort of nerdy New Year’s Resolution: to make 1 game every month, for an entire year. Month one is done, and I’m happy to say, so is my first game, Dash Maximus.

Here’s the details:

[box type=”download”]

Development Stats

  • Language: C#
  • Engine: MonoGame 3.4
  • Platforms: Windows (DirectX)
  • Resolution: 128×120 (half that of the NES!)
  • Source: Open Source

[/box]

Development on this month’s game started surprisingly slow. You would think with the #1GAM challenge just starting, I would have a number of ideas just waiting to get out. But instead, I started with pretty much nothing.

The first idea I really got anywhere with, was a kind of curling/billiards game where you flung cute animal faces around.

2016-01-02

It was going to be a kind of extreme mini-putt game, with power ups, and crazy courses, but it just wasn’t fun from the get-go. With such a short development time, I figured I needed something that was fun from day 1 in order to get anywhere by the end of the month.

At that point I started looking at a little project I had been working on prior to starting this #1GAM challenge; a simple retro platforming engine.

[learn_more caption=”Fun Facts!”]

As the video implies, the platforming engine i was working on prior to Dash Maximus was an attempt to replicate the platforming found in Super Mario Bros 2 (NES 1988). As a result, Dash Maximus inherits some of the unique platforming features found in Mario 2:

  • The player uses collision points rather than a traditional a hit box. (For instance, the pink dot in the above video is the only point checking for ground collision)
  • Unlike other Mario games, sprinting does not make the player jump/bounce any higher.
  • Collision never pushes the player back, allowing the player to sometimes enter walls more than they should.
  • There is no air friction.

[/learn_more]

I had also been kicking around a platforming game idea in my head for sometime. A retro platformer where instead of jumping, you can only dash forwards, and if you dash into an enemy or wall, it launches you into the air. A kind of skill-based jumping mechanic.

It only took a short time before I had brought that idea into my platforming engine, and right away it was pretty fun!

This video was taken about one week into the month. At this point there was know concept of death, or limiting how often the player could dash. Already though, I was starting to see this game as more of a action-puzzle game, rather than a straight up action platformer. Without the ability to jump, there was a challenge is just figuring out how to reach to upper levels. And even once you knew what to do, there was a skill in performing it, and an art to doing it all in one motion.

At that point I had to take some time off, and by week 3 I had only made minor additions to the game; the kind of stuff you need but is mostly taken from granted. Things like, dying, restarting levels, title screens, transitioning between levels, post process effects, etc.

Here’s what a full play-through looked like at that point:

The final week was spent adding a few additional mechanics, was mostly all above building levels. I found this process a little tiring to be honest. I like building systems, and mechanics, and having to pump out most of the levels (of which there are 10 in the final game) in a week, burnt me out a little bit. I mixed in some feature development, and story elements to keep things interesting though, and by the end I had a really nice workflow using Tiled.

Here is a time-lapse of me coding the “switch” object into the game, and adding it to some levels. You get a decent sense of my workflow here (or jump to here for a quick look).

If you are running Windows you can see the final results for yourself. And best of all it’s free!

[box type=”download”]

System Requirements

  • Windows 7 or newer
  • Shader model 4 or better
  • Keyboard or Gamepad

[/box]

3 thoughts on “#1GAM Game 1: Dash Maximus

Comments are closed.