I have made three tech demos showing three different damage systems.
This is a tech demo with alot of logging so be aware of that.
link: http://xelerus.de/index.php?s=mod&id=668
In the simple damage system weapons have a weapon value and armors, stations, and shields have an armor value. There is a 10% bonus to damage for each point of difference between them.
Adding new weapons are easy just inherit itTestWeaponBase to get the weapons and put static data for SimWeaponValue and SimDamage. SimDamage can be any function you want that will be evaluated when the weapon is fired. Armors, shields, and stations need a SimArmorValue static data.
I made the code as clear as possible and logged tons of information so you can see what is going on.
The advantage of this system is it is easy for the player to understand how much damage will be done.
In the multiple dimensional damage system each weapon has as many damage types as you want. Armors need one static data for every damage type. The different types are multiplied together with the damage to get the final damage.
In the demo I used Good Neutral Evil Lawful Chaotic Active and Passive as damage types.
The advantage of this system would be is that it allows for millions of combinations leading to all new damage types.
In the complementary damage system each weapon and armor, shield, station has a pair of types. Each possible pair (6 of them) gives a resistance that are multiplied together.
The advantage of this system is that the armor also has a type along with the weapon.
any comments, suggestions, or bugs?
damage system tech demos
- Betelgeuse
- Fleet Officer
- Posts: 1920
- Joined: Sun Mar 05, 2006 6:31 am
Crying is not a proper retort!
- Aury
- Fleet Admiral
- Posts: 5421
- Joined: Tue Feb 05, 2008 1:10 am
- Location: Somewhere in the Frontier on a Hycrotan station, working on new ships.
I'm going to have fun studying this! ^^
(shpOrder gPlayership 'barrelRoll)
(plySetGenome gPlayer (list 'Varalyn 'nonBinary))
Homelab Servers: Xeon Silver 4110, 16GB | Via Quadcore C4650, 16GB | Athlon 200GE, 8GB | i7 7800X, 32GB | Threadripper 1950X, 32GB | Atom x5 8350, 4GB | Opteron 8174, 16GB | Xeon E5 2620 v3, 8GB | 2x Xeon Silver 4116, 96GB, 2x 1080ti | i7 8700, 32GB, 6500XT
Workstations & Render machines: Threadripper 3990X, 128GB, 6900XT | Threadripper 2990WX, 32GB, 1080ti | Xeon Platinum 8173M, 48GB, 1070ti | R9 3900X, 16GB, Vega64 | 2x E5 2430L v2, 24GB, 970 | R7 3700X, 32GB, A6000
Gaming Systems: R9 5950X, 32GB, 6700XT
Office Systems: Xeon 5318Y, 256GB, A4000
Misc Systems: R5 3500U, 20GB | R5 2400G, 16GB | i5 7640X, 16GB, Vega56 | E5 2620, 8GB, R5 260 | P4 1.8ghz, 0.75GB, Voodoo 5 5500 | Athlon 64 x2 4400+, 1.5GB, FX 5800 Ultra | Pentium D 3.2ghz, 4GB, 7600gt | Celeron g460, 8GB, 730gt | 2x Athlon FX 74, 8GB, 8800gts 512 | FX 9590, 16GB, R9 295x2 | E350, 8GB | Phenom X4 2.6ghz, 16GB, 8800gt | random core2 duo/atom/i5/i7 laptops
(plySetGenome gPlayer (list 'Varalyn 'nonBinary))
Homelab Servers: Xeon Silver 4110, 16GB | Via Quadcore C4650, 16GB | Athlon 200GE, 8GB | i7 7800X, 32GB | Threadripper 1950X, 32GB | Atom x5 8350, 4GB | Opteron 8174, 16GB | Xeon E5 2620 v3, 8GB | 2x Xeon Silver 4116, 96GB, 2x 1080ti | i7 8700, 32GB, 6500XT
Workstations & Render machines: Threadripper 3990X, 128GB, 6900XT | Threadripper 2990WX, 32GB, 1080ti | Xeon Platinum 8173M, 48GB, 1070ti | R9 3900X, 16GB, Vega64 | 2x E5 2430L v2, 24GB, 970 | R7 3700X, 32GB, A6000
Gaming Systems: R9 5950X, 32GB, 6700XT
Office Systems: Xeon 5318Y, 256GB, A4000
Misc Systems: R5 3500U, 20GB | R5 2400G, 16GB | i5 7640X, 16GB, Vega56 | E5 2620, 8GB, R5 260 | P4 1.8ghz, 0.75GB, Voodoo 5 5500 | Athlon 64 x2 4400+, 1.5GB, FX 5800 Ultra | Pentium D 3.2ghz, 4GB, 7600gt | Celeron g460, 8GB, 730gt | 2x Athlon FX 74, 8GB, 8800gts 512 | FX 9590, 16GB, R9 295x2 | E350, 8GB | Phenom X4 2.6ghz, 16GB, 8800gt | random core2 duo/atom/i5/i7 laptops
- Xephyr
- Militia Captain
- Posts: 857
- Joined: Fri Dec 14, 2007 1:52 am
- Location: Orion Arm, Milky Way
- Contact:
Wait, how did you make it so the player could only choose between the two playerships?
Project Renegade (Beta) : "The Poor Man's Corporate Command!"
Real programmers count from 0. And sometimes I do, too.
Real programmers count from 0. And sometimes I do, too.
- Betelgeuse
- Fleet Officer
- Posts: 1920
- Joined: Sun Mar 05, 2006 6:31 am
It is only one player ship but that player ship has a table in it to use different weapons and shields. To restrict it you use startingShipCriteria attribute in the AdventureDesc tag. (you can see how I did it)Xephyr wrote:Wait, how did you make it so the player could only choose between the two playerships?
Crying is not a proper retort!
- Xephyr
- Militia Captain
- Posts: 857
- Joined: Fri Dec 14, 2007 1:52 am
- Location: Orion Arm, Milky Way
- Contact:
Betelgeuse wrote:It is only one player ship but that player ship has a table in it to use different weapons and shields. To restrict it you use startingShipCriteria attribute in the AdventureDesc tag. (you can see how I did it)Xephyr wrote:Wait, how did you make it so the player could only choose between the two playerships?
Great, thanks.
Project Renegade (Beta) : "The Poor Man's Corporate Command!"
Real programmers count from 0. And sometimes I do, too.
Real programmers count from 0. And sometimes I do, too.