Advertisement
Guest User

Untitled

a guest
Aug 4th, 2015
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.67 KB | None | 0 0
  1. STR - increases attack damage
  2. CON - increases HP
  3. DEX - decreases attack cooldown, increases hit chance
  4. AGI - decreases movement cooldown, increases evasion chance
  5.  
  6. ==================================
  7.  
  8. aoe n means a circle with radius n
  9. line n means a line with length n
  10. t cone n means an isosceles triangle with primary angle t and length from corner to opposite midpoint n
  11. adjacent means the eight squares adjacent to your/target position
  12. target within n means (centered on) any square within a radius of n
  13. enemy/ally within n means (centered on) an enemy/ally within a radius of n
  14. lvl in place of n means your level (no way)
  15.  
  16. crabner (crab summoner)
  17. buffs/debuffs aoes
  18. 1: buff - target within lvl, summon a totem: allies within 5 gain str/2 str (can apply to self; only the largest bonus applies)
  19. 2: debuff - target within lvl, summon a totem: enemies within 5 lose str/2 atk (only the largest penalty applies)
  20. passive: totems have 25% your health
  21. +STR/-CON
  22.  
  23. crabior (crab warrior)
  24. highest damage
  25. 1: right claw - attack with right claw, damage adjacent
  26. 2: left claw - attack with left claw, damage adjacent
  27. passive: if either attack hits while the other is on cooldown, 25% previous damage is added
  28. +STR/-DEX
  29.  
  30. crabper (crab sniper)
  31. longest range
  32. 1: snipe - damage to enemy within 2*lvl
  33. 2: gill-ish - stealth until movement
  34. passive: 25% additional damage while stealthed
  35. +STR/-AGI
  36.  
  37. crab, rn (crab, registered nurse)
  38. heals
  39. 1: help - heal aoe 5 target within lvl
  40. 2: fix - heal to (100+lvl)% and grant immunity to 2 hits, ally within lvl
  41. passive: 25% of any healing done is also applied to self
  42. +CON/-AGI
  43.  
  44. craban (crab shaman)
  45. control
  46. 1: pull - yoink an ally or enemy within 2+sqrt(lvl) to adjacent to you
  47. 2: push - optionally target an ally or enemy within 2+sqrt(lvl); line 2+sqrt(lvl), enemies hit are pushed to adjacent, targeted enemy is pushed to end of line
  48. passive: each enemy adjacent to the path of a pushed or pulled target has 25% chance to take damage
  49. +CON/-DEX
  50.  
  51. crab with a really thick shell (crab with a really thick shell)
  52. tank
  53. 1: shield - nullify next hit
  54. 2: taunt - enemy within lvl targets you next
  55. passive: you and allies within 5 take 25% less damage (does not stack)
  56. +CON/-STR
  57.  
  58. crabard (crab wizard)
  59. largest aoes
  60. 1: zap - do a zap, damage line lvl adjacent
  61. 2: boom - do a boom, damage aoe sqrt(lvl) target within lvl
  62. passive: allies have "only" a 25% chance to be hit by your attacks!!
  63. +DEX/-STR
  64.  
  65. crabinator (crab the terminator)
  66. fastest attacks
  67. 1: brbrbrap - shoot assault rifle, damage 30deg cone sqrt(lvl)
  68. 2: fwooosh - shoot flamethrower, damage 90deg cone sqrt(lvl)/2
  69. passive: 25% chance for abilities not to be put on cooldown when used
  70. +DEX/-CON
  71.  
  72. crabbot (crab robot)
  73. is a death cloud
  74. 1: whirl - spinny blades all around, damage aoe 5
  75. 2: shrapnel - sharp things in front, damage 150deg cone 5
  76. passive: enemies within sqrt(25% lvl) take damage upon your movement
  77. +DEX/-AGI
  78.  
  79. crab bond (crab james bond)
  80. is a spy
  81. 1: infiltrate - turn invisible until you've moved sqrt(lvl) squares
  82. 2: sabotage - damage to enemy within 10 (doesn't count against stealth)
  83. passive: 25% chance to count as an ally whenever targeted
  84. +AGI/-STR
  85.  
  86. crabwayman (crab highwayman)
  87. fastest
  88. 1: *is fast* - teleport to target within 2+sqrt(lvl) and damage adjacent each square between
  89. 2: *is tricksy* - reset movement and *is fast* cooldowns
  90. passive: if movement is off cooldown, take 25% damage and consume movement cooldown
  91. +AGI/-CON
  92.  
  93. crabpire (crab vampire)
  94. life drain
  95. 1: nibble - damage enemy within 1, heal amount dealt
  96. 2: bat - become a bat, damage adjacent, heal amount dealt, teleport to target within 10
  97. passive: enemies within 5 receive 25% less healing
  98. +AGI/-DEX
  99.  
  100. ================================
  101.  
  102. instances are weekly pvp and pve
  103. there is one instance per day
  104. sometimes there are special instances, like daily hardcore or monthly
  105. at the end of an instance, the top 2% in each class are made legendary in that class
  106. legendaries have 50% or 12.5% in their passives instead of 25%, whichever is better
  107. also legendaries count as separate classes, so the 2% cut only includes non-legends
  108. as far as art, legendaries are the same sprites with inverted colors
  109.  
  110. also possible is matchmaking instances
  111. uses a lobby and a skill rating system
  112. matches are probably 4v4, maybe 5v5?
  113. uses a special quadtree structure for a smaller world, perhaps a single tier 3?
  114.  
  115. movement is wasd, but those buttons actually control your move-to cursor
  116. whenever your movement comes off cooldown, you move to the square closest to the move-to cursor
  117. when you are subjected to a teleport, whether your own, allied, or enemy:
  118. - if your cursor is on your position, it is moved to your new position
  119. - otherwise, it remains in its location
  120.  
  121. consider the following scenario, given in chronological order:
  122. players 2 and b are combatting each other
  123. player 2 uses a forced movement ability that, on player 2's screen, targets player b
  124. the server receives player 2's ability packet
  125. player b uses a remote target ability that, on player b's screen, targets player 2
  126. the server receives player b's ability packet
  127. player b receives player 2's ability packet
  128. player 2 receives player b's ability packet
  129. is it fair for player 2 to be hit by player b's ability? i think not.
  130. especially consider if player b had lagged for a long period of time and had been pushed multiple times away from player 2
  131. on the other hand, nothing should favor environmental enemies
  132. so if player 2 is instead environmental enemy 2, there is no question that it should hit
  133. there are two solutions to this change in opinion:
  134. 1. ability packets always encode both absolute and relative positions
  135. 2. ability packets encode position dependent upon the game mode
  136. option 1 is more bandwidth, but allows for things like the game mode changing mid-instance
  137. option 2 is probably better in every realistic way
  138. part of server info includes whether to transmit ability targets as relative, absolute, or both
  139.  
  140. ================================
  141.  
  142. the world is quadtrees
  143. mxn - tier 1 mxn of tier 2
  144. |
  145. ___16x16___ - tier 2 16x16 of tier 3, total 512x512 squares
  146. / | \
  147. 32x32 32x32 32x32 - tier 3, single quadtree node is 32x32 squares
  148. this means that a tier 3 quadtree bitmask is 32x32/8 = 32x4 = 128 bytes
  149. tier 2 is the size that the client knows; 512x512*2 bytes = 512 kibibytes
  150. we'll use rmo because it's more interoperable with other things in c++ and go
  151. size of a world depends upon the instance, but number of players can never exceed 65536
  152. the world is an m*n*16*16*32*32 chunk of memory, or m*n*262144 squares
  153. the tier 3s are contiguous memory
  154. tier 2s have auxiliary matrices of pointers into the world
  155. i.e. a change in quadtree index always corresponds to a change in tier 2 index
  156.  
  157. ================================
  158.  
  159. obviously we need a crab class
  160. what the class needs:
  161. name, class
  162. level, xp
  163. str, con, dex, agi
  164. max hp, current hp
  165. who is buffing, who is debuffing, who is giving tank passive, who is giving vamp passive
  166. last damage for warrior passive
  167. server only:
  168. kills, deaths, assists
  169. damage done, healing done
  170. who has assisted in killing this crab
  171. -
  172. action 1
  173. action 2
  174. on damage (check have tank passive, highwayman passive)
  175. on move (check for tank, vampire, and totems, robot passive)
  176.  
  177. ===============================
  178.  
  179. network stuff
  180. authentification is done in tcp using ssl like a not-dumb
  181. the server generates a random 64-bit login token used to feed a cipher
  182. during ssl, the server sends the number to the client
  183. once logged in, we switch to udp
  184. all datagrams are enciphered with whirling ekxe, then with the login token
  185.  
  186. then we need multiple udp packet types
  187. client side:
  188. common to everything:
  189. my current 64-bit login token
  190. sequence number
  191. packet type
  192. move waypoint to position:
  193. new position, 2-int vector, absolute
  194. use ability:
  195. ability number 0 or 1 (server knows client's class)
  196. cursor position, 2-int vector, relative to what the client thinks is its position
  197. keyframe 1:
  198. what t3 i think i'm in
  199. what i think my in-t3 position is
  200. number of other crabs i know about
  201. list of relative positions of crabs i know
  202. list of their healths
  203. keyframe 2:
  204. what t3 i think i'm in
  205. what i think my in-t3 position is
  206. number of buff totems i know about
  207. number of debuff totems i know about
  208. list of relative positions of buff totems i know about
  209. list of their healths
  210. list of relative positions of debuff totems i know about
  211. list of their healths
  212. pong:
  213. sequence number of received ping
  214. time field of received ping
  215. ack:
  216. bitset of the recieve status of the last 128 packets
  217.  
  218. server side:
  219. common to everything:
  220. your current 64-bit login token
  221. sequence number
  222. packet type
  223. update crabs:
  224. number of crabs
  225. list of:
  226. 16-bit crab id (can be you)
  227. bitset of fields updated
  228. t3, in-t3 position, hp, xp, level (also includes stats)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement