palito-dev
[Top][All Lists]
Advanced

[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>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]