All Projects

Ascension v0.0.1

wip title page
Roguelike Game adapted from the novel TGCF

  • Built a 2D narrative action game in Lua’s Löve2D framework, featuring real-time combat with melee, ranged, teleport, and dodge mechanics, plus wave-based scaling enemies and branching dialogue sequences.
  • Made this game with a friend, you can watch a video of our progress here.

Disclaimer: Spoilers for the novel and game upcoming.

Background

Having recently finished reading all 8 volumes of the very popular Chinese danmei novel series Heaven Official’s Blessings, (aka 天官赐福 Tiān Guān Cì Fú) I was moved by how Hua Cheng gave up his life twice in service to his God, spent 800 years searching for him, and remained his sole believer when all others had abandoned him.

I wished they explored more of his backstory and his point of view. Here are some excerpts from the novel to show you how interesting of a character he was:

At one point in his time as a Supreme, Hua Cheng challenged 35 gods. 33 of them were those that chased away Xie Lian from the spiritual mountain, as well as Mu Qing and Feng Xin. If they won against him, he would give them his ashes to scatter. If he won, they would have to step down from Heaven. Mu Qing and Feng Xin both ignored the challenge, but the others took it on as they believed themselves to be superior. He fought the Martial Gods and debated against the Civil Gods, resulting in their utter defeat.

However, the gods refused to honor their agreement, pretending that the fight and the preceding agreement never took place. Hua Cheng decided to help them fulfill their promise by burning down the 33 gods’ temples in the human realm. This act caused an uproar and Hua Cheng got the moniker “Heaven’s Scourge”.

I wanted to make a game from his perspective. I also was inspired by twitter user @akkaccel’s concept art of a potential TGCF game.

tgcfrpg
one of four of twitter user @akkaccel's concept art for a potential TGCF video game

There were a few main areas I could start from:

  • Being saved by Xie Lian as a child.
  • Him sneaking off to be a soldier to fight against Yong’an.
  • Ghost fire adventures (my favourite personally)
  • Wuming
  • Mt Tonglu adventures
  • Challenging 35 Heavenly Officials
  • Meeting Xie Lian again + main story

I decided to go with the 33 heavenly officials plot because it seemed the most clear cut narrative and straightforward gameplay; fighting people, maybe Ace Attorney style debating, maybe some burning down of temples.

outline
Gameplay Sequence Flow Diagram

The First Prototype

First Day

prototype of the game
Early prototype footage, made a simple single file, single enemy game to show to friends

I started off by making a single file, single enemy game to get a feel for what it would be like. I chose to make the game in Lua because firstly, I was hooked on playing Balatro at that time and learnt that Balatro was made in Lua, specifically Löve2D, a lightweight framework that had endless potential and possibilities, and was known to be good for making 2D games in.

And secondly, I didn’t think I could start out with anything but a 2D rendition of the game I had in mind. I didn’t know anything about Unreal Engine, and I didn’t think I had the time to master it to make a game with it that quickly. Also the last time I tried to install Unreal Engine 5 on my mac it sounded like a jet taking off.

So currently what we had was:

  • Player ranged attacks
  • Player teleport ability with NO cooldown
  • Enemy follows player around but doesn’t attack
  • 300hp for both player and enemy

Second Day

The next day, I added some dialogue options and a placeholder debate section.

hua cheng
Gameplay still of Hua Cheng
angry heavenly official
Gameplay of masked out image of Shi Qing Xuan, though the dialogue doesn't fit his personality

I showed this version to my friends, and one of my friends said he wanted to contribute, so that very night we started working on it together. I thought I should implement a wave structure to the game to make it more longlasting.

waves
Final wave logic
  • 6 Waves
  • Player 300 hp >> 100 hp
  • Player and enemy health bars instead of a number
  • enemies attack u
  • diff kinds of enemies (ranged, charging, melee)
Iterating on design choices for certain enemy types
Discussing balancing for enemy types

Fixes:

  • teleport feature too broken (TOO GOOD), there was no range and the cooldown was ridiculously low
playtesting the teleport feature, mutual agreement that it was too overpowered
  • glitch: cannot die
while playtesting we ran into a glitch where the player does not take damage from certain actions

Third Day

We were still concerned about the difficulty of the game,

My friend commenting on the difficulty level of the game

We also added some new features:

  • dodge ability
  • limited the range of the teleport ability
  • Balanced enemies

Fixes:

  • We found an unintended bug where the dodge ability literally slows down time, including the environment.
Dodge ability slows down the environment, enemies, projectiles
  • While playtesting, we also found a bug where you can’t move while casting teleport. We realised it was unintuitive and unsatisfying to use, so we decided to change that.
Player cannot move during teleport.
Unintuitive and hard to get used to.

Fourth Day

  • can move during teleport
teleport bug fixed so you can now move when activating teleport
  • dodge no longer slows time
  • health regen orbs drop when enemies die
health regen orb drops

Fixes:

  • health regen drop too low chance

  • Made Mac and Window executables and uploaded it in a release on github! And the windows version can self-update. (I think.) Asked my non tech friends to try it out and it worked for them

release
Created a release for the game on github! so exciting

Things we have left to do:

  • Dungeon style
  • Shops, rooms with BOSSES
  • Debate section
  • Burning down temples

(These are not happening lol)

I guess, if you’re still here, I’m trying to make this game in Unreal Engine and C++! :) Stay tuned I guess!

See all projects.