3D game engine
Find a file
2025-06-16 01:04:53 -05:00
Data Add snap to nearest wall thing 2025-06-16 01:04:53 -05:00
Docs poop j 2024-08-03 11:40:55 -05:00
KP3Dii Temporarily take out Model assertions 2025-06-16 00:36:45 -05:00
Sandbox Add snap to nearest wall thing 2025-06-16 01:04:53 -05:00
Tools Initial commit 2024-07-22 02:48:42 -05:00
x64 Add le freetype DLL 2024-08-15 23:49:51 -05:00
.editorconfig Initial commit 2024-07-22 02:48:42 -05:00
.gitattributes updatez 2024-08-03 23:51:25 -05:00
.gitignore Add CMakeLists.txt + adjust Math and SystemUtils to build on GNU/Linux 2025-06-16 00:31:09 -05:00
CMakeLists.txt Add CMakeLists.txt + adjust Math and SystemUtils to build on GNU/Linux 2025-06-16 00:31:09 -05:00
KP3Dii.sln Initial commit 2024-07-22 02:48:42 -05:00
README.md Update README.md 2025-06-16 00:37:43 -05:00

KP3Dii banner

KP3Dii

This is the sequel to my KP3D Doom-inspired game engine. It's a unique game engine written in C++17 that combines Doom's sector-based approach to mapmaking and rendering with modern techniques like constructive solid geometry.

Unlike its predecessor, the KP3Dii map editor and "game" are considered one. Previously you would have to download a separate map editor and build maps using a 2D interface. With KP3Dii, you may now edit maps in 3D. I was inspired to do this by Cube 2: Sauerbraten, another handmade game/engine that features a unique level system; it also has co-op map editing, which is a goal for this engine as well!

Improvements over KP3D

  • 3D map editor (as mentioned above)
  • Support for sectors over sectors
  • Support for slopes/heightmapping/terrain
  • Normal mapping
  • Scripting using a custom dialect of Lisp
  • Skeletal animations/"skinned" meshes
  • Anime girl mascot

Why make an engine when there's so many better ones out there?

  1. I don't like using other engines
  2. It's fun

Building

On Windows

Open up the Visual Studio 2022 project file and you're good to go.

On GNU/Linux

Assuming you're using a Debian-based distribution, first get the dependencies:

sudo apt-get install build-essential git cmake libassimp-dev libenet-dev libsdl2-dev libsdl2-mixer-dev libglew-dev libfreetype-dev libspdlog-dev

Once that's done, run cmake and make:

mkdir build
cd build
cmake ..
make -j $(nproc)

To quickly run the Sandbox, place the executable in the Data/ folder relative to the repository root:

cp KP3Dii ../Data/
cd ../Data/
./KP3Dii

If this doesn't work then idk figure it out lmao

Have fun!