Skip to content

JZBlock is a personal top-down zombie survival game built from the ground up using block-based visuals and mechanics. It combines tactical combat with a modular, cross-platform codebase to give players a fun and expandable survival experience.

License

Notifications You must be signed in to change notification settings

cjRem44x/JZBlock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

99 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

JZBlock

A personal zombie survival game composed of blocks

๐ŸŽฎ Overview

JZBlock is a top-down zombie survival game where players fight off waves of zombies using laser weapons. Version 0.5 represents a complete architectural rewrite, now featuring dual language implementations in both Java and Zig, giving developers the choice between JVM portability and native performance.

โœจ Features

Gameplay (Archived Version)

  • ๐Ÿ”ซ Laser Combat System - High-tech weaponry with visual effects
  • ๐ŸงŸ Wave-Based Survival - Increasingly difficult zombie hordes
  • ๐ŸŽฏ Top-Down Tactical Gameplay - Strategic positioning matters
  • ๐Ÿ’Š Health & Ammo Management - Resource management mechanics
  • ๐ŸŽฎ Game States - Menu, playing, game over, and paused states
  • โš™๏ธ Configurable Controls - Customizable graphics and control settings

Technical Architecture

  • โšก Dual Language Support - Choose between Zig (performance) or Java (portability)
  • ๐ŸŽจ Raylib Graphics (Zig) - Modern, lightweight graphics framework
  • ๐Ÿ–ผ๏ธ Swing/AWT (Java) - Classic cross-platform windowing
  • ๐Ÿงฉ Modular Design - Clean separation of concerns
  • ๐Ÿ”„ Cross-Platform - Windows, Linux, and more

๐Ÿ—๏ธ Architecture

Version 0.5 Rewrite

The current v0.5 branch is a complete rewrite focusing on:

  • Building dual Zig and Java implementations side-by-side
  • Establishing a clean, modular foundation
  • Integrating Raylib for modern graphics (Zig)
  • Maintaining backward compatibility with Java

Implementation Comparison

Feature Zig Implementation Java Implementation
Graphics Raylib Swing/AWT
Performance Native, zero-cost abstractions JVM runtime
Memory Manual management Automatic GC
Platform Compiled binaries Cross-platform JVM
Build build.zig Standard Java build

๐Ÿš€ Getting Started

Prerequisites

For Java Build:

  • Java Development Kit (JDK) 8 or later
  • Any Java-compatible platform (Windows, Linux, macOS)

For Zig Build:

  • Zig Compiler (latest version)
  • Raylib (automatically managed by build.zig)

Building the Project

Windows

# Navigate to scripts directory
cd scripts

# Run the Windows build script (interactive menu)
winbuild.bat

The script will prompt you to choose:

  1. Java - Build using Java/Swing
  2. Zig - Build using Zig/Raylib

Linux

# Navigate to scripts directory
cd scripts

# Make script executable (first time only)
chmod +x lxbuild.sh

# Run the Linux build script (interactive menu)
./lxbuild.sh

The script will prompt you to choose:

  1. Java - Build using Java/Swing
  2. Zig - Build using Zig/Raylib

Running the Archived Version

To run the original complete game (from archived source):

cd scripts/archived

# Windows
winbuild.bat

# Linux
chmod +x lxbuild.sh
./lxbuild.sh

๐ŸŽฏ Development Roadmap

Version 0.5 (Current - In Progress)

  • Set up dual-language architecture
  • Implement Zig build system with Raylib
  • Create modular Java foundation
  • Establish build scripts for both implementations
  • Port core game loop to both languages
  • Implement entity system in both languages
  • Add rendering pipeline (Raylib for Zig, Swing for Java)
  • Integrate input handling
  • Re-implement player mechanics

Version 0.6 (Planned)

  • Zombie AI and spawning
  • Laser weapon system
  • Wave management
  • UI and HUD
  • Sound effects and music

Version 1.0 (Future)

  • Complete feature parity with archived version
  • Performance optimizations
  • Additional weapons and enemies
  • Level system
  • Save/load functionality

๐Ÿ› ๏ธ Technology Stack

Zig Implementation

  • Language: Zig
  • Graphics: Raylib
  • Build System: Zig build system
  • Focus: Performance, native execution

Java Implementation

  • Language: Java 8+
  • Graphics: Swing/AWT
  • Build System: Standard Java compilation
  • Focus: Cross-platform compatibility, ease of development

Archived Version (Original)

  • Language: Pure Java
  • Graphics: Custom Swing/AWT rendering
  • Features: Complete game with all mechanics

๐Ÿ“š Code Examples

Running the Java Version

// Main entry point - src/main/java/Main.java
public class Main {
    public static void main(String[] args) {
        //...
    }
}

Running the Zig Version

// Main entry point - src/main/zig/src/main.zig
pub fn main() !void {
    //...
}

๐Ÿค Contributing

This is a personal project, but feedback and suggestions are welcome! If you'd like to contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“œ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

๐ŸŽฎ Game Controls (Archived Version)

Action Key
Move Up W
Move Down S
Move Left A
Move Right D
Shoot Left Mouse Button
Pause ESC

๐Ÿ› Known Issues

  • v0.5 is currently in active development - game loop not yet implemented
  • Archived version may have platform-specific rendering quirks
  • Zig implementation requires manual Raylib setup on some platforms

๐Ÿ“ง Contact

Developer: cjRem44x
Repository: github.com/cjRem44x/JZBlock

๐Ÿ™ Acknowledgments


Status: ๐Ÿšง In Development (v0.5 Rewrite)
Language: Java & Zig
Platform: Cross-platform (Windows, Linux, macOS)
Graphics: Raylib (Zig) | Swing/AWT (Java)

Enjoy playing JZBlock! ๐ŸŽฎ๐ŸงŸโ€โ™‚๏ธโšก

About

JZBlock is a personal top-down zombie survival game built from the ground up using block-based visuals and mechanics. It combines tactical combat with a modular, cross-platform codebase to give players a fun and expandable survival experience.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published