Skip to content

Wizziot's architecture is flexible; using my component-based design, a Game Designer could make a game in the Unity interface without coding. The architecture supports an interactive RPG with a story, missions, and combat. The AI have an "EmotionChip" of my own design (Emotional State Machine) along with emotional dispositions that influence th…

Benjy96/Wizziot

Repository files navigation

To play, open:

./Wizziot Prototype/Builds/wizziot.exe

What's good?

Architecture is designed in a way that a game designer can create a multiple-choice story with multiple enemy types, each with customisable emotional dispositions and behaviours, solely through the Unity inspector with maximum flexibility.

Features

  • Multiple Choice Story System (Interactive, e.g., KOTOR)
  • Emotion System - Each agent has an "EmotionChip" which stores their emotional disposition and calm state, angry state, etc..
  • Mission System - Multi-stage missions & rewards, granted by Story NPCs (linked to Ink script). Mission journal & log
  • Stat System - Ability modifiers determined by the component base modifier value, equipped items, and game difficulty
  • Item System (Using Stat System)
  • Ability/Combat System
  • Inventory System
  • Save/Load System - custom generic class (SaveData.cs) for storing Key Value pair data. Loader.cs/Saver.cs determine what to save.
  • Keybinding System
  • Spawn points for enemy prefabs
  • Day/night cycle that scares enemies using the emotion system

Example showing mission system and waypoints, targeting an enemy, health and stamina system, and abilities and an ability bar.

Mission System Gameplay

Architecture

Architecture Image

Most interesting scripts:

  • EmotionChip.cs
  • State.cs (& HideState.cs, AttackState.cs, etc..)
  • StoryManager.cs
  • MissionUI.cs (Compass code)
  • AbilityComponent.cs

Story and Exciting AI Design

How the story is handled

Using Ink markup language and plugin with Unity to create a choice-based story RPG. Similar to games such as KOTOR and Mass Effect, you can select story dialogue choices which affect the subsequent story direction. Each section of the story is "pointed to" by Story NPCs in the game world. Conversing with them accesses the relevant part of the Story script.

Interesting AI Architecture

I designed an "EMOTIONAL STATE MACHINE", based upon a Finite State Machine and Goal Oriented Action Planning. The EmotionChip (EmotionChip.cs) provides whatever it is attached to with an emotional disposition and three primary emotions (anger, fear, calm). ANY external factor can INFLUENCE (through a public interface method) emotions. The INTENT of the external actor is INTERPRETED depending on the NPC's EMOTIONAL DISPOSITION.

Once the NPC's emotion has been influenced enough (determined by their emotional stability), then they will switch State/Goal. Their States/Goals (e.g. angryState) carry out actions determined by ScriptableObjects which can be created by a game designer. This entire framework allows EXTREME variation in the creation of enemy types. You can make an enemy prefab and modify their emotion weights, disposition, reluctance, and goals!

For example:

1.) Attach EmotionChip to an enemy.

2.) Set its emotional disposition and reluctance/emotional stability.

3.) Create a State Object (ScriptableObject), e.g.: Attack State, and modify its target variable, and whether it is hostile.

4.) Drag this state into either the Angry, the Calm, or the Fear State.

5.) Add a spawner to the world, and hit Play.

Emotion-State change flowchart

Feature Flows

Story

Story granting flowchart

Missions (Using Scriptable Object System)

Scriptable Object mission granting process

AI Emotions

Emotion-State change flowchart

About

Wizziot's architecture is flexible; using my component-based design, a Game Designer could make a game in the Unity interface without coding. The architecture supports an interactive RPG with a story, missions, and combat. The AI have an "EmotionChip" of my own design (Emotional State Machine) along with emotional dispositions that influence th…

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published