Home

MiniMayhem

A tactical strategy game - Ludum Dare #56

Project ID Card:

  • Project Type:

    Game

  • Platform:

    PC/WebGL

  • Team Size:

    Solo

  • Role:

    Solo Developer

  • Engine/Software:

    Unity

  • Project URL:

    Ludum Dare Website

MiniMayhem is a tactical strategy battle game, where the player faces off a computer enemy in a duel. With their very own selected roster of soldiers, they will summon these creatures from under their bed to go raid the enemy's toy chest under theirs. Overwhelming their enemy and countering their armies is key to survive this tiny battlefield with the help of your tiny soldiers.

Created for the Ludum Dare #56 game jam, and submitted as a "Jam" entry (72 hours, relaxed ratings, more competition) with the theme "Tiny Creatures", MiniMayhem was my second submission the the Ludum Dare event but the first "serious" one where I participated correctly with results I could be proud of. It was inspired by classics like Age of Wars and Clash Royale from my childhood, simplified to be possible to assemble in the time constraints of the event and to fit my style.

Gameplay Elements

Hero Roster: MiniMayhem has a total of 10 different heroes to pick from, all different and useful in their own way;

Automated Enemy: without a network component to the game, the player fights against a robot summoning and defending on its own;

Deck of Soldiers: for each game, the player can chose 5 of the available heroes to assemble the team they want to come up with unique strategies;

Bases: represented by beds and toy chests, the player bases are the targets of the heroes. Once one base has been destroyed, that team loses;

Bases of both teams

List of the heroes

Devil

ATK:  50

HP:  50

SPD:  3

RANGE:  2

ATK DELAY:  3

TARGET:  Weakest enemy in range

ATK:  100

HP:  50

SPD:  3

RANGE:  1

ATK DELAY:  5

TARGET:  Rush (enemy base only)

Bomberman

Bully

ATK:  50

HP:  100

SPD:  1

RANGE:  3

ATK DELAY:  2

TARGET:  Weakest enemy in range

ATK:  25

HP:  100

SPD:  1

RANGE:  3

ATK DELAY:  1

TARGET:  Closest enemy

Knight

Mortar

ATK:  75

HP:  50

SPD:  0.5

RANGE:  8

ATK DELAY:  5

TARGET:  Closest enemy

ATK:  5

HP:  25

SPD:  2

RANGE:  2

ATK DELAY:  0.5

TARGET:  Closest enemy

Pipsqueak

Rain

ATK:  50

HP:  5

SPD:  1

RANGE:  5

ATK DELAY:  0.5

TARGET:  Random enemy in range

ATK:  150

HP:  50

SPD:  3

RANGE:  2

ATK DELAY:  5

TARGET:  Rush (enemy base only)

Ram

Toothpick

ATK:  75

HP:  20

SPD:  1

RANGE:  5

ATK DELAY:  2

TARGET:  Closest enemy

ATK:  10

HP:  250

SPD:  0.5

RANGE:  2

ATK DELAY:  4

TARGET:  Closest enemy

Brick

Gameplay loop

In order to begin a game of MiniMayhem, the playe must first necessarily pick out exactly 5 heroes from the list (as seen above) into their deck. They will only be able to use these 5 heroes during the game, and can only change their selection from the main menu.

Deck UI in the selection menu and during the game

Once they have a full deck, the player can enter a game. They will then need to wait until their energy bar is ful enough to spawn the unit they want, filling over time to a maximum of 10. From there, the player has to decide their strategy with which units to send, if they want a big army at once or smaller groups to exhaust the enemy, spawn specific units to counter those coming for them, or even if its worth it to spawn costly units in favor of more smaller ones.


As the game progresses, one team or the other will inevitably begin to faulter and get overwhelmed. As such, their enemy's troups will reach the toy chest at their base and start damaging it. Once the chest's life, materialized by the vertical healthbar on the side, is depleted, that team loses the game.

Automated Enemy Team

As the game jam format did not allow me time to implement networking, or even same-screen multiplayer, I had to develop a system to simulate an enemy player to fight. This enemy had to appear somewhat intelligen, not make predictable decisions, and feel like it could be a real player facing you.


To do so, the enemy team's "brain" operated along a few specific guidelines I implemented :

  • Set "reaction" delays between each action to mimic thinking and reaction times

  • Actions to choose from, either Spawning a random unit, marking a pause delay, or regenerating a moveset

  • Plan action in lists of 1 to 7 actions

  • Do each action in the list in order, waiting until it is possible if there isn't enough energy yet for the unit

  • Once the list is completed, generate a new list


Thanks to this ruleset, the enemy's moves appear randomised enough to be unpredictable, but are also dictated by the same rules as the player in terms of delays and needing energy. While this means the enemy isn't "intelligent" and doesn't in fact react to the game at all, this maintains enough of an illusion to feel plausible.


In a possible further improvement of MiniMayhem, the enemy brain could be given difficulty levels, adjusting either their energy rate, reducing delays, and, of course, adding features to let it better react to the actions of the players and the units in play.

Related Articles