Skip to content

MurilloYonamine/5th-Semester-Project

Repository files navigation

Contributors Forks Stargazers Issues Unlicense License Unity C#


Logo

5th Semester Project

A Unity project developed for Senac Santo Amaro University
Explore the docs »

View Demo · Report Bug · Request Feature

Project Architecture

This project follows a layered + feature-based architecture inside Assets/_Game.

High-Level Layers

  • Core: global services and contracts (EventBus, ServiceLocator, Input, Audio, enums).
  • Framework: reusable systems (Behaviour Trees, generic UI components).
  • Gameplay: game-specific features (Player, Enemy, Dialogue, Menu, Inventory, Door, Delivery, etc.).
  • Shared: cross-cutting interfaces/utilities (IInteractable, helpers, physic materials).
  • UI: PSX shaders and VFX pipeline.

Folder Structure

Assets/
└── _Game/
  ├── Core/
  ├── Framework/
  ├── Gameplay/
  ├── Shared/
  └── UI/

Dependency Rules

  • Core does not depend on Gameplay features.
  • Framework depends on Core.
  • Gameplay depends on Core + Framework.
  • Features communicate through EventBus and service interfaces.
  • Avoid direct feature-to-feature coupling when possible.

Runtime Initialization

Gameplay/Bootstrap/GameBootstrapper.cs initializes global services before scene load using Unity runtime initialization attributes.

Architectural View

Documentation Index

Gameplay Feature Docs

Dialogue Data Model Update

The dialogue runtime now follows a split data model:

  • TextAsset stores dialogue content (speaker name + line text).
  • CharacterSO stores speaker presentation (colors and fonts).

Why

This keeps dialogue authoring simple in .txt files while preserving reusable character styling in assets.

Runtime Flow

  1. DialogueTrigger references a TextAsset file.
  2. DialogueService calls DialogueParser.Parse(TextAsset).
  3. Each parsed speakerName is matched against configured CharacterSO assets (case-insensitive).
  4. UI applies speaker name/text colors and fonts from CharacterSO.
  5. If no match exists, DialogueService uses default colors/fonts.

Notes

  • DialogueSO is no longer required for runtime playback in this flow.
  • Keep CharacterSO for centralized speaker styling and consistency across dialogues.

Credits

CI/CD powered by GameCI and GitHub Actions.
Quick Outline powered by Chris Nolet
PSX footsteps provided by Hazard Play
Item Pickup SFX provided by Lamoot

Navigation menu SFX from Fupi
Open and Close menu SFX from Pedro Alegria

(back to top)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors