Hyphen Engine is a fully homemade game engine written in C++, and is the successor of the Ultra Game Engine, my first engine project.

As my first engine got older, I leaned more and more towards the idea of an Ultra Game Engine 2.0. With new experience acquired, I noticed how cluttered and unoptimized the whole project was. I had started this in highschool, with very little knowledge of engine programming, and I was just trying to mimic what other engines like Unity and Unreal were already doing.

In 2023, I finally had a clear vision of the inner workings of videogames, and knew that I needed a new, clean piece of software written from scratch, while adopting a more direct and mindful approach to the problems raised by game engines.

Inspirations from Quake and Source

Programmatically, Hyphen heavily draws inspiration from Quake and Source, from the map formats to how entities talk to each other. Both engines see entities in a world as a sort of shell script, where each entity is a program that can pipe its data to another. In a way, this scheme naturally makes entities adhere to the Unix philosophy : do one thing, do that thing well, be done with it.

Entities also do not have components. They are all that there is. Instead, complex gameplay elements are made by combining simple entities together.
As for events, Source Engine implements them as entity inputs/outputs. These essentially work as lists of callback functions to call in order, the so-called "input functions", in case an output is fired.

Needless to say, Hyphen seeks simplicity and actively avoids redundancy in every aspect of its code, which makes it lightweight, powerful and reliable.

Editor

Hyphen Engine's editor

The editor is directly implemented into the main program, and is entirely based on Dear ImGui. It works as an overlay on top of the game, but can also be built with its own code to work as a real editor. It provides editors for various asset types, such as levels and meshes.

The level editor is versatile, and is used both for level and compound entity assets. Compound entities are small levels, which can be thought of as reusable complex gameplay objects.

The mesh editor allows assigning default materials to meshes, and add collision with absolute flexibility. Meshes can also be broken into pieces to create breakable objects, have pre-computed boundaries for culling, and can be optimized for fewer draw calls.

Features

Below is a (non-exhaustive) list of the systems supported by Hyphen :

Technologies Used

Rendering is currently done with OpenGL 2.0 (I know I know, I'm behind, but newer backends are planned).

For physics simulation, Hyphen uses an old Windows-only package of Havok released in 2014 (back when Intel still owned the company). After Havok was bought by Microsoft, These free packages were discontinued. Switching to Bullet Physics might be an option in the future.