All Projects → Sygmei → Obengine

Sygmei / Obengine

Licence: mit
2D Game Engine with Lua Scripting made on top of SFML !

Programming Languages

cplusplus
227 projects
cpp17
186 projects

Projects that are alternatives of or similar to Obengine

Gamedev Resources
🎮 🎲 A wonderful list of Game Development resources.
Stars: ✭ 2,054 (+513.13%)
Mutual labels:  game-development, game-engine, gamedev, engine, 2d-game-engine, 2d
Novelrt
A cross-platform 2D game engine accompanied by a strong toolset for visual novels.
Stars: ✭ 81 (-75.82%)
Mutual labels:  game-development, game-engine, engine, 2d-game-engine, 2d, cross-platform
Coffee
An opinionated 2D game engine for Rust
Stars: ✭ 771 (+130.15%)
Mutual labels:  game-development, game-engine, gamedev, engine, 2d-game-engine
Evennia
Python MUD/MUX/MUSH/MU* development system
Stars: ✭ 1,309 (+290.75%)
Mutual labels:  hacktoberfest, game-development, game-engine, gamedev, engine
Pixelvision8
Pixel Vision 8's core philosophy is to teach retro game development with streamlined workflows. PV8 is also a platform that standardizes 8-bit fantasy console limitations built on top of the open-source C# game engine based on MonoGame.
Stars: ✭ 773 (+130.75%)
Mutual labels:  game-development, game-engine, gamedev, 2d-game-engine, 2d
Fxgl
Stars: ✭ 2,378 (+609.85%)
Mutual labels:  game-development, game-engine, gamedev, 2d-game-engine, 2d
Octopuskit
2D ECS game engine in 100% Swift + SwiftUI for iOS, macOS, tvOS
Stars: ✭ 246 (-26.57%)
Mutual labels:  game-development, game-engine, engine, 2d-game-engine
Excalibur
🎮 An easy to use 2D HTML5 game engine written in TypeScript
Stars: ✭ 892 (+166.27%)
Mutual labels:  hacktoberfest, game-development, game-engine, gamedev
Monogame
One framework for creating powerful cross-platform games.
Stars: ✭ 8,014 (+2292.24%)
Mutual labels:  hacktoberfest, game-engine, gamedev, cross-platform
Corona
Solar2D Game Engine main repository (ex Corona SDK)
Stars: ✭ 1,679 (+401.19%)
Mutual labels:  hacktoberfest, game-engine, engine, cross-platform
Flaxengine
Flax Engine – multi-platform 3D game engine
Stars: ✭ 3,127 (+833.43%)
Mutual labels:  game-development, game-engine, gamedev, engine
Openra
Open Source real-time strategy game engine for early Westwood games such as Command & Conquer: Red Alert written in C# using SDL and OpenGL. Runs on Windows, Linux, *BSD and Mac OS X.
Stars: ✭ 10,220 (+2950.75%)
Mutual labels:  hacktoberfest, game-engine, engine, cross-platform
Defold
Defold is a completely free to use game engine for development of desktop, mobile and web games.
Stars: ✭ 1,938 (+478.51%)
Mutual labels:  hacktoberfest, game-development, game-engine, gamedev
Gdevelop
🎮 GDevelop is an open-source, cross-platform game engine designed to be used by everyone.
Stars: ✭ 3,221 (+861.49%)
Mutual labels:  game-development, game-engine, gamedev, 2d-game-engine
Panda3d
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
Stars: ✭ 3,035 (+805.97%)
Mutual labels:  game-development, game-engine, gamedev, cross-platform
Ultralight
Next-generation HTML renderer for apps and games
Stars: ✭ 3,585 (+970.15%)
Mutual labels:  cmake, game-development, gamedev, cross-platform
Awesome Haxe Gamedev
Resources for game development on haxe
Stars: ✭ 213 (-36.42%)
Mutual labels:  game-development, game-engine, gamedev, engine
Limonengine
3D FPS game engine with full dynamic lighting and shadows
Stars: ✭ 331 (-1.19%)
Mutual labels:  hacktoberfest, game-development, game-engine, cross-platform
Openage
Free (as in freedom) open source clone of the Age of Empires II engine 🚀
Stars: ✭ 10,712 (+3097.61%)
Mutual labels:  cmake, game-development, game-engine, engine
Terasology
Terasology - open source voxel world
Stars: ✭ 3,247 (+869.25%)
Mutual labels:  hacktoberfest, game-development, game-engine, gamedev

ÖbEngine

Discord GitHub license Github All Releases Codacy Badge

CI/CD status

CI/CD name Build status
GitHub Actions Build Status
Travis Build Status
AppVeyor Build status
Azure Pipelines Build Status

Useful links

What is ÖbEngine ?

ÖbEngine is a free and open-source 2D game engine ! It focuses on making game development accessible and fun. ÖbEngine is not only a framework, it is a fully-fledged engine with everything you might need including a map editor, a plugin system and so much more !

And by the way, it is pronounced | ˈɒb ˈendʒɪn |, the umlaut on the Ö is just there because it looks like a surprised face, it doesn't influence the pronounciation.

How do I build 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

Bundled dependencies

C++ dependencies

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

Lua dependencies

Library Description License
debugger.lua Embeddable Lua debugger MIT License
inspect.lua Human-readable representation of Lua tables MIT License

What I can do with ÖbEngine ?

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 !

Is it free ?

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 !

On which platforms can I export my game made with ÖbEngine ?

Ö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.

Give me some interesting features

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)

Future features which are also really cool ?

  • 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

ObEngine's versions

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

Do you have a roadmap I can check ?

Sure ! For now we use GitHub Project system as a planning / roadmap tool which is available here.

Right, can I see how does scripting looks ?

Sure, here are some simple GameObjects :

Hello-World object

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 ?).

Rotating goat

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

Drawing stuff

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 !

How can I contribute ?

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 ? We understand ! You can also check the ÖbEngine issues and more particularly those tagged with "Good first issue" or "Help wanted".

If you are thinking about contributing to ÖbEngine, we highly recommend you to check out the Code of Conduct and the Contibuting pages for more details.

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. We will review every pull request opened.

Contributors

Those are the core contributors of ÖbEngine, you could become one too !

Sygmei
Sygmei

✍️💻
PierrickLP
PierrickLP

💻
Darnagof
Darnagof

💻

Special Thanks

ÖbEngine would not be the same without the helpful contributions from the following awesome people !

Skealz
Skealz

💻
TeddyTrqt
TeddyTrqt

💻
Arthapz
Arthapz

💡💻
LePatissier
LePatissier

💻
Tzupy
Tzupy

💻
mjopenglsdl
mjopenglsdl

💻
julio-b
julio-b

💻
ZanyMonk
ZanyMonk

💻
Mari0nV
Mari0nV

💻
TerensTare
TerensTare

💻
AugustasV
AugustasV

💻
eXpl0it3r
eXpl0it3r

💻
kevle
kevle

💻
nfarid
nfarid

💻

Sponsors

A big special thanks to my sponsors who are allowing me to spend more time on this project !

Companies

Orness
Orness

❤️🏢
GitHub
GitHub

❤️
JetBrains
JetBrains

❤️🧠
DigitalOcean
DigitalOcean

❤️🦈
PVS-Studio
Viva64

❤️🦄

Individuals

Mari0nV
Mari0nV

❤️❤️
GuillaumeCailhe
GuillaumeCailhe

❤️🍆
Uriopass
Uriopass

❤️🚗
Nowyce
Nowyce

❤️🎃

Want to become a sponsor ? Please check out the GitHub Sponsor and the ÖbEngine OpenCollective

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].