Difference between revisions of "Launcher Protocol"

From OdaWiki
(Replaced content with "Please check the svn repository for a more up-to-date launcher protocol document It is available in [http://en.wikipedia.org/wiki/OpenDocument OpenDocument Text] format [...")
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Overview==
+
Please check the svn repository for a more up-to-date launcher protocol document
  
This is the Odamex Launcher protocol, which will help developers develop custom launchers in other programming languages
+
It is available in [http://en.wikipedia.org/wiki/OpenDocument OpenDocument Text] format [http://odamex.net/svn/root/trunk/documentation/tech/query_protocol.odt here]
  
==Transport notes==
+
==See also==
  
* This protocol uses UDP (User Datagram Protocol) as its transport medium.
+
* [[Launcher]]
* All packets are uncompressed.
+
* [[Master]]
* All data is little endian.
+
 
+
==Types used==
+
 
+
These are the types used in this specification
+
 
+
{|border=1
+
 
+
|-
+
! Type name !!Range !!Size
+
 
+
|-
+
| '''Signed Integers'''
+
 
+
|-
+
| char
+
| -128 to 127
+
| 8-bit
+
 
+
|-
+
| short
+
| -32768 to 32767          
+
| 16-bit
+
 
+
|-
+
| int
+
| -2147483648 to 2147483647
+
| 32-bit
+
 
+
|-
+
| '''Unsigned integers'''
+
 
+
|-
+
| byte
+
| 0 to 255                
+
| 8-bit
+
 
+
|-
+
| word
+
| 0 to 65535
+
| 16-bit
+
 
+
|-
+
| long
+
| 0 to 4294967295
+
| 32-bit
+
 
+
|-
+
| '''Strings'''
+
 
+
|-
+
| string
+
| ASCIIZ
+
| null terminated
+
 
+
|-
+
| '''Other'''
+
 
+
|-
+
| bool
+
| byte (1 or 0)
+
| boolean
+
 
+
|}
+
 
+
Keywords:
+
 
+
> = Sent to
+
 
+
+ = Array of information (amount here)
+
 
+
X = Any value
+
 
+
==Specifications==
+
 
+
'''Master server list request'''
+
 
+
{|border=1
+
 
+
!Type !!Data !!Description
+
 
+
|-
+
| Launcher > Master
+
 
+
|-
+
| int
+
| 777123
+
| Request
+
 
+
|-
+
| Master > Launcher
+
 
+
|-
+
| int
+
| 777123
+
| Response
+
 
+
|-
+
| short
+
| X
+
| Server count
+
 
+
|-
+
| byte
+
| X
+
| +Server IP 1 (Server count)
+
 
+
|-
+
| byte
+
| X
+
| +Server IP 2
+
 
+
|-
+
| byte
+
| X
+
| +Server IP 3
+
 
+
|-
+
| byte
+
| X
+
| +Server IP 4
+
 
+
|-
+
| short
+
| X
+
| +Server Port
+
 
+
|}
+
 
+
 
+
'''Server Information Request'''
+
 
+
{|border=1
+
 
+
!Type !!Data !!Description
+
 
+
|-
+
| Launcher > Server
+
 
+
|-
+
| int
+
| 777123
+
| Request
+
 
+
|-
+
| Server > Launcher
+
 
+
|-
+
| int
+
| 5560020
+
| Response
+
 
+
|-
+
| int
+
| X
+
| Token
+
 
+
|-
+
| string
+
| X
+
| Server Name
+
 
+
|-
+
| byte
+
| X
+
| Players in server
+
 
+
|-
+
| byte
+
| X
+
| Maximum players
+
 
+
|-
+
| string
+
| X
+
| Current map
+
 
+
|-
+
| byte
+
| X
+
| PWAD count
+
 
+
|-
+
| string
+
| X
+
| +PWAD name (PWAD count)
+
 
+
|-
+
| byte
+
| X
+
| Game type
+
 
+
|-
+
| byte
+
| X
+
| Skill level
+
 
+
|-
+
| bool
+
| X
+
| Teamplay?
+
 
+
|-
+
| string
+
| X
+
| +Player name (numplayers)
+
 
+
|-
+
| short
+
| X
+
| +Player frags
+
 
+
|-
+
| int
+
| X
+
| +Player ping
+
 
+
|-
+
| byte
+
| X
+
| +Player team
+
 
+
|-
+
| string
+
| X
+
| +PWAD MD5 hashes (numpwads)
+
 
+
|-
+
| bool
+
| X
+
| CTF mode?
+
 
+
|-
+
| string
+
| X
+
| Server Website address
+
 
+
|-
+
| int
+
| X
+
| Teamplay/CTF score limit
+
 
+
|-
+
| bool
+
| X
+
| Blue team?
+
 
+
|-
+
| int
+
| X
+
| Blue score (if team enabled)
+
 
+
|-
+
| bool
+
| X
+
| Red team?
+
 
+
|-
+
| int
+
| X
+
| Red score (if team enabled)
+
 
+
|-
+
| bool
+
| X
+
| Gold team?
+
 
+
|-
+
| int
+
| X
+
| Gold score (if team enabled)
+
 
+
|}
+
 
+
==Additional Notes==
+
 
+
* Token is unnecessary for a launcher I think.
+
* Game types are: 0 = COOP, 1 = Deathmatch, 2 = Deathmatch 2.0
+
* Skill levels are: 0 = ITYTD, 1 = HNTR, 2 = HMP, 3 = UV, 4 = NM (Acronyms).
+
* Player teams are: 0 = None, 1 = Blue, 2 = Red, 3 = Gold
+
* If CTF is enabled, Teamplay will be enabled and deathmatch (2.0?).
+
* If Teamplay is enabled, then deathmatch (2.0?) will be too.
+
* scorelimit, team scores and player teams (excluding team 0) only appear if Teamplay/CTF is enabled.
+
 
+
==External Links==
+
 
+
* None at the moment.
+

Latest revision as of 22:47, 5 September 2014

Please check the svn repository for a more up-to-date launcher protocol document

It is available in OpenDocument Text format here

See also