Documentation


Goals

The two primary goals of sinister reasons were to create a deckbuilding roguelike with deeper combat and more choices than others in the genre, and to make a casual and accessible game that was appropriate for a large range of players. I think these goals were achieved well, the fundamental enemy intent mechanic makes you think carefully about what to do while the actual gameplay remains relatively simple and direct. The secondary goals of clearness and upgrade system were not achieved quite so well.

I did not have enough time so ended up scrapping the upgrade system entirely. The other goal of clearness I made some steps toward but was held back by some fundamental choices about the game design. I wanted to delay enemy damage to the end of turn to give players more freedom in how they sequenced their actions, I think this was unecessary and only led to the ui and damage prediction system being confusing. If I did the game again I would stick less to the original idea, and instead have more focus on a stat that gives block at the start of turn, and make enemy damage apply immediately rather than at end of turn. This would make the game simpler and possibly deeper. I would also change the way block is removed so it was 1/4th at the end of each turn (both player and enemy) rather than half at the start of own turn, which would make the decay slower but more steady, giving more flexibility to play around it and adding more depth.

Testing Feedback

The testing session provided valuable feedback. The primary takeaway was that the game and ui were confusing, which prompted me to add more explanations and more animations that showed what things were happening, I chose not to add a tutorial as the first few levels are meant to serve as a tutorial in themselves. Secondary feedback I received was about upgrades (which I ignored due to time limits) and enemy types. A lot of people liked the idea of race enemies that have lots of health but get stronger the longer you leave them alive, so I made both the bosses do that in different ways. The second most popular type of enemy was "enemies that copy you", which is why I made the competitor, a humorous mini-boss that uses moves similar to the player.


Other testing feedback involved cards, a lot of people wanted cards that did two things at once, which I responded to. Powerful cards with drawbacks were already covered. Cards that create/destroy cards were something I didn't have time for. And cards that allow drawing or playing more cards was something I explicitly didn't want to add to the game because of its imbalancing and complicating effects.

Asset List

Icons for displaying the various status effects and intents

Sprites for each of the 5 enemies

Backgrounds for each of the 5 levels that suit the enemies on that level

Misc sprites: crosshair for showing current target, up and down arrows for showing predicted block/damage, star particle for indicating actions in the game.

Scripts all by me except for FollowSprite:

-Card.cs and various cards, implements a base class with functionality of cards that the other cards can inherit from

-Buff.cs and various, a Buff class that other game actions can build and add to objects

-Stats.cs, shared behaviour between player and enemies

-Player.cs, handles the player's unique ability to draw and hold cards

-Enemy.cs and the 5 enemies, implements basic enemy functionality for enemies to inherit from, with intent calculation being redefined by the enemy type

-GameManager.cs, handles game start/stop and when the turns should happen and notifying other entities of what's happening and telling them what to do

-Various tiny helper scripts that do simple things like loading a new scene when a button is clicked.

User Guide

Sinister Reasons is a roguelike card game. The player can click cards to play them, they can play 3 cards per turn. The core mechanic of Sinister Reasons is the enemy action system, which causes enemies to act whenever they are attacked by the player, enemies will also do a more powerful action on their turn. The game consists of a series of fights, a fight ends when the budget of one side is depleted, if the player loses the fight it is game over and they are reset to the beginning of the game, if the player wins the fight they can go to the next level (5 levels in total, ending in a victory screen).

main menu

instructions screen

game settings

combat screen (level 1)

victory screen

game over screen


game completion screen

References
all art by Liam Quin, except for the small cat which was by Lilith (no last name).
script "FollowSprite.cs." Created by an AI language model, Codeium.

Leave a comment

Log in with itch.io to leave a comment.