Releases: SebAs-man/ViperVision
Version 1.0.0 - Stable Architecture
Release 1.0.0: Stable Architecture & Pathfinding AI
This is the first major stable release of ViperVision, marking the completion of a robust, professional-grade software architecture and the initial implementation of an advanced pathfinding AI.
Key Features & Achievements in this Release:
🐍 Gameplay & AI
- A Pathfinding AI:* The AI snake now uses the A* algorithm to intelligently find the shortest path to food.
- Advanced Survival Logic: Implemented a sophisticated "safety check" simulation that allows the AI to predict and avoid trapping itself, prioritizing survival when necessary.
- Configurable AI: The AI's parameters, such as speed and path visualization, can now be configured through a dynamic side panel UI.
🏗️ Architecture & Design
This version represents a complete transition to a clean, decoupled Model-View-Presenter (MVP) architecture.
- Strict Separation of Concerns:
- Model: Contains pure game data and rules (
GameSession,UserProfile, entities), with no knowledge of the UI. - View: A passive presentation layer (
Renderers,UI Components) responsible only for drawing what the Presenter tells it to. - Presenter: The
Stateclasses act as Presenters, orchestrating all application logic, manipulating the model, and updating the view.
- Model: Contains pure game data and rules (
- Dependency Inversion: A central
contractspackage with interfaces ensures that layers are fully decoupled and testable, eliminating circular dependencies. - Reactive Event-Driven System: A global, type-safe Event Bus (
EventManager) allows different systems (game logic, sound, UI) to communicate without direct coupling, following the Observer pattern. - Advanced Design Patterns: The project now robustly implements State, Strategy, Command, Observer, Factory, Singleton, and Composite patterns, forming a solid and scalable foundation.
v0.1 - Human Player Mode
Release v0.1 - Basic Human Player
This marks the initial functional commit of the ViperVision Snake game, serving as the foundational starting point.
Features:
- Classic Snake gameplay mechanics implemented.
- Human player control enabled via arrow keys.
- Basic collision detection logic (walls and self-collision).
- Simple score tracking displayed.
Implementation Details:
- Core logic written in Java.
- Graphics rendering and user interaction handled by the Processing library.
- This version features a direct, straightforward implementation style without specific architectural patterns (like MVP, State, etc.) applied yet. These will be introduced in future iterations.
This v0.1 code does not use a build automation tool like Maven or Gradle. Dependency management is manual. To compile and run this specific version from source, you must:
- Download the Processing
core.jarlibrary (version 4.x recommended) from the official Processing website. - Manually add this
core.jarfile as a library/dependency to your Java project within your IDE (e.g., via Project Structure in IntelliJ IDEA or Build Path in Eclipse).
Future versions of ViperVision will incorporate Maven for automatic dependency handling, making setup much simpler.