Discuss game development here, from a distinct game project to an accessible third-party mutator, down to the interaction and design of individual units if you like.
Incomplete list, your help required. No snub meant if I missed you out - just what I am most familiar with, and where I have included a project it isn't meant to be exhaustive. POI = Points Of Interest, either a RTS trope someone else might wish to emulate or a neat bit of code that can be linked to (or both!); basically something that illustrates:
"Power. Flexibility. Ease-of-use."
S44
Libs: CUS, LUPS (sweden branch)
POI:
capture the flag
pre-loaded transports
composite ships
Different detection radii vs infantry & armour (from MCL Sensor & EWAR system)
upgrading factories (ZK morph)
deploying guns & mortars (ZK morph + directional)
off map aircraft 'sorties'
squad based ordering & delivery
OO based defs
Projectile LUPS (from ZK)
Limited ammunition
Ammunition types - HE, AP, Smoke that fire on appropriate targets only
Battlefield smoke system
S44 Zombies
Libs: As S44
POI:
web based 'market' for unit purchasing
persistence between matches
Per player 'objectives'
MCL
Libs: CUS, LUPS, Chili
POI:
Destructible arms & legs
Heat management - tied to map & water properties
Strict population limit
Dropship delivery - no factories
Player toggleable weapons
capture the flag (from S44)
Ticket based gameplay
Damage based economy
OO based defs (from S44)
Jumpjets (from ZK)
Units-as-weapon drones (from THIS)
Complex active radar & electronic warfare system
Limited ammunition per weapontype
ZK
Libs: CUS, LUPS, Chili
Morphing
Hats?
Metagame - Planetwars
Jumpjets
Units-as-weapon drones
Terraforming commands
Gravity gun weapon
CT
Libs: ?
POI:
'Cel shaded' visual style
Harvestable resources
GRTS
Libs: LUPS, Chili
POI:
Custom resources
unit selling
THIS
Libs: ?
POI:
This Happens In Space
Units-as-weapon drones
Follow-the-leader squad system
JW
Libs: CUS, LUPS, Chili, lib_
POI:
procedural unit creation - Lindemeyersystem, BuildRuleSystem, Procedural Rearranging
• Morphing (commanders, mines, while in transport)
• King of the hill mode
• Animals
• Limited ammunition (mines)
• Snazzy nappers (someone pls add that presentation video)
• In-game awards
• Zombie mode
• Oh, and masturbating commanders of-course
minor point - it's not really true to say the gravitas gravity gun is from ZK, although we did start with GFs impulse gadget, its a hefty modification and not much of the original code remains. Afaik the jump jets in gravitas are the ZK ones, though.
ZK gadgets:
[list][*]Limited save/load support (not great yet).
[*]Ceasefire support (a gadget and widget which implement a usable interface for '/ally').
[*]Area Guard command.
[*]Automatic retreat widget and gadget (like air repair level but for ground units and with arbitrary retreat zones).
[*]Lag monitor, automatically shares units of dropped or afk players.
[*]LUPS.
[*]Metalmap independent mex placement system (discrete resource point detection and usage).
[*]Block sharing of resources and units between enemies.
[*]Random tart box permutation (random start position for start box mode).
[*]A gadget to override map typemap speed changes.
[*]Inheritance of land/fly state from aircraft factories.
[*]Aircraft crash handler, removes LOS and blocks weapons for crashing aircraft.
[*]Gadget and widget which implement flyover interception antinuke behaviour with a good UI.
[*]*A utility gadget which allows for central, non-fighting control of unit attributes (speed, reload time, economy etc...). This is used to cleanly implement interacting status effects. Everyone should have something like this if they touch unit attributes.
[*]Full lua reimplementation airpads. This is used for reloading bombers and has a bunch of advantages over Spring.
[*]Lua implementation of a status effect with the same application rules as EMP. Used for Disarm damage.
[*]Capture weapons. Superior to Spring constructor capture as it uses a normal weapon which gives it better targeting.
[*]Respawning carrier drones. Think Carrier.
[*]Area cloaker. Think Arbiter.
[*]A mechanic which causes units to decloak upon taking damage.
[*]State toggle for units which blocks their ability to fire at radar (useful to precise, no-AoE weapons).
[*]A gadget which spawns a unit on projectile impact.
[*]Replacement of Spring's default fall damages and unit bounciness. Any level of bounciness could be set.
[*]Grey Goo. Passive area reclaim which makes units spawn more copies of themselves.
[*]Gunship strafe control. A toggle to make gunships either strafe around a target or hover in one spot while shooting.
[*]Floating unit state toggle. Some units can float to the surface of the sea from the sea floor.
[*]Instant self destruct. A gadget which causes some units to explode immediately upon receiving a self-D command.
[*]Fire weapons. Weapons apply burning damage over time.
[*]"Jugglenaut Juggle". A weapon which picks up units in an area and throws them at a target location.
[*]Jumpjets. Jetpacks for units which allow them to perform small jumps.
[*]Mex Overdrive. The most useful thing for general people is probably the grid maintenance code.
[*]Multi-missile silo. A silo with a limited number of slots which can be stockpiled with many missile types. The missiles are built as nanoframes (it is a factory) instead of stocked invisibly.
[*]Morph. This includes combat morph which is a morph which does not disable the unit.
[*]Nanoframe explosions. Nanoframes above 80% completion will still cause the explosion of the completed unit.
[*]Generic manual fire weapon system. Allows for the definition of dgun-style aimed weapons.
[*]Overkill prevention. Prevents many missiles from being fired at a unit when only a few are needed to kill it.
[*]Prevent Lab Hax. Prevents enemy units from entering factories and becoming impossible to kill. Helps a bit with cases of allied factory blockages as well.
[*]Construction priority. State toggle which allows players to set the resource allocation priority of their constructions.
[*]Suicide missile unit. A walking missile unit which fires itself at enemies. 'Respawns' at impact location if it misses.
[*]Air unit regeneration. Allows idle regeneration to work on flying air units, not just when they are landed.
[*]Combat repair speed modifier. Slows repair rate of units in combat. Could change repair rates arbitrarily.
[*]Resurrection HP changer. Gives resurrected units full health upon creation.
[*]Linked shields. Places shields in a grid which facilitates gradual energy sharing between them. This is another type of general grid which could be useful to someone.
[*]Spherical LOS. Reduces the LOS of ground units which have been launched high into the air. Prevents scouting 'exploits' if your game allows units to be launched like this.
[*]Lua reimplementation of stockpile.
[*]Skirmish AI. Implements smart maneuver behaviour for units, they can keep at their maximum range and jink when approaching inaccurate enemies.
[*]Set target command. This is a "shoot at this target" command which does not interact with the rest of the queue. Units can have their command and move at the same time.
[*]Replacement of Springs default target priority ranking with a fully configurable priority table and adjustments based on basic attributes such as health.
[*]Teleportation bridge structure.
[*]Constructor based terraform. Make ramps and ditches.
[*]Weapon terraform. Weapons are able to be set to smooth the terrain.
[*]Slow damage. Cause movement speed, economy and fire rate to reduce. A fairly trivial application of the attributes system.
[*]Transport speed adjuster. Causes transports to slow down when carrying heavy units.
[*]Weapon 'charge'. The current implementation is a firehose unit which fills its tank with water and then fires it. Weapon strength reduces as the tank empties.
[*]Zombies. Respawning wreckages.
[*]Area damage weapons. Think Psi Storm.
[*]A gadget to improve on Spring weapon impulse for impulse focused weapons.
[*]A black hole weapons.
[*]A gadget to make noExplode weapons hit shields once and then disappear.[/list]
The list could do with some cleaning up an categories. I hope to come back and clean it up a bit. There are some things added by widgets but my list would have a lot of overlap with everyone elses.
"ace" units/unit sets that are limited but with exceptional stats
units with special abilities(rage, cooling in water, smoke launchers, moving faster in water, weapon spray etc)
repair handled by units moving near repair structures.
tiered resources
in game soundtrack from a specific artist(zk lifted it even though I asked them NOT to) music responded to mood of game
map set built specifically for the project and included with the release.
singleplayer missions with save/load (zwzsg, see kp)
menu (zwzsg, see kp)
(unreleased)
rank limited research
variable units for spawner based on difficulty
There were other features that were WIP but yeah
GBS unnamed project
Libs: LUPS, Chili POI:
see above, dropping chickens in the future for my own approach, probably dropping z's singleplayer and using gajop's
New IP *not sharing this, closed to anyone outside of as a "guest unit" if you guys ever want to have one of them in your project.
material system with only PARTIAL engine support(exploded pieces, prenano, corpses etc cannot receive shader YET)
I tried my project yesterday, seems something in the engine broke my scripts again, still need time to investigate, time I don't have while on vacation.
Pretty sure it originate from the MCL version as it has the TURN command iirc.
And yeah, specific RTS tropes backed up with a link to the code that implements them is better than just a list of all gadgets. The whole point is to demonstrate what Spring can offer as an engine to potential game devs.
I'd love to say my stuff is worth showing to game devs but with only partial support for unit shaders, my scripts in flux and all I just cannot recommend it. Sometimes I wish I was able to just keep working on GRTS, by now I would have already redone the gui and probably finished texturing everything. Oh well.
Fixed my script issue at least but my script setup is less than ideal still. I dunno, I will keep at it but when I get home tomorrow (thanks american airlines) I will be doing what I can to help BAR along first then hopping on the MCL ui stuff we were talking about the other day.
I did do a cool new doodle for a new mech, still working out bits of story and the world they land on. The Galapagos islands were really good for ideas.
Anyway, I am sure ZK has all kinds of disparate features, honestly, I think that his wall of text is bewildering and didn't read it. So how can he summarize it?
I am still not quite clear on what this list is for. My ZK list was aimed at a game developer who wants to check whether somebody else has implemented a mechanic before going to implement it themselves. It is the type of list I would find useful. With a bit of organization this list could also give a prospective developer an idea of what Spring is able to do (but not all of what it can do).
Here is a bit more organization and culling.
Recommended Utility Systems
Attributes System - Allows for easy control and combination of movement speed, reload time and economy buffs/debuffs. Supports 0 reload time and movement speed. It is possible to fully reimplement EMP with this. This system is used for many of the weapon and movement mechanics below.
Weapon Mechanics
Disarm - Weapons which apply disarm damage fill a status effect bar. When the bar reaches a threshold the units weapon and abilities are disabled until the disarm damage decays away. Works like Spring EMP. In general this could be used for a boolean threshold based status effect.
Slow - Weapons which apply slow damage reduce reload time, movement speed and some other abilities. This is a simple example of the attributes system.
Burn damage - Flame weapons can set units on fire which causes them to take damage over time.
Capture - Capture damage fills a bar and takes control of the unit. The capturer needs to remain alive, think Yuri. Supports trees of capture control which can occur in battles between capture units.
Capacitor Weapon - Weapon which drains unit charge while firing. The weapon is more powerful while the unit is fully charged.
Area Damage Over Time - Weapons can leave persistent areas of damage upon impact. These areas deal damage to units over time (or apply any other type of status effect).
Black Hole Gun - A weapon which brings units to a clump to its impact point and holds them there (while attracting new units which wander in).
Telekinesis - A weapon which picks up units in an area and then throws them towards a location.
Units Firing Themselves as Weapons - The unit disappears when the weapon is fired and reappears if the weapon misses and instead hits the ground. Intended for units which are effectively missiles with legs.
Unit Spawners - A weapon which spawns a unit upon impact. For example a mine launcher.
Rearming Weapons - Weapons which require units to visit a rearming point before they can be fired again.
Terraform - By default Spring weapons make craters. This gadget shows (at the very end) how to make a weapon do arbitrary things to the terrain. The current implementation makes weapons smooth the terrain.
Improved Impulse - Spring supports impulse for weapons but it can be a bit dodgy. This gadget fixes that for weapons which rely on consistent impulse.
Penetrators Hitting Shields - Spring has penetration weapons but they also penetrate bubble shields. This makes the weapon be absorbed by the shield.
Penetrators Hitting Units Once - Spring has penetration weapons but they hit for every frame which they are inside a unit. This makes them only hit once.
Antinuke Interception Control - Handles and improves upon Spring's inbuilt antinuke interception system. Does flyover interception.
Movement Mechanics
Floaters - Units which walk underwater but can float to the sea surface. Sort of a reverse Burrow.
Gunship Strafe Toggle - Player control over whether their gunship strafes around the target or hovers in one place.
Jumpjets - Jetpacks for units which allows them to perform arcing jumps.
Teleportation Bridge - Twinned structures which teleport units from one to the other by right clicking on the entry point.
Prevent Factory Incursion - This gadget prevents units from entering enemy factories (and thus becoming undamagable).
Other Unit Abilities
Carrier Drones - Carrier units which passively generate flying drones up to a set limit. Drones are unselectable but respond to the commands of the parent unit.
Morph - Units with morph can transform into other units for a resource cost. Supports either disabling morph (like a cocoon) or combat morph. Morph can require a level of unit XP to unlock.
Commander Morph - Players can customize their commanders through a web interface before the game and pick one of them at the start of each game. The commander can then be morphed to unlock the desired upgrades.
Aircraft Health Refrigeration - Most units have health regeneration when outside combat. By default aircraft can only have this type of health regeneration when landed. This gadget gives aircraft health regeneration while they are flying.
Fall Damage Customization - In Spring units take fall damage and bounce when they hit the ground. This gadget allows for configuration of the amount of fall damage and the bounciness of units.
Area Cloaker - Area cloakers project a bubble around them which cloaks nearby allied units.
Decloak on Damage - This gadget causes units to decloak when they take damage. It also provides an interface for other gadgets and LUS to cause a unit to temporarily decloak.
Shield Link - This allows shields to be part of an energy grid which shares charge between nearby shields.
Mobile Reclaim and Production (Grey Goo) - Grey goo units suck up nearby wreckages and use them to fill a progress bar. When the bar is full a new unit is spawned nearby. Currently used for a unit which makes more of itself but the system could be expanded into a type of mobile decentralized factory.
Spherical LOS - This reduces unit line of sight for units which are launched high into the air. Useful if your game lets units be launched but you are worried about free scouting.
Nanoframe Explosions - Nanoframes explode with the normal weapon explosion when over 80% complete. Nanoframes also leave reclaimable wreckage when killed.
Unit Intelligence
Ceasefires - A system for free for all games which selectively prevents your units from firing at enemy units.
Area Guard - A command for guarding units in an area with behaviour similar to other area commands.
Retreat - Units can be set to retreat at a certain level of damage. This causes them to run back to placable zones and wait for repair.
Fire at Radar Toggle - A state toggle which forbids units from firing at radar dots. Useful for precise units with long range and reload time.
Overkill Prevention - Some weapons are almost guaranteed to hit but have a slow projectile. This gadget prevents too many of those projectiles from being fired. It makes units look a lot smarter.
Target Priority Replacement - By default Spring has pretty bad weapon target priority ranking. This gadget allows for complete customization of target priority based on attacker weapon type, unit type and unit attributes such as health and EMP.
Target Priority Command - This gives units a command which sets their target. The command can exist at the same time as move commands so players can control both unit movement and target at the same time.
Skirmish AI - Improves the default Attack and Fight commands by making units able to stay at their maximun range or jink in to close quarters depending on their unit type and the unit type they are attacking.
Economy Mechanics
Construction Priority - Implements a state toggle which allows players to set the resource allocation priority of their constructions.
Resource Points - Discrete resource points which can be placed on a map. The notable feature is the ability to detect the resource points from the cloud metal map of most Spring maps.
Combat Repair Speed - The rate at which units are repaired when under fire can be modified.
Growing Nanoframes - Nanoframes which start flat and grow to their full height as they are completed. Prevents easy blocking of projectiles with nanoframes.
Energy Grid - An energy grid system which tracks the total energy of the structures in each connected component. Currently used to generate extra metal. It is also used to make some heavy turrets require a certain amount of energy in the grid to fire. This system could be extended to track any attribute or just used as a grid tracker.
Missile Silo Factory - A missile silo which stockpiles missiles but is technically a factory. The missiles are built as nanoframes, can be assisted and can be individually selected and launched.
Terrain Mechanics
Speed Bonus Control - Some maps have terrain types which modify unit speed. This gadget allows those speeds to be modified or overridden. It would be possible to make buildable roadways which boost unit speed.
Terraform - Full trench digging and ramp building constructor based terraform system.
Texture Modification - The texture of the map can be modified. This gadget modifies the terrain for the terraform gadget and obeys line of sight.
... aimed at a game developer who wants to check whether somebody else has implemented a mechanic before going to implement it themselves. ... With a bit of organization this list could also give a prospective developer an idea of what Spring is able to do (but not all of what it can do).
My concept is mostly for the latter, thanks for the revised list.
I intend to make a wiki template so we can easily build a showcase "of what spring is able to do (but not all of what it can do)" on the wiki.