A lightweight framework for 2D video games on low-end Windows and Linux PCs.
It's small and fast in the right hands, with a laser-focus on being extensible and portable.
MYTHOS should feel like a game engine you wrote for yourself.

Tranquility in simplicity. Because less is more.

Features



Simple and flexible cross-platform rendering. Direct3D 9 and OpenGL are fully supported out-of-the-box with the platform-specifics taken care of for you. MYTHOS is already perfect for expressively animated 2D games. But when the basics aren't good enough, or if you just don't like the way MYTHOS draws something, you can take back direct control.


Built-in background music system that can play both tracker modules and PCM streams. The underlying libxmp backend is under the developer's control and MYTHOS takes care of the resource management. Reactive music scores and compact file sizes are made easy. A wide variety of encoding formats for music streams are optionally supported.


Collision detection routines for convex hitboxes, built specifically for high-performance arcade games. You can use polygons, radials and single points. Optimization controls include bitmasking, adjustable hitrates, and you can even disable parts of the algorithm entirely.


Eccentric hardware friendly. MYTHOS is ready to change shape. Game logic requires integers only, so that you can port MYTHOS to really old hardware and your game will keep its fast, predictable behavior. LUTs for slow math are included.
MYTHOS itself requires an FPU out of the box for rendering and depends on modern libraries. Porting, while easy, will still require manual effort on your part.


Integrated with PhysicsFS for smaller download sizes, easy DLC and patch distribution, and resource pack management. PhysicsFS is a virtual filesystem driver that can mount compressed folders in a lot of formats, and even mount new files on top of old ones.


All the other little things that make MYTHOS nice to use. A detailed beginners manual, simple helpers for deterministic pseudo-RNG, configuration parsing, vertex manipulation, and a nice command line interface a la Quake that you can use to add and call your own debugging commands.
It's small. The engine core is only a few thousand lines long. The entirety of MYTHOS can reasonably be understood in an afternoon. External libraries are used moderately, mostly the standard library. MYTHOS itself operates much like a library in practice, and can be combined or extended to do anything.It's free and open source, under a permissive license. We'll never extort you after you've released your game. We don't care what you do with it, how much money you make, or even if you don't give something back. We would appreciate your donations or contributions, though.

So where can I try it?

We expect to have the first beta version ready in 2026. We'll update this page with links to the instruction manual and the source code when it's available to try.

If you have further questions, please mail them to: bonkmaykr@canithesis.org.


FAQ

Where did MYTHOS come from?

MYTHOS was created for our scrolling shooter game TIME FALCON. It began development on October 24th, 2024. We wrote it because we wanted something that was truly, seriously portable and that could be made into whatever we wanted. To accomplish this, we emphasized keeping the codebase small and offloading lower-level routines to external libraries. Most of the MYTHOS sources are just number-crunching and simple management of the game state, the rest is glue code that we expect and intend to be uprooted.

What state is the engine in?

We're at a point where we're confident it is usable for a commercial indie project, however, there is still a lot to be improved upon. This is considered alpha-quality software. There's a lot of code that is not as fast as it should be, temporary implementations of features, or features that ought to be added soon.

Having said that, we don't want to bloat MYTHOS with too much stuff that isn't absolutely necessary, and API stability is very important, so we expect that working with the engine two or three years later should not be remarkably different than how it is right now.

What is included with MYTHOS?

The first public release will include the full source code, with extensive documentation for both the beginner developer and the performance-minded. Documentation is available as both a PDF manual and a Doxygen config which will list the contents of every header. The default project will further demonstrate how to get started. Prior knowledge of object-oriented C++ is a requirement.

The full source code to the game "Debris Crusher" will be made available the same day the engine source releases. More example programs may be bundled at a later time.

Is MYTHOS suited for my project?

Its key strength is in the motto. This is a good starting point if you're okay with doing a lot of things yourself and want a trustworthy foundation that won't restrain you. It is also good for people who want an extremely relaxed copyright license and don't want to pay royalties, or developers who are fed up with the amount of bloat that is often found in more mature game engines.

It's not a good starting point if you want every single fancy tool built-in with a nice GUI, are planning something ambitious (open world, 3D interactions, etc.), or have a very poor understanding of computer science. At the very least, one person on your team should be available for low-level technical support. Serializing your level data and integrating tooling will be up to you.

What platforms are supported?

MYTHOS is designed for a PC. As of Version A1, Windows and Linux PCs using the x86 architecture are supported as build targets. Currently, Windows 7 is the oldest version of Windows to work, but compatibility with Windows XP is planned. No other platforms are officially supported at this time.

Porting the engine to other platforms should be trivial, however, provided they have a working OpenGL backend or similar. There is currently no touch input API for mobile devices, although the underlying Allegro APIs are readily accessible.

What about Wayland support?

Highly unlikely. Wayland is just not reliable, and we have no interest in it. Besides, Allegro handles talking to the operating system, MYTHOS does not do it by itself, so it's not our responsibility. The Allegro maintainers are not interested in Wayland support at this time either. If you want to see Wayland used natively, then you will need to contribute it to Allegro yourself.

For now, XWayland appears to be fully compatible, but your mileage will vary depending on what window manager you use.

What are the terms of the copyright license?

MYTHOS will become available under the MIT license. It can be used for any purpose, even in proprietary software, but you are required to disclose its use.

Third party dependencies must also have their licenses respected. Please refer to the THIRD_PARTY.TXT file included with the engine for more information.

What toolchains are supported?

MYTHOS is fully compatible with GCC since version 5.6 and clang-LLVM since version 3.4. Most forks of GCC 5.6+ should also work without hassle, including MinGW. A fully ISO-compliant C++ standard library is needed. libstdc++ and libc++ are known to work without problems.

Microsoft's toolchain (the MSVC compiler and C++ runtime) are NOT supported and we have no plans to support them in the future due to how unstable they are and how much developer time they waste.

The build scripts we use are designed for cross-compiling from a Linux host. We suggest a strong familiarity with Unix systems before trying to use MYTHOS.

What kind of hardware is MYTHOS designed to run on?

Your mileage will vary depending on the game in question, the number of simultaneous entities, hitbox complexity, shader complexity, quality of assets, and the complexity of the game logic itself.

Computers manufactured after 2004 should have little or no problems. Any 3D accelerator that supports OpenGL 2 or Direct3D 9 should work flawlessly. Older accelerators that only have a fixed-function pipeline can still run MYTHOS games by passing --ffp at the command line. However, a lot of those older cards are often severely VRAM bottlenecked and may cause other graphics defects.

What external dependencies or libraries does it need?

MYTHOS is built on top of Allegro, PhysicsFS, and the eXtended Module Player, which are expected to be already installed on your workstation. It also bundles some lightweight dependencies as Git submodules and some directly within the Includes folder. Allegro will pull in media decoding libraries, which you can turn on or off at compile time — by default it will use everything it can find.

Glib and Freetype2 are temporarily required in these early versions of MYTHOS since they are used by some Allegro plugins. They will no longer be needed once we replace them with lighter alternatives.

Do I need to know how to use Allegro to use MYTHOS?

Most of the time, no, you will not. MYTHOS provides prefab types suitable for most 2D games so you don't need to write them yourself. This includes sprite rendering code. Cases where you may need to interact with Allegro will shrink as more abstractions for the most common use cases are created.

The most likely situation that would require talking to Allegro will be implementing your HUD and camera controls. We suggest you read the template project to learn how to accomplish everything you'll need.

Future versions of MYTHOS may drop Allegro. In the event that this happens, we'll provide compatibility tools and instructions to ensure your old projects still compile. All Allegro calls are prone to deprecation, so if an abstraction for what you want already comes with the engine, use that instead. Chances are likely that it does a better job than Allegro will on its own anyways.

How hard would it be to port MYTHOS to another platform?

That depends on the target hardware (mainly, whether or not a hardware floating point unit is available, since the PC rendering code uses it) and the libraries available for the target operating system. If Allegro is not available, that is one thing you will need to strip out. If you don't have a good C++11 standard library, that too will be your problem to figure out.

A well-written MYTHOS game should not, by itself, depend on an FPU. Game logic is supposed to use fixed-point math for a reason. If you use floats in your game logic, that will complicate things further.

What do I need to bundle to ship a MYTHOS program?

On Linux, very little, provided your customers have the correct packages installed. Valve ships containers with many libraries common in games from within their Steam client. If one of the required libraries is not here, you may be able to include them yourself and then change the LD_LIBRARY_PATH in a launcher script.

Windows will require you to bundle your game's dependencies and users must install the Universal CRT update package. The requirements will shrink in the future.

Does this have anything to do with the engine by Pink Moon, or the libraries by Charybdis Enterprises?

No, it does not. This is our own original creation.