Coder Social home page Coder Social logo

cptbananapeel / cntr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cntodev/cntr

0.0 1.0 0.0 866 KB

CNTR is a game-changing tool that allows the recording and playback of operations on an interactive (web-based) map.

License: Other

C++ 6.64% SQF 14.45% Shell 1.23% JavaScript 53.43% HTML 0.52% CSS 23.74%

cntr's Introduction

CNTR

Carpe Noctem Tactical Recap (CNTR)

CNTR is a recording and playback system for ArmA 3. The system captures infantry and vehicle movement, weapons fire, casualties and many other aspects of an armed operation and stores it for later playback in a 2D environment with functionality similar to that of the ArmA 3 map. CNTR thus allows for both planning an operation as well as reviewing team-performance and coordination post-operation.

CNTR started as a modification OCAP, modified to suit CNTO's specific needs, but eventually ended up being a complete rewrite of it with a different capture and playback algorithms, and a completely new storage format.

Features

  • Server-side real-time capturing - no client modding required
  • Extensively stress-tested - support for over 300 simultaneously active units on the battlefield!
  • Streamable, crash-resistant capture format - capture file is usable as-is even after fatal crashes
  • On-the-fly capturing and storage - capture file is ready to use on mission end
  • Interactive web playback system
    • Event ticker with go-to-event and go-to-unit features
    • Interactive unit overview featuring individual unit status
    • Map preview - no capture file required

Upcoming features (subject to change!)

  • Automatic remote upload to another server
  • Map drawing capabilities in web player similar to those in ArmA 3
  • Collaborative web player sessions that allow users to plan and analyze operations outside of ArmA 3
  • Capturing and reproduction of in-game placed map markers

Installation guide (server-side only!)

  • Please note that if the game server is not on the same server as the web player server, capture files will have to be transferred manually together with the updated index file! Remote upload feature is in the works.*
  • Download & extract the latest CNTR release
  • Copy contents of addons folder into ArmA 3 root folder (i.e. C:\Games\ArmA 3)
  • Copy contents of userconfig folder into ArmA 3 root folder
  • Open <ArmA 3 root folder>\userconfig\cntr\config.hpp and modify the following line:
cntr_exportPath = "<EXPORT_PATH>";

to include the path where you placed the player. Make sure the path above is writable, otherwise the addon won't be able to copy the capture file and update the index!

  • Copy player folder into web server's app folder (i.e. C:\wamp64\www) and name it as you wish (in this example, cntr-player)

IMPORTANT NOTE

Ended mission handler is still bugged when using dedicated servers (see the related bug report). One workaround is to manually stop the capture once the mission has been completed. The capture can be ended by the GM by executing the following command in the console: { [] call cntr_fnc_stopCapture; } remoteExecCall ["call", 2]

Dev Setup Guide

  • Install Git
  • Clone CNTR repository to desired folder (in this example, cntr):
git clone https://github.com/CntoDev/CNTR.git cntr

Addon

  • Install ArmA 3 Tools from Steam
  • Open ArmA 3 Tools and open the Addon Builder
  • Under Addon source directory put the path to the addon source files, i.e. cntr\addon\cntr
  • Under Destination directory put the path where the bundle should appear, such as directly to the ArmA 3 folder: <ArmA 3 root folder>\@cntr\addons\
  • Make sure the Binarize option is deselected!
  • Click on PACK to create the addon bundle

Extension (Windows - 64-bit only!)

  • Install mingw-w64 compiler suite
  • Open MinGW prompt
  • Go to directory containing CNTR Exporter source files (cntr/extension)
  • Compile DLL with following command
x86_64-w64-mingw32-g++ library.cpp -std=c++11 -shared -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lwinpthread -o cntr_exporter_x64.dll

Extension (Linux/Ubuntu - 32-bit only!)

  • Open terminal
  • Install g++ compiler
sudo apt-get install g++

or

yum install gcc-c++
  • Go to directory containing CNTR Exporter source files (cntr/extension)
  • Compile shared object file with following command
g++ -std=c++11 -fPIC -shared -m32 -o cntr_exporter.so library.cpp

Web player

  • Install latest version of Node.js
  • Go to web directory of the repository
  • Run npm install
  • To bundle the app, run npm run build
  • To start the watcher, run npm run watch
  • To build for production (minified), run npm run build:prod

CNTR capture format

CNTR uses its own human-readable capture format inspired by CSV and YAML formats. Please see the following document for detailed documentation.

Credit list

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.