Skip to content

Latest commit

ย 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 

Repository files navigation

Dynamic Event Orchestration System | Tank and Zombies A modular, event-driven framework designed to handle complex game-state transitions and player-triggered environmental events. This system demonstrates high-level software architecture, focusing on decoupling and scalability.

๐Ÿ— Architectural Highlights ๐Ÿ”น Polymorphic Event Lifecycle Management The system utilizes an Abstract Base Class (EventEnder) to standardize how different event types (Spatial Objectives, Boss Battles, etc.) terminate. This allows for Polymorphic Execution, where the core engine interacts with abstract definitions rather than concrete implementations.

๐Ÿ”น Advanced Decoupling (Observer Pattern) By leveraging C# Delegates and Actions, the reward and UI systems are completely decoupled from the event logic.

GameEventRewarder observes multiple GameEventContainer instances.

When a signal is fired, the rewarder executes its logic without needing a direct reference to the event's internal mechanics.

๐Ÿ”น Data Filtering & Randomization (LINQ) Implemented LINQ (Language Integrated Query) to handle dynamic event selection. The system filters available event containers, ensures no duplicate events start simultaneously, and introduces randomization through functional programming patterns.

๐Ÿ”น Dynamic Difficulty Decay Logic The GameEventTriggerer features a Time-based Value Decay algorithm. This ensures that player performance metrics (Kill Thresholds) are balanced in real-time, preventing event overflow and managing the application's pacing dynamically.

๐Ÿ”น Spatial Interaction & UI Syncing The AreaEvent system manages real-time spatial queries through physics triggers. It features an independent UI Management System (AreaStayBarManager) that synchronizes world-space data with the user interface via a non-intrusive follow-logic.

๐Ÿ›  Engineering Concepts Applied SOLID Principles: Specifically Open/Closed and Interface Segregation.

State Management: Handling "Active", "Started", and "Ended" states across multiple containers.

Singleton Pattern: Global access points for centralized managers.

Object Pooling: Efficient memory allocation for spawned event entities.

Link is here: https://alkurt.itch.io/tank-zombies

About

A 2.5D action game where players control a tank and smash through hordes of zombies with fast, fluid movement.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages