GithubHelp home page GithubHelp logo

pax1601 / dcsolympus Goto Github PK

View Code? Open in Web Editor NEW
300.0 300.0 32.0 135.49 MB

Download Olympus here: https://github.com/Pax1601/DCSOlympus/releases. DCS Olympus is an independent and non-profit mod for DCS World. It allows users to spawn, control, task, group, and remove units from a DCS World server using a real-time map interface, similar to Real Time Strategy games.

Lua 63.73% C++ 4.83% C 0.14% CSS 3.25% JavaScript 3.77% Python 1.33% TypeScript 18.47% Batchfile 0.28% EJS 4.09% VBScript 0.01% HTML 0.11%
dcs dcsworld

dcsolympus's People

Contributors

amouillard avatar artificialdogma avatar bobprofisker avatar dahlgren avatar pax1601 avatar peekaboosteam avatar samuelelorefice avatar shredmetal avatar woodyxp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dcsolympus's Issues

Add License, Readme and optionally a contributing file.

License is critical for any open source project, readme would make this easier to understand, contributing would have information about how to contribute. This last one can wait imho (also because it requires a decent amount of discussion to be prepared).

AI Air units: land at base

User Story

As a Game Master
I want to command AI units to land at an air base
So that they land when and where I want them to

Note: if possible, RTB option (stored init location) or list, sorted by distance ASC.

Display at-cursor LL/MGRS co-ords

User Story

As GCI
I want to know my cursor's map location
So that I can give a reference to a pilot

Acceptance Criteria

  1. Detail to be available in lat-long
  2. Detail to be available in MGRS

Set AI RoE

User Story

As a Game Master
I want to set AI units' rules of engagement
So that the behave in the way that I choose

Mark air unit as RTB

User Story

As a GCI
I want to mark an air unit as RTB
So that I can easily see which units are still available to engage.

Note: this is putting an icon on their screen badge to indicate they're RTB-ing, not to send the order to RTB.

Acceptance Criteria

  • Unit can be marked as RTB
  • Unit can be unmarked as RTB

Assign and name payloads for aircraft

This is for air-to-air only.

Acceptance criteria

  1. Each spawnable CAP-capable plane can be set with an "empty" payload
  2. Each spawnable CAP-capable plane has at least one CAP payload

Show Bullseye location

User Story

As GCI
I want to know the location of Bullseye
So that I can give a Picture

Acceptance Criteria

  1. BLUFOR can only see Blue bullseye
  2. REDFOR can only see Red bullseye
  3. Neutral Game Master can see Red and Blue bullseye
  4. Visibility of Bullseye can be toggled via a button, e.g. toolbar icon

Add back button to multi-level UI components

As a game master, I want the ability to back out of menu items if I make the wrong selection or if I'm searching for something.
Currently only applicable on spawn menu (and covered by the Spawn UI update issue). This is for any global menus if they appear later.

View Figma file for mockup example.

AI fire at area

User Story

As a Game Master
I want to instruct an AI ground unit to fire at an area
So that it can be an orientation landmark for human pilots. And it looks cool.

Spawn state

Have it so the spawn settings match the initial controller settings, or vice versa

currently they spawn in at about 10k, and the initial settings is 20k, so they immediately try and climb, get super slow, climb badly and use loads of fuel.

Feature: group saving and loading

Ability to select several units and press ctrl+[number]. this saves the group to that number

Press [number] again and it reselects the group

Repeatable for 1-0 on top row number keys

Improve unit icons

Currently, units are shown is MIL-STD-2525 icons. This is not clear. Air units should have silhouettes that allow to easily determine the type. Ground units should have some kind of icon that easily shows current heading and type of unit.

OlympusMission.lua crash

Not reproducible at the moment. The OlympusMission.lua script appears to have crashed, resulting in no MissionData.

DCS hangs on mission change

DCS hangs when a mission is changed. Not reproducible consistently but very frequent. Probably caused by hang in server thread on server object distruction.

UI Kit

Make a UI Kit so the things we make need to be made from the things in there and not slight variations with more code and page weight.

Draw a measuring line

User Story

As GCI
I want to measure the distance between two points
So that I can give distance information to pilots

Acceptance Criteria

  1. Measurements are needed only in nautical miles. (Metric measurements will happen later.)
  2. From-Bullseye calls will be measured manually for now

Improve map zIndex

Currently, the map implements leaflet's default behaviour for zIndex ordering (north to south). zIndex should depend on altitude instead.

Set AI flight speed (one unit)

User Story

As GCI
I want to set the speed of an AI plane
So that it flies at the speed I require

Notes:

  • This may include buttons with pre-defined speeds, and/or a slider
  • Viable speeds could be set in a config per air frame

Acceptance Criteria

  • Only needs to work on a single selection at this time

Suggested solution

Buttons from the config could be:

  • F-14B: [300] [400] [450] [500]
  • A-10C: [200] [220] [240] [250] [260] [275]

These are displayed

Toggle AIC

User Story

As an AIC
I want to be able to toggle the AIC overlay
So that I can show AIC-focused features and hide irrelevant features

Acceptance criteria

  1. AIC overlay can be turned on and off
  2. AIC state is sent with Analytics Data

Updates to keyboard commands and shortcuts

Update keyboard commands to allow for convenient shortcuts. Could include:

  • Holding spacebar allows the user to move the map with left click
  • Selecting units and pressing Ctrl + a number key would allow the grouping of units.
  • Pressing the corresponding number button of the previous point would select the grouped unit.
  • Holding shift and selecting units would allow multiple unit selection and deselection(similar to left click drag)

Acceptance criteria

  • On group selection (pressing on a number for a group which is either not-selected or part-selected), the unitSelection event is triggered
  • On group de-selection (pressing on a number for a group which is already selected, then the unitDeselection event is triggered

Add legend or tooltips for radar lock symbology

As game master, I want to understand the UI around radar visibility and locks to better understand what is happening.
Add legend or small tooltip next to the existing lines to give an understanding of each state.

Happy to look at UI options for this if required.

Human players not visible

Sometimes, it appears that human players are not visible in the UI. It is not easily reproducible and it is not caused by disconnection. It may be that Olympus thinks users are "dead" for some reason. Requires additional testing.

Air units' fuel level indicators

User Story

As a GCI
I want to see fuel levels of the aircraft
So that I can easily get an idea of their playtime

Note: this is also helpful as ATC when prioritising landings.

"Bug out" command

Ctrl + right click sends the unit to run away at full speed and sets them to weapons hold no reaction, during "bug out" if a missile gets too close reset reaction so they can defend themselves

Spawn Menu UI Updates

Continue updating spawn menu UI to include certain features, namely:

  • Better loadout display
  • Addition of back button
  • Adding label in the coalition toggle

Screenshots of proposed UI changes below. Future state also available in the Figma file for consideration.

Image

Image

Image

Image

User authentication missing

User authentication is missing. If the mission creator/server admin sets a password, users should be prompted to add it. Communication to and from the server should be encrypted and no data should be shown on the client unless a valid password is entered.

Delete unit

User story

As a Game master
I want to delete units from the map
So that I can get rid of units I don't want and server resources are not used needlessly

Acceptance criteria

  1. I can delete 1 unit in one delete
  2. I can delete many units in one delete
  3. I am asked to confirm I want to delete these units

Non-functional requirement

  1. Deletion to happen in waves (e.g. x units per second; or 1 unit every x milliseconds)
  2. There's a server variable somewhere where the deletion rate can be changed.

Set AI flight level (one unit)

User Story

As GCI
I want to set the altitude of an AI plane
So that it flies at the altitude I require

Notes:

  • This may include buttons with pre-defined altitudes, and/or a slider
  • Viable altitudes could be set in a config per air frame

Acceptance Criteria

  • Only needs to work on a single selection at this time

Suggested solution

Buttons from the config could be:

  • F-14B: [5k] [10k] [15k] [20k] [25k] [30k] [35k]
  • A-10C: [8k] [9k] [10k] [11k] [12k] [13k] [14k] [15k]

These are displayed

Spread the mission info data update load

As of now, all the mission info data is updated every 5 seconds. A "scheduler" should be added to OlympusMission.lua to avoid lag spikes when many units are present.

Add in ability to select an area and delete all units within

Select and delete, say for undoing big mistakes, or if running a campaign on the same thing over and over can delete areas where in prior missions things will be safe.

Needs to not delete things in one go, they need to trickle to prevent lag, needs a are you sure or obvious mode that you are in it.

Finalise logo

Dogma to finalise logo designs and share for feedback and voting.

Unit spawning in in-game map only and centre map on load

When the server is running, you can spawn planes anywhere in the world. Not only is this pointless, it's taking up resources on the server and will skew the stats. We don't want this.

Ensure unit spawning stays within the boundary of the map in the game.

While it's possible to spawn units off of the map and so on, they're currently ignoring waypoints and just flying north. We can revisit off-map spawns in the future.

Acceptance Criteria

  1. I cannot spawn units outside of the map
  2. On loading of the application, my view is centred to the centre of the server map

Custom events: selecting and de-selecting units

User Story

As an AIC developer
I want to know when units have been either selected or deselected
So that I can apply functionality based on the AIC's selection

Documentation for these events are here: Event API

Acceptance criteria

  • Triggers on box selection
  • Triggers on click-selection
  • Triggers on click-deselection
  • Triggers on deselect all
  • Data on all selected units is supplied to be able to use utils::distance() and utils::bearing()

Unit info panel loadout overflow

When a unit has many different weapons, the loadout section of the unit info panel overflows. A scrollable area must be added.

Waypoints> 9

Adding over a certain amount of waypoints will eventually lead to them being inserted earlier in the route
Likely because it ranks numerically like 1 - 10 - 2

Toggle debug messages

User Story

As an Olympus developer
I want to toggle the showing debug messages
So that I can read them or get them to go away and stop annoying me

Data points for statistics

In order to get some good stats, we need to have the data API expose some data as well as some event triggers.

Mission/server data

This information is the "base" data and should be available at any time.

  • "Theatre" (e.g. Caucasus, Syria)
  • Mission name
  • Player count (humans in the game)
  • Max players (as limited by the server)
  • Time running (seconds)
  • DCS version
  • MIST version
  • Olympus version

Events

On mission start

When

The server ends the current mission

Context data

  • timestamp

On mission end

When

The server ends the current mission

Context data

  • timestamp

On weapon fired

When

A unit fires a weapon

Context data

  • coalition: [ blue | red | grey ]
  • category: [ air | ground ]
  • unit type (F-14B, etc.)
  • pilot intelligence [ human | ai ]
  • ai level (if AI)
  • weapon
  • timestamp

On unit destroyed

When

A unit is destroyed via an in-game behaviour: e.g. shot down, ground collision.

Exclusions

  • admin intervention, such as deletion
  • de-spawning

Context data

  • coalition: [ blue | red | grey ]
  • category: [ air | ground ]
  • unit type (F-14B, etc.)
  • pilot intelligence [ human | ai ]
  • ai level (if AI)
  • cause: [ shot | ground | collision ]
  • weapon (if available, if applies)
  • timestamp

Error message on unit spawn

On every unit spawn, a message error on OlympusCommand line 140 (attempt to concatenate unitName (a nil value)) pops up

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.