Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - newbiz

#1
AI Scripts / Re: Amazing AI !! (try it out)
March 28, 2010, 04:54:13 AM
Amazing AI !


I used to annihilate Starcrack v6/7 (and yeah, 7 is lot weaker than 6.1) but this AI is a real challenge!
#3
Could you give more information about the entry #3 ?
What kind of features do you need ?
#4
Starcraft II Beta / Re: Emulate Battle.net
March 12, 2010, 12:11:04 PM
This guy shows nothing, absolutely nothing.


I mean, i *could* understand that he does not want to release something, but he doesn't even give any technical information.


This really _is_ a fake.
#5
Dump of the unknown chunk inside replay.info
It seems to be organized in 2 parts, each containing <almost> fixed length structures.

// <- ... map cache name length ...
// <- ... map cache name ...

// Unknown chunk
6E D5 18 ED 00 00 50 F8 DF 07 BB 00 10 00 00 F0
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
D0 FB 3F C3 41 02 00 00 80
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF

//
//                           0
//                           10
//             0     0  0 0  22
//            01     2 01 20 44
//      ?? ?? 12    03 83 41 88 00 00 ?? ?? ??

         47 00 80 02 81 00 40 00 00 FC 07 C0
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

         7E 00 10 00 83 00 08 00 00 E0 1F 38
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

      F0 21 02 00 03 80 01 00 00 00 FF 07
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

      80 4F 00 40 00 83 00 20 00 00 F8 07 E0
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

         7C 10 08 00 03 20 04 00 00 C0 3F 1C
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

      E0 43 01 00 03 80 00 80 00 00 FE 07 80
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

         5F 00 20 00 83 00 10 00 00 F0 0F 70
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

         F8 10 04 00 03 40 02 00 00 80 7F 0E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

      C0 47 00 80 02 81 00 40 00 00 FC 07 C0
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

         7E 00 10 00 83 00 08 00 00 E0 1F 38
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

      F0 21 02 00 03 80 01 00 00 00 FF 07
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

      80 4F 00 40 00 83 00 20 00 00 F8 07 E0
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

         7C 10 08 00 03 20 04 00 00 C0 3F 1C
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

      E0 43 01 00 03 80 00 80 00 00 FE 07 80
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

1F 28

// ... "s2ma" structs x5
#6
Some random feelings about the 6.0:


Problems to solve:


- Still not a real challenge for an average RTS player. Even the cheating one.


- (Minor) Zergs don't use creep tumors, so their colonies are stacked randomly between buildings, where there is enough creep.


- No adaptability, the AI will send waves after waves of ground units where it is obvious that there is no possibility to kill those tanks.


- (Minor) No real micro management. You can kite almost anything if you have a reaper/viking/stalker/colossus, just by going back and forth over gaps or walls.


- (Minor) AI does not consume its resources as it should, that's why the cheating AI is not really better than the standard one.


- (Minor) AI won't react to any exotic strategy (but that's not really a problem)


- (Major) The AI won't enclose you. It sends waves of units, but from its camp to yours. Instead, the AI should stack its units near you base entrance, out of range, so that you cannot get out to create expansions. (SC1 AI did that).


- (Major) AI does not group units wisely. They should combine antiair and antiground units. But most of the time, a wave consist of onlyground or onlyair.


- (Major) AI does not check for expansion often enough. In SC1, the AI was able to burrow for instance 1 zergling near each mineral group, so that when you come with a drone to create an expansion, the AI knows, and the zergling kills the drone (or stay burrowed and a wave is sent to the expansion)


- (Major) AI does not protect its bases. I mean, all its army is stacked for an attack wave, and they have to come back if the base is attacked. They should reserve some units to stay at the base to defend until the real army can come to the rescue.


- (Minor) Terrain buildings should lift off when ground attacked.

Nice things from 5.5:


- AI will expand to places only reachable by transpots. Nice!


- More units are using their special abilities (HT & co).


To those who have problems defeating the AI:


Standard - Protoss: Create some zealots and as soon as possible immortals. Wait for the first rush (you should have ~6 zealots ~3 immortals) send zealots while you kite them with immortals. Then strike back while producing more and more immortals. You should defeat them easily.


Standard - Terran: Block you entrance with 2 supplies and 1 barrack. Create a bunker with 4 marines and as soon as possible tanks. During the rush, just keep reparing supplies & bunker. Strike back with tanks & vikings.


Standard - Zergs: Create mass zerglings, and roach as soon as possible. You should resist quite well to the first rush by kiting them with roaches while zerglings mess him (same thing with zealots/immortals). Strike back by transforming zerglings to bannelings and burrow them in his expansions. You should be able to destruct him with your bannelings and mass roaches.


Cheating: Roughly the same stategy than with the standard AI, except that you should create a massive defense (tons of tanks (+some vikings for anti air&rush)/ roaches(+some hydras for anti air) / immortals (+phoenix for anti air). Once you base camp is protected enough (i.e. you don't even need to micro when a wave arrive), begin to create all possible expansions. If an expansion is attacked, just rush the AI, it will back to protect it.



Hope it helped.
Keep up the good work, the AI gets better & better at each release :)
#7

This format is sooo ambiguous to parse...

09 01 02 83 00 32 8E 84 00 97 94 06

How can you know if this is a blink or a message ?


Blink:

byte 0-1   : frames
byte 2     : player
byte 3     : opcode
byte 4-... : X & Y



Message:

byte 0     : frames
byte 1     : player
byte 2     : type (all)
byte 3     : length
byte 4-... : message
#8
That's very kind of you :)
Also, do you know if messages & blinks can be interleaved, or blinks are always before ? if so, it would become a real pain to parse.
#9
Okay.. So there's a new type of header after the 7-bytes-long ones ?
Will work on it.
#10
I attached the dump (renamed to .txt so that i can upload it here).


From what you've wrote i have the following headers:
00 22 80 00 00 1D 00
00 21 80 00 00 1D 00
00 22 80 00 00 32 00
00 21 80 00 00 32 00
00 23 80 00 00 1C 00
00 23 80 00 00 1E 01
00 23 80 00 00 25 00
00 23 80 00 00 27 01
00 23 80 00 00 2F 00
00 23 80 00 00 32 00



And then a bunch of (unknown?) 193 bytes until the first message.
I have no clue how to interpret it.
#11
lol ok ^^


If that's not considered harrassment, would you mind explaining the Accumulate Frames, 1-N bytes, Big Endian and Frame/64=Second line ?[/color][/size][/font]

I got a replay where the first message is a "gg", at the very end of the game, so the accumulated frame field is quite long ( 193 bytes ). How should I interpret it ?
A sum of 64b big endian integers storing elapsed frames ?
#12
Okay thanks a lot.


So I end up with something like :

00 21 80 00 00 1D 00  // Header 0
00 21 80 00 00 20 00  // Header 1
00 21 80 00 00 24 00  // Header 2
00 21 80 00 00 26 01  // Header 3
00 21 80 00 00 2E 00  // Header 4
00 21 80 00 00 32 00  // Header 5


elapsed frames | player id | zero | msg length | msg
         05 2C |        01 |   00 |         02 |                                     68 69
            68 |        01 |   00 |         05 |                            66 72 6F 6D 3F
            F8 |        02 |   00 |         06 |                         73 77 65 64 65 6E
            50 |        02 |   00 |         04 |                               79 6F 75 3F
         01 68 |        01 |   00 |         07 |                      66 69 6E 6C 61 6E 64
         01 60 |        01 |   00 |         0B |          6D 69 6E 64 2E 6B 69 76 76 69 3F
         01 98 |        02 |   00 |         0E | 6E 65 76 65 72 20 68 65 61 72 64 20 6F 66
         01 E7 |        01 |   00 |         04 |                               67 6C 68 66
            E0 |        02 |   00 |         04 |                               73 61 6D 65
      02 44 BF |        01 |   00 |         02 |                                     67 67
         01 54 |        02 |   00 |         02 |                                     67 67



Any idea how to guess the number of headers at the beginning of the file ?
#13
Thank you very much ! These are very valuable information ^^
Did you figure it out yourself or are you in a parser project ? If not, you can join my effort @ http://projects.coderbasement.com/projects/show/sc2replay


Bttw, could you explain a little bit the messageevents header structure ?
* Message Header, 7 bytes for each, pos 0 3 4 = 0x0, pos 2 = 0x80

I don't really understand this line. What do you mean by [/size][/color]pos 0 3 4 = 0x0, pos 2 = 0x80 ?[/color][/size][/font]

Thanks again
#14
Here is a dump of the message events file. These are chat messages.
A message is easy to parse, it's basically composed of a timestamp (from last message) followed by a player ID (starting at 1). Then comes the message string, with its length before.
The timestamp & player ID are ended by a terminal 0 (like cstrings) since timestamp has a varying length.

I can't figure out the global file header for now. It seems to have a fixed 40 bytes headers, and then something variable :/

------------- 2 players: TO ALL ---------------
      2C 01 00 02 68 69
                   h  i

      68 01 00 05 66 72 6F 6D 3F
                   f  r  o  m  ?

      F8 02 00 06 73 77 65 64 65 6E
                   s  w  e  d  e  n

      50 02 00 04 79 6F 75 3F
                   y  o  u  ?

   01 68 01 00 07 66 69 6E 6C 61 6E 64
                   f  i  n  l  a  n  d

   01 60 01 00 0B 6D 69 6E 64 2E 6B 69 76 76 69 3F
                   m  i  n  d  .  k  i  v  v  i  ?

   01 98 02 00 0E 6E 65 76 65 72 20 68 65 61 72 64 20 6F 66
                   n  e  v  e  r     h  e  a  r  d     o  f

   01 E7 01 00 04 67 6C 68 66
                   g  l  h  f

      E0 02 00 04 73 61 6D 65
                   s  a  m  e

02 44 BF 01 00 02 67 67
                   g  g

   01 54 02 00 02 67 67
                   g  g
               ^^ message size
            ^^ end of header
         ^^ player ID
   ^^ ^^ timestamp


------------- 4 players: TO ALL ---------------


                                    51 02 00 02 67 67
                                                 g  g
                                   
                                    8C 03 00 02 67 67
                                                 g  g
                                   
                                    C0 04 00 02 67 67
                                                 g  g

09 BD 03 83 00 32 8E 84 00 97 94 06 28 01 00 1E 68 6F 77 20 64 6F 20 79 6F 75 20 73 74 6F 70 20 6D 61 73 73 20 73 74 61 6C 6B 65 72 73 3F
                                                 h  o  w     d  o     y  o  u     s  t  o  p     m  a  s  s     s  t  a  l  k  e  r  s  ?

                                 05 18 03 00 12 6D 61 73 73 20 73 74 61 6C 6B 65 72 73 20 73 75 63 6B
                                                 m  a  s  s     s  t  a  l  k  e  r  s     s  u  c  k

                                    C8 04 00 15 69 64 6B 20 49 20 64 6F 6E 27 74 20 70 6C 61 79 20 74 6F 73 73
                                                 i  d  k     I     d  o  n  '  t     p  l  a  y     t  o  s  s

                                 09 0D 01 00 18 79 6F 75 20 74 68 69 6E 6B 20 73 74 61 6C 6B 65 72 73 20 73 75 63 6B 3F
                                                 y  o  u     t  h  i  n  k     s  t  a  l  k  e  r  s     s  u  c  k  ?
                                 
                                 05 1A 03 00 07 74 68 65 79 20 64 6F
                                                 t  h  e  y     d  o
                                             ^^ message size
                                          ^^ end of header
                                       ^^ player ID
^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ timestamp
#15
Has the replay file format changed recently due to patches ?
I have clearly different dumps from the first release to the latest :/