nCine - Le Bottin des Jeux Linux

nCine

Specifications

Title: nCine Type: Tool
Genre: Development Status:
Category: Development ➤ Engine ➤ 2D ➤ Misc. Commercial:
Tags: Development; 2D engine; Frameworks; C/C++; Prototyping; Multi-platform Demo:
Released: Latest : 2019.10 / Dev : 985bc37 Package Name:
Date: 2019-10-21 Extern Repo:
License: MIT Repo:
Perspective: Third person Package:
Visual: 2D Binary:
Pacing: Real Time Source: ✓
Played: Single & Multi PDA:
Quality (record): 5 stars Quality (game):
Contrib.: Goupil & Louis ID: 15674
Created: 2019-10-20 Updated: 2019-11-23

Summary

[fr]: Un petit moteur de jeu 2D libre et multi-plateforme pouvant se révéler utile pour les utilisateurs de frameworks tels que Cocos2d-x, MonoGame, LibGDX, LÖVE, SFML ou LWJGL. Il pourra être utilisé pour du prototypage, la création de jeux vidéos ou d'outils de développement de jeux. [en]: A small libre and multi-platform 2D game engine that can be useful for users of frameworks such as Cocos2d-x, MonoGame, LibGDX, LÖVE, SFML or LWJGL. It can be used for prototyping, creating video games or as a game development tools.

Videos

Présentation des utilisateurs / Users presents : GameFromScratch


Quelques exemples / Some examples (Showcase) :

Links

Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos t ts gd gu id r lp d d d d g g[fr] g[de] g[ru] g[pl] g[cz] g[sp] g[pt] g[it] g[tr] g] [WIKI] [FAQ] [RSS] [Changelog 1 2 3]

Commercial : (empty)

Resources
• (empty)
Technical informations
[Open Hub] [PCGamingWiki] [MobyGames]

Social
Devs (Angelo Theodorou (encelo) [fr] [en]) : [Site 1 2] [mastodon] [twitter] [PeerTube] [YouTube] [Interview 1 2]
Game : [Blog] [Forums] [mastodon] [twitter] [PeerTube] [YouTube] [Discord]

On other sites
[GameFromScratch]

Reviews
[metacritic]

News / Source of this Entry (SotE) / News (SotN)
[Changes with v. 2019.10 (20191021)] [GameFromScratch (20190619) (SotE)]

Description [fr]

Un petit moteur de jeu 2D libre et multi-plateforme, par Angelo Theodorou (encelo).
En C++.

nCine est un petit moteur de jeu 2D libre et multi-plateforme pouvant se révéler utile pour les utilisateurs de frameworks tels que Cocos2d-x, MonoGame, LibGDX, LÖVE, SFML ou LWJGL. Il pourra être utilisé pour du prototypage, la création de jeux vidéos ou d'outils de développement de jeux.


Un moteur de jeu 2D multiplateforme

nCine est un moteur de jeu 2D multi-plateforme s'exécutant sur PC (Linux, Windows, macOS), Android et le Web (Emscripten).

Le projet est en développement actif depuis juin 2011. Le code source est publié sous licence MIT et disponible sur GitHub.


Pourquoi nCine?

Il existe tellement de moteurs de jeu qu’un autre moteur est une perte de temps totale, pour l’auteur comme pour les utilisateurs potentiels. N'ai-je pas raison ?

Je sais que ce n’était pas une perte de temps pour moi, j’ai appris beaucoup de choses et j’ai eu beaucoup de plaisir à les programmer. Il se pourrait que ça ait cessé d'être un gaspillage pour les autres aussi : le projet a beaucoup grandi au cours de ces années et pourrait être utile parfois.

Ce sera probablement moins fascinant pour les utilisateurs de gros moteurs comme Unreal, Unity ou Godot, mais intéressant pour les utilisateurs de frameworks tels que Cocos2d-x, MonoGame, LibGDX, LÖVE, SFML ou LWJGL.

Voici quelques cas d'utilisation:

1. Il pourrait être utilisé pour les petits jeux 2D multi-plateformes. Vous pouvez programmer votre jeu en C++ pour optimiser les performances et personnaliser le moteur. Vous pouvez également utiliser les liens Lua pour les prototypes ou les jeux vidéo.

2. Vous pouvez utiliser l'intégration ImGui et créer des outils de développement de jeux, comme je l'ai fait avec mon éditeur de particules. Ils seraient multi-plateformes et fonctionneraient aussi bien sur Android que sur le Web.

3. Une fois compilée en tant que bibliothèque statique, elle devient un framework de démonstration graphique et toutes les classes de mise en œuvre de bas niveau sont accessibles, y compris les couches OpenGL et threading. Toutes les autres fonctionnalités seraient toujours disponibles, telles que l'abstraction multi-plateforme, la bibliothèque de modèles ou les intégrations RenderDoc et Tracy.

4. Dernier point, mais non des moindres, en tant que moteur Open Source minimal programmé par une seule personne, j'espère qu'il pourra représenter un point de départ pour apprendre et expérimenter la programmation par moteur de jeux.

Description [en]

"A small libre & multi-platform 2D game engine" -- Le Bottin

A multi-platform 2D game engine

nCine is a multi-platform 2D game engine that runs on PC (Linux, Windows, macOS), Android and the web (Emscripten).

The project has been in active development since June 2011. Source code is released under the MIT license and available on GitHub.


Why nCine?

There are so many game engines out there that yet another one is just a complete waste of time, for both the author and the potential users. Am I right?

I know it wasn’t a waste for me, I learned plenty of stuff and had lot of fun programming it. It might have ceased being a waste for others too: the project grew a lot during those years and could come in handy sometimes.

It will likely be less fascinating to users of big engines like Unreal, Unity or Godot, but be interesting for users of frameworks like Cocos2d-x, MonoGame, LibGDX, LÖVE, SFML or LWJGL.

Some of the use cases for it are:

1. It could be used for small multi-platform 2D games. You can program your game in C++ for maximum performance and the ability to customize the engine itself or you can use the Lua bindings for prototypes or game jams.

2. You can use the ImGui integration and put together game developing tools like I did with my particle editor. They would be multi-platform and work on Android and the web as well.

3. When compiled as a static library it becomes a graphics demo framework and every low-level implementation class would be accessible, including the OpenGL and threading layers. All the other features would still be available, like the multi-platform abstraction, the template library or the RenderDoc and Tracy integrations.

4. Last, but not least, being a minimal open source engine programmed by a single person, I hope it might represent a starting point to learn and experiment with game engine programming.

Features

☑ ImGui debug overlay and profilers
☑ Lua integration for scripting
☑ OpenGL 3.3/OpenGL ES 3.0 rendering
☑ Spritesheet based animated sprites
☑ Scenegraph based transformations
☑ Particle simulation with affectors
☑ Sound and music playing
☑ Text rendering with kerning
☑ Support for multiple texture formats
☑ Tracy frame profiler integration
☑ Works on multiple platforms
☑ Template containers and algorithms

Additional features

☑ Fully C++11 compliant codebase
☑ High precision monotonic timers
☑ Atomic counters
☑ Thread pool creation, synchronization and affinity assignment
☑ Basic math lbrary for vectors, 4x4 matrices and quaternions
☑ Logging system with multiple levels and console or file output
☑ GLFW 3 or SDL 2 for window and input on PC
☑ Joystick support with hot swap and gamepad mappings
☑ Android assets support
☑ Google Test based unit tests with coverage checked with Gcovr
☑ Microbenchmarked with the Google Benchmark support library
☑ Doxygen based documentation with Graphviz class diagrams
☑ Periodically checked with Cppcheck and Valgrind
☑ Periodically linted with clang-format (previously with Artistic Style and Uncrustify)

Long-term roadmap

☐ Add an ECS system and BVH based scene culling
☐ Abstract the rendering API and add a Vulkan implementation
☐ Add a collision detection and response system
☐ Separate game, input and audio update in different threads
☐ Refine the thread-pool system and expose it to the user API
☐ Implement a Camera node for the scenegraph
☐ Custom user shaders and post-processing
☐ Add a 2D skeletal animation system
☐ Insert iterators in order to support more algorithms