Designing the advanced version of a forgotten game from the 80s, and making it 3D printable at home
For many years me and my tabletop game playing friends have made the pilgrimage to Indianapolis for Gen Con, North America’s biggest tabletop gaming convention. Over 70,000 nerds from all corners of the world gathering for 4 days of wargaming, boardgaming, and roleplaying.
For me, Gen Con is all about one thing: the miniatures hall. Endless tables with scale miniatures in every possible variation: tanks, ships, planes, Napoleonics, battalion-scale warfare, wild-west shootouts, and more. The visual appeal alone is enough to bring me back year after year. Each game has its own complex ruleset refined after decades of convention play. My favorite are the entirely homebrew games, ones that were never published and are only played a few times a year at these large conventions.
One genre I find particularly fun to play is aerial combat. But one thing has always bothered me - these games almost always abstract away the height, reducing it to a simple number which is tracked. The terrain below is usually a painted mat, perfectly flat with no vertical height:
Another thing that bothers me is that movement and facing are often imprecise. Most aerial combat games use rulers or other guides to move the airplanes around, and rotations are particularly sloppy. There is often ambiguity about which aircraft are in line of sight of each other, and when multiple aircraft are close together it can be unclear which aircraft is in a particular location due to crowding:
And lastly, as much fun as it is to show up at Gen Con and be treated to games you cannot play anywhere else - wouldn’t it be great if you could play these special games at home with your gaming group?
What if there was an aerial-combat miniatures game that addressed these concerns, had convention-worthy visual appeal, and was 3d-printable by anyone?
During one of our regular games nights, a friend dug up a game from his childhood: 1988’s DragonLance. The goal is to fight other dragons in a race to complete a circuit around the map and capture the flag in the middle.
Although simplistic, the game is fun and implemented the fundamentals of what we are looking for: aerial combat with visually-represented height. The stacking of height tokens results in minimal height variations, but this is a significant improvement over the abstract number representations used in other aerial combat games. The dragon theme is unique and interesting, and the the capture the flag objective is a fun way to ensure that players are forced into contact with each other (combat and movement are both guaranteed). The primary issue with DragonLance is that the aerial combat and movement are extremely simplistic; as we were playing I kept asking myself - what if this game had the refined movement and combat of the military aircraft games?
We have our target: a turn-based “capture-the-flag”-style aerial combat game with a dragon theme. And everything should be 3d-printable with a standard FDM printer.
The name of the game? That’s easy:
Our design process will encompass the following:
One of the most fun and unique elements of aerial combat games is how movement is handled. A number of approaches have been taken:
One of the guiding principles of our game design is that movement and facing should be unambiguous. A hex-based system assures that the location and facing of each dragon will be restricted and visually obvious.
Another fun element of wargames is the tradeoffs/limitations of the different units available to each player. With our dragon theme we can achieve this by distinguishing different types of dragons based upon their stage in a lifecycle:
Wyrmling - The youngest and smallest dragon. Quick but weak, with limited attack options.
Drake - A mature dragon. Moderately fast, moderately strong, with limited attack options.
Elder - A formidable dragon with considerable combat experience. Slow but strong, with full attack options.
Ancient - A legendary dragon. The largest, wisest, and oldest. Slow but extremely strong, with full attack options.
Using a hex-based system, we can also avoid one of my biggest frustrations with most aerial combat games - crowding. If we assign small, medium and large-sized bases for our dragon units, we can subdivide a larger terrain hex to limit the legal dragon positions:
We also need to ensure that the direction each dragon is facing is unambiguous. We can enforce this by only allowing dragons to face one of the 6 edges of the terrain hex:
When it comes to legal moves, we can start by using the traditional aircraft movements.
Forward (F1-F3) - The dragon moves forward (in the direction it is facing) a total of 1, 2, or 3 hexes, with the maximum distance determined by the dragon type. The dragon’s facing does not change.
Left Shift or Right Shift (LS / LR) - The dragon moves into the hex located immediately forward and leftward (or rightward), without changing its facing.
Left Turn or Right Turn (LT / RT) - The dragon turns 60˚ counter-clockwise (or clockwise) in the current hex, before moving forward 1 hex (in the direction it is newly facing).
We won’t allow flying in reverse (it is hard to imagine a dragon doing that) but we can have a flip movement which spends a turn turning around.
Flip (F) - The dragon remains in the same hex, at the same height, but changes facing by 180˚.
Similar to a helicopter, we should add a “hover” movement which allows a dragon to remain in the same hex by flapping its wings:
We want a fast-paced game, so we will limit the amount of consecutive hovers - two hovers in a row will be considered an illegal movement and will result in the dragon falling and incurring some damage.

We will need the option for dragons to go up and down in height, we will call those moves Climb (+) and Descend (-).
Airplane games typically have complicated maneuvers such as the Immelmann turn, stall turn, barrel roll, etc. - but we will aim for simplicity and keep things restricted to the movements listed above.
We can summarize all of our desired movement actions in the following diagram:
One of the most enjoyable aspects of movement in aerial games is the feeling of inertia and chaos. Since the games are turn-based, each player must make assessments of every other player’s likely next actions and future positions. Due to restrictions on the possible movements (for example, limits on how far a unit can rotate in one turn) a good player will often correctly predict your enemies and allies will end up. To increase the difficulty in doing this (and to give players a chance to escape), most games have players plot their movement for multiple turns at once - preventing immediately course-corrections. This adds an element of chaos which can be helpful when trying to confuse your enemies or escape from a challenging situation - but also greatly increases the satisfaction of correctly predicting your opponents moves.
For our game we will have players plot out movements for 3 turns at once, calling that one Round.
Aerial combat games typically take one of two possible approaches to combat:
The first approach (non-plotted attacks) is a bit too easy in our experience, so we will go with pre-plotted attacks (which rewards strategic thinking). Regardless of the approach taken, attacks usually deplete some limited resource (e.g. bullets, missiles).
We want a variety of attacks, so we will go with three main types:
Fireball (F1-F5) - The Fireball attack launches a fireball 1 to 5 hexes forward (in the direction that the dragon is facing). The maximum range is determined by the type of dragon, and the fireball may be fired at any range less than or equal to this maximum. The fireball remains at the same height as the dragon that launched it. All dragons at that height in the targeted hex are hit. There is no effect on any other hex.
Fire Breath (FB2-FB5) - The Fire Breath attack launches a stream of fire which targets all hexes between the dragon and the target hex (in the direction that the dragon is facing). The maximum (and minimum) range is determined by the type of dragon. The stream of fire remains at the same height as the dragon that launched it. All dragons at that height in all targeted hexes are hit.
Close Blast (CB) - The Close Blast attack is a close range attack, targeting the three hexes immediately in front of a dragon. The Close Blast attack creates a wall of flames directly in front of the dragon, which extends from 1 height above the dragon’s current height, to 1 height below. In total, 9 hexes are targeted. All dragons at those heights in the targeted hexes are hit.
We can think of these three main attacks as our version of the projectile, flamethrower, and explosive-style attacks found in other wargames.
Something fun we can add to our game which is not found in other aerial combat games is an opportunity attack between dragons that get too close to each other. This will further discourage crowding and keep players moving. We can think of this as the dragons clawing or biting each other.
We can summarize all of our desired combat actions in the following table:
Attack | Range | Area of Effect | Damage | Energy Cost |
---|---|---|---|---|
Fireball | 1-5 | Targeted hex (at current height) | 4 | 1 |
Fire Breath | 2-5 | All hexes between current and targeted | 4 | 2-5 |
Close Blast | 1 | 3 forward hexes (-1,0,+1 of height) | 2 | 1 |
Melee | 0 | Current hex | 1 | 0 |
We can limit the eligible attacks for each dragon based upon their type. In addition we will make each attack use up limited energy:
Dragon Type | Available Attacks | Energy Points |
---|---|---|
Wyrmling | Melee, Fireball (range 1) | 15 |
Drake | Melee, Fireball (range 3), Fire Breath (2-3) | 15 |
Elder | Melee, Fireball (range 3), Fire Breath (2-3), Close Blast | 15 |
Ancient | Melee, Fireball (range 5), Fire Breath (2-5), Close Blast | 15 |
Each dragon has a health and energy level which need to be tracked and made visible to all players at the table. For tracking these levels, we need something which is easy to read for all players at the table. Players should be able to assess the status of all dragons on the board during their plotting phase.
A series of ratcheting wheels is a satisfying solution:
Unfortunately after extended use the ratcheting mechanism loosens up enough to be annoying, so an alternative approach using a slider was also designed:
During the plotting phase, each player will need to be able to plot 3 turns worth of movement and combat actions for 4 dragons, in secret. At the end of the plotting phase, plotted actions should be easily revealed to all players in a concise and easy-to-understand way. We can achieve this by using a hex on the plotting board to visually distinguish the results of the various movement actions. This way, the plotting board itself acts as a quick reference for where the dragon will end up after the plotted move. For combat action, we can distinguish the various attacks by the use of additional pegs (a line of pegs indicates a Fire Breath, as opposed to a single peg indicating a Fireball). After much experimentation we end up with the following design:
And when printed out at full-size for each player:
To plot actions, we design a peg which is easy to print in mass quantities. Here is an example of a fully-plotted turn for a player, with movement and combat actions plotted for each of their dragons:
This plotting board design allows players to hide their plotting actions during the plotting phase by holding the board vertically, but once revealed (placed down on the table) everything is easily seen at a glance by all other players.
DragonLance has the players racing to the center of the map through checkpoints located on the opposite side of the board from their starting position. This arrangement ensures that players will come within range of each other, forcing a quick start to combat. We should have a similar mechanic in our game: players spiraling towards the center of the map before capturing the “flag” and returning it back to their starting position.
Since we are making a dragon-themed game with strong visual appeal (with height being visually represented), there is an obvious solution: a tall mountain at the center of the map. At the summit of the mountain, we can place a dragon egg (as our “flag”). For more visual interest we can surround the mountain by a forest, and surround the forest by plains. Each player will have a starting lair for their dragons’ initial positions. As a hex-based game this symmetry allows up to 6 players which is a good amount for a convention game.
Our map (and the height of each terrain hex) will be the following:
The height of the mountain hexes requires players to spiral around the mountain to gain as much height as possible as quickly as possible on the way to the summit.
For starting positions, players will have 3 hexes for their dragon lairs. Their Wyrmling will start on one of the field hexes just outside the lair, and inside the lair their Ancient will occupy the middle hex. The player can place their Drake and Elder on the left or right hexes at their discretion:
For the size of each hex, we have a couple of considerations. We want the game to fit on a typical dining room table (a standard width of 36" to 40"), so that the game is still playable outside of a convention. And we need the hexes to be large enough to fit our dragon bases. A 3" diameter is the sweet spot:
3D-printed hexes of various colors are sufficient, but for a premium feel (and to maximize visual appeal at a convention) it would be ideal to have proper chipboard hexes with imagery on them. This can be achieved at home rather easily with color printouts, spray adhesive, chipboard (0.05" thick) and some method of cutting the chipboard (in our case, a 40W CO2 laser cutter):
The 3D-printed terrain system should be modular (to allow easy packing and unpacking) and flexible enough to allow custom maps if players want to try something different. We want a system which snaps together easily and allows for variable height at arbitrary locations. We also need to keep in mind the required printing volume, as we cannot expect everyone to have a large-format 3D printer. We will stick with the dimensions of the extremely popular Ender 3 (220mm x 220mm x 250mm), as this is the most common entry-level FDM printer in the hobbyist community.
After various iterations we settle on the following modular components:
Assembly is simple:
We need 4 types of dragons, representing 4 different life stages (increasing in size). The size of the hex constrains the size of our dragon bases, which gives us a volume to work within. We want distinct silhouettes which are easily discernible on the gameboard. We can throw together what we need in 3dsmax.
Wyrmling:
Drake:
Elder:
Ancient:
The mounting platform mates up with the dragon bases to ensure our dragons always have a legal facing. We add a marking line on each mounting platform to provide an additional visual indicator of the dragon’s facing:
Printing the dragon models on an FDM printer produces adequate results, but the higher resolution of a resin (SLA) printer would produce better results:
In addition to the dragon models, we also need an egg token with a way to attach it to the dragon which has captured it. A simple approach works:
We need a 3D-printable system for elevating dragons to their appropriate height. We want this height system to be modular and easily adjusted, ensuring heights are at discrete values of 1 to 9 units (with the possibility of extending higher if needed).
Our initial approach was a stacking height riser:
This works fine, but it is cumbersome and slows down gameplay. Inserting a new riser or changing the facing of the dragon both require removing and replacing the dragon (or one of the existing risers). One of our design goals was fast-paced gameplay, so to address this a telescoping solution was designed:
The bottom piece of the telescoping riser can be used similar to the previous stacking height riser, or the top may be removed and the telescoping feature added:
To enable easy changes in dragon-facing, the bottom of the telescoping riser has a ratcheting mechanism. This allows players to simply rotate the riser without removing it, and the ratcheting mechanism ensures that only legal facings are used:
This modular height system allows any required height to be achieved in a stable and consistent way:
UPDATE: This height system works great and enables fast gameplay, but after extended playtesting (as players became more comfortable with the game and its rules) an even faster height system was desired. A speedier system was designed, based upon standard 2mm carbon fiber rods (commonly used for RC planes and other DIY hobby purposes):
Grooves are etched out with a sharp blade, and filled with white paint:
The dragon models are modified to have a 2mm hole through the middle. The bottom of the dragon bases features two “grippers” to ensure a tight fit against the carbon fiber rod:
And the dragon bases are modified to have 2mm holes for mounting the rods:
This alternative height system works nicely:
We lose the discrete dragon facings, but the speed gain when adjusting dragon height during gameplay is considerable. Although this height solution is not fully 3D-printable, it is still accessible thanks to the standardized 2mm carbon rods being readily available. Players can choose whichever system works best for their group.
In the above sections we’ve discussed the final decisions that were made, but it took 9 revisions to arrive at the current version of DragonWars. At each step along the way, the game was playtested with 2 to 4 players.
During the development process, a full manual was maintained, containing the ruleset up to that point in time. For each playtest, players were given a copy of the manual and left to read it on their own - this helped to clarify any confusing rules or poorly-worded sections of the manual. Games were played using the rules as written at the time of playtesting. Copious notes were taken during each playtest noting unexpected situations, rules that seemed unfair/incomplete, and any suggestions from players:
These notes were reviewed after each playtest and the next revision of the game would implement all changes which were deemed appropriate. In a few cases, rules were “rolled back” after a playtest if the change was found to do more harm than good.
We end up with a balanced set of rules, detailed in a complete Rules Guide:
The dragon models could use improvement - it is still difficult to tell which direction dragons are facing, and the dragon poses look awkward when they are in an elevated flying position.
Both of the height systems are quick to adjust, but the mathematics of height changes becomes confusing when a flying dragon moves over terrain that itself differs in height. The mathematics is simple in principle, but in practice it is confusing and easy to get lost as players are moving their 4 dragons amongst all the other dragons on the board. There should be a way to make this simple and intuitive - perhaps having a numeric height value written on the corner of each terrain hex might be sufficient to simplify the mental math.
Combat is still too punishing for inexperienced players who are not skilled at predicting the movements of other players. Too often a plotted combat action is forfeit as a result. I have an idea of abandoning pre-plotted movement and instead implementing “combat cards”. Specific dragon types would still be eligible for the same combat actions they are eligible for now, but each player would select a few of these combat cards (without revealing them to all players). After movement actions are completed, players could use their combat combat cards for any eligible dragons. This strike a balance between totally pre-planned combat, and the too-simple approach of allowing all possible combat actions each turn.
The default gamemode of “Capture the Egg” takes advantage of the terrain and is fast-paced and fun, but players may enjoy a more “dogfight-like” experience. We can offer two additional game modes to satisfy these players:
We’ve achieved our goal: DragonWars is a fun, fast-paced, visually appealing convention-style aerial combat game, 3D printable by anyone at home.
A two-player game of DragonWars:
A four-player game of DragonWars:
You can obtain the latest version of the manual, 3D-printable files, terrain hexes, and everything else here.
If your group makes any tweaks or improvements to DragonWars, please reach out and let me know!