Skip to content

Releases: SebAs-man/ViperVision

Version 1.0.0 - Stable Architecture

08 Jul 20:09

Choose a tag to compare

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 State classes act as Presenters, orchestrating all application logic, manipulating the model, and updating the view.
  • Dependency Inversion: A central contracts package 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

03 May 23:21

Choose a tag to compare

Pre-release

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.

⚠️ Important Setup Note & Limitation:
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:

  1. Download the Processing core.jar library (version 4.x recommended) from the official Processing website.
  2. Manually add this core.jar file 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.