Origin Engine banner

Origin Engine

7 devlogs
35h 23m 43s

Origin is a true-3D-pixelart Game Engine written from scratch in beautiful C++. As it uses OpenGL, it supports Windows, Mac and Linux as well as Web (yes!, it can be also compiled to WebAssembly thanks to emscripten). Uses SDL2, GLM, stb_image and…

Origin is a true-3D-pixelart Game Engine written from scratch in beautiful C++. As it uses OpenGL, it supports Windows, Mac and Linux as well as Web (yes!, it can be also compiled to WebAssembly thanks to emscripten). Uses SDL2, GLM, stb_image and assimp.

This project uses AI

Used Claude to help me with fancy C++20 smart pointers and similar stuff

Demo Repository

Loading README...

aloyak

Origin Engine

Added TRUE 3D PIXEL ART!!!!!

This is not an effect, but real 3D pixel art! The engine renders everything to an offscreen buffer with very low resolution which is then stretched to cover the whole window (or you can use that buffer for whatever you want, like for example, a viewport window for the sandbox module im now working on).

Full changelog:

  • 3D pixel art rendering.
  • Simple color depth function which allows you to limit the number of colors rendered (to choose from 4, 8, 16, or 32-bit colors, the screenshot is at 8-bit).
  • I’ve also been working on a simple wobly effect like the ps1 models have but I don’t really like the result right now.

Adding the offscreen buffer is going to make the sandbox a lot easier to create, but I first need to fix some problems with relative paths and stuff (and make loading assets quicker)

Attachment
0
aloyak

Origin Engine

I added a very simple scene system based on json serialization. The engine now supports loading/unloading/saving scene files fairly quickly. This will also make the sandbox module a lot easier to create as it would just really be a json modifier with a nice UI. This system allows you to create entities inside scenes but also off-scene entities that are not linked to any scene in particular, so if a scene is unloaded your player entity (for example) won’t get unloaded with it.

Next I would like to add a “skybox” component so my scenes don’t look so empty and sad :((
Also I need to check for Windows Support, which should be working nicely but I don’t I need to borrow a windows computer. I need help testing for MacOS support!!!

Attachment
0
aloyak

Origin Engine

Finally Added Web Support, switching to SDL2 was such a good decision. It now uses OpenGL ES strictly for web and OpenGL 4.1 for desktop.

  • Firefox works well, Input seems to be broken on Brave

  • Chrome and Safari are not yet tested!

  • I also added some more test assets and fixed some bugs.

  • Added some window settings like VSync and Fullscreen options. Performance seems nice but it will probably need optimization (mostly with assimp)

I’m now trying to upload a simple game to my website but I’m kinda struggling…
I want to add skyboxes and other stuff but I think it would be better to add a scene system first. And of course I need to start making the pixel art stuff at some point.

1

Comments

aloyak
aloyak 6 days ago

For any future web demos -> https://origin.aloyak.dev

aloyak

Origin Engine

There’s a video next to the screenshot!!

I made quite a lot of progress! In order to make web support easier.

  • I had to drop GLFW and instead work with SDL2, it makes everything so much easier and it was relatively ez to port, and no game changes needed!
  • Made Compiling + Cmake a lot faster by removing Tests and Docs from all the libraries
  • Made the Model class now use the Texture class and implemented a simple cache system so a texture can’t be used twice, which saves time. Claude helped me out because this took many smart pointers
  • Very important: Created an Entity/Component system which uses templates so its very easy to add new components, right now only the Render, Camera and Transform components exist, but its enough to make the demo on the video work

After this I will try to make emscriptem work now that SDL2 is here…

Attachment
0
aloyak

Origin Engine

It took a long while to learn how to use assimp, but know my engine supports reading directly .obj files and rendering them, although it takes some time to load them (way too long). After this I want to “standardize” everything into an entity/component system.
This model was made by crytek and the video is my engine rendering that model. May cause dizziness (sorry)
In a bit I’ll try to make the WebGL support to make a sort of demo public, we’ll see tho, stay tuned!

3

Comments

aloyak
aloyak 9 days ago

PS: I also created a nice logo using Gimp!!

sl4shed
sl4shed 8 days ago

yo this project is really cool

aloyak
aloyak 8 days ago

Thank you!

aloyak

Origin Engine

Hello!, After a few days of reading documentations (ty! learnopengl.com) I have this basic demo working. Simple but cool and I’ve learnt a lot over these last few days (mostly perspective matrices math and shader programming)

I’m making a super basic true-3D-pixelart game engine. It supports OpenGL but will possibly add WebGL support in the future, the project is currently divided into a ‘game’ module and an ‘engine’ module, but I think it would also be cool to add a sandbox…

This is a very simple demo using the engine to make a hardcoded cube rotate in from of a camera. After this I will probably add a texture class and keep going!

0