Willem Gillis

CG Generalist & Software Developer

Darkwing Duck intro.

For my first year programming finals we had to recreate an old 2D side-scrolling platformer game. I chose Darkwing Duck: a platformer based on the old television series of the same name. The gameplay was similar to Mega Man and contained multiple levels. It was recreated to be as close to the source material as possible. This includes the art: music/sounds, level background, sprites, … But also the stats menu, secret bonus level, power ups, weapons, …

    Darwing Duck game environment shot.
    Darkwing duck arcade remake: screenshot 6
    Darwing Duck game environment shot.
    Darkwing duck arcade remake: screenshot 2

It was built in a barebone C++ game engine (based on direct2D) provided by the school. Some essential things, for example physics and sprite atlas handling, had to be written from scratch.

To make development/iterating faster most parts were loaded from external files:

  • Collision: The placement and dimensions of the environment colliders were created at runtime based on an SVG file. Three types of level collision were created and loaded by using SVG groups and IDs.
    1. Platforms
      • Player can stand and walk on these.
    2. Grab
      • Player can grab these colliders to hang in the air.
    3. Spike
      • Damages the player on contact.
  • Starting positions: Information where enemies, power ups, money, … had to be spawned was loaded from an XML file using TinyXML2; a handy library to load and save the required information.
    Darwing Duck game environment shot.
    Darkwing duck arcade remake: screenshot 3
    Debuging mode showing physics.
    Darkwing duck arcade remake: debug mode
  • In-house game engine

  • Visual Studio

  • Photoshop

  • Inkscape

  • Gimp