Devlog #1 - [Gamelet1]:grey-box colony ship RPG"

New Game-dev. Holding myself accountable by starting an ongoing devlog. Long-term goal: Colony Ship RPG. Short-term Goal: Develop a little mini-game (gamelet) where I can walk up to a NPC. I plan on posting once a week on progress.

and start a brief conversation with some choices / replies gated by skill checks. Currently all UI is via debug streams. Eventually, I will add an actual dialogue window instead.

Devlog #2 - [Gamelet1]:grey-box colony ship RPG”

Week #2 - Steady Incremental progress.

  • Added delegates and listeners for conversations (Dialogue Updated & Dialogue Ended)
  • Added a rudimentary dialog window for the conversation
  • Added a simple Attribute Skill Check
  • Updated replies to show Skill Check Percentage Chance.
  • Refactored the previously hard coded conversation using debug output into another Listener on the Dialogue Delegate(s).
  • Started a rudimentary inventory system (not yet finished)

​​Week #3 - Finished Gamelet1.

  • Finished the rudimentary Inventory system

  • Created a PickupComponent to support picking inventory items off the ground and storing in inventory.

  • Added Dump to Log (debugger) support to the inventory system

  • Added Inventory Component to Player Character class

  • Made various changes to game system to sup

    port picking inventory objects off ground and putting them in the PC’s inventory

  • Created a inventory cube that could be picked up off the ground and added to inventory

  • Added Save / Load support to the dialogue system

  • Added Save / Load support to the inventory system

  • Created A Game Instance Subsystem for inventory changes to survive in the World (outside of the player character). Added my GameInstanceSubsystem to the WorldSubsystem object

  • Made various changes to the rest of the game system to support save/load and to destroy objects (currently in the world) that have actually moved into the players inventory (load game state).

  • Tested entire system end to end (dialogue, skill-check, pick object off ground and put in inventory, change attributes, re-test skill-checks, save/load, verify attribute changes, verify dialogue changes (based on attributes), verify inventory changes (objects get destroyed in world and end up in players inventory).

  • Definitely not perfect but a good start in learning to write a game

  • Accomplished main goal of Gamelet1 (rudimentary dialogue system, rudimentary inventory system, save/load world state – attributes, dialogue, inventory, etc.)

  • Ready to figure out what to learn in gamelet2 and design that new gameplay and then start implementing it.

Devlog #4 - [Gamelet2]:grey-box colony ship RPG"

Note: No Image to show as Gameplay hasn’t fundamentally changed yet, still working through Game Flow State Machine design and implementation…

  • Finished Gamelet1 - Rudimentary Attributes, Dialogue, Inventory, Simple save/load
  • Started Gamelet2 - building on Gamelet1, improving game by adding game flow state machine
  • Started by understanding how to pause, quit, save/load in UE
  • Decided that I need to have a Game Instance class instead of a Game World class for supporting state outside of levels (World)
  • Wrote initial ColonyGameFlowSubsystem class derived from GameInstanceSubSystem
  • Designed rough Game Flow State machine (States, Triggers)
    • States: MainMenu, Playing, Paused, QuitGame, etc.
    • Triggers: Death (Player died), NewGame, Continue, Key, Quit, etc.
  • Refined Game Flow State Machine (added Actions on Transitions)
    • Actions: Pause Game, Resume Game, Save Game, Load Game, Continue (Load most recent game), etc.
  • Wrote Initial State Machine as static table of Transition Rows (OldState, Trigger, NewState, Actions)
  • Wrote HandleTrigger(Trigger) method using Transition Table to implement Game Flow represented by State Machine.
  • Added actual pause/resume mechanics to game flow (trickier than expected)
  • Realized that complicated states can fail, rewrote Game Flow to deal with failed attempts to save / load / etc.
  • Refactored HandleTrigger to call RunAction() subroutine (giant switch statement) for each requested action.
  • Added Save Game to game flow
  • Still need to refactor LoadGame into BeingLoad, OnBeingLoaded() to keep UE constantly running.
  • Still need to write several actions like MainMenu, NewGame, Continue, etc which eventually resolve to calling OpenFile(…) on the appropriate level.
  • Still need to test throughly