Giter VIP home page Giter VIP logo

playpulse-connect's Introduction

Gamepad Controller Emulator For Android

Playpulse logo

Playpulse Connect

Controller Emulator

Status License


Turn your smartphone into a game controller with this simple app! This project utilizes the Godot game engine for the Android client app and a Python server to seamlessly connect your smartphone to your PC.

πŸ“ Table of Contents

🧐 About

This project consists of two main components: the client (Android app) and the server. The client is developed using Godot Engine and GDScript, while the server is written in Python. Together, they allow you to use your smartphone as a game controller for your PC.

Behind the scenes, the Python server starts a UDP socket server, waiting for connections from any device within the local IPv4 network at a specified port. The client app can establish a connection with the server using a password, and it sends the UI inputs from your smartphone to the server. The server leverages the vgamepad library to emulate keypresses on your PC, effectively turning your smartphone into a virtual gamepad.

🏁 Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Windows PC

  • Download and Install the latest release of PlayPulse Desktop application GUI from here.
  • The first time you open the application you will have to download the ViGem drivers to emulate the virtual gamepad.
  • After installation restart your computer for the effects to take place.
  • Open the PlayPulse Desktop.

Android Device

  • Download and Install the latest release of PlayPulse Connect APK from here.
  • Open the desktop PlayPulse Desktop Application.
  • Open the android app and enter the PIN.
  • Press Proceed and Enjoy!.

⚠️Note

The underlying library only supports windows at the moment. So use a windows PC while running the server app.


Prerequisites

  • Android Smartphone for Client Appp
  • Windows PC
  • Godot Game Engine
  • Python 3
  • ViGem Drivers

--

Installing

Step by step series of Instructions get a development env running.

  • Clone the repo
git clone https://github.com/zan-keith/PlayPulse-Connect.git

Navigate to the installation folder

Server Side

  • Change Directory
cd Server/
  • Install Requirements
pip install -r requirements.txt

Client Side

  • Install Requirements
  • Import the Godot project
cd Client/

🎈 Usage

Python CLI ( Command Line Interface )

  • Install the requirements

Commands :

cd Server/CLI/
python main.py -h
python main.py --ip [your_local_ip_address] --port [custom_port] --pin [4_digit_pin] --autokill [true/false]

All are optional arguments

Commands What it does Usage DataType
--ip Specify the IP address for the socket server. --ip [yourlocalipaddress] String
--port Specify the port for the socket server to run on. --port [customport] Integer
--pin Specify the PIN authentication code. ( The code must be 4 digits ). --pin [4digitpin] Integer
--autokill Automatically closes the server once the client presses disconnect --autokill [true/false] Boolean
--timeout Specifies the time to automatically close the server due to inactivity --timeout [seconds] Integer

Python GUI

  • Install the requirements
cd "Server/Gui App/"
python main.py

Todo List

  • Add rumble mechanics. guide.
  • Get LED outputs to change the color theme in godot.
  • Thats it .. for now

⛏️ Built With

✍️ Author

πŸŽ‰ Acknowledgements

  • Hats off to the amazing developers of godot engine
  • The magic of Vgamepad module and ViGem C++ framework

playpulse-connect's People

Contributors

zan-keith avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.