Skip to content

williambl/raycast-engine

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published