Contact me:
Morgan Goin
  • Home
  • Projects
    • Mafia: Definitive Edition
    • Mafia 3: Sign of the Times
    • Mafia 3
  • Resume
  • About
  • Student Work
    • Solo Work >
      • Xen Monsters
      • The Sixteenth Accord of Madness
    • Team Games >
      • Identity
      • SteamDrunk
      • Zero & One

Xen Monsters

A mod for Half-Life 2: Episode 2
Picture

Level Overview

Development info
  • Role: Solo developer
  • Engine: Source SDK
  • Genre: 1st Person Turn-Based Pet Battle
  • Players: Single-player
  • Development time: ~124 hours, 2014
Level features
  • Level up a headcrab in a series of Pokemon-inspired battles
  • Experience and leveling system, not native to Source
  • Defense and attack status effects during battle
Level summary
“Xen Monsters” is a single player stand-alone level for Valve's Half-Life 2: Episode 2. The player takes control of Gordon Freeman as he discovers and masters a new technology brought to Earth by the Combine: the ability to capture and train species from the multiverse for battle. Freeman must train a tamed headcrab in the White Forest and use it to fight his way past the monsters of the other resistance trainers in a series of Pokemon-inspired, turn-based battles.

Design Goals

Learn a new engine quickly. I had four weeks to build a complex level with interesting gameplay in an engine I had never worked in before.

Improve my skills as a scripter. I deliberately chose some technically challenging mechanics to replicate in the Source engine.

Incorporate playtester feedback into the design. I knew this would be a project that might not easily convey all of the necessary information to new players, and implemented every piece of playtester feedback that I could. Sometimes this meant changing my design from something I saw as obvious initially.

Xen Monsters

Picture

Picture
Picture
Picture
Picture

Overview map

Picture

Post Mortem

What went right
  • Stretching myself. By choosing a gametype that I knew would be difficult (turn-based combat) I was able to expand the range of features I could mock up with a limited toolset.
  • Scope. Initially this project was much larger, including a bigger map and the ability to catch and train multiple Xen monsters. It remains a large project, but I learned the difference between crucial features and ancillary goals.
  • Problem solving level up! I ran into so many problems with this project, but I expanded my debugging skills by fixing them.
What went wrong
  • Scope. This project became way more work than it should have been. Even with many features on the cutting room floor, there remained a set of core interconnected systems that had to be created and debugged together or the entire project would not capture the essence of Pokemon-style gameplay I was looking for.
  • Scripting interconnected systems. If even one component failed, the entire level collapsed.
  • Conveyance.  In trying to replicate some of the complex systems of Pokemon-style turn-based combat, I had failed to also include the excellent tutorials that came with it.
What I learned
  • Underscope. Projects always expand once I get into them. It would be better to deliberately underscope, particularly with projects in engines I am unfamiliar with. There are only so many hours in the day, and hard work is not enough to compensate for large initial scope.
  • If a feature is not conveyed to the player, it is not done. I spent the majority of my time on very intricate systems, and the rest of the time setting up the battle arena conveyance.
  • Be willing to admit when something is out of reach. I spent the better part of the first week, that I could have spent prototyping, trying to figure out Source SDK's GUI code so that I could have truly interactive arena buttons on the screen. I overestimated my abilities and wasted time because of it. 
Extended Post Mortem

Scripting

Code entities for all arena battles
Groups of code entities, labeled by function.
Grub entities. All enemies have a similar set of commands.

Full Playthrough Video

Download Level

Credits

"POKEMON- Route One" by MF-Greth

"Showdown (Pokemon Style)" by pokerockmario
Powered by Create your own unique website with customizable templates.