[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[palito-dev] game-protocol
From: |
zed |
Subject: |
[palito-dev] game-protocol |
Date: |
Fri, 07 Mar 2003 05:48:49 -0200 |
is it vaguely comprehensible? if it is...
is it decent, or should i scrap it? :}
-----------------------------
palito
game protocol
version 1
client to server command protocol
used exclusively to control units
SCRATCHING IT AS CONSOLE COMMANDS
status: alpha
alias <id> <any-string>
# e.g.:
# alias commander com1
# alias base 100,150x2 # position and zoom level
REGION
<coord> := <unit|point>
<coord>[-<coord>|..<coord>][:<zoom>|r<radius>]
# e.g.:
# tank1 # use coordinate of the unit (dynamic)
# tank1:2 # dynamic unit coord, zoom
# 10,20 # x,y
# 10,20-30,40 # start, end
# 10,20-30,40-5,5 # p1,p2,p3
# 10,20..30,40 # upper-left, bottom-right
# 10,20r40 # center, radius
# 10,20:4 # center, zoom
goto <region>
# the server uses the position that the client is looking
# to update it more frequently than the rest of the map
UNIT
create [order|group|mark] [<pos>]
# to hold order-lists or serve as control points on paths
# order: unit that is capable of all but dont execute anything,
# just hold the orders to others inherit or copy from it.
# group: kind of meta unit that is capable from all and execute it,
# moves, wait for its children to build and move next on queue.
# mark: just serve to mark position, moves very fast
# (somehow may hold area and zoom information) [redefine]
metaclass:
all weapon
plane wplane
ground wground
sea wsea
resource energy metal
class:
refering by unit class, e.g. peeper:
ppr1 - the peeper creation id 1
ppr99 - the peeper creation id 99
ppr1,2 - the peeper creation id 1 and 2
ppr1..9 - the peeper creation id 1 to 9
ppr - one peeper (random, the most inactive)
ppr? - one peeper (random, the most inactive)
ppr?10 - teen peepers (random, the most inactive)
ppr! - all peepers
other player units, e.g. light tank:
(enemies are representad by letters A,B,C,D,E,F,G,H)
Altk1
Bltk2,3
Cltk - the closer light tank
?ltk - any enemy's light tank
!ltk - all(?!) enemy's light tank
ACTION
<unit> [queue|prequeue] [persist] <action>
move [<rate>] <region>
# e.g.:
# tank1 move 10,10
# tank1 move p1
shot [<rate>|<count>]<target> ...
# ant1 move path1 shot ! # shot all on the path, like a patrol
nano [<rate>|<count>] <class> [inherit <order>]
# e.g.:
# factory1 nano 20tank # build 20 tanks and stop
# factory2 nano .9tank nano .1ant # continuously build at this rate
# factory3 nano .9tank inherit patrol1 nano .1ant inherit build_fusion
# ant1 move path1 nano .2hlt nano .8wall # make wall and hlt on the path
# ant2 nano tank1 # repair
# ant3 nano tank1 inherit attack1 # repair and counter-attack
standby
autodestruct [<countdown>] # default 5 seconds
do <order>
ORDER
# works like an unit, just order it and its stored
# e.g.:
# attack1 move enemy_front attack wplane
# attack1 queue move 10% behind_enemy_lines shot weapon
# attack1 queue persist move enemy_base shot energy
#
# tank1 do attack1
GROUP
# also works like a unit, and all associated
# units perform the given order
# e.g.: group1 move p1
group <group_id> <unit> [<unit> ...]
ungroup <group_id> <unit> [<unit> ...] # remove from this group
disband <group_id> [<group_id> ...] # remove all units from group
solo <unit> [<unit> ...] # remove from all groups
<group_id> <action>
RATE/COUNT
1 # make one unit
10 # make ten units
.1 # use 10% of the power to make it
20% # use 20% of the power to make it
1. # use full power to make it
100% # use full power to make it
# if the sum of the ratios surpass 100% they count as priorities
STATUS
ls unit
# <metaclass> <coordinate> <age> <armor/hitpoint> <e/m use rate>
- [palito-dev] game-protocol,
zed <=