A personal zombie survival game composed of blocks
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.
- ๐ซ 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
- โก 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
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
| 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 |
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)
# Navigate to scripts directory
cd scripts
# Run the Windows build script (interactive menu)
winbuild.batThe script will prompt you to choose:
- Java - Build using Java/Swing
- Zig - Build using Zig/Raylib
# Navigate to scripts directory
cd scripts
# Make script executable (first time only)
chmod +x lxbuild.sh
# Run the Linux build script (interactive menu)
./lxbuild.shThe script will prompt you to choose:
- Java - Build using Java/Swing
- Zig - Build using Zig/Raylib
To run the original complete game (from archived source):
cd scripts/archived
# Windows
winbuild.bat
# Linux
chmod +x lxbuild.sh
./lxbuild.sh- 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
- Zombie AI and spawning
- Laser weapon system
- Wave management
- UI and HUD
- Sound effects and music
- Complete feature parity with archived version
- Performance optimizations
- Additional weapons and enemies
- Level system
- Save/load functionality
- Language: Java 8+
- Graphics: Swing/AWT
- Build System: Standard Java compilation
- Focus: Cross-platform compatibility, ease of development
- Language: Pure Java
- Graphics: Custom Swing/AWT rendering
- Features: Complete game with all mechanics
// Main entry point - src/main/java/Main.java
public class Main {
public static void main(String[] args) {
//...
}
}// Main entry point - src/main/zig/src/main.zig
pub fn main() !void {
//...
}This is a personal project, but feedback and suggestions are welcome! If you'd like to contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
| Action | Key |
|---|---|
| Move Up | W |
| Move Down | S |
| Move Left | A |
| Move Right | D |
| Shoot | Left Mouse Button |
| Pause | ESC |
- 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
Developer: cjRem44x
Repository: github.com/cjRem44x/JZBlock
- Raylib - Amazing graphics library for Zig
- Zig Programming Language - Modern systems programming
- Java Community - For the robust JVM ecosystem
Status: ๐ง In Development (v0.5 Rewrite)
Language: Java & Zig
Platform: Cross-platform (Windows, Linux, macOS)
Graphics: Raylib (Zig) | Swing/AWT (Java)
Enjoy playing JZBlock! ๐ฎ๐งโโ๏ธโก