CI/CD name | Build status |
---|---|
GitHub Actions | |
Travis | |
AppVeyor | |
Azure Pipelines |
- 📖 ÖbEngine's Wiki
- 🔗 ÖbEngine's Website
- 📄 ÖbEngine's Documentation
- 💬 ÖbEngine's Discord
- 🛠️ ÖbEngine's Development Boards
- 🎮 ÖbEngine's Examples
ÖbEngine is a 2D Game Engine made on top of SFML ! I'm working on this engine in my spare time, it might not be really stable right now but I'm working on it.
You will need SFML :
- SFML 2.5.1 (Display, Input, Network, Sound and much more)
There are other third-party libraries but they are included in the repository (extlibs/
folder).
Check this tutorial to learn how to build ÖbEngine : Building ÖbEngine
Library | Description | License |
---|---|---|
11zip | minizip wrapper based on Vili Petek's work | MIT License |
Catch2 | Test Framework | Boost Software License |
dynamicLinker | Dynamic Libs wrapper | MIT License |
fmt | Formatting library | BSD 2-Clause "Simplified" License |
Sol | C++ binding library to Lua | MIT License |
Lua 5.3 | Scripting language | zlib License |
RichText | sf::Text extension | MIT License |
spdlog | Logging library | MIT License |
Vili | Homemade Data language (YAML-like) | MIT License |
zlib & minizip | zip archives | zlib license |
Library | Description | License |
---|---|---|
debugger.lua | Embeddable Lua debugger | MIT License |
inspect.lua | Human-readable representation of Lua tables | MIT License |
You can do everything with it as long as it's in 2D. ÖbEngine doesn't handle 3D (maybe partial 3D support in a future update). You can do some platformers, RPGs, 2D racing games, visual novels, roguelikes, metroidvanias, etc..
If you want to check out games made with ÖbEngine, you can check out those 🍆open-source projects🍆 !
Yes it is, completely free ! There is no premium, in-app purchase, forced splashscreen or anything. You can sell your game made with ÖbEngine with no royalties either ! Since the engine is based on the MIT license, you can modify the sources, do anything you want with the engine as long as you keep the original license file somewhere. We rely exclusively on donations so if you want to support the development you can find the sponsor page right here !
ÖbEngine has been tested on the following platforms :
- Windows XP, 7, 8, 10
- Linux (Debian, Arch)
- MacOS
ÖbEngine will have export for Android, iOS and HTML5 available in a future update.
Here you go :
- Event-based scripting (with Lua)
- Neat map editor
- Animations
- Native plugins (You can extend the engine with C++ with automatic bindings and documentation generator)
- Canvas (You can draw stuff using a simple API)
- Network support
- Scene / GameObjects system
- Workspaces and Packages system
- Layering system with parallax support
- Polygonal Collisions with full collision detection support
- Integrated CLI to manage your project
- Custom package manager with online repository
- Gamepad support
- Bindable actions with support for complex key combinations
- Shader support
- Audio with many formats supported (OGG, MP3, WAV, FLAC and much more)
- 3D support
- 2D skeletal animations
- Collaborative map editor
- Light & particle system
- Script the engine with the langage of your choice
- Multiple windows
- Android, iOS and HTML5 export
- Tiled Map Editor support
Each major release will have a name based on a translation of the word "Eggplant".
ÖbEngine just follows semver rules which means any version will be tagged (X.Y.Z) with X: Major, Y: Minor and Z: Patch.
Version number | Version name | Word origin | Release date | Description |
---|---|---|---|---|
1.0.0 | Melanzana | Italian | ? | First production release of ÖbEngine |
Sure, here are some simple GameObjects :
This one is really simple, it just prints "Hello World" in the console
function Local.Init() -- Called when object is created
print("Hello World");
end
Every GameObject can have a Sprite associated (it's cooler when your object appears in the game right ?).
Let's imagine you want to create a rotating goat in your game, no problem :
function Local.Init()
-- Set the animation for when the goat is flying to the right (You can imagine it already right ?)
This.Animator:setKey("GOAT_FLYING_LEFT");
end
function Local.Update(dt) -- Local.Update is a function called every loop and dt is the DeltaTime
This.Sprite:rotate(dt * 45); -- Rotate of 45 degrees each second (You multiply with the DeltaTime here)
end
The engine includes a Canvas
lib to draw stuff in real time and using it is really straightforward !
function Local.Init()
local canvas = obe.Canvas.Canvas(400, 400); -- Creating a 400x400 canvas
canvas:Rectangle("background") { -- Dark grey background
layer = 2, x = 0, y = 0, width = 250, height = 100,
color = { r = 50, g = 50, b = 50},
};
canvas:Text("firstPlayer") { -- First player's score label
text = "Player 1 : 0 points", size = 22
};
canvas:Text("secondPlayer") { -- Second player's score label
text = "Player 2 : 0 points", size = 22, y = 50
};
canvas:Circle("green") { -- Small green circle
color = "0F0", -- Green color
radius = 7, x = 200, y = 5
};
canvas:Circle("yellow") { -- Small yellow circle
color = "FF0", -- Yellow color
radius = 7, x = 217, y = 5
};
canvas:Circle("red") { -- Small red circle
color = "F00", -- Red color
radius = 7, x = 234, y = 5
};
canvas:render(This.Sprite()); -- Drawing all the stuff !
end
Check the Wiki for more examples !
Interested in contributing to ÖbEngine ? Great ! We always need help on various tasks !
A good first step would be to join the ÖbEngine's Discord server to chat with us and discuss how you could contribute depending on your preferences and skills.
Not talkative ? I understand ! You can also check the ÖbEngine issues and more particularly those tagged with "Good first issue" or "Help wanted".
If you noticed a bug, want to ask for a feature or anything else you can always open an issue.
If you want to go even further you can fix the bug yourself by forking ÖbEngine and making a pull request. I will personally review every pull request opened.
Sygmei ✍️💻 |
PierrickLP 💻 |
Skealz 💻 |
TeddyTrqt 💻 |
Arthapz 💡💻 |
LePatissier 💻 |
Tzupy 💻 |
mjopenglsdl 💻 |
julio-b 💻 |
ZanyMonk 💻 |
Mari0nV 💻 |
Darnagof 💻 |
A big special thanks to my sponsors who are allowing me to spend more time on this project !
Orness ❤️🏢 |
GitHub ❤️ |
JetBrains ❤️🧠 |
DigitalOcean ❤️🦈 |
Viva64 ❤️🦄 |
Mari0nV ❤️❤️ |
GuillaumeCailhe ❤️🍆 |
Uriopass ❤️🚗 |
Nowyce ❤️🎃 |