Search this site
Embedded Files
Joelle Kaufman
  • Home
  • Development Diaries
    • Donguri no Nazo
    • RPS999
  • Portfolio
    • 3D Art
    • Sprite Work
    • Studio Art
Joelle Kaufman
  • Home
  • Development Diaries
    • Donguri no Nazo
    • RPS999
  • Portfolio
    • 3D Art
    • Sprite Work
    • Studio Art
  • More
    • Home
    • Development Diaries
      • Donguri no Nazo
      • RPS999
    • Portfolio
      • 3D Art
      • Sprite Work
      • Studio Art

Playable at: https://joellegames.itch.io/rps999!

Rock, Paper, Scissors...Evolved!
The Item Shop
Development Timeline
Making Designers Happy
User Interface

Rock, Paper, Scissors...Evolved!

Purchase items to turn the odds in your favor in this tactical spin reimagination of the classic game. Reach a win streak of three to defeat the opponent and prove yourself as the RPS champion!

I served as the sole programmer and UI engineer for this project, designing systems to handle game states and various item effects within Godot.

The Item Shop

The main appeal of RPS999 is the various items you can purchase (and destroy) between rounds as you search for an advantage against your opponent.

Item implementation revolves around Godot's Resource system, each instantiated from their own unique script inherited from an abstract Item class.

Development Timeline

RPS999 was developed in roughly five weeks for UC Santa Cruz's ARTG 170 course, Game Design Studio I. This timeline forced me to be very efficient with my programming architecture while laying the groundwork for systems that could be easily adjusted for balancing purposes. By using a modular state machine, I was able to isolate complicated sections of the game loop, primarily the item selection and shop, and thread them together through a state controller without worrying about dependency.

Making Designers Happy

One of my goals whenever I am programming is to make adjustments as easy as possible for designers. My system for item management allows anyone in-engine to edit the cost of items, their description, item type, and activation conditions without touching any code. Here is what an item object looks like in Godot's inspector!

Item effects rely on a global Game Manager class, allowing them to access the state machine and override values such as the round results and player inventories. If I were to code this project from the start again,  I would like to add an extra level of variable protection here as this is not an ideal approach if other programmers were to join the project.

User Interface

UI was implemented with a relatively straightforward system revolving around "control" panel nodes that each hold a Show and Hide position in the form of exposed Vector2's, and can be quickly tweened between each state from a UI controller. Data is also updated dynamically through calling relevant signals at the appropriate time and passing in general game data.

LinkedInInstagramLink
Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse