For the Stanford University Fall 2020 Curriculum, I built a small game project using mainly C++ mixed with some Blueprint in Unreal Engine. For those interested, the entire Computer Science course (CS193U) was provided through Zoom lectures and has been recor…

For the Stanford University Fall 2020 Curriculum, I built a small game project using mainly C++ mixed with some Blueprint in Unreal Engine. For those interested, the entire Computer Science course (CS193U) was provided through Zoom lectures and has been recorded. I’m working on getting this published and meanwhile, this project is already open-source through GitHub to be taken apart by anyone!
Check out the project file right hereon GitHub!
Description
The game was built with a wide set of features to cover a variety of useful coding concepts to students including AI, multiplayer programming, save games, async asset loading, etc. Check out the non-exhaustive list of features below, I’m sure there is more that I forgot to include or that will drip in at a later time.
Those interested in a GAS (Gameplay Ability System) style design might be keen to check out how we handled Abilities (Action.h) and Buffs/Debuffs (ActionEffect.h) as this shares many similarities with GAS design, albeit its much simpler.
At the time of writing, there isn’t a whole lot that makes this a real ‘roguelike’ with things like permadeath or proper RNG. But, I hope to extend this project later on with more relevant features to have a proper game loop to earn the name ‘Action Roguelike’.
Features
Below I’ve listed some of the more relevant features included in the project. I think these code samples can be invaluable in getting an idea on how to use them in the Unreal Engine eco-system. Especially things like Asset Manager have limited public examples, which is one of the benefits of this open-source project.

  • Third-person Action Character Movement
  • Action System (Gameplay Ability System-lite)
    • Dash Ability (Teleporting via projectile)
    • Blackhole Ability
    • Magic Projectile Attack
    • “Thorns” buff (reflecting damage)
    • Burning Damage-over-time effect
  • AttributeComponent (Health, Rage etc.)
  • SaveGame System for persisting progress of character and world state.
  • Heavy use of Events to drive UI and gameplay reactions.
  • Mix of C++ & Blueprint and how to combine these effectively.
  • GameplayTags to mark-up Actors, Buffs, Actions.
  • Multiplayer support for all features
  • GameMode Logic
    • EQS for binding bot/powerup spawn locations.
    • Bot spawning system (bots cost points to spawn, gamemode gains points over time to spend)
    • DataTable holds bot information
    • DataAssets to hold enemy configurations
  • Asset Manager: Async loading of data assets
  • Async loading of UI icons
  • AI (Ranged Shooter style)
    • Minion AI with Behavior Trees (Roam, See, Chase, Attack, Flee/Heal)
    • C++ Custom Behavior Trees Nodes
    • EQS for attack/cover locations by AI Powerups
  • Powerup pickups to heal, gain credits/actions (UMG)
  • Main menu to host/join game (UMG)
  • UI elements for player attributes and projected widgets for powerups and enemy health.
  • C++ Localized Text Example

Check out the project file right hereon GitHub!
What’s Next?
There is still a decent chunk of features I would like to add, including adding a proper game loop, items/abilities, Steamworks, etc. Whether these will actually see the light of day depends on many factors – including the final shape of the existing course recordings.