/subsim

nada's submarine simulator

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

pipeline status

Submarine Simulator

  • w/Singleplayer/Multiplayer (including computer controlled opponents)
  • Immersive simulation-like submarine handling
    • Active + Passive Sonar
    • Noise simulation model
    • Manual Torpedo firing resolution
    • no arcade-style HUD
  • combined with adapted Deatchmatch/TDM/Domination (as in UT) and Warzone (as in ARMA) - like gameplay modes.
    • Team-play
    • Capturing of zones for points
    • Research & Upgrade your team's submarines + armaments
  • no fixed theme (WWI/WWII/cold war/modern/sci-fi) yet, engine is kept flexible to support them all, but focus is on modern with fictional upgrade system
  • (unnamed as of now, ideas welcome)

After above goals are implemented, future plans include:

  • More Object types (Surface ships and aircraft)

TODOs

Bold = High Priority
(?) = Idea / Unsure if necessary
Grey Text = Probably Later

Gameplay / Meta / Strategy

  • Teambase: Repair/Resupply/Change sub
  • Replace Player's sub on death
  • Spawn new bot subs (-timer? -points?)
  • Research
    • Torpedo models
    • Passive Sonar models
    • Motor models
    • Sub models
    • Decoys
  • (?) Zones spawn Ships; Have them reach home for Points
  • Mainmenu - game setup
    • Nicknames for players
    • New Game / Team setup
    • (?) Attack / Defend gameplay instead of 'Equal Encounter'
    • (?) Deathmatch (FFA / no Teams)
  • Surface Ships
  • Aircraft
  • Save/Load Game

AI

  • Evade
    • Use Decoys
    • Hide
    • Use Air Vent
  • fire Torpedos

Armament

  • Multiple Launch Tubes
  • Fix+Test Sonar Blindspots
  • AS Pings temporär skalieren
  • Decoys
    • Kommando
    • Decoy effectiveness balancing
  • Active Sonar detects depths
  • Torpedos kill
  • Torpedo Targeting choice test + improve
  • Torpedo Activate to change course / Waypoints

UI

  • Improve / Make Map Screen less rough
    • Show scale px : km/sm
    • Terrain Renderer (VertexArray based for now)
    • Clean up Map Settings Window
    • (?) Bug: Possible Map Depth discrepancy view/model
    • New Strategy Window
      • Technology Overview
  • Passive Sonar: Bearing Markers
  • Passive Sonar: Bug: vector::_M_range_check: __n (which is 432) >= this->size() (which is 432)
  • Active Sonar: Bearing Markers
  • Active Sonar: Range Markers
  • New Screen: Navigation / Controls
    • O2 Ventilation
    • Emergency Surface
  • (?) Speed -> knots
  • Weapons Screen

Simulation

  • Basic Physics Simulation
    • Object Movement
    • Distance and bearing calculations
  • Damage model
  • Terrain
    • Terrain from Height Map procedural Simplex Noise
    • Synchronize with Host
    • Land: Collision
      • Adjust sub's start position if collision detected
      • Adjust zone position to sea only
    • Land: AI Pathfinding around)
  • Depth-rudder
    • Depth influences stealth

Code

  • Convert all stdouts / error messages to english
  • Read Subs from xml/yaml/ini