tschesky 3807ac652c Add support for images in dialogue windows (#19)
- Extend editor nodes with custom DialogueContent data type that holds either image or text
- Extend the dialogue importer to correctly process the new content into updated RuntimeDialogue content
- Update SpeechBubble to be able to display either text or image
- Add a custom property drawer for the DialogueContent to allow easy switching in graph authoring

Co-authored-by: Michal Pikulski <michal@foolhardyhorizons.com>
Reviewed-on: #19
2025-10-08 09:34:58 +00:00
2025-08-06 17:00:32 +02:00

Apple Hills

Apple Hills is a Unity-based adventure game featuring interactive puzzle mechanics, dialogue systems, and item interactions.

Project Overview

Apple Hills provides a unique gaming experience with:

  • Node-based dialogue system for interactive NPC conversations
  • Puzzle mechanics with condition-based progression
  • Item pickup, combination, and interaction systems
  • Custom Universal Render Pipeline setup

Repository Structure

AppleHills/
├── Assets/               # Unity asset files
│   ├── Art/              # Visual assets, models, textures
│   ├── Dialogue/         # Dialogue system and dialogue data
│   ├── Scripts/          # C# code for game systems
│   │   ├── Core/         # Core managers and services
│   │   ├── Dialogue/     # Dialogue system implementation
│   │   ├── Input/        # Input handling systems
│   │   ├── Interactions/ # Object interaction systems
│   │   ├── Movement/     # Character movement controllers
│   │   ├── PuzzleS/      # Puzzle mechanics and systems
│   │   └── UI/           # User interface components
│   ├── Scenes/           # Game scenes and levels
│   ├── Prefabs/          # Reusable game objects
│   └── ...               # Other asset folders
├── Packages/             # Unity package dependencies
├── ProjectSettings/      # Unity project settings
└── docs/                 # Project documentation
    ├── media/            # Images and other media for documentation
    └── dialogue_readme.md  # Detailed documentation about the dialogue system

Code Structure

Scripts Organization

The game's codebase is organized into several key modules:

Module Purpose
Animation Animation controllers and state machines
Bootstrap Game initialization and scene loading
Core Core game managers and services
Dialogue Dialogue tree implementation and text handling
Input Player input processing and mapping
Interactions Interactive object behaviors and triggers
Movement Character controllers and navigation
Pooling Object pooling for performance optimization
PuzzleS Puzzle mechanics, conditions, and validators
Settings Configurable game parameters and constants
UI User interface elements and controllers
Utilities Helper classes and extension methods

Core Systems Highlight

The Assets/Scripts/Core directory contains critical managers that orchestrate the game's systems:

Key Managers

  • GameManager: Central hub managing game state, scene transitions, and system coordination
  • ItemManager: Handles inventory system, item pickup, combination, and usage logic
  • SceneManagerService: Controls scene loading, unloading, and transitions

Settings Framework

The Core/Settings system provides a robust configuration framework:

  • ServiceLocator: Dependency injection system for accessing game services
  • SettingsProvider: Central access point for game configuration values
  • BaseSettings/BaseDeveloperSettings: Foundation for creating configurable parameters
  • InteractionSettings: Configuration for player-object interactions
  • MovementModeTypes: Movement parameters for different locomotion modes

Documentation

Detailed documentation about specific systems can be found in the docs folder:

Development

The project is structured using standard Unity practices. Key components:

  • Universal Render Pipeline for consistent visuals
  • Input System for configurable controls
  • Addressable Assets for asset management
Description
Main production repository for the AppleHills game
Readme 1 GiB
Languages
C# 100%