The Machinery - Le Bottin des Jeux Linux

The Machinery

🗃️ Specifications

📰 Title: The Machinery 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Development 🚦 Status: 04. Released (status)
🏷️ Category: Development ➤ Engine ➤ 2D & 3D ➤ Misc. 🌍️ Browser version:
🔖 Tags: Development; 2D & 3D engine; IDE; Editor; Easy To Use; C/C++; D; Plugins system; Real-Time Collaborative Editing; Multi-platform; 3D VR 📦️ Package Name:
🐣️ Approx. start: 2017-03-22 📦️ Arch package:
🐓️ Latest: 2021-01-28 📦️ RPM package:
📍️ Version: Latest: 2021.1 (Beta) 📦️ Deb package:
🏛️ License type: 🎁 Free (but limited) 📦️ Flatpak package:
🏛️ License: Commercial (limited edition: free) 📦️ AppImage package:
🏝️ Perspective: First person (interface) 📦️ Snap package:
👁️ Visual: 2D & 3D ⚙️ Generic binary: ✓
⏱️ Pacing: Real Time 📄️ Source:
👫️ Played: Single & Multi 📱️ PDA support:
🎖️ This record: 5 stars 🕳️ Not used:
🎀️ Game design: 👫️ Contrib.: goupildb & Louis
🎰️ ID: 15981 🐛️ Created: 2021-01-30
🐜️ Updated: 2023-02-12

📖️ Summary

[en]: A 2D/3D game engine, multi-platform, lightweight, simple, flexible, modular and extensible. The engine and the editor are based on plugins, allowing them to be extended by the user to adapt to his needs. In particular, the editor allows real-time collaboration and the creation of derivative object instances that propagate modifications. The editor and the runtime use the same interface system, allowing them to use the full editor GUI in a game or in VR. The rendering engine uses the latest graphics APIs (Vulkan, DX12 and Metal 2) and supports multiple GPUs. The engine, written in C, is built on data-driven design principles. The APIs are exposed as C interfaces. [fr]: Un moteur de jeu 2D/3D, multi-plateforme, léger, simple, flexible, modulaire et extensible. Le moteur et l'éditeur sont basés sur des plugins, leur permettant d'être étendus par l'utilisateur pour s'adapter à ses besoins. L'éditeur permet notamment la collaboration en temps réel, et la création d'instances d'objets dérivés propageant les modifications. L'éditeur et le runtime utilisent le même système d'interface ce qui leur permet d'utiliser l'interface complète de l'éditeur dans un jeu ou en RV. Le moteur de rendu utilise les dernières API graphiques (Vulkan, DX12 et Metal 2) et supporte les GPU multiples. Le moteur, écrit en C, est construit sur la base de principes de conception orientés données. Les API sont exposées comme des interfaces C.

🎥️ Videos

🦉️ From Devs: (202xxx), (202xxx),


🦝️ From Users: Gamefromscratch (202xxx),


📰 Progress: Gamefromscratch (2021.1/202xxx), Gamefromscratch (2021.1/202xxx),

🕸️ Links

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

💰 Commercial: (empty)

🍩️ Resources
• (empty):

🛠️ Technical informations
[Open Hub] [PCGamingWiki] [MobyGames] [Showcase]

🐘 Social
Devs (The Machinery Team [fr] [en]): [Site 1 2] [Chat] [mastodon] [twitter] [Instagram] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
The Project: [Blog] [Chat] [Forums] [mastodon] [twitter] [PeerTube] [YouTube] [PressKit] [reddit] [Discord]

🐝️ Related


📦️ Misc. repositories
[Repology] [pkgs.org] [Arch Linux / AUR] [openSUSE] [Debian/Ubuntu] [Flatpak] [AppImage] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB] [OpenCritic] [iGDB] [Gamefromscratch]

📰 News / Source of this Entry (SotE) / News (SotN)
[Changes with v. 2021.1 (20210128)] [Gaming on Linux on Mastodon (20210129) (SotE)]

🕊️ Source of this Entry: -

🐘 Social Networking Update (on Mastodon)

🛠️ Title:
🦊️ What's:
🏡️
🐣️
🔖
📦️
📖 Our entry: http://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/

🥁️ Update:
⚗️
📌️ Changes:
🐘 From:

🏝️ https://watch.thekitty.zone/
🦉️ https://watch.thekitty.zone/
🦝️ https://watch.thekitty.zone/
🦝️ https://watch.thekitty.zone/
🕵️ https://watch.thekitty.zone/
🕯️ https://watch.thekitty.zone/
🕯️ https://watch.thekitty.zone/
🕹️ https://watch.thekitty.zone/
🕹️ https://watch.thekitty.zone/
🕹️[fr] https://watch.thekitty.zone/
🎮️ https://watch.thekitty.zone/
🎮️ https://watch.thekitty.zone/
🐧 https://watch.thekitty.zone/
🐧 https://watch.thekitty.zone/

📕 Description [en]

📕🐧"A 2D/3D game engine, multi-platform, lightweight, simple, flexible, modular and extensible"🐧📕.

A new way to develop interactive experiences.

A New Kind of Game Engine
• Lightweight
• Flexible
• Modular and extensible

Create Custom Tools And Applications
The Machinery can be used in many ways. Extend our editor. Create your own tools or applications on top of our APIs. Embed it into your existing software.

Real-Time Collaborative Editing
Advanced editing features. Work together real-time in the same project. Flexible hierarchical prefab system.

Control In Your Hands
Made to be hacked. Minimalistic code base. 100% written in plain C. Source code licenses available.


With The Machinery we want to create a new kind of game engine. The game engine we ourselves would want to use. We know that the story isn’t over once you have picked an engine for your game. To really make your game shine, you need to extend, modify and customize that engine. The Machinery is here for that.

A toolbox of building blocks

The Machinery is completely plugin-based. You can pick and choose the parts you need to customize it to your specific needs. You can extend the engine, and the editor, by writing your own plugins. You can even build completely new applications on top of our API, or embed our code into your existing applications or workflows.

Powerful editing model

The Machinery uses a powerful data model to represent edited assets. This model has built-in support for serialization, streaming, copy/paste, drag-and-drop as well as unlimited undo/redo. It supports an advanced hierarchical prefab model for making derivative object instances and propagating changes. It even has full support for real-time collaboration. Multiple people can work together in the same game project, Google Docs-style.

Since all of these features are built into the data model itself, your custom, game-specific data will get them automatically, without you having to write a line of code.

Easy to build tools

The Machinery uses an in-house, lightweight IMGUI framework that sits directly on top of our rendering system. The same UI system is used both by the editor and the runtime, making it possible to run the full editor UI inside a game or in VR. With The Machinery you no longer need watertight boundaries between the editor and the runtime, editing can be done inside the game itself, if you so like.

Using our drawing primitives, it is easy to create custom UI controls. And everything has been heavily optimized to feel snappy and responsive. In fact, the entire editor UI is rendered with just a single draw call.

Modern rendering architecture

The renderer has been designed to take full advantage of modern explicit graphic APIs like Vulkan, DX12 and Metal 2. You can reason explicitly about advanced setups such as multiple GPUs and GPU execution queues. Similar to the rest of the engine, the built-in rendering pipeline is easy to tweak and extend.

High performance

All the code in the engine is built based on data-oriented design principles. We focus on data flows and cache friendly memory layouts. All performance critical code is written to run as jobs, taking full advantage of the parallel processing power of modern CPUs.

Simplicity

The Machinery explicitly aims to be simple, minimalistic and easy to understand. In short, we want to be “hackable”. All our code is written in plain C, a significantly simpler language than modern C++. The entire code base compiles in less than a minute and we support hot-reloading of DLLs, allowing for fast iteration cycles.

Our APIs are exposed as C interfaces, which means they can easily be used from C, C++, D or any other language that has a FFI for calling into C code.

Not just for games

The Machinery is at its heart a game engine, but the flexibility makes it usable far beyond games. Use it to pre-viz movies, products or architecture. Add it as a component of your data pipeline. Embed it to render the viewport of your map application.

The possibilities are endless.

📕 Description [fr]

Un moteur de jeu 2D & 3D, multi-plateforme, léger, simple, flexible, modulaire et extensible, par The Machinery Team.
En C.

The Machinery est un moteur de jeu 2D/3D, multi-plateforme, léger, simple, flexible, modulaire et extensible. Le moteur et l'éditeur sont basés sur des plugins, leur permettant d'être étendus par l'utilisateur pour s'adapter à ses besoins. L'éditeur permet notamment la collaboration en temps réel, et la création d'instances d'objets dérivés propageant les modifications. L'éditeur et le runtime utilisent le même système d'interface ce qui leur permet d'utiliser l'interface complète de l'éditeur dans un jeu ou en RV. Le moteur de rendu utilise les dernières API graphiques (Vulkan, DX12 et Metal 2) et supporte les GPU multiples. Le moteur, écrit en C, est construit sur la base de principes de conception orientés données. Les API sont exposées comme des interfaces C.


Une nouvelle façon de développer des expériences interactives.

Un nouveau type de moteur de jeu
- Léger
- Flexible
- Modulaire et extensible

Créez des outils et des applications personnalisés
The Machinery peut être utilisée de plusieurs façons. Agrandir notre éditeur. Créer vos propres outils ou applications en plus de nos API. L'intégrer dans vos logiciels existants.

Édition collaborative en temps réel
Fonctions d'édition avancées. Travaillez ensemble en temps réel dans le cadre d'un même projet. Système de préfabrication hiérarchique flexible.

Le contrôle entre vos mains
Fait pour être bidouillé. Base de code minimaliste. 100% écrit en C. Licences de code source disponibles.


Avec The Machinery, nous voulons créer un nouveau type de moteur de jeu. Le moteur de jeu que nous voudrions utiliser nous-mêmes. Nous savons que l'histoire n'est pas terminée une fois que vous avez choisi un moteur pour votre jeu. Pour faire vraiment briller votre jeu, vous devez étendre, modifier et personnaliser ce moteur. The Machinery est là pour ça.

Une boîte à outils composée de blocs de construction

The Machinery est entièrement basé sur des plugins. Vous pouvez choisir les pièces dont vous avez besoin pour l'adapter à vos besoins spécifiques. Vous pouvez étendre le moteur, et l'éditeur, en écrivant vos propres plugins. Vous pouvez même créer de nouvelles applications en plus de notre API, ou intégrer notre code dans vos applications ou flux de travail existants.

Un modèle d'édition puissant

The Machinery utilise un modèle de données puissant pour représenter les ressources éditées. Ce modèle intègre des fonctions de sérialisation, de streaming, de copier/coller, de glisser/déposer ainsi que d'annulation/rétablissement illimité. Il prend en charge un modèle préfabriqué hiérarchique avancé pour créer des instances d'objets dérivés et propager les modifications. Il prend même totalement en charge la collaboration en temps réel. Plusieurs personnes peuvent travailler ensemble dans le cadre d'un même projet de jeu, à la manière de Google Documents.

Comme toutes ces fonctionnalités sont intégrées dans le modèle de données lui-même, vos données personnalisées et spécifiques au jeu les obtiendront automatiquement, sans que vous ayez à écrire une ligne de code.

Des outils faciles à construire

The Machinery utilise un framework IMGUI interne et léger qui se trouve directement au-dessus de notre système de rendu. Le même système d'interface utilisateur est utilisé à la fois par l'éditeur et par le runtime, ce qui permet d'utiliser l'interface complète de l'éditeur dans un jeu ou en RV (Réalité Virtuelle). Avec The Machinery, vous n'avez plus besoin de frontières étanches entre l'éditeur et le runtime, l'édition peut se faire à l'intérieur du jeu lui-même, si vous le souhaitez.

Grâce à nos primitives de dessin, il est facile de créer des commandes personnalisées pour l'interface utilisateur. Et tout a été fortement optimisé pour être rapide et réactif. En fait, l'interface utilisateur de l'éditeur est entièrement rendue avec un seul appel de fonction.

Une architecture de rendu moderne

Le moteur de rendu a été conçu pour tirer pleinement profit des API graphiques explicites modernes comme Vulkan, DX12 et Metal 2. Vous pouvez raisonner explicitement sur des configurations avancées telles que les GPU multiples et les files d'exécution GPU. Comme le reste du moteur, le pipeline de rendu intégré est facile à modifier et à étendre.

Hautes performances

Tout le code du moteur est construit sur la base de principes de conception orientés données. Nous nous concentrons sur les flux de données et sur des dispositions de mémoire conviviales pour le cache. Tout le code essentiel aux performances est écrit pour s'exécuter sous forme de jobs, en tirant pleinement parti de la puissance de traitement parallèle des processeurs modernes.

Simplicité

The Machinery se veut explicitement simple, minimaliste et facile à comprendre. En bref, nous voulons être "hackable". Tout notre code est écrit en C simple, un langage nettement plus simple que le C++ moderne. La base de code complète se compile en moins d'une minute et nous supportons le rechargement à chaud des DLL, ce qui permet des cycles d'itération rapides.

Nos API sont exposées comme des interfaces C, ce qui signifie qu'elles peuvent être facilement utilisées à partir de C, C++, D ou de tout autre langage disposant d'un FFI pour appeler du code C.

Pas seulement pour les jeux

The Machinery est en son cœur un moteur de jeu, mais sa flexibilité le rend utilisable bien au-delà des jeux. Utilisez-la pour prévisualiser des films, des produits ou l'architecture. Ajoutez-la comme un élément de votre pipeline de données. Intégrez-le pour rendre la vue de votre application cartographique.

Les possibilités sont infinies.