All Projects → fallahn → Xygine

fallahn / Xygine

2D engine / framework built around SFML

Projects that are alternatives of or similar to Xygine

Godex
Godex is a Godot Engine ECS library.
Stars: ✭ 307 (+76.44%)
Mutual labels:  ecs, gamedev
Uecs
Ubpa Entity-Component-System (U ECS) in Unity3D-style
Stars: ✭ 174 (+0%)
Mutual labels:  ecs, gamedev
Sfgui
Simple and Fast Graphical User Interface
Stars: ✭ 340 (+95.4%)
Mutual labels:  gamedev, sfml
js13k-ecs
A 1kb entity component system, designed for Js13kGames
Stars: ✭ 76 (-56.32%)
Mutual labels:  gamedev, ecs
Feather
A Minecraft server implementation in Rust
Stars: ✭ 896 (+414.94%)
Mutual labels:  ecs, gamedev
Shipyard
Entity Component System focused on usability and speed.
Stars: ✭ 247 (+41.95%)
Mutual labels:  ecs, gamedev
Tgui
Cross-platform modern c++ GUI
Stars: ✭ 371 (+113.22%)
Mutual labels:  gamedev, sfml
ecs
A dependency free, lightweight, fast Entity-Component System (ECS) implementation in Swift
Stars: ✭ 79 (-54.6%)
Mutual labels:  gamedev, ecs
Entt
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
Stars: ✭ 6,017 (+3358.05%)
Mutual labels:  ecs, gamedev
Entitas Csharp
Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
Stars: ✭ 5,393 (+2999.43%)
Mutual labels:  ecs, gamedev
bitECS
Functional, minimal, data-oriented, ultra-high performance ECS library written in JavaScript
Stars: ✭ 372 (+113.79%)
Mutual labels:  gamedev, ecs
Entitas Sync Framework
Networking framework for Entitas ECS. Targeted at turnbased games or other slow-paced genres.
Stars: ✭ 98 (-43.68%)
Mutual labels:  ecs, gamedev
polymorph
A fast and frugal entity-component-system library with a focus on code generation and compile time optimisation.
Stars: ✭ 74 (-57.47%)
Mutual labels:  gamedev, ecs
Defaultecs
Entity Component System framework aiming for syntax and usage simplicity with maximum performance for game development.
Stars: ✭ 286 (+64.37%)
Mutual labels:  ecs, gamedev
cog
Macro powered ECS Framework written in Haxe
Stars: ✭ 29 (-83.33%)
Mutual labels:  gamedev, ecs
Obengine
2D Game Engine with Lua Scripting made on top of SFML !
Stars: ✭ 335 (+92.53%)
Mutual labels:  gamedev, sfml
Gwork
Skinnable GUI with useful widget collection. Fork of GWEN.
Stars: ✭ 179 (+2.87%)
Mutual labels:  gamedev, sfml
Entitas Cpp
Entitas++ is a fast Entity Component System (ECS) C++11 port of Entitas C#
Stars: ✭ 229 (+31.61%)
Mutual labels:  ecs, gamedev
Anything about game
A wonderful list of Game Development resources.
Stars: ✭ 541 (+210.92%)
Mutual labels:  ecs, gamedev
Engge
Open source remake of Thimbleweed Park's engine
Stars: ✭ 94 (-45.98%)
Mutual labels:  gamedev, sfml

xygineXT

Build Status

The next iteration of xygine....

Logo by Baard

2D Game Engine Framework built around SFML. xygine implements a scene graph along with an Entity Component System. I use this as the starting point for new projects, as it evolves slowly over time. The source for xygine is released under the zlib license in the hope that it may be useful for other people - but offers no warranty that it is fit for any particular purpose, even those for which it was specifically written...

This version provides an overhauled API and, as such, is not compatible with existing versions of xygine - hence the slightly different naming. The biggest changes are to the Entity Component System for flexible, modular development of systems with a data-driven approach, as well as the removal of 3D support. If you're interested in a 3D, crossplatform, mobile compatible framework with a very similar API, check out crogine.

xygine uses C++17 features so an up to date compiler is required, for example XCode 10 on macOS, Visual Studio 2017 on windows or recent versions of gcc and clang.

A full tutorial covering the process of creating a xygine game can be found in the tutorial directory of the repository.

See some of the games I've made with xygine here!

What's new?

All new modular ECS providing a flexible and performant API for implementing custom components and systems, which compliment the systems included in the library

Reworked CMake build system, courtesy of Jonny 'The Machine' Paton, using modern CMake syntax as well as being Visual Studio compatible.

All new reliable network connection classes dedicated to creating gameplay oriented connections based upon the indomitable Enet

There is also a collection of utilites which may be useful for development of projects in the 'extras' directory.

Contributions

Contributions should be acknowledged and are gratefully accepted from:
Jonny Paton (Build system and CI setup and many usability improvements)
Jean-Sebastien Fauteux (macOS Testing)
Baard (Awesome Logo)

FAQ

Where's the 3D stuff gone?

While it had the potential to look very pretty the 3D API did not mesh (pun intended ;) ) well with the 2D rendering. Mixing custom OpenGL, particularly non-core 2.1 level, with SFML meant that it did not perform optimally, as well as not working on macOS which doesn't support compatibility profiles. If you really want 3D there are many better engines/frameworks out there, including crogine, another framework by myself which is optimised for 3D, particularly on mobile devices. It features a very similar API to xygine too.

What about physics stuff?

The physics binding of Box2D has been removed, mostly because I wasn't using it. It may return in the future, but thanks to the new ECS API implementing your own binding to any physics engine of choice, or even implementing your own collision detection is super easy. There's an example of a Chipmunk2D binding in the 'extras' directory.

...and the Tiled map support?

This had already been spun out into tmxlite and maintaining two versions of it seemed an unnecessary amount of work. Tmxlite works easily with any project, and is even used in the demo project included in this repository.

So I can't use the old version any more?

Sure you can. From now on the old revision is referred to in the documentation as 'legacy', and can be found in its own branch. The wiki pages remain available, although the doxy generated content is offline and will need to be generated from the docs directory using doxygen.

Why xygine?

The name is simply derived from the fact that this is a 2D framework - hence xy, followed by the gine part of engine (although technically xygine isn't really an engine).

xygine uses native file dialogue
https://github.com/mlabbe/nativefiledialog
and dear imgui
https://github.com/ocornut/imgui
https://github.com/eliasdaler/imgui-sfml

/*********************************************************************
(c) Matt Marchant & contributors 2017 - 2019
http://trederia.blogspot.com

xygineXT - Zlib license.

This software is provided 'as-is', without any express or
implied warranty. In no event will the authors be held
liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute
it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented;
    you must not claim that you wrote the original software.
    If you use this software in a product, an acknowledgment
    in the product documentation would be appreciated but
    is not required.

  2. Altered source versions must be plainly marked as such,
    and must not be misrepresented as being the original software.

  3. This notice may not be removed or altered from any
    source distribution.
    *********************************************************************/

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