Skip to content

A proof-of-concept app that tracks and displays player positions in real-time on an interactive web map.

License

Notifications You must be signed in to change notification settings

notfell/redcloud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Redcloud

A proof-of-concept app that tracks and displays player positions in real-time on an interactive web map.

demo.mov

✨ Features

  • Real-time Tracking: Stream player positions via WebSocket connections
  • Interactive Web Map: Visual representation of all tracked players
  • Multi-Server Support: Connect multiple clients to different game servers simultaneously
  • Configurable Polling: Adjustable update intervals (default: 0.5s)
  • Low Server Impact: Distributed client architecture to minimize game server load

🛠️ Tech Stack

  • Client: C++ with Socket.IO client
  • Server: Node.js with Socket.IO
  • Frontend: HTML, CSS, JavaScript (native)
  • Dependencies: Managed via vcpkg

🚀 Quick Start

Prerequisites

  • C++ compiler (Visual Studio 2019+ recommended)
  • Node.js (v16+)
  • vcpkg package manager

Installation

  1. Install C++ dependencies

    # Install Socket.IO client (follow instructions at)
    # https://github.com/socketio/socket.io-client-cpp/blob/master/INSTALL.md#without-cmake
    
    # Install via vcpkg
    .\vcpkg install cpp-httplib:x64-windows
    .\vcpkg install nlohmann-json:x64-windows

    Note: You can modify dependency paths in Visual Studio project settings if needed

  2. Install Node.js dependencies

    cd server
    npm install
  3. Build the client DLL

    cd client
    # Build your C++ DLL project
  4. Start the server

    cd server
    node server.js
  5. Load the client DLL Load the compiled DLL into RDRMP

  6. Open the web interface Navigate to http://localhost:3000 in your browser

⚙️ Configuration

Client Configuration

Configure the client when creating the RedCloud object in core.cpp:

redcloud client
({
    "localhost",      // server
    3000,            // server port
    "RedCloud",      // game server name
    "127.0.0.1",     // game server ip
    4674,            // game server port
    0.5f,            // polling interval
    true             // debug mode
});

Server Configuration

Modify settings in server/public/config.js if needed.

⚠️ Important Notes

  • Proof of Concept: This project is designed for demonstration and testing purposes
  • Code Optimization: Some parts are not optimized, such as the client panel display which recreates HTML elements on each update
  • Server Load: Each client connects to separate game servers to distribute load

🙏 Credits

  • K3rhos - Creator of RedHook used for entity position retrieval and the multiplayer mod.

📄 License

This project is licensed under the GPL 3.0 License - see the LICENSE file for details.

About

A proof-of-concept app that tracks and displays player positions in real-time on an interactive web map.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published