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.
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.
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
We will build out the same space flight and combat features as classic WC
- 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
- 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
- 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
- Sound effects generated from https://pro.sfxr.me/ and https://pixwlk.itch.io/bleeper
- Music generated from https://krasse.itch.io/wavebots-editor
- 3d Models of ships from Kenney https://www.kenney.nl/assets/space-kit
- Crosshairs from https://opengameart.org/content/64-crosshairs-pack-split
- Skybox generated from https://tools.wwwtyro.net/space-3d/index.html
- Monospaced retro font KongText from https://www.1001fonts.com/kongtext-font.html
This code and project is released under the Creative Commons Attribution-NonCommercial 4.0 International license See CC BY-NC 4.0]
- 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
- 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
- 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
- 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
- [] 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?
- rebuild hud indicators
- [] purchase and maintain ships
- [] purchase and maintain personnel
- [] polish and juice
- [] ai nuance
- [] personalities
- [] stats that affect combat
- [] polish and juice
- [] capitol ships
- [] polish and juice
- [] 3d cockpits
- [] carrier ships
- [] space stations
- [] configurable missions
- [] mission selection
- [] native code capability
- [] release on app stores
- [] release on quest
- [] release on steam
- 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
- radar in hud
- 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
- player shields hit
- 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
- sounds
- code cleanup
- settings menu for volume
- controller input help menu
- [] 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