Loading...
  OR  Zero-K Name:    Password:   

shields

36 posts, 2785 views
Post comment
Filter:    Player:  
Page of 2 (36 records)
sort
13 years ago
D:
I've come up with an idea that would change shields system.
Just think. Aegis. Such a small structure, which contains several different things,
-the shield deflector
-the shield generator
-the power relay (transfer)
Fun but errrrrr.

What if we pushed it alil further,
there would be 2 new buildings. And Aegis would now serve only as the shield.
It would not renew its power by itself, and it would not transfer the power to each other, What we would also want to build to get our shield kicking is shield power generator and shield power relays.
Here how it looks
First we build a shield generator, it would be producing and storing shield energy constatly, It would also have a small area of the power relay.
The second building, shield relay, it would connect shield generators with Aegis.

Ofcourse the personal shields would work as they work now.
I think it would require more strategy this way :p
regards
+0 / -0


13 years ago
Sounds rather complex (both idea and to make it), how would this help game?

We try to only add complexity if it helps gameplay.
+0 / -0
13 years ago
For example, putting all the generators at the back.
If generators cost the most out of the three, one could imagine using cheap relay lines to get a very powerful shield out in the front.
+0 / -0
13 years ago
I think this would open up the possiblity of unfair base defences. You could simpley terraform the generators and relays making the shields near invulnrable.
Overall sounds fun but unfair and too complex.
+0 / -0
13 years ago
* An Arti can damage multiple shields?
That is unfair too.

* I also think about a second shield around itself ( takes extra energy ) - the ( possible ) best idea is 1 upgrade + 1 additional switch or ai.

* Protect units against area damage.

* Avoid unfair gameplay.

Solutions:

-- Power relays and extra shield charge are fair because of a limit of TOTAL charge INPUT.
-- "Shield deflectors" avoids to get build near other deflectors ( to avoid more charge for one locations than the limit for one shield and also avoid "Multiple shield hits" ).

-- "Big shield deflector" -> larger shield, higher input limit.

-- "Big shield generators" next to a "Shield deflector" are not counted as charge INPUT, because there are on the front and fair play.

-- If a shield blocks successfully, the PROJECTILE does NO damage to any unit inside this shield radius.

-- Shield structures can send and receive only charge to "Power relays" and from a local "Network" of relais like the "Energy overdrive network" for "Mexes".

-- Each shield thats stand alone remains a small linkable version of a "Shield generator" and a "Shield deflector" that can receive a small amount of charge.
+0 / -0
13 years ago
what if the shields were just connected to the power grid (like doomsday and tacty)
this way it the power plants would be the generator
and the shield regen would be somewhere... in shields for plant
add more kinds of shields
-deflectors: more power input higher deflection back at the unit
+0 / -0
13 years ago
Kind of like a gravity gun + shield interesting.
+0 / -0


13 years ago
I don't think we can afford grid connected shields because we have mobile shield units..
+0 / -0
13 years ago
> Kind of like a gravity gun + shield interesting.
Some stupid gravity guns targets units in front of my shields instead units behind

Link shields to weapons is a good idea, but a lot of ai script.



Some experiences with this mod:

But I play one time with 2 charge supply lines from my base to the front.
Each shield is overlapped by 2 others ( 4 in both directions ) or build near map edges.
I can build 20 shields to supply my front and nothing or everything loose charge - there is not really a value between

-- if everything is down, you lost the game anyway.
( you lost area, capacity and generating values and lost it faster than they are rebuildable )

-- for a full support of this limits it should support limits of shilds on one area to avoid multible supply receivers ( I think about a wall of 20 shields with a single supply line )

-- but the supply line itself is unlimited - like high voltage on cables



Update:

-- I like the Idea of limited charge refill from base and unlimited charge refill powered by near generators only if they are specialized and replace energy production on demand.

-- mobile shields should not receive near shield structures if they just do so

-- Gravity turrets should replace the ability to block conventional projectiles with shields.


Funny stuff for some unusual strategie addicted players:
overcharge ( < 20% ) should damage the shield over time xD
+0 / -0


13 years ago
I don't see why shields have to be any more complex.
+0 / -0


13 years ago
I don't see why shields have to be any more complex.
+0 / -0
13 years ago
I think he wants to do this:

Shield Generators are linked to an energy grid. The Shield generators are then linked to Shield Emitters which regenerate the Shields.

Without the generator, the shields cannot recharge.

IMO, good idea creatively, but it causes alot of extra building which would drive one up the wall.

Ideally, aegis could be linked to shields to allow them to absorb more energy for faster regens, with a limit % of available energy, backscale when more energy:

5 energy = 2% per sec
10 energy =3% per sec
25 energy =4% per sec
50 energy =5% per sec

OR.. SHield generators and emitters, generators would link to shields and recharge them while emitters just act as emitters.
+0 / -0


13 years ago
It's actuyally similar, but somewhat reversed. Links transfer energy and transfered energy is % of difference per unit of time.

So the greater the difference the faster then transfer.
+0 / -0
13 years ago
> IMO, good idea creatively, but it causes alot of extra building which would drive one up the wall.

Aegis remains.

But additional structures can create larger shields, create a charge grid or generates charge.

A power generator upgrade should enable a power generator to disable it's power supply for mass extractors and enable it for the shields on demand.

Or expand the charge grid's size.

To disable unfair strategies, only allow an Aegis or a shield emmiter to receive take a limited amount of charge from the grid.

To disable a workaround ( build many Aegis or special shield emmiter ) limit the build of these structures to hold distances between them and deny that mobile systems take charge from the grid - they are mobile and got enough recharge.

My only questions about this is:
Should the distance are small enough to protect one Emmiter with another?

But a power generator should prefer local emmiters to supply and bypass the limit, because there is nothing unfair if they can attacked while the emmiter is down.

I think that Aegis should got a limited build and the other structures only can build attached to Aegis.



> transfered energy is % of difference per unit of time.

A wall for defensive purposes is actually a line of "Aegis" with some weapons.

Build in a line the Aegis to Aegis transfer of charge is limited.


But does it means something like this?

zk-v0.8.3.sdz/gamedata/modularcomms/weapons/areashield.lua
shieldPower = 3600,
shieldPowerRegen = 60, -- 1.67% == 0.0167
shieldPowerRegenEnergy = 6,
-- transfer of ?% difference per second: I think 10% = 0.1

Build 10x Aegis in this way:
1 attacked
3 linked
6 indirect linked

refill ( 70% charge difference ):
( 70% ) *3 *0.1 + 1.67% = 22.67% <-- per second

1st row ( 3 shields linked ):
charge lost by transfer per shield:
( 70% ) *0.1 = 7%
refill:
( 25% ) *2 *0.1 + 1.67% = 6.67

2nd row ( 6 shields linked to 3 shields ):
charge lost by transfer per shield:
( 25% ) *0.1 = 2.5%
recharge rate: 1.67% <-- loose charge and need a 3rd row

If one Aegis of the 2nd/3rd row is linked to more 1st/2nd row Aegis ( you build closer ) than one - the transfer is larger.
13x Aegis:
1x attacked
6x 1st row
8x 2nd row

refill ( 90% charge difference ):
( 80% ) *4 *0.1 + 1.67% = 33.67% <-- per second

1st row ( 4 shields linked ):
charge lost by transfer per shield:
( 80% ) *0.1 = 8%
refill:
( 16% *2 ) *2 *0.1 + 1.67% ~ 8%

2nd row ( 8 shields linked to 4 shields, 2 links for each of the 1st row ):
charge lost by transfer per shield:
( 16% *2 ) *0.1 = 3.2%
recharge rate:
1.67% <-- loose charge and need a 3rd row

There is recharge for the first row to recharge if they protect the attacked one.
3 seconds for full recharge in a large base !!!
+0 / -0
13 years ago
i agree with loh
+0 / -0
13 years ago
There are much more ideas I've got:

Every game I played use shield bubbles.

But if we build 3 Aegis and create a shield in the shape of a triangle, it's impossible to get overlapped shields where hide your units in blue glow.
The edges can flow to the ground costs a small amount of charge over time - so you are interessted in large shields with a large area and small edge or take the risk of shields with a half charge.
The 3 corners of the shield can varity in height while charging and taking damage.



If we do it, we have variable sized shields, got power from energy generators on demand are linked and need no line to display the link between shields - it's possible the line is hidden by something like mountains sometime.

I think 2 or 3 Aegis ( with 200 units of metal ) should create a shield between them and the Energy Pylon ( 200 units of metal ) converts energie into charge.
Less pylons in the early game ( needed because of energy transfer ) and a cheap Aegis serve you a cheap large shield.
It's also possible to link only 2 Aegis to create a wall - blocks even bombs dropped before.
On damage the shields check each Aegis on it's corners if they can block.

The only difficulty is that we have to change the script for stun and area effects of weapons or something like that.
If they got blocked by a shield, they do no damage to units on the other side or other shields.

If I play a game with chickens, i was fustrated when Dodo-Bombers throw Dodos to vulnerable structures.



I know that someone would disagree, but mod options can handle it.
+0 / -0


13 years ago
I would like to see joining shield bubbless personally, but it takes a lot of coding effort to do that ...

Visualisation is also extremely ugly atm..
+0 / -0
13 years ago
I found some crazy links last time ...
One Aegis was linked to 10 to 13 Aegis around, because all other shields touch it's shield, but the other ones are not linked to another :-/


|.|
|.|
|.|_
_/ . \
. |
. _/
/
/
/
/
Here is my idea how to do that:



At first, the code should try to create a triangle by this way:
( Aegis #0 is in the center of 4 others #3, #2, #4 and #1
| clockwise order, starts on the north
| #4 not linked, because it's new
)
The code should recognize that #4 is in range of #2, #1 and #0

If a shield between #2, #1 and #0 is attached and #4 is inside ( collide )
- remove the shield
- link #4 to #2, #1 and #0
- create 3 shields in the new triangles

If #4 build outside
- the 2 closest Aegis are #2 and #1
- link to all 3 Aegis
- create a shield with 2# and #1 only



To handle a destroyed Aegis - #1 for example:
- destroy each linked shield
- recognize that #1 is linked to #4, #3 and #0 ( clockwise )
- #1 and #4 only share #0 as link partner
- #1 and #3 only share #0 as link partner
- #1 and #0 share #4 and #3 as link partner
- - 2 matches at #0 detected
- - ask the matches for link state
- - false means they can not create a shield
- tell each linked Aegis that #0 is dead and they have to refresh the shield cache

To handle a destroyed Aegis - #4 for example( build inside shield #2, #1 and #0 )
- destroy each linked shield
- recognize that #4 is linked to #1, #0 and #2
- #4 and #1 share #2 and #0 as link partner
- - 2 matches at #1 detected
- - ask the matches for link state
- - true means #1 can create a shield with the 2 link partner
- - - tell #1, #0 and #2 that they should create a new shield between them
- #0 just got a new shield by #4
- #2 just got a new shield by #4
- tell each linked Aegis that #0 is dead and they have to refresh the shield cache



To draw the joining shields:
( It should need less triangles to draw this as there are needed for full bubbles ( 360° ) inclusive bottom half )
Constants
- split 90° ( PI/2, from horizontal to vertical ) into 3 parts
- - 30° ( PI/6 )
- get vertical, horizontal distances and horizontal distances * cos( 30° )
- - // 3: top level top, 2: middle level top, 1 bottom level top, 0: ground
- - V0: H3: D3: 0
- - V1: H2: shieldHeight * sin( 30° )
- - V2: H1: shieldHeight * sin( 60° )
- - V3: H0: shieldHeight * 1
- - D0: H0 * cos( 15 ) * cos( 45 ): H0 * 0.6315
- - D1: H1 * cos( 15 ) * cos( 45 ): H0 * 0.6315
- - D2: H2 * cos( 15 ) * cos( 45 ): H0 * 0.6315

Only 1 Triangle between 3 Aegis - allways the same hight
- draw all triangles around 1 Aegis if not drawed by a previous one
- get Aegis linked where are no shields at one or both sides of the link
- - l[1] ( no shield )
- - l[2] ( empty side: conter-clockwise )
- - l[3] ( empty side: clockwise )
- get angles from link directions
- - a[1..3] from l[1..3]
- get vectors for sides with no shield
- - v[1]a: a[1] - 90° ( conter-clockwise )
- - v[1]b: a[1] + 90° ( clockwise )
- - v[2]a: a[2] - 90° ( conter-clockwise )
- - v[3]b: a[3] + 90° ( clockwise )
- get positions from self and links
- - p[0..3]x, p[0..3]z
- get shields and shield bubble parts to draw on the sides:
- - s[1]a: v[1]a ( = s[0]b in l[1] )
- - s[1]b: v[1]b ( = s[0]a in l[1] )
- - sb[0][...]...
( - for each emty angle ( vector[#start..#end] )
| - - // sum( angles of triangle ) = 180
| - - // #start - #end < 60 should mean can not be emty anyway?
| - - #parts: ceil( ( #end - #start - 60° ) / 30° )
| - - sb[#a]size: #a / #parts
| - - for 0..#parts #p
| - - - sb[#a][#p]: #b + #p* sb[#a]size
)
- - (...)

- draw routine
- - // 0° means x:1 and z:0, 270° means x:0 and z:-1, ...
- - for each shield call drawShield
- - for each shield bubble part call drawShieldBubblePart

- drawShield
- - 3 levels with 6 triangles - 2 triangles to draw a rect for each level:
- - // 90° rects attached to an 30° bubble part
- - #d: distance between linked Aegis's
- - #shieldAngle: link angle +90° or -90°
- - #x: cos( #angle )
- - #z: sin( #angle )
- - // x: horizontal distance to current Aegis
- - // y: vertical distance relative to ground
- - // z: horizontal distance to link
- - positions:
- - - h3p1: ( x: #x * ( 0 +D3 ), y: V3, z: #z * ( 0 +D3 ) )
- - - h3p2: ( x: #x * ( #d -D3 ), y: V3, z: #z * ( #d -D3 ) )
- - - h2p1: ( x: #x * ( 0 +D2 ), y: V2, z: #z * ( 0 +D2 ) )
- - - h2p2: ( x: #x * ( #d -D2 ), y: V2, z: #z * ( #d -D2 ) )
- - - h1p1: ( x: #x * ( 0 +D1 ), y: v1, z: #z * ( 0 +D1 ) )
- - - h1p2: ( x: #x * ( #d -D1 ), y: v1, z: #z * ( #d -D1 ) )
- - - h0p1: ( x: #x * ( 0 +D0 ), y: V0, z: #z * ( 0 +D0 ) )
- - - h0p2: ( x: #x * ( #d -D0 ), y: V0, z: #z * ( #d -D0 ) )
- - top rect:
- - - 1st: ( h3p1, h3p2, h2p1 )
- - - 2nd: ( h2p1, h3p2, h2p2 )
- - middle rect:
- - - 1st: ( h2p1, h2p2, h1p1 )
- - - 2nd: ( h1p1, h2p2, h1p2 )
- - bottom rect:
- - - 1st: ( h1p1, h1p2, h0p1 )
- - - 2nd: ( h0p1, h1p2, h0p2 )
- - // now we need to add the offsets to get real positions

- draw shieldBubblePart
- - 3 levels with 6 triangles - 2 triangles to draw a rect for each level:
- - // but there are 6 triangles for each part and different vectors
- - #aStart: start angle of bubble part
- - #aEnd: end angle of bubble part
- - #aCenter: #aStart + ( #aEnd - #aStart ) *0.5
- - #x: cos( #aCenter - #aStart ) * cos( #aCenter )
- - #z: sin( #aCenter - #aStart ) * sin( #aCenter )
- - // x: horizontal distance to angle
- - // y: vertical distance relative to ground
- - // z: horizontal distance to Aegis
- - positions:
- - - h3p1: ( x: -#x * H3, y: V3, z: -#z * H3 )
- - - h3p2: ( x: +#x * H3, y: V3, z: +#z * H3 )
- - - h2p1: ( x: -#x * H2, y: V2, z: -#z * H2 )
- - - h2p2: ( x: +#x * H2, y: V2, z: +#z * H2 )
- - - h1p1: ( x: -#x * H1, y: v1, z: -#z * H1 )
- - - h1p2: ( x: +#x * H1, y: v1, z: +#z * H1 )
- - - h0p1: ( x: -#x * H0, y: V0, z: -#z * H0 )
- - - h0p2: ( x: +#x * H0, y: V0, z: +#z * H0 )
- - top rect:
- - - 1st: ( h3p1, h3p2, h2p1 )
- - - 2nd: ( h2p1, h3p2, h2p2 )
- - middle rect:
- - - 1st: ( h2p1, h2p2, h1p1 )
- - - 2nd: ( h1p1, h2p2, h1p2 )
- - bottom rect:
- - - 1st: ( h1p1, h1p2, h0p1 )
- - - 2nd: ( h0p1, h1p2, h0p2 )
- - // now we need to add the offsets to get real positions
^^ cache results for triangles to increase performance while no link or shield attached got changed

I hope there are no errors, because I'm not practiced enough, to test my code in Spring.
But I've think about it many times ...
+0 / -0
13 years ago
This is how that look like - there was an error with my whitespaces in my previous post.
. . .__ .
. / . . \
.| . A . |
. \_. ._/
. . | | .
. . | | .
. ._| |_.
__/ . . \
. . A . |
. . . ._/
. . ./. .
. . / . .
. ./. . .
. / . . .


This is the function to split the bubble where is no wall or other Aegis to create a shield over ground.
( sry -I've found 2 errors occurs on copy&pase )

( - for each emty angle ( vector[#start..#end] )
| - - // sum( angles of triangle ) = 180
| - - // #start - #end < 60 should mean can not be emty anyway?
| - - #parts: ceil( ( #end - #start - 60° ) / 30° )
| - - sb[#a]size: ( #end - #start - 60° ) / #parts
| - - for 0..#parts #p
| - - - sb[#a][#p]: #start + #p* sb[#a]size
)
+0 / -0


13 years ago
Hmm actually you can try changing existing code to test how/if this works :-)

We also had algorithm that picked optimal link combination, but it was resource heavy, it had to send bunch of data to clients for processing and then reintegrate them back, pretty complex stuff.

The file that does shield logic is here
http://code.google.com/p/zero-k/source/browse/trunk/mods/zk/LuaRules/Gadgets/unit_shield_link.lua

Note shield spheres are currently drawn by engine but that can be changed and did manually.

Here is some minimal guide on how to start developing/tweaking the game
http://code.google.com/p/zero-k/wiki/Developing
+0 / -0
Page of 2 (36 records)