https://github.com/arthurlumertz/orin
Engine built with GLFW, OpenGL and STB for making 2D. Highly inspired from RayLib and libGDX.
https://github.com/arthurlumertz/orin
2d cpp framework game game-development game-engine graphics input opengl opensource
Last synced: about 1 year ago
JSON representation
Engine built with GLFW, OpenGL and STB for making 2D. Highly inspired from RayLib and libGDX.
- Host: GitHub
- URL: https://github.com/arthurlumertz/orin
- Owner: ArthurLumertz
- License: mit
- Created: 2024-07-02T22:56:01.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-01T22:29:15.000Z (over 1 year ago)
- Last Synced: 2025-02-06T00:35:10.029Z (about 1 year ago)
- Topics: 2d, cpp, framework, game, game-development, game-engine, graphics, input, opengl, opensource
- Language: C++
- Homepage: https://arthurlumertz.github.io/orinengine-www/
- Size: 164 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Orin - C++ Game Framework
A C++ game framework built with OpenGL.
Similar to LibGDX, RayLib, and MonoGame, Orin provides a simple and effective way to build games using OpenGL.
## Setup
To set up Orin, follow these steps:
1. Download the files inside the `./src` directory.
2. Add the files to your project's directory.
After that, create a `main.cpp` file and start using Orin as shown below.
## Basic Example
This example demonstrates how to open a window, render basic graphics, create a camera, and load/unload textures.
> Keep in mind, this library is still in its development stage, and several performance improvements will be coming in 2025!
```cpp
#include "orin.hpp"
int main() {
// Initializes a basic window with the title "First Application"
InitWindow(960, 540, "First Application");
// Create and set up a basic camera (position and zoom)
Camera2D camera;
camera.position = { 0.0f, 0.0f };
camera.zoom = 1.0f;
// Load a basic texture from an image file
Texture2D texture = LoadTexture("image.png");
// Game loop: Run until the user closes the window
while (!WindowShouldClose()) {
ClearBackground(WHITE); // Clear the screen with a white background
BeginDrawing(); // Begin rendering
SetColor(BLACK); // Set the rendering color to black
// Draw a black rectangle at position (0, 0) with size 48x48
DrawRectangle(0.0f, 0.0f, 48.0f, 48.0f);
// Draw a black rectangle rotated 45 degrees at position (0, 48)
DrawRectangle(0.0f, 48.0f, 48.0f, 48.0f, 45.0f);
SetColor(WHITE); // Set the rendering color to white before drawing the texture
// Draw the texture at position (48, 0) with size 48x48
DrawTexture(texture, 48.0f, 0.0f, 48.0f, 48.0f);
EndDrawing(); // End rendering
// Update the window
UpdateWindow();
}
// Unloads the texture loaded previously
UnloadTexture(texture);
// Closes the window
CloseWindow();
return 0;
}