Card Creation, Spawn, and Level Management Systems


This week, we focused on setting up the player and enemy cards for the game.

Progress This Week

  • This week, we laid the foundation for implementing both the hero and enemy card systems, as well as setting the foundation for the level management system.
  • Card Systems
    • Data Structure
      • We utilise scriptable objects to store data for both heroes and enemies. The HeroData class stores player attributes such as health, armour, attack, experience, and level. The EnemyData class stores enemy attributes much in the same way that HeroData does, however, not accounting for some attributes that they do not share, such as armour and experience.
      • The HeroRuntimeData and EnemyRuntimeData classes manage the current state of the heroes and enemies respectively, handling dynamic properties like current health through functions for healing and taking damage, as well as experience for the HeroRuntimeData, for increasing player experience.
    • Setup and Management
      • The HeroCardSetup and EnemyCardSetup scripts are responsible for displaying hero and enemy attributes as well as their card art on the card, using HeroCard and EnemyCard prefabs.
      • The HeroCardManagement and EnemyCardManager scripts manage the creation and updating of cards within the game, displaying the cards created in the setup to the screen.
  • Level Management System
    • The LevelData scriptable object holds the enemy data for each level, this time, not as enemy stats, but of which enemies are present in that level instance.
    • The LevelManagement script handles loading enemies for each level, clearing existing enemies cards, and progressing to the next level once all enemies are defeated.

Currently the level management system utilises a keybind to clear enemies, and spawn the next wave of enemies, as we currently have implemented means for combat, however, this showcases a basic means of layout and encounter systems that will eventually evolve to incorporate the ideas presented in possible improvements.

  • Possible Improvements
    • Card Systems
      • The HeroData scriptable object will also eventually account for inventory items and abilities that the user will be able to choose from and empower at the end of some levels to further empower their heroes. While enemies will not have item inventories, they will also have abilities that are unique to them and change them further into the levels we go.
    • Level Management System
      • My goal with LevelData is to eventually randomise enemy spawn from a pool of enemies for that level, each with different probabilities for spawn, to further increase the uniqueness of each run.
      • The LevelManagement centralised system will eventually also support the implementation of the item drop system, as I plan to represent them from a randomised pool of items, as cards able to be chosen from at the end of each enemy encounter.
    • Animations
      • As I begin implementing animations for attacks, abilities, taking damage, etc. I aim to also incorporate animations for the spawning of cards such as shifting them across a table as one would see in the dealing of cards for traditional card games.

Leave a comment

Log in with itch.io to leave a comment.