DEV Community

Cover image for Development Log: Planning a Game
Jason C. McDonald for MousePaw Media

Posted on

Development Log: Planning a Game

GAME MODE 2020 starts next week, and we're eagerly preparing for it.

Task Planning

One of the chief challenges in building a game in a month is determining how everyone can work together. There's this pesky little thing called Brook's Law that we're up against:

Adding more people to a late project makes it later.

Many of the same dynamics that make this true can also slow down a project because of the size of the original team. To avoid this problem, we have to be very deliberate about how we assign tasks.

We've been planning DiamondQuest over the last couple of weeks, so we can dive right into coding on June 1st. As per our usual workflow, we've been mapping out all the design goals and features on our wiki.

During our planning meeting on Saturday, we decided to divide up features into four sectors, with two of our eight developers assigned to each sector. In talking through the features, we identified four areas:

  1. Map generation

    • Generating the map, including distributing treasure blocks,
    • Rendering map textures,
    • Loot tables, and
    • Providing map information to other parts of the code.
  2. Player movement

    • Player controls,
    • Rendering avatar sprite,
    • Avatar movement & map interaction.
  3. Math screen

    • Generating math problems,
    • Interface for solving math problems.
  4. Miner's Log

    • Tracking treasures found,
    • Player profile and score,
    • Game menu.

By dividing the game tasks in this way, each component can be built in relative independence to the others, speeding up development time. We don't have to worry about developers stepping on each others' toes, and Brook's Law is averted.

Development Workflow

Another component we needed to address was the turnaround time for code reviews. When you're trying to build a game in a month, you don't have time to review, test, and polish large changesets. Instead, we plan to make small, frequent commits.

That is, instead of building a huge thing, like the loot table, in one shot, we build a small thing that's part of it, like a "dice roll". That gets reviewed and landed in a matter of hours, and the next piece can be built on top of it. We hope that by working in this manner, the project can support the contributions of many people without slowing down.

Game Graphics

My good buddy Wightking created the tileset for DiamondQuest. Since we're going for a 16-bit inspired platform-style game centered around mining and archaeology, we have to have cool things for the player to find.

In order to keep things simple, we have three types of treasure block that are randomly scattered amidst the stone blocks that make up most of the map. These are the Fossil Block, which yields some sort of fossil or bone, the Artifact Block, which yields some archaeological artifact or other man-made object, and a Mineral Block, which yields various gemstones and precious metals.

Fossil Block

Artifact Block

Mineral Block

These are just part of the lovely tileset that Wightking built for the game. You'll see more in later updates!

Elizabeth Larson has also been working on the concept art for the miner character:

Miner Concept Art

Tileset images are part of the DiamondQuest Tileset by Wightking for MousePaw Media. Licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0

DiamondQuest character concept art by Elizabeth Larson for MousePaw Media. Licensed under Creative Commons Attribution-NonCommercial-ShareAlike-NoDerivatives 4.0

Join In!

See something you like? We'd love to have your help!

  • If you're a programmer, consider where you'd like to help: Map Generation, Player Movement, Math Screen, or Miner's Log. Of course, if you can't decide, you can always poke around until you find something interesting.

  • If you're a graphics designer, we need treasures! These would be larger, 16-bit style graphics of all sorts of goodies: ancient pots, dinosaur bones, coat hangers (yes really), rubies, gold nuggets, and of course, diamonds. The more treasures that can be found in the game, the more fun it'll be!

  • If you're a musician, we've love contributions to the OST. In a later post, I'll be sharing a sample of the original menu music I've composed for the game.

  • If you have any other skills that might be useful, and want to join in, we want you too! There are always lots of tasks that need doing, even beyond the obvious coding, drawing, and recording. Come on in!

Visit our website to learn more and join in the fun: mousepawmedia.com/developers/contributing

Top comments (0)