Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Game Engine Development
  3. Gainput

Gainput

MITC++v1.0.0

A cross-platform C++ input library for games, handling gamepads, keyboard, mouse, and touch with a unified interface.

Visit WebsiteGitHubGitHub
896 stars113 forks0 contributors

What is Gainput?

Gainput is a cross-platform C++ input library designed for game developers, providing unified handling of gamepads, keyboards, mice, and touch inputs across multiple operating systems. It solves the problem of fragmented input APIs by offering a consistent interface while supporting both low-level device access and high-level user-defined button mapping.

Target Audience

Game developers working with C++ who need portable input handling across desktop and mobile platforms, particularly those building games requiring multi-device support and input remapping capabilities.

Value Proposition

Developers choose Gainput for its minimal dependencies, lightweight design, and comprehensive feature set including network synchronization and gesture recognition, all without relying on STL, exceptions, or external libraries.

Overview

Cross-platform C++ input library supporting gamepads, keyboard, mouse, touch

Use Cases

Best For

  • Building cross-platform games with consistent input handling
  • Implementing user-configurable input mapping systems
  • Adding gesture recognition to C++ game projects
  • Synchronizing input states across networked game instances
  • Developing games requiring raw input access on Linux/Windows
  • Creating input recording/playback features for debugging

Not Ideal For

  • Projects requiring ongoing maintenance or support for new platforms
  • Codebases heavily reliant on modern C++ standards (C++17/20) and STL
  • Teams needing active community support or frequent documentation updates

Pros & Cons

Pros

Unified Cross-Platform API

Provides a consistent interface across Android, iOS, Linux, macOS, and Windows, simplifying multi-platform game development as stated in the README.

Flexible Input Mapping

Supports both low-level device queries and high-level user-defined button mapping, enabling easy input remapping and alternative controls.

Advanced Features Included

Includes recording/playback, network synchronization, and gesture recognition out-of-the-box, reducing the need for additional libraries.

Lightweight and Minimal Dependencies

Avoids STL, exceptions, RTTI, and boost, relying only on platform SDKs for a lightweight integration, as emphasized in the philosophy.

Cons

Archived and Unmaintained

The project is explicitly archived, meaning no updates, bug fixes, or support for new platforms or SDK versions, posing a risk for long-term use.

Limited to Outdated C++ Standards

Deliberately avoids C++11 and modern features, which might not align with contemporary C++ projects or best practices, limiting compatibility.

Setup and Integration Overhead

Requires manual CMake setup and platform-specific configurations; with no active maintenance, troubleshooting can be challenging.

Frequently Asked Questions

Quick Stats

Stars896
Forks113
Contributors0
Open Issues33
Last commit4 years ago
CreatedSince 2012

Tags

#ios#multi-touch#input#android#android-ndk#c-plus-plus#game-development#gesture-recognition#low-level#input-handling#unified-interface#linux#gestures#cross-platform#gamepad-support#touch-input#windows

Built With

C
CMake
C
C++

Links & Resources

Website

Included in

Game Engine Development1.3k
Auto-fetched 1 day ago

Related Projects

C/C++C/C++

A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

Stars71,877
Forks8,299
Last commit20 days ago
ProtoBufProtoBuf

Protocol Buffers - Google's data interchange format

Stars71,369
Forks16,161
Last commit1 day ago
JSON for Modern C++JSON for Modern C++

JSON for Modern C++

Stars49,969
Forks7,412
Last commit1 day ago
BlazorBlazor

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.

Stars38,137
Forks10,713
Last commit22 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub