The Old World and the many realms beyond are lands forged and shaped by war. Armies of thousands march into battle for many purposes: to defend their homes, seek vengeance on a hated foe, and to conquer new lands. Be reborn as a legendary Lord, take control of your Faction and fight for all they desire as you expand your reign and eradicate your foes.
More about the Project
Tools: C#, JSON & FMOD
Development Time: 15 Days (+)
Team Size: 1 Person
Creative Assembly is a company I've looked up to for many years for its ability to create experience after experience, well-known
for dominating both the turn-based strategy and real-time tactics genres; from the classic Total War: Rome to the ground-breaking Three Kingdoms. Stuck indoors all day
I decided why not participate in a self-hosted Game Jam and practise some skills.
Just a quick disclaimer before we start: This game takes direct inspiration from Total War: Warhammer II and is meant more as a tribute with my own twist rather than a carbon-copy. A full asset list can be viewed here, as well as on the download.
Project made using Unity 2019.3.4f1 and FMOD.
All assets used were taken and edited from Total War: Warhammer II, or brought from the Asset Store from prior projects. This is not a commercial project, I will not be continuing my work on it for any external purposes other than this application (please don't sue me).
Warhammer II Wiki (website)
Warhammer the Trove: 2nd edition (book)
Warhammer Character Pack - A Grim World of Perilous Adventure (book)
Warhammer - The Player Guide: 3rd edition (book)
Total War Warhammer II HUD (with some edits)
Total War Warhammer II Wallpapers
The Hobbit: Armies of the Third Age Art
Dwarf Pack + Human Pack + Undead Pack + Orc Pack (Asset Store)
Top-Down Assets (Asset Store)
The Lost Lands (Asset Store)
Music and Sound Effects:
Blood Lust (Total War: Warhammer II Soundtrack)
Morr's Gardens (Total War: Warhammer Soundtrack)
A Land of Song & War (Total War: Warhammer II Soundtrack)
City of Kings (Total War: Warhammer II Soundtrack)
A Storm of Magic (Total War: Warhammer II Soundtrack)
Liber Bubonicus (Total War: Warhammer II Soundtrack)
Dark Elves Victory Theme (Total War: Warhammer II Soundtrack)
Total War: Warhammer II Click Sound Effect
From start to finish, this project took roughly 15 days of work to create. Below I'll briefly break down some of the more interesting elements I encountered while creating this project, and the thought process behind some of my design.
The very idea of creating a game inspired by Creative Assembly hit me once I realised it was coming up to the one-year anniversary of our first contact, and being stuck indoors, I found the idea of partaking in a self-hosted Game Jam a really fun idea. One of the first steps was the design of said idea, and I toyed around with some concepts that I thought could be enjoyable, however my ideas always seemed to return to the same general structure of having both a campaign map, and a unique combat system that would then add variety to the gameplay. I decided to base it conceptually on Warhammer rather than a historical time period simply due to the creativity this allowed, as well as the accessibility in terms of easy to gather visuals and aesthetics, but I would someday love to explore a more historically accurate representation of this genre. Starting with the campaign map was the easy part in terms of design, and I spent the first-week modelling and creating the terrain and map assets from images and free roam in Total War: Warhammer II. Copying the map with my own pathways and experiences was meant to be a tongue-in-cheek way to directly show where I got my influence from, but I believe the variety added a unique enough outcome to allow players who've played Warhammer II to still feel like they're exploring a new world for the first time.
In terms of the combat, I knew that this is where I could truly take this idea, and make it my own, and I was excited to create and design something original, and as such spent the most time paper prototyping simplistic real-time combat systems. During my research, I downloaded and played Total War - Battlefield quite a bit, it was just too convenient that a condensed Total War game made in Unity existed, and I couldn't ignore the influence it should have on my idea, but glad to say my combat ended up unique and fun in its own way.
Moving on from rigorous asset creation to brain curdling technical, numerical, and
system design, being able to step back once in a while and just write some cool narrative was truly a breath of fresh air. These classes and races were the most entertaining design elements I got to work on
simply due to the impact they added to the world.
Despite most of my skill set specifically angling towards technical design, I still enjoy all fields of design and indulge in simple elements such as
writing stories or characters as a bit of fun between the rest.
If you've played Warhammer II, you'd also notice the Lord names being similar to some of my favourite characters, this was clearly by no mistake - I wanted to show where I got my influence, from the layout of the terrain, to the music selection, and finally even to the character selection.
Currently, there are three random passages of text about each race in the loading screen with some world-building and tips, the initial descriptions in the main menu, and some more tidbits here and there around the map. At first, I wanted to go a bit wackier with the races, Skaven being one of my favourite breeds of characters out of any video game, but decided visual cohesion with the assets works better when creating an immersive product, eventually deciding to go along with what was available which was Humans, Dwarfs, Orcs, and the spooky Undead. There is still some visual synergy depending on what class the player chooses, and vastly seperate playstyles from larger visual range and movement speed, to unique armies.
A people of old and heirs to the land, an ambitious Tyrion vowed to reclaim his honour and rebuild his once glorious Empire back from the Orcs.
With a sword thrust into their hands from the day they could walk, most Humans are commanded to guard this spot, watch these prisoners, or kill those enemies, loyalty bred from such an age can surely never be broken.
Slow to befriend and quick to offend, Teclis has managed to rally the strength of his people to eradicate the desecration of their graves by the filthy Undead.
Dwarfs are a stout, proud race that are built for battle, standing thick and sturdy with axes in hand. After aeons of simply surviving, they only wish to venture back and reclaim their beloved mountains once more.
Known simply as a race of big, green, blood-fuelled-hitting-machines, Krog-Gar, the largest chief born in an aeon, vowed to wipe out the scourge of the Humans from their once flourishing land.
Natural-born beasts that thrive under war, many Orc Warriors, as well as their Mages, wield massive weapons held over their shoulders that have been told to split enemies with a single chop.
Dead remnants of long-forgotten wars, buried and forgotten, Skrolk has managed to rise once more, gathering an army of all shapes and sizes as he marches forward with rusted weapons and battered armour, death in his eyes.
No Undead can ever truly rest until they drag the rest of the living back to the depths of the beyond, their armies growing stronger after each blood-fuelled battle.
➢ A breath-taking fantasy world
Explore a world full of history, fallen civilizations, and hidden secrets as you aim to capture the opponents Castle.
➢ Warhammer inspired worldbuilding
Read through and pick familiar Factions, Races, and Classes; customising your own playstyle as you please.
➢ A world fuelled with memories
Explore the familiar Warhammer world and its infamous landmarks, zooming out to see its full wonder.
➢ A strategic real-time unique combat system
Learn to outsmart and outwit your opposition as you master the puzzle elements of the strategy combat.
➢ Custom A* pathfinding algorithm and self-wrote AI behaviour trees from the campaign map, to the intricate battle screen.
➢ A hand-painted and modelled terrain, personally sculpted with each tree, rock, and blemish placed strategically.
➢ Visual cohesion with custom shaders to blend numerous assets together, as well as the self-created visual filters and effects.
World design within both the Total War franchise, as well as the many different genres of Warhammer games, has always been a precise, well-crafted storytelling device.
Approaching this project, I looked at ways to utilise past code in order to make the process easier, things like my custom A* Pathfinding were simple enough
to replicate, but my procedurally generated Terrain didn't truly fit the game-feel I was attempting to replicate.
After testing a variety of world generation elements, I decided a pre-determined hand-crafted world would be best, allowing me to focus more on the narratives design, as well creating a variety of available races and classes to pick. Fortunately, since this project was made within Unity, creating a Terrain is as simple as selecting some brushes, changing the size, and painting over a large plane.
Since I wanted a more accurate end result, I first started by taking a map of Warhammer, and editing it in photoshop until it resembled a heightmap. This, of course, resulted in an incredibly jagged end-result, but offered enough of a template for me to start sculpting the rest. I'm no artist, and the entire process took nearly 5 days before I was truly happy with it. This involved a rigorous cleaning up of edges along each landmark, as well as adding some bumps and mountains. Next, I started painting the Terrain, choosing different textures for separate biomes and zones, as well as adding objects such as trees and rocks. The difficulty arose when attempting to make the Terrains visuals transitions between close-up inspections and faraway fly-overs, and I admit a couple more hours working on the specific details could have helped, but the clock was ticking, and I wanted on to move to the meat of the design.
The last thing I created was in Wonderdraft, a map-creation tool that allowed me to customise its effects more accurately towards my desired visuals, and allowing a smooth segue in-game by changing the visible layers. You can see this effect yourself in-game by starting a campaign on any character and simply zooming out enough. Make sure to fully explore the map, there are some hidden visual secrets placed around.
Warriors are slow but incredibly tanky, being able to take numerous hits before being forced to rally. Their attacks deal low damage, but can target enemies directly in front of them.
Archers are squishier but shoot across the entire board, as well as diagonally. Once confronted straight on they have no time to reload, and if not able to retreat or get assistance, simply
Wizards offer a completely new approach to combat, shooting in all four directions at once and dealing immense damage. However, as you would expect, it takes only a handful of attacks to finish them off, and since their range is small, they above all else require good placement in order to be useful.
Combat aims to be simple and uncomplicated to understand, prioritising easy to learn mechanics that can be further adapted rather than complex and over-bearing.
The purpose of this combat, despite this game being very similar to Total War, was to show off my abilities at programming and concept design, and I decided to attempt something
different, taking well-known elements from Total War and adapting them accordingly.
To start, all players have a set formation that they get at the start of the campaign, with each class having a specific turn-order. Being able to place your units was, I'm embarrassed to admit, an afterthought that came from the hours of playtesting, but it completely changed the design, jumping to a much higher degree of strategic afterthought that allowed every encounter to feel fresh and exciting.
Part 1: Movement
The code behind the combat is relatively basic numerators with pre-determined actions. First, all the Warriors on the field make their move, then the Archers, and finally the Wizards, each unit running some checks on whether they should attack, retreat, or move on to the next row. Likewise, all allies automatically move forward, and when encountering no enemies, move to the left, onto the row above. Enemies do the exact opposite, checking their row, before then moving to the row above, on the right. This results in combat always ending up with the remaining opponents waiting for each other at the very top, and makes for a simple but easy to understand system that automatically moves itself along.
Part 2: Stances & Formations
The interesting parts, however, and what makes each combat encounter different from the rest is the player's input, particularly with Stances and Formations. There are three different classes the player can control, and depending on what class they picked at the beginning, defines what formation their army has. Not only does each class have different stats, they also have unique playstyles and varying combos that make each of them unique, from being able to shoot diagonally or across the entire row, to dealing massive 2x2 AOE around themselves.
Stances are likewise very similar, with there being a selection of three that the player can pick, each slightly changing damage modifiers and playstyles. There's the Normal mode, which is the default, Attack, which prevents all allies from rallying, but ends up in them taking more damage, and Hold, where they stay in their position until told otherwise, dealing slightly more damage but not chasing the opponent down. It's important to learn to use each class, formation, and stances to destroy the opposition efficiently.
Part 3: Large Scale Combat
All of these elements then fall into place, allowing the players the ability to learn, adapt, and utilise new strategies and army formations to advance in the world. Ideally, I'd have more customisation with larger-scale battles on a much bigger grid, ability to buy and sell units, and overall more customisation, and if I ever come back to work on this, those elements would probably be where I start.
However, I believe the simplicity makes the combat more enjoyable, acting as a sort of small contained puzzle rather than large-scale mess, with each encounter remaining quite challenging and fun in how they play out. I hope you do end up giving the prototype a try and thank you for reading.