Introduction
Paradox Engine is a 2D first game engine with cross-platform support for Windows, Linux and drumroll please… PlayStation Vita!
The goal is to have Vulkan and OpenGL support, an editor, asset management, scripting, and easy game packaging.
The way I’ll be test-driving the engine is by trying to remake the first game I made with a group, Niva.
Why?
The PS Vita still has an active community but the well-known engines such as Unity, Godot etc do not or no longer support the console, and you need to either use older outdated versions or find workarounds to get them to work. There are also open source engines such as Xenity but from what I’ve seen, it is no longer receiving major updates.
I already have some experience with OpenGL (by modding Minecraft and other small projects) but I wanted to learn a modern graphics API so I chose Vulkan for its Linux support. I don’t want to specialize myself in rendering but I wanted to at least learn the basics of Vulkan and how to structure an engine to easily support multiple graphics APIs.
I’ve always been curious how game engines can export to a completely different platform so I wanted to learn how to create a pipeline so that the engine can compile the necessary files for a console and how to structure the engine to make this easy.
What’s been done so far
I’ll start off by saying that everything is open source on GitHub, and I also made a few posts about it on LinkedIn so this page might not be as up to date as them.
- The engine fully supports both OpenGL and Vulkan and can render quads using a Batch Renderer.
- AssetManager that tracks and unloads assets using Reference Counting.
- Dedicated editor where you can create projects, import and use assets to create scenes.
- Integrated Tracy to profile the engine.
- The engine’s runtime can be compiled for PS Vita by running a script. It only loads a scene with a debug camera but it’s something!
What’s left to be done
My goal right now is to finalize the workflow of creating a project then create a scene to package for your target platform.
To do that, I’m going to start working on Project Settings where you can specify a starting scene and assets for packaging (especially useful for the PS Vita).
Once that’s done, I still need to add a few things so that you can actually make a game with the engine:
- Camera Component, Play / Stop in the editor
- Scripting
- Spritesheet Component, for animations
- Physics Component, will probably use Box2D
