Skip to content

A lightweight ray caster project developed in Java, designed to simulate 3D graphics with efficient ray-casting algorithms.

License

Notifications You must be signed in to change notification settings

LandryTech/Raygen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues License LinkedIn


Logo

Raygen

Raygen is a performant and extensible 2D raycasting engine built in Java, designed for rendering dynamic environments with a classic pseudo-3D perspective. Utilizing the JFrame library for graphical output, Raygen implements an efficient raycasting algorithm to simulate depth perception, making it ideal for games, simulations, and educational projects.

Key Features:
Real-Time Rendering – Uses a raycasting technique to generate a first-person perspective view.
Smooth Player Movement – Supports full 2D motion, and rotational movement via mouse movement.
Custom Input Handling – Implements an InputHandler class for responsive user interaction.
Scalable and Modular – Easily extendable for new gameplay mechanics, textures, and enhancements.
Dynamic Collision Detection – Utilizes a CollisionManager to prevent player movement through walls.
Customizable Settings – Allows adjustment of FOV, render distance, player speed, and collision tolerance via an in-game settings menu.
Easy Map Generation - Fully customizable map generation data provided by SVG files, provided by Maze Generator

Whether you're exploring the fundamentals of computer graphics or developing a retro-style game, Raygen provides a solid foundation for 2D raycasting in Java.

Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Built With
  3. Usage
  4. Top Contributors
  5. License
  6. Contact
  7. Acknowledgments

About The Project

Raygen is a 2D raycasting engine written in Java, using JFrame for rendering and an efficient raycasting algorithm for depth simulation. It is designed for game development, simulations, and educational purposes. The engine features real-time rendering, smooth player movement, and dynamic collision detection, making it a versatile tool for creating immersive 2D environments with a pseudo-3D effect.

Built With

Java
  • JFrame
  • Java AWT
  • Java Swing

Usage

Raygen is designed to be easy to use and extend. Here's a quick guide to get started:

  1. Clone the Repository:
    git clone https://github.com/LandryTech/Raygen.git
  2. Run the Application:
    • Navigate to the project directory and run the Raygen class.
    • The game will start with a map selection menu where you can choose from predefined maps.
  3. Controls:
    • W: Move forward
    • S: Move backwards
    • A: Strafe left
    • D: Strafe right
    • Mouse Movement: Rotate the player's view
    • Space: Open the settings menu to adjust FOV, render distance, and player speed through the in-game settings menu.

Top Contributors

contrib.rocks image

Acknowledgments

  • Java AWT and Swing: For providing the graphical framework used in this project.
  • Raycasting Algorithm: Inspired by classic raycasting techniques used in the early 3D games like Wolfenstein 3D.
  • Open Source Community: For continuous inspiration.

License

Distributed under the GPL License 3.0. See LICENSE.txt for more information.

Contact

Kaden Landry - Kaden L. LinkedIn
Zachary Beaupre
Pablo Artero - Pablo A. LinkedIn

Project Link: https://github.com/LandryTech/Raygen

About

A lightweight ray caster project developed in Java, designed to simulate 3D graphics with efficient ray-casting algorithms.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages