Skip to content

abraini-Nascent/wingmercs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Squadron: Mercenaries

Moonshot goal

Squadron Mercenaries is a thrilling spacefaring epic that blends the adrenaline-pumping space flight combat simulation of 'Wing Commander' with the intricate personnel and material management aspects of 'Mechwarrior Mercenaries.' In this immersive game, players will not only engage in intense dogfights and grand-scale space battles, but they'll also assume the role of a resourceful commander, managing a crew of diverse characters, upgrading and customizing their spacecraft, and navigating a dynamic galaxy filled with contracts, alliances, and political intrigue. With its seamless integration of strategic management and action-packed combat, this game offers a uniquely captivating experience that caters to both die-hard simulation enthusiasts and fans of deep, story-generating gameplay.

Direct Path

What you need to do is make a beeline for your target. With a basic plan and understanding of where to go, you can start with strong fundamentals and then, when you have that fun core game, expand on it all you want! --GridSagaGames How to make a roguelike

Our first goal is to build the systems for the core gameplay loop. Dogfights in space combat that mimic the feel of the original WingCommander series, aiming for the gameplay of the 2.5d era: WC1&2 & Privateer.

Goal

Rebuild the WC1 arcade/simulator gameplay loop.

  • Fight waves of enemies in an empty field.
  • Fight against wave-groups of the same fighter, from waves of 1 to 3 fighters of the same type.
  • Reset your plane's damage after clearing a wave group
  • Move on to a harder enemy type after clearing a wave group

Features

We will build out the same space flight and combat features as classic WC

Damage Model

  • Locational Shields: fore and aft
  • Locational Hull: fore, after, port, and starboard
  • Locational System: damage to guns, weapons, radar, power plants, engines, thrusters...
  • Damaged systems effect the behaviour of the plane.
    • Thrusters: turn speed
    • Engines: max acceleration & cruise speed
    • Power Plant: weapon energy and shield recovery time
    • Shield Gen: max shield value
    • Radar: displaying enemy type, damage, and distance
    • Targeting: if the player can lock onto a target, increase time to get missile lock
    • Guns & Weapons: removes capability to use them
    • Fuel: afterburner fuel

Flight Model

  • independent pitch, roll, and yaw rates
  • independent acceleration, velocity, and direction
  • current speed up to max "cruise" speed of the plane always follows direction of plane
  • brake to temporarily slow down to make tighter turns
  • "drift" using afterburner slide. Afterburner acceleration and velocity over the speed limit of the plane does not match the direction of the plane
  • "drift" by cutting off the lock between direction of the plane and "cruise" speed

Customization

  • add battery banks for more power storage capacity
  • add modifiers for engine, shields, power generator, afterburners, fuel...
  • swap guns around on mounts
  • swap weapons around on mounts
  • stay within a weight limit for the ship and ship category
  • move armor thickness around 0.25 tonnes per cm of armor the Ferret is a light patrol craft and weighs 10.5 tonnes, with armor of Front 6.5 cm, Rear 6.5 cm, Right 4.5 cm, Left 4.5 cm, for a total of 13cm of armor 13cm of armor is 3.25 tonnes of armor, leaving 7 tonnes for systems and structure the Saber is a heavy fighter and weighs 22 tonnes, with armor of Front 20.0 cm, Rear 20.0 cm, Right 18.0 cm, Left 18.0 cm, for a total of 76cm of armor. the Rapier is a medium fighter and weighs 13.5 tonnes with 7.5, 7.5, 6.5, 6.5 for a total of 28 armor, 76 cm is 19 tonnes of armor, leaving 3 tonnes left for systems, structure, and weapons. if we rebalance for 6 tonnes for bare structure, 1 tonne each for engine, powerplant, shields, 0.5 tonnes for thrusters, radar, guns. 0.25 tonnes for each weapon Dirk: 10t for structure and systems. 1t for 2 guns, 3.25t for armor. 14.25 tonnes. 10-15 tonnes for light fighter class Rapier: 10t for structure and systems, 2t for 4 guns, 2t for 8 weapons, 5.5t for armor. 19.5t, 20-30t for medium fighters Saber: 10t for structure and systems, 2t for 4 guns, 19t of armor, >35 tonnes for heavy fighter class

References

License

This code and project is released under the Creative Commons Attribution-NonCommercial 4.0 International license See CC BY-NC 4.0]

Bugs:

  • high score doesn't seem to be saved
  • if leader is killed before break formation, the chain of leaders is broken and results in undefined property access

Backlog:

  • joystick controls
  • VR controls
  • configurable input
    • message about gamepads being preferred
  • background polish
    • generate the nebula
    • place stars similar to points of interest
    • generate points of interest
    • use blue noise to space out points of interest and stars
  • rebuild ai:
    • test path following
    • pre defined maneuvers can describe "up" of maneuver heading
    • add more wingmen formations (use Homeworld 1 for inspiration)
  • chaff
  • fof targeting friend if radio damaged
  • heat tracking new target if stronger signal in range
  • ship turrets
  • performance
    • world.update takes ~0.15ms when there are many entities. ship ai and movement command are the largest abusers of update. update should only be used when reindexing. none of our queries have a predicate. a simpler "add component if needed" might be better
    • server net frame encode takes 0.398 ms, decode 0.033 ms

TODO:

next demo

  • fullish weapons list
  • fullish guns list
  • fullish ships list (add more player ships)
  • drop in system types (engines, power plants, shields)
  • configurable ships
  • ship builder
    • select ship
    • add modifiers
    • select guns
    • select weapons
    • add extras
    • see stats
    • launch ship
  • utility items
  • named guns like diablo (they are called "affixes")
  • tiers for guns
  • polish and juice
    • individual voices for pilots
    • dynamic backgrounds?
      • points of interest
    • hide trails when drifting
    • color code slot types in ship customization
    • better chiptune music
  • bugs
    • eject warning not working
    • incoming missile warning not working
    • selection ships still visible after launch
      • customization ship not appearing
    • no way back from ship selection and ship customization

multiplayer detour

  • fix net and sync systems
  • support multiple clients (3+ players)
  • recreate multiplayer menu
    • allow custom room names
    • allow custom player names
    • sync start game
  • friendly players on same team
    • friendly players BLUE target box
    • friendly players no missile lock
    • friendly players name in target box
  • kill ship to revive downed friendly player

next demo

  • [] dynamic missions - instant action mode
  • [] command wingmen
  • polish and juice
    • rebuild hud indicators
      • target / lock box
      • missile lock indicator
      • ITTS indicator
      • Crosshair
      • ui for who is talking
    • pixelated texture mapped to spaceships?
    • pixelated textures mapped to particles?

next demo

  • [] purchase and maintain ships
  • [] purchase and maintain personnel
  • [] polish and juice

next demo

  • [] ai nuance
    • [] personalities
    • [] stats that affect combat
  • [] polish and juice

next demo

  • [] capitol ships
  • [] polish and juice

next demo

  • [] 3d cockpits

next demo

  • [] carrier ships
  • [] space stations

v1.0 full release feature complete

  • [] configurable missions
  • [] mission selection

v1.1 distribute and .... profit?

  • [] native code capability
  • [] release on app stores
  • [] release on quest
  • [] release on steam

Finished releases

initial publish of demo

  • flight model
    • afterburner slide
    • drift
    • brake
    • arcade constant speed/velocity
    • roll pitch yaw independence
    • ramp input so movement isn't jarring
  • gun projectile details
    • add fire position to ship data
    • create fire command and fire system
    • fire from position on ship
    • add ship energy info to ship data
    • add projectile energy info to ship data
    • create ship energy system
  • basic ai
    • ai shoots at target
    • ai launches missiles
    • ai chooses target
  • directional shield damage
    • render shield
    • render shield damage effects
  • directional hull damage
    • render hull damage effects
  • system damage
    • render system damage
    • system damage affects flight model
    • system damage affects power and shields
    • system damage destroys guns and weapons
    • system damage affects targeting and radar
  • missile details
  • missile tracking
  • targeting system
    • lock onto target
    • auto target enemy in front of player
    • display player time to lock in hud
  • space debris particle system for movement detection
  • ai vs ai dogfighting demo mode
  • dynamically load ship stats from data files (unhardcode values)
  • basic hud
    • radar in hud
      • show locked target in radar
      • color code targets in radar
      • damage indicator in radar (light up quadrant hit)
      • color intensity for ship distance
      • color code dead targets dark-gray
  • gamepad controls
  • respawn killed ships
  • heal player every three dead ships
  • rebuild main menu
    • make buttons more juicy
  • game over screen
    • restart button
    • make sure memory footprint is clear on restarts
  • scoring
    • points for kill
    • points for time alive
    • time awarded for kill
    • time awarded for round
    • time counts down till game over
    • hi-score leaderboard
    • stats for nerds
  • more enemy types
    • medium 1
    • medium 2
    • heavy 1
  • increase enemy type level every round
    • add an extra enemy ship per success round of every ship type
  • HUD Improvements
    • tint hud elements
    • dynamic hud location
    • weapon selection hud
    • gun selection hud
    • damaged systems hud
    • move player ship stats to the right of the left VDU so it's always visible
      • add color coding to the player ship stats bars
      • quickly flash ship stat red if it's empty
  • massive juicing
    • sounds
      • player shields hit
        • make this a player specific zzzt sound
      • player armor hit
        • make this a player specific thonk sound
      • player systems hit
      • enemy shields hit
      • enemy armor hit
      • enemy systems hit
      • missile launched
      • missile explosion
      • missile lock tracking
      • missile locked
      • afterburners on
      • drift on
      • missile incoming
      • cockpit vdu input
      • target locked
      • menu buttons
    • music
    • main menu runs demo ai vs ai scene
    • damaged systems vdu animations
    • replace sprite particles with 3d shapes
      • shields hit
      • shields collapsed
      • shields pulse
      • armor hit
      • systems damaged
      • missile explosion
      • death rattle smoke trail.
      • death explosion.
    • fix trails and afterburner effects
    • replace laser particle models
    • replace missile models
    • 3d cockpit frame model
  • code cleanup
  • settings menu for volume
  • controller input help menu

AI Rebuild

  • [] joystick controls
  • [] VR controls
  • [] configurable input
  • [] rebuild ai: https://www.red3d.com/cwr/steer/gdc99/#:~:text=Offset%20pursuit%20refers%20to%20steering,without%20colliding%20with%20the%20target.
    • pursuit
    • offset pursuit
    • arrival
    • flee
    • collisions
      • obstacle avoidance
      • unaligned collision avoidance
    • path following
      • test path following
    • pre-defined maneuvers
    • action state tree
      • test action state tree
    • ai personalities
      • test personalities
      • build more personalities
    • offset / pursuit should match target "up"
    • pre defined maneuvers can describe "up" of maneuver heading
    • add group ids for patrols so we can have multiple wings on the same team
    • collision avoidance

oh give me a ship, with a jump drive equip'd and with the cargo hold packed i'll go the confed be damn, 'cause the miners demand that the beer in my cargo hold flow

long hauling in space, in the endless expanse do I go the confed be damn, 'cause the miners demand that the beer in my cargo hold flow

through asteroid belts wide, and nebulas i'll glide i'll haul every ounce that i know with stars as my guide, and contraband inside i'll navigate space high and low

long hauling in space, in the endless expanse do I go the confed be damn, 'cause the miners demand that the beer in my cargo hold flow

my cargo hold's stash, is a contraband cache and the pirates will eat my exhaust i'll do one more haul, just a quick 5 jump sprawl and maybe even cover the cost

long hauling in space, in the endless expanse do I go the confed be damn, 'cause the miners demand that the beer in my cargo hold flow

About

Arcade space combat simulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages