This project is currently in an active development phase. It is in its early stages of creation and is not yet considered playable. Thank you for your interest in this provisional-named project, and please stay tuned for further developments!
Vakraft is developed using the Lightweight Java Game Library (LWJGL
).
This project aims to create a Minecraft-inspired game for the purpose of learning OpenGL
.
This project is currently in an active development phase. As of the latest update, it is in its early stages of creation and is not yet considered playable.
The game's core functionality is divided into key components:
- Engine.java: This class serves as the central hub of the game, housing game loop.
It manages the execution of methods defined in
Game.java
(via theIGameLogic.java
interface) within the game loop - Game.java: This class contains all the essential game logic, handling mechanics such as player movement and world generation. It forms the foundation upon which the entire gameplay experience is built
- game/: Within this directory, you'll find classes that directly impact in-game elements and mechanics. These classes contribute significantly to the game's interactive features and overall functionality.
- engine/: This directory hosts classes responsible for managing the game's core functionality.
- render/: In this directory, you'll discover all the necessary methods for rendering in-game elements, including textures, shaders, and meshes.
Please ensure that you have Gradle
installed and are using Java 8
or newer
You can compile and run the game using one of the following methods:
Execute the following commands using the provided compile script:
bash run.sh -r # Use -c to compile to a JAR file
./gradlew run
WARNING: Check for the correct
jar
name
java -jar vakraft.jare
WASD
- MovementE
- Next blockQ
- Previous blockShift
- Fly downSpace
- Fly upTAB
- Get cursorESC
- Close window
- Terrain generation (Started)
- Procedural generation
- Change
Model
to interface (maybe) - Add subchunks (maybe)
- Light
- Shader improvement
- Fix "Keyboard Input" bug
- Fix mouse movement
- Load blocks from file (maybe)
- Collision
- Gravity
- Save/Load (maybe)
Made by me
The project structure is inspired by StartForKiller/JavaMinecraft
NoiseGeneration.java
and PerlinNoiseGeneration.java
author: https://github.com/Bukkit/Bukkit/tree/master/src/main/java/org/bukkit/util/noise