xone is a Linux kernel driver for Xbox One and Xbox Series X|S accessories.

Overview

xone Build Badge Release Badge Discord Badge Donate Button

xone is a Linux kernel driver for Xbox One and Xbox Series X|S accessories. It serves as a modern replacement for xpad, aiming to be compatible with Microsoft's Game Input Protocol (GIP). If you are looking for a way to use your controller via Bluetooth, check out xpadneo.

Important notes

This driver is still in active development. Use at your own risk! Any feedback including bug reports, suggestions or ideas is greatly appreciated.

Features

  • Input and force feedback (rumble)
  • Battery reporting (UPower integration)
  • LED brightness control (using /sys/class/leds)
  • Audio capture/playback (through ALSA)
  • Power management (suspend/resume)
  • Wireless connectivity (via dongle)

Supported devices

  • Gamepads
    • Xbox One Controllers
    • Xbox Series X|S Controllers
    • Third party controllers (PowerA, PDP, etc.)
  • Headsets
    • Xbox One Chat Headset
    • Xbox One Stereo Headset (adapter or jack)
    • Xbox Wireless Headset
    • Third party wireless headsets (SteelSeries, Razer, etc.)
  • Racing wheels
  • Xbox One Chatpad
  • Xbox Adaptive Controller
  • Mad Catz Rock Band 4 Wireless Stratocaster
  • Mad Catz Rock Band 4 Wireless Drum Kit

Releases

Packaging status

Feel free to package xone for any Linux distribution or hardware you like. Any issues regarding the packaging should be reported to the respective maintainers.

Installation

Prerequisites

  • Linux (kernel 4.15+ and headers)
  • DKMS

Clone the repository:

git clone https://github.com/medusalix/xone

Install xone using the following command:

sudo ./install.sh --release

NOTE: Please omit the --release flag when asked for your debug logs.

Updating

Make sure to completely uninstall xone before updating:

sudo ./uninstall.sh

License

xone is released under the GNU General Public License, Version 2.

Copyright (C) 2021 Severin von Wnuck

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
Comments
  • Add share button support for 1914 controllers

    Add share button support for 1914 controllers

    Add share button support like it was done in chromium (https://github.com/chromium/chromium/commit/5bdda9019e93c954881d204c1b39886a1bf09be4) and xpad (https://github.com/torvalds/linux/commit/0b1d6c8c00157cbfcf343925c4de81af0187a7b7)

    I bound it to KEY_RECORD as that's what xpad and xpadneo did, though I'm not sure that's the best solution.

    opened by mkopec 3
  • Feature Request: Xbox 360 Support

    Feature Request: Xbox 360 Support

    There is no issue or discussion tab on this github project and I do not have discord and will not use discord due to their privacy policy. Sorry for opening a pull request but this is the only way I can make a feature request.

    Please add support for Xbox 360 controllers and headsets to replace xpad completely.

    opened by trymeouteh 2
  • Add SCUF vendor ID

    Add SCUF vendor ID

    Tested with SCUF Instinct Pro.

    [  530.947911] usb 5-3.2: new full-speed USB device number 12 using xhci_hcd
    [  531.027928] usb 5-3.2: device descriptor read/64, error -32
    [  531.215941] usb 5-3.2: device descriptor read/64, error -32
    [  531.403922] usb 5-3.2: new full-speed USB device number 13 using xhci_hcd
    [  531.526704] usb 5-3.2: New USB device found, idVendor=2e95, idProduct=0504, bcdDevice= 5.09
    [  531.526708] usb 5-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [  531.526711] usb 5-3.2: Product: Controller
    [  531.526712] usb 5-3.2: Manufacturer: Microsoft
    [  531.526714] usb 5-3.2: SerialNumber: xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    [  531.729794] usb 5-3.2: reset full-speed USB device number 13 using xhci_hcd
    [  531.860758] usbcore: registered new interface driver xone-wired
    [  532.179192] input: Microsoft X-Box One pad as /devices/pci0000:40/0000:40:01.1/0000:41:00.0/0000:42:08.0/0000:48:00.1/usb5/5-3/5-3.2/5-3.2:1.0/gip0/gip0.0/input/input40
    
    opened by flexiondotorg 2
  • Add step-by-step guide to the README

    Add step-by-step guide to the README

    Firstly, I want to say thank you for all of the work you've put into this amazing driver! Your generosity and ingenuity is greatly appreciated!!!

    Purpose

    While trying to figure out how to use my wireless headset and Xbox Dongle, I found it was pretty difficult to not only figure out which one of the three drivers to use, but also to figure out what steps to actually go through to verify it was working after running the install script. (I'm a full-time developer and long-time linux user)

    Changes

    This PR reformats the README to hopefully be a bit more clear regarding how to use this amazing driver, targeted at people not super well versed in how to install/test custom drivers. It's mostly just breaking things into a step by step guide and separating out key sections so they are harder to miss.

    Follow-ups

    • [X] I'd like to also create a similar PR to the master branch to improve discoverability of the headset/wireless dongle support - #5
    • [X] I'd like to create a PR to add an updated warning message to xow to make it more clear that people should use xone instead - https://github.com/medusalix/xow/pull/198
    opened by Blakenator 2
  • Issue: Xbox Wireless Headset immediately disconnects

    Issue: Xbox Wireless Headset immediately disconnects

    First of all, I apologize for creating a PR but I can't see any other option for reporting an issue, since the Issues tab in not available for this project. I'm aware that there's a Discord server, but I don't use Discord because it requires to disclose my phone number to a party I don't trust. As a side note, I want to mention that locking all discussion of the project behind proprietary platform which doesn't respect user's privacy is not is spirit of FOSS and Linux in my opinion. I don't want to sound entitled, I really thank you for your effort.

    NOW TO ACTUAL ISSUE:

    I'm using "experimental" branch. I'm trying to use my Xbox Wireless Headset using Xbox Wireless Adapter (Bus 005 Device 007: ID 045e:02fe Microsoft Corp. XBOX ACC). The headset is paired. I did it on Windows machine, but I also tried paring using this driver. When I turn on the device, for a brief moment I can see new input and output device in Gnome settings: Analog Output/Input - XBOX ACC, but then the headset turns off.

    sudo dmesg | grep xone:

    [    8.922748] xone-dongle 5-1:1.0: xone_mt76_load_firmware: resetting firmware...
    [    8.925622] xone-dongle 5-1:1.0: xone_mt76_init_chip: id=0x7613
    [    8.954873] xone-dongle 5-1:1.0: xone_mt76_init_address: address=6c:5d:3a:13:0d:76
    [    8.959412] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=1, power=30
    [    8.961287] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=6, power=31
    [    8.963161] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=11, power=32
    [    8.965036] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=36, power=42
    [    8.966912] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=40, power=42
    [    8.968787] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=44, power=42
    [    8.970662] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=48, power=42
    [    8.972536] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=149, power=39
    [    8.974411] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=153, power=39
    [    8.976287] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=157, power=39
    [    8.978164] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=161, power=39
    [    8.980036] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=165, power=39
    [    8.980371] xone-dongle 5-1:1.0: xone_mt76_init_channels: channel=165
    [   10.050653] usbcore: registered new interface driver xone-dongle
    [   27.193810] xone-dongle 5-1:1.0: xone_mt76_send_firmware: build=201703281033____
    [   27.342131] xone-dongle 5-1:1.0: xone_mt76_init_chip: id=0x7613
    [   27.371380] xone-dongle 5-1:1.0: xone_mt76_init_address: address=6c:5d:3a:13:0d:76
    [   27.375920] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=1, power=30
    [   27.377794] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=6, power=31
    [   27.379669] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=11, power=32
    [   27.381544] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=36, power=42
    [   27.383419] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=40, power=42
    [   27.385294] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=44, power=42
    [   27.387169] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=48, power=42
    [   27.389044] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=149, power=39
    [   27.390919] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=153, power=39
    [   27.392794] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=157, power=39
    [   27.394669] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=161, power=39
    [   27.396544] xone-dongle 5-1:1.0: xone_mt76_evaluate_channels: channel=165, power=39
    [   27.396879] xone-dongle 5-1:1.0: xone_mt76_init_channels: channel=165
    [   80.090303] xone-gip gip0: gip_create_adapter: registered
    [   80.090444] xone-dongle 5-1:1.0: xone_dongle_handle_association: wcid=1, address=7e:ed:8b:00:02:b2
    [   80.178418] xone-gip gip0.0: gip_init_client: initialized
    [   80.178421] xone-gip gip0.0: gip_handle_pkt_announce: address=7e:ed:8b:00:02:b2, vendor=0x045e, product=0x0b17
    [   80.178423] xone-gip gip0.0: gip_handle_pkt_announce: firmware=0.0.9.0, hardware=1.1.1.1
    [   80.194413] xone-gip gip0.0: gip_parse_chunk: offset=0xe4, length=0x3a
    [   80.194415] xone-gip gip0.0: gip_init_chunk_buffer: length=0xe4
    [   80.210731] xone-gip gip0.0: gip_parse_chunk: offset=0x3a, length=0x3a
    [   80.219045] xone-gip gip0.0: gip_parse_chunk: offset=0x74, length=0x3a
    [   80.227326] xone-gip gip0.0: gip_parse_chunk: offset=0xae, length=0x36
    [   80.243641] xone-gip gip0.0: gip_parse_chunk: offset=0xe4, length=0x00
    [   80.243644] xone-gip gip0.0: gip_copy_chunk_data: buffer complete
    [   80.243645] xone-gip gip0.0: gip_parse_external_commands: command=0x43, length=0x0c, options=0x10
    [   80.243646] xone-gip gip0.0: gip_parse_external_commands: command=0x42, length=0x0c, options=0x08
    [   80.243647] xone-gip gip0.0: gip_parse_audio_formats: formats=09-10
    [   80.243649] xone-gip gip0.0: gip_parse_capabilities: out=01-02-03-04-06-08-0c-1e-1f-60
    [   80.243650] xone-gip gip0.0: gip_parse_capabilities: in=01-04-05-06-08-0c-1e-1f-60
    [   80.243651] xone-gip gip0.0: gip_parse_classes: class=Windows.Xbox.Input.Headset
    [   80.243652] xone-gip gip0.0: gip_parse_interfaces: guid=1291dedb-5cfb-764e-b2cc-c2881d30ceb5
    [   80.243653] xone-gip gip0.0: gip_parse_interfaces: guid=e61e1a33-863b-5743-a7a5-c34e2c295dba
    [   80.243654] xone-gip gip0.0: gip_parse_interfaces: guid=56ff7697-fd9b-8145-ad45-b645bba526d6
    [   80.243654] xone-gip gip0.0: gip_parse_interfaces: guid=a3d125bc-4ec2-9249-9dda-ef4f123ef5dc
    [   80.243655] xone-gip gip0.0: gip_parse_interfaces: guid=abf406a0-146f-aa49-805f-82698f814bbf
    [   80.243688] xone-gip gip0.0: gip_add_client: added
    [   81.264208] xone-gip-headset gip0.0: gip_headset_config: format=0x09/0x10
    [   81.277548] xone-gip-headset gip0.0: gip_make_audio_config: rate=24000/1, buffer=384
    [   81.277552] xone-gip-headset gip0.0: gip_make_audio_config: rate=48000/2, buffer=1536
    [   82.887935] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.895933] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.903933] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.911932] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.919931] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.927931] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.935930] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.943929] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.951928] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.959929] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.967928] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.975927] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.983926] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.991927] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   82.999925] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.007925] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.015923] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.023923] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.031922] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.039923] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.047921] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.055921] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.063920] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.071920] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.079919] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.087919] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.095917] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.103918] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.111916] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.119916] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.127915] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.135915] xone-gip-headset gip0.0: gip_send_audio_samples: get buffer failed: -28
    [   83.575092] xone-dongle 5-1:1.0: xone_dongle_handle_loss: wcid=1
    [   83.575096] xone-dongle 5-1:1.0: xone_dongle_handle_disassociation: wcid=1, address=7e:ed:8b:00:02:b2
    [   83.575098] xone-gip-headset gip0.0: gip_remove_client: removed
    [   83.575524] xone-gip gip0: gip_destroy_adapter: unregistered
    

    Distro: Arch Kernel: 5.15.13.arch1-1 Gnome: 1:41.3-1 Pulseaudio: 15.0-1

    opened by dawidgarus 1
  • Add step-by-step guide and reformat README

    Add step-by-step guide and reformat README

    Mostly a cut-paste from #4 (minus unmerged features) to help people understand how to use this driver more easily. See PR description for #4 for more details

    opened by Blakenator 0
  • Add BDA vendor ID

    Add BDA vendor ID

    This adds support for the BDA Xbox ONE Core controller, I'm not entirely sure as what this controller is sold online. The user said it would be a PowerA, but it has a different vendor id and identifies itself as BDA. The device connects and uses xone-wired, headset works as well.

    bda

    opened by NoXPhasma 0
  • Fix spelling of Xbox and use the Microsoft term Controller for gamepads

    Fix spelling of Xbox and use the Microsoft term Controller for gamepads

    Turns e.g.: ms_controller_old into: ms_controller_new

    As the driver works for both One and Series controllers and Microsoft also named both their products just Xbox Wireless Controller I've also removed the One from the string. The controllers also appear to be uppercase on both Microsoft products and also in Steam (imho it looks nicer like that in the KDE Plasma powermanagement applet and it's also written like that already in the README.md so I've adjusted the string accordingly for Heatset and Chatpad as well). Some pictures for reference:

    Xbox One Controller: ms_controller_product

    Xbox Series Controller: ms_controller_product_series

    Name in Steam: ms_controller_steam

    opened by tgurr 0
Releases(v0.3)
  • v0.3(Jun 20, 2022)

    Added

    • Compatibility with more vendors: • SCUF (0x2e95)
    • USB autosuspend for the wireless dongle
    • Driver module for the Mad Catz Rock Band 4 Wireless Stratocaster
    • Auto pairing timeout (after 30 seconds)

    Fixed

    • Compatibility with older Linux kernels (4.15)
    • Log spam due to invalid wireless frames
    • Rumble timer initialization (thanks to @sorgelig)
    • Wrong LED mode while still in pairing mode
    • Pairing still enabled after system suspend
    • Parsing of variable-length GIP packets
    • Input lag for Series X|S controllers on older firmware versions
    • Git installation issues
    • Detection of Xbox devices without audio functionality
    • Crash on ARM systems due to invalid buffer length

    Removed

    • Dongle pairing mode control via sysfs (incompatible with the autosuspend feature)
    Source code(tar.gz)
    Source code(zip)
  • v0.2(Feb 6, 2022)

    Added

    • Compatibility with more vendors: • Turtle Beach (0x10f5) • Hyperkin (0x2e24) • Nacon (0x3285) • BDA (0x20d6) • 8BitDo (0x2dc8)
    • Share button input for Xbox Series X|S gamepads
    • USB remote wakeup support (for gamepads)
    • Guide button LED mode control via sysfs
    • Fully featured driver for the wireless dongle 🎉

    Fixed

    • Build on newer kernels (5.15+)
    • Sporadic headset malfunction due to ENOSPC
    Source code(tar.gz)
    Source code(zip)
  • v0.1(Jul 1, 2021)

Owner
Severin
Electronic engineering student at RWTH Aachen
Severin
Multi Theft Auto (MTA) is a software project that adds network play functionality to Rockstar North's Grand Theft Auto game series,

Multi Theft Auto: San Andreas Multi Theft Auto (MTA) is a software project that adds network play functionality to Rockstar North's Grand Theft Auto g

null 2 Oct 22, 2021
To recreate the board game Scotland yard and enable a single player to play the game by letting one of the roles being played by the computer based on written algorithm

Scotland Yard GAME OF SCOTLAND YARD This is a custom version of the classic board game, Scotland Yard .The game uses the London map used in the origin

Brshank 2 Nov 11, 2021
After a few loose attempts at porting Source-games; here comes my first real one!

StanleyParable-Vita After a few loose attempts at porting Source-games; here comes my first real one! (For anyone who wonders what happened to the HL2

Sleppo04 4 Sep 21, 2021
A video game I created for one of my CS classes.

Eclipse This is a video game I created for one of my CS classes. It game will run on Mac or Linux. Requirements This game requires that Mednafen be in

null 2 Oct 29, 2022
One framework for creating powerful cross-platform games.

MonoGame One framework for creating powerful cross-platform games. The spiritual successor to XNA with thousands of titles shipped across desktop, mob

MonoGame 9.1k Dec 26, 2022
CSGO ESP, Web Radar and Grenade helper using kernel hook for km-um communication

kernel-csgo-esp-webradar Csgo ESP and Web Radar using kernel hook for km-um communication. Manual map your driver using kdmapper uses Nvidia overlay h

null 55 Jun 26, 2022
GB Studio is a quick and easy to use retro adventure game creator for Game Boy available for Mac, Linux and Windows

GB Studio is a quick and easy to use retro adventure game creator for Game Boy available for Mac, Linux and Windows

Chris Maltby 6.8k Jan 8, 2023
A Binary Clock. Written 3 different ways. C and SDL, Python and PyGame, Python and PyGame Zero.

Super Clock A Binary Clock. Written 3 different ways. Python with PyGame Zero, Python with PyGame and C with SDL2. Time is displayed in 3 groups of 8

null 3 Dec 8, 2021
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more

EnTT is a header-only, tiny and easy to use library for game programming and much more written in modern C++. Among others, it's used in Minecraft by

Michele Caini 7.6k Jan 4, 2023
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU

Panda3D Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs. Panda3D is open-source and free for a

Panda3D 3.6k Dec 31, 2022
OGRE is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce games and demos utilising 3D hardware.

OGRE (Object-Oriented Graphics Rendering Engine) is a scene-oriented, flexible 3D engine written in C++ designed to make it easier and more intuitive for developers to produce games and demos utilising 3D hardware. The class library abstracts all the details of using the underlying system libraries like Direct3D and OpenGL and provides an interface based on world objects and other intuitive classes.

null 3.1k Jan 3, 2023
Minecraft 4k: decompiled, translated to C using SDL for graphics and input, and improved upon

M4KC Minecraft 4K - C Rewrite For those who don't know, Minecraft 4K was a stripped down version of Minecraft submitted by Notch to the Java 4K Game P

Sasha Koshka 38 Oct 9, 2022
an AI and gameplay editor for game development, written by c++ , suppport lua and python

an AI and gameplay editor for game development, written by c++ , suppport lua and python

null 26 Dec 14, 2022
A multi core friendly rigid body physics and collision detection library suitable for games and VR applications.

Jolt Physics Library A multi core friendly rigid body physics and collision detection library suitable for games and VR applications. A YouTube video

null 2.5k Dec 31, 2022
Source and data to build Sonic 3 A.I.R. (Angel Island Revisited) and the Oxygen Engine

Sonic 3 A.I.R. Source code incl. dependencies for "Sonic 3 - Angel Island Revisited", a fan-made remaster of Sonic 3 & Knuckles. Project homepage: htt

Eukaryot 179 Dec 24, 2022
Freelancer: HD Edition is a mod that aims to improve every visual, aural, and gameplay aspect of the game Freelancer (2003) while keeping the look and feel as close to vanilla as possible.

Freelancer: HD Edition Freelancer: HD Edition is a mod that aims to improve every visual, aural, and gameplay aspect of the game Freelancer (2003) whi

C.S. Melis 75 Jan 8, 2023
The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

null 2.8k Dec 29, 2022
Gaming meets modern C++ - a fast and reliable entity-component system (ECS) and much more

EnTT is a header-only, tiny and easy to use entity-component system (and much more) written in modern C++. Among others, it's also used in Minecraft by Mojang and The Forge by Confetti.

Sean Middleditch 8 Feb 16, 2021
Distributed server for social and realtime games and apps.

Distributed server for social and realtime games and apps. Features Users - Register/login new users via social networks, email, or device ID. Storage

Heroic Labs 6.6k Jan 1, 2023