Skip to content

A pseudo-3D raycast-rendering game engine made with Kotlin and LWJGL. Think Wolfenstein 3D!

License

Notifications You must be signed in to change notification settings

study-game-engines/raycaster-kotlin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Raycast Engine

Raycast Engine is a multipurpose game engine. It is designed for Pseudo-3D games (Wolfenstein-3D style).

It has:

  • Multiplayer
  • Pseudo-3D rendering from a 2D map
  • Fast, quadtree-based collision checking
  • Multithreading, with rendering and game ticks running on separate threads

The engine loads levels (known as worlds) from JSON files. JSON worlds are then deserialized and loaded into the game. A world file can specify a custom deserializer to be used, allowing for custom logic when loading in the world.

The default world serializer is powerful, and can create game objects from a class name and arguments for the constructor. The engine contains a large amount of [de-]serialization utilities, so custom world serializers can be made with ease.

The engine has first-class support for add-ons/mods: an installation will contain a mods directory, and jars placed in there will be loaded into the classpath (there will, at some point, be a more sophisticated system for loading mods.)

The engine supports single- and multi-player games: multiplayer support is easy to add to your game objects, by adding the correct serialization methods. Member variables of game objects can be set to automatically sync from server to client simply using the synced delegate.

The engine is still very WIP - planned features include:

  • A main menu
  • Leaving/rejoining worlds
  • HUD/in-game GUI support
  • An inventory for players
  • A debug console in-game, quake-style

Creating add-ons/mods

Firstly, add the raycast-engine jar to your libraries. Then, just write some classes, such as GameObjects or Worlds, and build the jar. No need to register your mod or anything. Then add your jar to the mods folder and run!

About

A pseudo-3D raycast-rendering game engine made with Kotlin and LWJGL. Think Wolfenstein 3D!

Resources

License

Stars

Watchers

Forks

Languages

  • Kotlin 99.1%
  • GLSL 0.9%