Showing posts with label Reclamation Project. Show all posts
Showing posts with label Reclamation Project. Show all posts

Saturday, September 25, 2021

Reclamation Project - Part 8: A Fatal First Impression (Boho Youyoumu)

This is a two part series focusing on the fan game Boho Youyoumu. Systems analysis can be found here.

In the previous post we focused on analysis and game mechanics. This time, we're focusing on the story itself impressions of the design and game flow, and how the player would expect to see notable encounters throughout their experience.

This time I'd like to walk through the first few minutes of this game. There's a particular story that the design lends itself to and a series of mishaps that is likely to happen the first time anyone plays this game.

A colored map with many of the game mechanics has been created by Ace of Hearts. If you want to follow along with the map instead of playing the game yourself, we're starting right in the center of the map.

First Impressions

There's a bit of story to get started. Yuyuko tosses Youmu off a cliff while explaining that she is hungy one and must retrieve her two swords - Roukanken and Hakurouken - because Yuyuko lost them while she was carving delicious turkey. Just kidding, I have no idea what they're saying and the story matters so little to the gameplay that you could replace the text with nacho cheese and drool with no ill effects.

The entire purpose of this setup is to give the player an "excuse" to adventure. You have some limited exposure to the character, their goals, and how they would approach the situation. It's a bit like getting in character and setting up the scene so you, as the actor behind this character, have the motivation to continue.

The cutscene appears to fade out and back in on actual gameplay. This is sleight of hand; you don't have control until the scene effectively ends after Youmu stops bouncing off the walls careening down a massive pit. The pit itself is uninteresting, but around halfway down you encounter something odd:

This is the first hint that there is something more to this world than meets the eye. It may be bland and empty, but there's things to find and places to explore. It's also the first hint that this is a Metroidvania style game. You will be coming back here at some point just to find out what this is.

We finally get control over the main character at the very bottom of this space. This is the first time the player gets to become Youmu and can experiment with what she can do. What can we glean from this space here?

Not much.

The space itself is a repeating texture that appears just as large as the player character. Closer inspection of the background reveals it too is the same texture. We came from above and can go left or right.

The UI is small and out of the way. We have the character's name, a health bar, EXP, whatever "KRN" is, and a coin counter. The developer decided that these mechanics needed to be visible at all times, so they should be important and central to the gameplay.

What about Youmu herself?

She can do three things: move at a constant rate, jump about halfway up the screen, and shoot bullets the size of her body that abruptly disappear when they get a bit further away than this.

There isn't a whole lot else that we can glean from this area. Other games have trained players to think that going right equals progress, so let's go there.

The very next screen has a few characters that we would recognize from Touhou 7: Yukari, Ran, and Chen. I want to say that Yukari has apparently lost her pudding and needs to take her Shikigami and her Shikigami's Shikigami on a walk to find them.

This room is larger than one screen. The camera naturally pans down and our rivals are heading out. Let's chase!

The setup for this scene leaves a bad taste in my mouth. The player doesn't know it yet, but there's a shop directly past the top right exit. They also have no indication just how important the shop is to the core game loop. Even the most careful player is likely to wander down a corridor, backtrack, get themselves hit a couple times, and die. Without visiting the shop they don't have a save and get booted back to the main menu with nothing apparent gained.

This problem is made much worse by the shop being the only mechanic in the entire game that can provide healing. Just walking in refills your health and saves the game. The shop provides potions to heal with and serves as a central hub around which you explore outward. Without any of this you're left wandering around clueless and the possibility of saving your coins or for the eventual long trip is impossible.

Keep this in mind as we move forward. I'm going to walk through the most likely scenario and how I played the game the first time.

While the story about the Yakumo family chasing pudding is still going on, the player meets their first obstacle: a fairy. This encounter is in an unsafe area and the player doesn't know how it's going to react, so they need to take quick action. The most likely way of dealing with that is the same as what happened 5 seconds earlier: down the hole! They've probably gotten hit in the process and with the other fairies around they need to keep moving and shooting and...

What's this shiny thing? I'm sure we've seen one of these before right at the beginning of the game. Time to fight back!

A bit of investigation does nothing here. Shooting the walls don't do anything, killing all three fairies doesn't do anything either, and there's nothing apparent about the level other than this repeating texture with shiny walls and flat floors.

Investigating the next room has nothing apparent for secrets either. They'll continue along shooting fairies and jumping around for a moment until they reach a point of no return.



Curious players will jump down the pit and spot another one of those glowing orbs. A bit of experimentation later and the secret to this item will reveal itself: some of the walls are not what they appear to be. The reward? A charisma pendant.

With new knowledge in hand, we can find the answer to the first riddle: another hidden wall. Our prize? A health-increasing mushroom!


Act 2: Wait, aren't we in the first act? This only took 3 minutes


Most of the game revolves around exploring an area as far as the player feels comfortable and returning to the shop. I cannot stress enough how badly this idea is communicated to the player. In fact, after the player dies the first time they are going to walk left instead of right at the start and end up here instead.

That is a wall that is just slightly too high for Youmu to jump up. It's a bit infuriating actually; Youmu's jump height at this point in the game is 4 tiles high. The spot she's trying to get up is 5 tiles high, just out of reach.

...this post is unfinished because the game just gets worse from here. You wander around blindly with your health slowly being whittled away, everything looks exactly the same, and honestly I just like analyzing bad games. There's a special kind of fun that can be had from ripping apart a game that is exactly as deep as it looks, and even if I did re-create the entire thing there isn't a whole lot to go off of.

Ah well. Let's wrap this project up.

Reclamation Project: Part 9 - The Last Piece, Tinkers' Construct

When I first started on this project, I had set out to analyze and 'reclaim' all of my past. I wanted to re-contextualize everything into the new framework I have, and try to understand how I could have spent so much time buried under myself desperately trying to dig myself out of a hole that could only be described as a garbage-fire that had been both given to me, and fueled by me. I set out to tear things apart, put them back together, and finally have a past that could have normal human emotions.

Nostalgia, anger, fear, and boredom. These are the emotions that I have gained in this time period. These are basic human emotions; any kind of experience that doesn't have these is missing a fundamental part of how the world works, and how people can operate.

There's a deep part of me that wants to continually take things apart and put them back together. It's the designer, the problem solver, and the incremental improver all trying to do something at the same time that really makes me tick.

There's only one thing left to reclaim. That is the greatest thing I have ever done: Tinkers' Construct.

I've spent a lot of time helping out with the design of the new version. It's everything that I had ever wanted to make in the past, at least as far as tools are concerned, but I still wanted to go through the mod and see what was still left to do.

Here's my conclusion:

Tinkers' Construct is a system for producing tools that can be created, maintained, and enhanced over the course of a game. These tools should be modular, personal, and grow alongside the player.

Tools are a means to an end. Building a castle, hunting creepers, and exploring a a world are fantastic experience that were held back by the limitations of the systems in the game they were built in.

The system was built to last across an infinite time scale. It can be adapted and reshaped, but works best in a long-term game.

The system itself is a module in a larger experience. It can be used to enhance each aspect of the game it's in. In the game it was in,the mod tied gameplay, exploration, and progression into a single unifying dynamic that was present from the very beginning.

The ultimate goal of the system is to move itself into the background so that the player can experience everything Minecraft has to offer, mods and base game alike.

If I were to begin again, I would build up a game with similar systems that span across everything, interweaving the progression of each one together in a way that feels intentional, purposeful, exciting, and focus on either dynamic, linear, or expansive gameplay.
It's fairly obvious that I've already started on this. Trying to build a modular human with a baseline that can be expanded into infinity isn't that much different from trying to build a modular tool. Building a modular world has a different set of assumptions, but I keep coming back to the idea that I can make things exciting by adjusting things on the fly. 

 This idea is pervasive; I really, really, really want to build a game that has modularity baked into its core, done on a level that demonstrates such a high level of skill and passion that I can enjoy the game so many times... well.

This is the last thing I am going to reclaim. I have studied enough, tore things apart, and designed enough things that my understanding has a baseline. I would say it's time to move on, but it looks like I've already done that.

Honestly, I can't be bothered to write up much more on this project. All of the interesting bits have been explored already, and working on new designs from my change in perspective is a lot more satisfying than dredging up the past and looking for things I missed. Some fundamental part of my motivation has changed. I believe that's for the best.

This project has served its purpose. It always had a kind of ticking clock built into it. I do very much want to build up new things based on old ideas, but I want to have things set up first.

There are things I want to come back to, but only when I'm ready. Today, it is time to build up the foundation of new things.

Reclamation Project - Part 7: Systems Deconstruction (Boho Youyoumu)

 

某方妖々夢, often romanized as "Boho Youyoumu", is an obscure fan game based loosely on the Touhou franchise. The game follows Youmu - the fifth boss in Touhou 7: Perfect Cherry Blossom - as she explores the world of, uh, programmer space.

The author's website was taken down a month ago. You can download a copy of the game on Touhou fan sites. The game is shown off with a half-baked english patch and all of the weirdness that comes with it.

A program that helps with Japanese fangames is Locale Emulator. Many fangames don't run properly if the system language is set to anything other than Japanese. In this case, all it does is fix the title on the window to display properly. It doesn't affect anything if you do use the english patch; without it the window title is garbled, all of the in-game text is unreadable, and if you were already running Japanese locale you wouldn't notice anything at all.

Personal Note

What is it with this game? Is there some kind of perverse sentimentality that keeps bringing me back? Is it the always-excellent Touhou music remixes? Maybe it's the utter amazement at how a world void of any compelling level elements can still hold my attention? Perhaps it's the unique mechanics that I haven't seen anywhere else?

I've played this game to death. Let's just tear it apart.

System Design


First and foremost, this game is a Metroidvania styled platformer. Upgrades and abilities are scattered around the map. The game also has an undercurrent of RPG mechanics such as experience and equipment. Superficially the mechanics resemble Castlevania: Symphony of the Night, but in a Touhou themed package.

You have 4 buttons at the start of the game: Jump, Attack, Dash, and Pause. Any standard controller would be able to play this game with buttons to spare.

•  Movement

The entire map is made on a boxy grid system. The player character and every single enemy except for one boss are the same size: one square tile.

Youmu moves at a constant rate when the controller is held down. There is no accelleration; she turns on a dime and can spastically dance in place. Initially she can jump 4 tiles high, increasing that to 5 tiles with the boot upgrade.

Colliding with enemies, bullets, or traps does not stop movement at all. There is no knockback anywhere in the game for the player, enemies, or traps.

Design Note: Movement is extremely basic at the start of the game. The dash upgrade is a breath of fresh air after all the precise platforming early on the game and the level design accomidates that fact.

•  Combat

Youmu starts out with a large shot weapon. It has a pathetic range and pitiful damage, but can be pressed rapidly to attack everything nearby. You will be spamming this attack on everything; enemies right at the beginning of the game take 4 hits to kill. Shots can be fired in any of the cardinal 8 directions and travel at a fixed speed, meaning that running forward while shooting the shots appear to travel slower compared to the character.

With the limited range and speed of the shot, I constantly find myself getting close to an enemy, shooting them, and watching for return shots. Backtracking is worse: enemies aren't particularly hard to avoid, so early game ends up as a dodge fest.

The enemy's shots travel at the same speed as yours but have no restriction on range. Every enemy that shoots will target you directly. Early enemies only fire a single bullet; enemies later on will throw lots of bullets at you and make dodging everything difficult.

•  Information

Every game that has non-obvious game mechanics

Pausing the game brings up a menu with information about your character. The options are equipment, map, information, and quit. At the start of the game your equipment will be empty, but over time as you find rings or buy items from the shop you'll be able to change them out on the fly.

Note: The english translation can seem like a bad pun at times. Forum posts from the translators indicate that the source material is littered with spelling errors and jokes and they made an effort to clean up some of the errors.

 
The game has an auto-mapping feature. The map only shows up when you look for it in the pause menu, but it can be useful to see where you've been and potential new pathways to explore. Level borders are marked by bright rectangles and the outline of every single room you've been in is brighter than the room itself. You can easily spot where you have and haven't been.

Let's take a closer look at the UI:

1. Health -  The amount of health you have is consistent with the size of the bar. Endgame health can cover the entire top area just short of the EXP/KRN bar.
2. Experience, Karma - Experience increases as you kill enemies.
. Karma also increases as you kill wisps, not other enemies.
3. Coins - Used in the shop
4: Level - Increases when your experience bar maxes out
5: Strength - Every point of strength reduces the amount of hits that enemies take by one.
6: Charisma - Each point gives Youmu one more slot to equip rings or other items
7: Readout - Displays information about items or the manual.

•  Health, Strength, and Damage

Youmu's health is bog standard.  She starts out with 1200 health. Upgrades increase the amount of health she has to a maximum of 4200. Equipment pushes this to a maximum of 5600. Enemies do a fixed amount of damage and when Youmu runs out of health she explodes in a flash of light.

Youmu's health can be regained by drinking potions or visiting the shop.

The enemy damage range over the course of the game is 120-620. Youmu's health tends to increase about the same amount as enemy damage, meaning that you'll be dead in 10 hits no matter where you go. The exception is backtracking to old areas, which are less deadly than normal but not significantly enough to make tanking damage something you'd be okay with.

Enemy health takes the paradigm and flips it on its head. Each area has a "level" that determines how much health an enemy has. Area 1's enemy level is 4; enemies will take 4 hits to kill at base stats. The enemies don't simply have 4 health however... they have 4x the amount of health that the player deals at 0 Karma.

The effect makes trying to calculate how much health an enemy has on an absolute level difficult. Enemy level 4 ranges from 136 to 52 health. The player would never see these values, they would only see that an enemy dies in 4, 3, 2, or 1 hits depending on how much strength they have.

Bosses are the exception to this rule: they have a fixed health pool and take damage based on the player's damage number.

Damage formula: Strength Level + 3 + (previous value)

Design Notes

Having the player only regain lost hit points at shops is brutal. Potions help with that quite a bit, and for most of the game you'll be spending a lot of coins on potions. Still... no health pickups, no regeneration, no rest stops, and no other ways of increasing your current health means you'll be going to the shop a lot.

Enemy health that is tied directly to your strength stat instead of indirectly tickles my brain in a way that other systems don't. It's an obvious change moving from 4 hits to 3 early on in the game and a very nice find when you do happen across a strength upgrade.

Karma

Karma acts as a damage modifier on Youmu both from damage received and damage dealt. At maximum Karma Youmu will do half the amount of damage as normal while taking twice as much. The amount is proportional: 50 Karma will increase the amount of hits that it takes to kill enemies by 50% and Youmu will take 50% more damage.

Karma is gained when Youmu kills wisps at a rate of 5 per wisp. The gauge maxes out at 100.

Karma can be reduced by potions purchased from the shop. Karma Potions lower the amount of Karma you have by 50 at the cost of 1/4 of your maximum health. Due to a quirk in the way the game handles health, having negative health doesn't kill you. You only die if you're hit by an attack.

Design Note: Karma is completely underutilized throughout the game. It's very easy to not realize what's going on from the one spot in the early game that has multiple wisps and make the rest of the game much harder. There is one point at the end of the game that needs full Karma, and the best place to farm Karma is the first room with 5 spirits in it.

Experience and Loot

Experience is gained every time an enemy is killed. Enemies give experience based on the zone they are in

Leveling up gives a strength point or a charisma point every other level, starting with charisma at level 2. Health is not gained by leveling up; only upgrades or equipment can improve Youmu's maximum health.

Experience Formula: [(previous value) * 2] - [(previous value) / 5].
Round both values and end result down. One point seems to get lost every level and integer rounding is the only way to explain that

Note: An experience chart and enemy values are listed at the end of the post

Charisma, Equipment, and the Shop

Charisma points are the currency for equipping items. 10 points are recieved from leveling up and 10 more points are recieved from upgrades scattered around the world, for a total of 20. Items need a certain amount of charisma to equip and

The shop is your safe haven and reprieve from the dangers of the world.

Shop Contents:

Small Potion - 100 coins
- restores 1/3 of maximum health
Large Potion - 500 coins
- restores 2/3 of maximum health
Karma Potion - 200 coins
- lowers karma by 50 and damages the player by 1/4
Shop Warp 1 - 200 coins
- returns to the last visited shop
Shop Warp 2 - 500 coins
- returns to any visited shop, picked from a list
Resurrection Elixir - 2000 coins
- restores the player's health to maximum when they hit 0
Sword of Kirisame - 30000 coins (C3)
- lets the player attack bullets
Power Ring - 2000 coins (C2)
- increases strength by 1
Vital Ring - 1000 coins (C1)
- increases health by 400

Other equipment can be found out in the world

Hakuroken (C4)
- Youmu's short sword. The first one you pick up
Roukanen (C5)
- Youmu's long sword. Both can be used simultaneously
Dream Ring (C3)
- Doubles the amount of coins that enemies drop
Dream Ring II (C3)
- Doubles the amount of experience that enemies drop
Shield Ring (C7)
- Cuts damage taken to Youmu by half
Vital Ring II (C2)
- Adds 1200 maximum health
Power Ring II (C3)
- Adds 2 strength

Designer Notes

The shop saves your game on entry. If you buy something, make sure you go back in. This whole problem could have been avoided if the shop saved on entry and exit.

It is not an exaggeration to say that the combination of both swords makes or breaks this game. Using both of them together marks a huge upgrade over your damage in the past, effectively doubling the damage you deal at close range and adding a risk/reward element to the way you play the game. Unfortunately, by the time you get both of them, you've been working with a limited range shot and the short sword exclusively.

Doubling the amount of experience reduces the grinding if that's the sort of thing you're into. The game can be completed without grinding and most of it will be done early on, so this item seems unnecessary.

Doubling the amount of coins you recieve makes the rest of the game after that point completely pointless for grinding. Just rush through as fast as possible.

The kirisame sword is the best item in the entire game bar none. Unfortunately the cost is so high that anyone who actually wants it will not have it until the very end of the game and won't have the time to build up the skill needed to attack bullets vs dodging them.

• Upgrades

 There are 5 types of pickups in the world


Level Elements

I'd like to leave a few notes about the system-related elements here. The next post extensively covers level design and gameplay experience. 

The game is broken up into seven loading areas. All of the areas are roughly the same size, with the exception of area 1 which you visit two new sections of it. Backtracking through areas is largely not required unless you're going into a coin dungeon and need to exit the way you came in.

Every level in the game looks exactly the same to begin with as it ends. This is terrible from a player experience for obvious reasons. For the analyst, however, taking things apart is a lot easier. There are no weird hitboxes, hidden mechanics, or fancy animations that obscure all of the information we're trying to use. What you see is what you get; everything is as simple as can be.

The visual style of the game is exactly what you see here: completely bland. Normally that's indicative of a programmer making a game that with poor level design skills. In this case, the creator seems to a handle on system design, level design, programming, and maybe music. Empty levels may just be a design choice to finish the game on the premise that the author just didn't want to do anything with it.

• Rooms

Rooms are a self-contained section of the game. The camera is locked to the bounds of the room and on entry all of the enemies spawn. Youmu can kill all of the enemies in a room, walk out, immediately walk back in, and the enemies will respawn

• Hidden Walls

Hidden walls are the signature gimmick of the game. They're scattered around the entire map. The idea of hidden walls can be frustrating, but the actual locations of the walls are all associated with puzzles that involve traversing a single room or hidden items. A few of them are found by accident and a couple would only be found with a map.

Designer Note: Hidden walls are indistinguishable from regular walls. I'd like to see a hint of some kind instead of "magically walk through here because the collider is missing".

• Disappearing Blocks

These blocks disappear when Youmu steps on them. They have a very short lifespan - 0.75 seconds - and are a single tile in size. There are only two rooms with disappearing blocks in the game: the first one is over a large pit that requires resetting the room to traverse, the second is a long series of blocks over damage traps.

Data Values

Damage formula: Strength Level + 3 + (previous value)
Damage Chart:
1:34
2:39
3:45
4:52
5:60
6:69
7:79
8:91
9:105
10:121
11:134
12:148
13:163
14:179
15:196
16:214
17:233
18:253
19:274
20:296

Experience Formula: [(previous value) * 2] - [(previous value) / 5]. Round both values and end result down
EXP Chart

1:180
2:323
3:583
4:1049
5:1889
6:3401
7:6122
8:11019
9:19835
10:35704
11:64268
12:115683
13:208229
14:374813
15:674663
16:1214394
17:2185910
18:3934638
19:7082349

 

Special areas: Increase Lv by 1

[Area 1: Stone]
Lv:4
Damage:120
XP:1
Coins:2-3

[Area 2: Forest]
Lv:6
Damage:220
XP:3
Coins:4-5

[Area 1.1: Stone Pass]
Lv:7
Damage:270
XP:5
Coins:4-7

[Area 3: Tech]
Lv:8
Damage:320
XP:10
Coins:5-9

Trap Damage:370

[Area 4: Mountain]
Lv:10
Damage:320
XP:34
Coins:10-20
SpCoins:

[Area 1.2: Stone Dash]
Lv:10
Damage:320
XP:34
Coins:10-20

[Area 5: Red Cave]
Lv:12
Damage:520
XP:110
Coins:14-21

Giant Kedama
Lv:12 (x2)
Damage:570
XP:187
Coins:

[Area 6: Green Ice]
Lv:14
Damage:620
XP:357
Coins:20-30

[Special Reimu Yukkuri]
Lv:15 (x2)
Damage:670
XP:642
Coins:24-37

[Spirits] (Depends on area?)
Lv:5
Damage:170
XP:1
Coins:4-6
Karma:50

[Letty]
Hp:3,135
Damage:220
XP:12
Coins:16
Drop:HP upgrade

[Chen]
HP:5,490
Damage:320
XP:40
Coins:35
Drop:HP upgrade

[Alice]
HP:9,600
Damage:420
XP:136
Coins:52
Drop:HP upgrade

[Prisimriver Sisters]
HP:12,705 x3
Damage:470
XP:244 x3
Coins:50 x3
Drop: None

[Yukkuri]
HP:29,385
Damage:620
XP:1428
Coins:118
Drop:Key

[Reimu]
HP:54,105
Damage:720
XP:2735
Coins:144
Drop:None

[Area 7: Secret Bubbles]

Kedama/Fairy/Yukkuri
Lv:16
Damage:720
XP:1156
Coins:28-43

Giant Kedama/Giant Yukkuri
Lv:16 (x2)
Damage:770
XP:2082
Coins:33

Trap Damage:770

[Sakuya]
HP:300,000
Damage:2000
XP:26984
Coins:290

Wednesday, March 17, 2021

Reclamation Project Outline

General

Inception
Character Template
Content Versioning
Part 1: Finding an Interest
Part 3: Genesis Analysis Tools
Part 5.5: Deciding how to move forward
Part 9: The Last Piece, Tinkers' Construct

Game Specific

Part 2: Initial Impressions (Alisia Dragoon)
Part 4: Movement Analysis (Alisia Dragoon)
Part 5: Technical Breakdown of Level 1 (Alisia Dragoon)
Part 6: Perspective (Phantasy Star II)
Part 7: Systems Deconstruction (Boho Youyoumu)
Part 8: A Fatal First Impression (Boho Youyoumu)

Chronological

Inception
Part 1: Finding an Interest
Part 2: Initial Impressions
Part 3: Genesis Analysis Tools
Part 4: Movement Analysis
Part 5: Technical Breakdown of Level 1
Part 5.5: Deciding how to move forward
Part 6: Perspective
Character Template
Content Versioning
Part 7: Systems Deconstruction (Boho Youyoumu)
Part 8: A Fatal First Impression (Boho Youyoumu)
Part 9: The Last Piece, Tinkers' Construct

Reclamation Project - Part 6: Perspective (Phantasy Star II)

I'm a sucker for ye olde JRPGs. There's something about playing a game in an old style with an expansive world and a cohesive story that tickles my whiskers in a way that very few games actually do. My younger self would take the sparse details of this world and expand it out into a fully-fleshed out experience, filling in all of the details that were missing.

Most of the nostalgia for Sega Genesis games comes from the sound. There's nothing quite like opening the game on a blippy, peaceful tune. The overworld music is catchy and full of pop, and the battle music takes you right out of whatever you're doing and dumps you into a desperate situation where you have to fight for your life. The game is brutally hard and full of grinding, and you will wind up dead multiple times if you're not overly careful.

One of the things that always stuck out like a sore thumb in this game is perspective. There are conventions that are put in place so that the player can get a sense of the world around them, and suspension of disbelief willing, they can enjoy a fun romp through a fantasy land very different from our own. 

It all kind of works together if you squint at it really hard, pretend that things have to be this way, and excuse everything because "video games". Most of the weird things about games that still continue to this day come down to technical limitations. There may be limited memory in the ROM for sprites, or the amount of time that you had to program an entire game in assembly could have been cut short.

Phantasy Star II was made in 2 1/2 months. That's amazing! Given the sheer amount of content in here, it's a testament to the developers that they managed to cram all of that into 771kb. The size of this blog post is larger than that... technology has progressed so far since then.

Let's take a look at some of the glaring flaws that the game has. The biggest thing that has always bothered me is the perspective in the game. I'm sure things ended up as they are due to the rushed timeline and technical limitations, and the game does hold to the conventions of the time... but the conventions themselves are jarring.

Overworld, inside town

Going from the outside of a town to the inside is... how do I put this? The character is the same size but the size of everything around them has changed. The characters themselves haven't changed, and in fact they are exceptionally tall for an RPG character. That makes the change from humongous trees to small trees all the more egregious.

Shops are so different they take on a separate visual style The characters are completely gone now and the way that the game is presented has changed. We now have a text box, an image of a character in some kind of building with bottles and shelving, and a basic UI for shopping. 
 
I can forgive this more than the others. Interacting with a shop is a different style of gameplay than adventuring or combat. It makes sense that the way you would interact is different than the usual. The absolute waste of space, on the other hand, is, well, wasteful.

 
Overworld, inside dungeon
Moving to the inside of a dungeon is worse. The hint of perspective is that the areas are large and expansive, but the rooms are empty and bland and I could have sworn there was a ton of monsters outside. The speed of the character is consistent from one screen to the other, which is okay, I guess. That's a remnant of how the character moves on all screens, not just inside.

The biggest offender in all of this? Randomized battles.


How big is anything? Exactly as big as it needs to be so that you can make out the details while still giving the player the sense that they are in the world... somewhere. It's a band-aid of a fudge that takes what little memory the systems has and makes it work.
 
Dungeons themselves have a different problem. With the complete lack of relative size to anything else and an inability to measure them, the only thing that actually matters is time. How much time are you spending in all fifteen dungeons? Around 90% of your 30 hour playtime.
 Courtesy of www.fantasyanime.com

The first dungeon has four floors. The only thing that differentiates which floor you're on is the rough layout, how many times you've went up or down a teleport pad, and what kind of monsters are there. The deeper you go, the more likely you are to find a nastier version of something that you just fought. Everything else is completely empty.

The most interesting dungeon in the game is the Biosystems Lab. This dungeon has container vats of unknown creatures, odd machinery, and hazardous glowing liquids in the basement. By the time you reach the bottom floor you've likely exhausted yourself to the point where you're running on empty, and if you haven't died three times in the dungeon then you're obviously grinding yourself to some worthwhile level where the experience starts running off rapidly.

The game does have some nice world building after this point, but as far as actual gameplay goes this is the peak. There are somewhat interesting things going on after this, but the dungeons get confusing, lazy, boring, and even more empty as time goes on. 

I've been playing the modernized mod of Phantasy Star II to see if a bit of tweaking could make the experience worthwhile. It has its ups and downs, and the multiple hours of grinding have been smoothed out and condensed into a much better path, but I'm afraid that it's going to run out of steam sooner or later. As much as I like this game, it has a bunch of flaws that can get in the way of fully enjoying the experience and...

...wait a minute. 

1. The experience is fun and memorable
2. The experience is fundamentally flawed in a way that is disappointing or maddening
3. The act of solving a problem with the experience itself is a worthwhile endeavor.

The criteria for wanting to make something is perfect here.

1. The music is fun, the world setting is great, the characters are interesting and varied, and the progression of RPGs is always fun. It might seem lazy in other games, but I do love how monsters are re-used here.
2. The entire game loses steam around a third of the way in. It gets repetitive, grindy, and the dungeons that make up a disproportionately high amount of content are empty. The planet of Dezo is just... empty and shallow.
3. One of my childhood dreams was to fix the perspective and make the gameplay more engaging.

You know what? We'll come back to this later. My mind is spinning with ideas and plans need to be made.

Friday, January 15, 2021

Reclamation Project - Part 5.5: Deciding how to move forward

Any time I sit down on a project that I'm interested in, I like to get ahead of myself just a little bit. The process works in a loop: I pull myself ahead a little bit to anticipate what's going on, compare that to the existing work, decide how long it's going to take based on previous steps and experience, and I make a decision. This process has some of the benefits of foresight, hindsight, and analysis baked into the work. There's a lot of value in trying to predict what I'm trying to do.

Sometimes that process runs into a roadblock. For this project, the roadblock was simple: I want to make a game, a platform, future games, artwork, designs, and self-evaluate all of that simultaneously. The roadblock was also far more complicated than I could have anticipated.

Building on top of a project that is a gibbering mesh of experimentation, prototypes, ideas, and eclectic half-built systems is sort of like riding a unicorn on top of a mine cart track in the dark. It's definitely possible to move forward because the unicorn glows in the dark, but it's bumpy, uncomfortable, magical, and I'm sure I could get to the end... but not without getting thrown off and hitting my head somewhere.

I've decided I'm going to take my base project and wrangle it into the one thing it doesn't have currently: plans. There's a lot of digging I've had to do just to get things in order. I've had to uncover ideas that are years old and try to tie them together in a nice bow. Some of the concepts don't work very well together and some of them work too well, so I'm having to segment out the different ideas that are basic and the ones that are game specific.

Essence HUD for Hyper Metroid Remake

I'm currently working on a design document to refine a lot of these ideas. They work pretty well in my head, and a good deal of them are based on working code. Taking the design and turning it into something real should take a lot less time than writing everything from scratch.

I would very much like to take this design and show it to others. If someone has the impetus to actually work with me in the future, it would be very, very valuable to show them a design doc so they can wrap their heads around how the systems are supposed to work and interact with each other on a conceptual level.

Once I have the base project built up I can go into detail on how to dissect and rebuild a level. I can also share artwork and the process of making it for a game with a particular design in mind without stumbling over everything. I'll probably release a working prototype with my avatar as the main character, so stay tuned for that.

Working screenshot of a broken UI image. Circa September 11 2020

Sunday, December 27, 2020

Reclamation Project - Part 5: Technical Breakdown of Level 1 (Alisia Dragoon)

Let's take a look at level 1 of Alisia Dragoon. We're going to dissect every aspect of this level, from the overarching design down to the individual pixels. The main tool we're going to be using is Gens Rerecording. swapping out layers and grabbing a whole lot of screenshots. Our main reference is an excellent technical writeup on how the Sega Genesis/Mega Drive renders graphics.

 Resolution

The first thing that's noticeable is the resolution of the game. All of the images are uploaded in their original size - 320x224. That's noticeably smaller than your monitor is, and if you're using a modern 4K display that may be so small that you can't make out any details.

Old CRT style TVs had a lot of variance they could do. Their theoretical maximum was 1280x1024 projected dot beams on the screen, but unlike our modern pixel counterparts they could easily enlarge each projected beam to do something "smaller".

Width to Height Ratios
- TV: 1.25
- SNES: 1.1428
- Genesis: 1.4285
- Modern (16:9): 1.7777

The SNES had an advantage on older TVs. 8:7 ratio is a lot closer to 10:8, and if you scaled them up they would look very close. This is a big technical reason why Nintendo games seemed to have a characteristic look to them: the game screen they were working with was close to square and TVs were close to square.

The Genesis, on the other hand, was ahead of its time by supporting a widescreen format. Most TVs had a border where the light bled off of the screen to hide content and a whole bunch of other details I'll go over in the art analysis post later. For now, I suspect that this will make scaling up a Genesis game a lot easier than a SNES game. All we need to do is scale up the image and extend it a little bit.

If we crop out the UI and overlay that on the previous image in red, that looks as close to a modern display as the SNES did to an old TV. We may be able to capture not just the gameplay, but the feel and experience of watching the game as well.

Tiles

The entire game is broken up into 8x8 chunks of data called tiles. This is a technical limitation that applies all the way through the system, from the layout of the level, to the scrolling background, and even down to the characters themselves. The main reason why things used to be so small or proportioned so weirdly is because managing everything in the tiny amount of RAM consoles had was a huge technical challenge.

 

While sprites do have the same 8x8 tile limitation, they can be defined in larger groups of tiles up to 4 tall and 4 wide. Multiple smaller sprites can be used in place of a larger one to make a full character; Genesis games are known for having multiple fast moving sprites on the screen all working together to make a frenetic, fast-paced experience.

Alisia's sprite is two groups of 3x3 sprites all working in tandem - the legs and upper body seem to be animated separately. The caterpillar is made of 6 1x1 sprites all moving together and stitched into a whole character behind the scenes.

 Rendering layers

Gens organizes layers a bit differently than the writeup lays out. Scroll A is used for parallax backgrounds, Scroll B is the terrain and foreground, and the window layer is completely missing. I'm going to focus on how these layers are used in the game. In order:

 
Distant background - Scroll A, low priority

The back layer is used for a technique the Genesis is famous for: parallax scrolling. In Alisia Dragoon this layer is used to show distant background details. Clouds, mountains, and trees all appear to move slowly compared to the camera and gives the entire scene a depth that wasn't possible in consoles before this generation. 

Some of the odd details are hidden under terrain or the UI; the only way you'd be able to see this is by removing other layers that render on top.

 
Terrain - Scroll B, low priority

Most of the level is rendered on the middle layer. This layer is what gives the illusion of the level moving as the player traverses it. Everything that scrolls at the same basic rate, from the ground to these large trees, is here.

It's interesting that the UI is rendered on this layer despite being a part of the terrain. My best guess is that this is some kind of processor saving technique because the UI doesn't need to update very often.

 
Characters - Sprite layer, low priority

Characters have their own layer that renders on top of everything else. Alyssa Keil describes the mechanics well:

"Sprites for the Sega Genesis are defined as images with a size of (w x h), where w is the width in tiles, and h is the height in tiles, where each dimension can range from 1-4 tiles. . . The Sega Genesis can handle up to 80 sprites on screen, 20 sprites per scanline, though it’s worth staying under this limit to avoid slowdown."

Foreground - Scroll B, high priority

The start and end of level 1 has a structure that has pillars that render in front of the player. Outdoor levels use this layer sparingly, spending a lot more of the console's processing power on the parallax effect from clouds and other background objects. Indoor levels use the terrain and foreground much more extensively in building the level to the exclusion of distant backgrounds.

 Text - Sprite layer, high priority
This layer isn't used often. The main use is the pause or minion select screen, occasional dialog in cutscenes, or game over and the result screen.
"Sprites. . . have either a low or high priority flag set. This priority setting determines whether the sprite will be displayed above or below tiles in the other planes (which also have a low or high priority setting)"

Final Thoughts

Diving more and more into these games are showing me just how many technical limitations older systems had. If Alisia Dragoon was made in a modern environment... well, the studios are different so I don't know how it would have turned out. The bar for making a good game is much higher today than it was in 1992 due to hardware advancements and the sheer amount of great works we have now.

I'm more of a design and behavior analyst than a technical one. Details here are kind of sparse and are meant more as a way to see what's going on, rather than dive deep into the code and understand the ins and outs of it. I'm sure a lot of the code in the game is fairly simple due to the basic behavior that the game has anyhow.

The fact that these games have as much content as they do in such a constrained environment is a miracle in and of itself. The entire game has a file size of 1mb!

Monday, December 21, 2020

Reclamation Project - Part 4: Movement Analysis (Alisia Dragoon)

Alisia has four movement mechanics: walking, crouching, turning around, and jumping. Let's take a look at each one.

Walking, Crouching, and Turning Around

Alisia walking speed is 2 pixels per frame. There's a quirk in the movement where the first frame of movement is only one pixel. This is likely to account for the change from a standing to a walking sprite. A single pixel of movement in one frame isn't noticeable, so this might just be a bug.

Alisia can start and stop walking with no acceleration or momentum at all. The main mechanic that interrupts this is turning around. If you're pressing right and decide to turn left, Alisia will spend 10 frames horizontally locked in place while the turning animation plays.

Alisia can also instantly crouch any time she is walking. She can return to a standing position after 10 frames have passed. Any time after this point she will stand instantly, but a mistaken tap for a couple frames will stick her to the ground for 1/6 of a second. Crouching's main advantage is that the player's hitbox is smaller, allowing her to dodge attacks that would otherwise hit her.

Jumping

Jump time: 52 frames
Jump speed: +4 pixels per frame, decreases by one on frames 11, 16, 21, 29, 32, 36, and 41
Jump height: 69 pixels
Jump width: 106 pixels
Jump ratio: 0.75
Last input frame: 20

 
 Visual plot of jump data

Figuring out how to calculate jump height on a character can be a bit tricky. Alisia's jumping sprite doesn't change her leg position, so I picked a single pixel and tracked that across the entire jump. Each change in position was measured against the previous one and manually plotted in GIMP. I had to double-check each keyframe to make sure that the velocity was changing and to get a good idea of how the visual interacted with the controls.

Jump ratio is calculated by taking half of the jump length and dividing that by the jump height. The higher that number, the flatter the curve appears. The last estimated frame for controlling jump height is a guess; I'm not interested in replicating the movement exactly, just in getting an idea of how it works. Other stats should be self-explanatory

This whole process isn't hard... but it is tedious. Creating the chart took around 45 minutes from start to finish.

 
Tracking pixel

Jump mechanics can be divided up into three parts. These are divided up into boost, hang time, and fall, which are red, green, and purple respectively.

Boost is the most important part, as the player has direct control over this period. Many games with a platforming system have a mechanic where holding the button longer lets the player jump higher. Older games tend to do this in a more obvious way, cutting off upward momentum directly after the button is released.

Momentum at the top of a jump is called "hang time". In general, this is the period of time where the character hangs out in the air before they begin to fall but after any control the player has relinquished. Some games will go out of their way to extend control all the way into this phase. Having that sort of control tends towards cartoony physics.

Fall happens on the downward direction. All control over the vertical direction has been lost and gravity takes over.

Because of the way hang time works, her minimum jump curve looks like this:


Alisia's jump appears to be a smooth ballistic arc. While she does jump lower when the button is released sooner, she still jumps in an arc that looks reasonable because the cutoff of boost still has upward momentum. The game doesn't differentiate between hang time and fall from a mechanical standpoint, but falling animations do play on the way down.

Jumping and walking control independently. The player has full control over how the player moves sideways in the same way as walking happens, down to getting stuck in the air with a turning animation.

Subjectively, Alisia feels like she falls a bit faster than she rises. She also appears to jump higher than she. The graph shows that she loses speed a lot quicker on the way down than the way up and is better at jumping up than out. The entire jump feels basic and a bit quirky, but it works. That doesn't mean I have to like it.

One advantage to a low jump ratio is that your character is a lot better at jumping over incoming projectiles. Another advantage is better vertical movement. Neither of these ideas are present. There's only one set of projectiles in the entire game all the way at the final boss to jump over and platforming is full of small, incremental jumps.

Contrast that with the crouch mechanic: Having a hard 10 frames where you're stuck on the ground means that you've committed to the choice, but have access to it immediately. There's a lot of enemies that pull out spears or fly directly at your head. These enemies are sprinkled throughout the game from the beginning to the end

 
Single hop stairs

The way I would describe this type of movement is "serviceable". The focus in this game is on combat and reflexes. You're able to move the character around with a large amount of flexibility, and the 1/6 second that it takes to turn Alisia around or duck means you have to move forward strategically. It's somewhere between purposeful and twitchy, overall basic, and works well enough. The focus is more on combat anyhow

Final thoughts

Alisia's walking speed is 2 pixels per second. How fast is this compared to the real world? Well... we don't have a ruler to measure the game by. The entire game is set in a high fantasy setting with an emphasis on trying to make things look good. Nothing in-game, in the manual, or from the developers indicates a canon height for any element, and all the sizes for things are wildly off from what we would expect to see by taking a hike anywhere.

My best guess based on this screen is that Alisia is very small, perhaps thumb sized. The alternative is that she's human sized and her entire world is full of gigantic trees and bugs. As with anything in a world that plays fast and loose with sizes, we can't really know.

Trying to relate these numbers to a real world situation is like trying to write down how time works in a black hole. We can make some assumptions about how it works based on our math, measurements, and theories, but any attempt to make real use of it will end up breaking your brain, crashing your computer, and eating your soul. Best not to think about that too much.

Scale? Rulers? Who says what is real and what is false?

Sunday, December 20, 2020

Reclamation Project - Part 3: Genesis Analysis Tools

Starting on a journey of dissecting an old game can be a challenge. The easiest way to do this, of course, is simply to play the game in an officially licensed format. For modern gameplay I would suggest using a Genesis Mini and hooking it up to a modern TV. If you're feeling really old school, then you can grab yourself an old Sega Genesis/Mega Drive and a copy of any cartridge and you'll be good to go.

Just playing the game is not enough for me. I want to tear the game apart all the way down to its roots. Every aspect, every little detail, and every bit is going to be examined. There could be useful data hidden inside the game, and at one point I had considered hacking as a slap-fix for my own fix. What we're going to need is a dump of the game, otherwise known as a ROM.

From a legal perspective, if you own a copy of the game you can make backups of that game for archival purposes in most countries. That idea has been tested to varying degrees across the world, and while having a backup copy of a game for archival or other purposes is seen as legal, downloading a game from the internet is not.

Here's an overview on how to dump games from an old cartridge
Here's a writeup on how to dump games from a Genesis mini


With a legal copy of a ROM in hand, the next step is to analyze it. For our purposes, being able to change what a console would do at runtime should be enough. We're going to need more than a standard emulator for that purpose

Gens Re-recording is a great tool for examining how the game is structured piece by piece. We can turn on and off different rendering layers, record videos, and play back a series of inputs. I'll be using this one most throughout the project.

Disabling sprites is simple and effective

For more technical analysis, we're going to need an emulator with more potent debugging powers. Gens KMod can bring up multiple debuggers, from the CPU to the sound card. It's ideal for ROM hacking. For my purposes, I'm looking at how the game is running in the background and finding useful data in the debugger.

Some Genesis games store sound files in their ROM as uncompressed data. You can open up a ROM in Audacity as raw data. Import the entire ROM with 6 channels and use KMod to determine the frequency of the sound. That frequency should be found below; you may need to slow down or stop the emulator's playback to find out exactly what you need.


Alisia Dragoon seems to have all of its music stored as custom data instead of something easier, unfortunately. This may apply more for future games


The last piece of the puzzle is something for analyzing footage after the fact. VirtualDub is a simple and free video player that lets us precisely control each frame, scrub forward and backward through the footage, and make easier miniature videos for the blog. Paired with game movie and AVI output from Gens Re-recording, that should be all we need for the bulk of this.

Virtualdub in all its basic glory

Self Reflection, Avatar Reflection

It started as a joke. One day I decided that my game development was going poorly because I was too attached to my characters. If I messed a...