Game Off 2021 - YourWaifuIsALie
Blog and documentation for Game Off 2021 attempt.
Project maintained by YourWaifuIsALie
Hosted on GitHub Pages — Theme by mattgraham
Game Off 2021 - Day 2
November 03, 2021
An RPG might be a huge time sink but I’m hoping that prior programming experience makes it manageable for me. RPG system interactions are just like microservices, right?
It shows my background that I’m doing everything except jumping in and making a game; hopefully that pays off.
Study
Sped through some Youtube tutorials:
Bugs
Listing various bugs I can think of to use as inspiration for game mechanics and the like.
Programming
- Off-by-one
- Array loops
- Fencepost
- String termination character
- Uninitialized variables
- Memory errors
- Array bounds
- String overflow
- Double free
- Pointers and dereferencing
- Unsanitized input
- Integer overflow
- Type errors
- Endianness
- Complicated logic
- Syntax errors
- Missing enders (
;)]}'"
)
- Initial whitespace
Speedrunning
- Warps
- Credits
- Cutscenes
- Room transitions
- “Wrong warp” (intended warp, but somewhere else)
- High speed
- Backwards long jump
- Super swim, super slide
- Out of bounds
- Clips (wall, floor, ceiling)
- Jumps, hovers, and flying (not always out of bounds)
- Unexpected physics collisions (Mario Kart shortcuts)
- Remember kill boxes exist
- Damage boosts
- Gravity glitches or disabling physics
- Navi dive (various dialog-based glitches)
- Negating fall damage
- Loading/unloading assets
Potential mechanics
Speedrunning bugs seem straightforward to use as part of overworld movement:
- Allow “1-tile wide” wall clips, thus getting past barriers but “dying” on things like room walls
- Pits which have to be hovered over
- Infinite stairs ala SM64
Battle mechanics are less straight forward? I think it will need to have the aesthetic of a bug, but hand-waved from the technical side:
- Integer overflow = over-heal to death
- Pointer dereferences = something like changing targeting handles compared to the actual battle actor
- A defensive move? “Swapping” your reference with the enemy
- Memory overflows = random number or potential “crash”
- Unsanitized input = various status effects or things like “table dropping” (instant victory with no rewards? oops they no longer exist)
- Abusing these bug can cause “glitchy” effects on the world?
Maybe that’s an idea. With great power comes great responsibility.
The battle system is “standard” RPG fare (attack, defend, use healign item) but the player character gets access to special bug-themed abilities.
Using abilities trivialize encounters but causes destabilization of the game.
Raising the “bug-level” of the world causes different graphical/sound/animation effects.
Enemy dialog/story reacts to different bug-levels, potentially leading to branching story arcs.
- So, similar to something like Lenna’s Inception or Eternal Darkness sanity
- Feature creep bewaaaaare. I think at best I’ll probably get to something like sprite changes based on bug-level
Progress
- Simple understanding of simple Unity menus, scene control, and resolution for when I finally start programming
- Learned about Unity PlayerPrefs
- It stores things to the registry on Windows? I’d rather use some json file. I’m sure that exists
- Bug aesthetic brainstorming. For RPG battles, bugs are powerful abilities that cause an increase in the “bug-level” of the game, invoking various “glitchy” effects
TODO
- Figure out how to make Unity play nice with Git
- Keep playing with Jekyll, fixing things like links
- Continue nailing down specific battle mechanics and overworld power-ups
- Numbers, stats, possible actions, etc.
- Start collecting decisions into design docs
- Main character designs and 2d “sprite” (probably cutout animation) for both overworld and battle
- Can visualize the rest of the world around the main character for consistency
Time Spent
4.5 + 1.5hr