A Stickman's Quest

A 2D choose-your-own-adventure game demonstrating an implementation of a reactive MVVM framework in Godot (a signals-based game engine).

This is a student project for CSE 340 at the University of Washington. The upload here is just so that it can be shared. Enjoy!

If the  web player doesn't work, try the binaries! Windows is the easiest as the macOS binary is not notarized so YMMV.

Code overview (for CSE 340 graders)

We implemented a reactive MVVM framework by having a center "game view model" handle converting the react-like interface to the actual operations needed by Godot. This allowed us to abstract those parts away and use state changes to make things happen. Everything results in a scene switch which will reload the view and therefore update the UI with the new data reactively.

Files and folder

  • data: story json file. Like the "model" in MVVM.
  • objects: scene files for items in the game. These are pure "views".
  • scenes: scene files for scenes and UI.
  • scripts: all code, generally labeled as view models.

game_vm.gd is our game view model which handles the reactive framework behavior. Everything else will change the state variables declared in game_vm which trigger the getter/setter functions which will then perform the correct operation. Once the framework was in place, changing the story state or changing scenes was as easy as changing the state variables (as opposed to doing the work to load the new scene files or look through the story model graph).

Credits

Developed by Kenneth Yang, Liam Reynold, Sanjali Vuriti

Built with Godot 4.1.3

Download

Download
a_stickmans_quest_Win64.zip 25 MB
Download
a_stickmans_quest_macOS.dmg 54 MB

Leave a comment

Log in with itch.io to leave a comment.