Staredit Network > Forums > General StarCraft > Topic: Secrets of Starcraft
Secrets of Starcraft
Sep 20 2009, 10:41 pm
By: Heinermann  

Sep 20 2009, 10:41 pm Heinermann Post #1

SDE, BWAPI owner, hacker.

There are many unwritten rules, secrets, and misconceptions in the Starcraft community. I'll cover everything from secret /replay commands, to hosting games.

The Command Line
Many people think Starcraft takes no command line parameters, but, like Warcraft II: BNE, it can take quite a few.

Setting up command line parameters in a shortcut:
1. Right click Starcraft.exe.
2. Click on "Create Shortcut".
3. Right click on the new shortcut.
4. Click on "Properties".
5. Append any command line parameters to the "Target" field. Example: "C:\Program Files\Starcraft\StarCraft.exe" ddemulate

Here is a list of command line parameters:
Code
ddemulate  -- Emulates directdraw instead (Fixes vista problem).
nosound    -- Disables game sound.


In addition to these two commands, you can use any cheat code in the command line as well.
Example: "C:\Program Files\Starcraft\StarCraft.exe" ophelia xzerg01
This will skip the menu completely and start with the first Zerg Expansion campaign. It may be possible to mod the campaign maps for testing purposes (Broodwar AI for example).
I have not tested other codes.

*Special note: There is no "-" used in the commandline. It is just "ddemulate", not "-ddemulate". That goes for all other command line parameters as well.


General Game Rules
Some people don't know the basics of hosting a game on Starcraft. Allow me to inform you of some unwritten rules and tricks to hosting a public game.

Recreating the game:
If you're the host of a game and told players that you would remake it, those players expect the game to be remade before they click the join button. If you've finished a game, try to gain a head start by exiting early. Hold Enter to skip the score screen, and quickly use the shortcut keys ALT+C and then press Enter. Unless players have not yet left your game, you would have recreated it quickly without any problems. Otherwise, wait a few seconds for the remaining players to quit. If you're impatient or players are still in the game, it's common practice that you add an exclamation mark (!) to the end of the game name.

Updating the game:
Updating the game brings it to the top of the Join Games list. A common practice is to close all the slots, and then re-open them. Unfourtinately, closing one slot and re-opening it does not update your game. You must close ALL the slots first, so that your game is registered as "full", and then re-open the slots so that your game gets re-registered as "available". This is commonly known as "refreshing slots", but the term is misleading.

Saving a game:
When a host saves a public game, and all the players will continue from that save, it's best to stick to common practice and simplicity. When making the save, keep the same game name, and set the password to "1". "1" is probably the most common password in any online game.

So remake fast, close/open ALL slots, and password is always "1". Now, I'll explain some other unwritten rules and one important fact.

In-Game Latency:
Low latency means the response time between orders and the units obeying them is decreased. This increases the frequency of packets being sent to other players in the game, and improves game performance.
High latency means the response time between orders and the units obeying them is increased. People who micro units don't want this. This decreases the frequency of packets being sent to other players, and improves network performance, but slows down game performance (Battle orders, player reactions, etc). If you are only observing a game, do not touch the latency.

Observing a Game:
There are several rules for observers of a game. First of all, make sure you are Terran if you are in a melee position. Ally and unvision all other observers, and unally and unvision the players of the game. Next, turn on Allied Chat. If you own a Command Center, lift it and move it out of the way. Move any other units out of the way as well. Do not pause or unpause the game, do not change the latency, and make sure you are not slowing down the game.

Latency Trick:
There are common cases of people who can't join a friend's game, and receive the message "The game creator's latency is too high.". There is a very distinct workaround though. First, the person that has the problem with latency creates a game of his own, and has the original host join his. Even if the original host can't join your game, this will reduce the chance of getting the message for this session.
Example:
Person A tries to join Host B's game, receives latency message.
Person A creates a game and Host B attempts to join his game, receives latency message.
Host B re-creates the game and person A can now join it without problems.
Note: This trick works with most people, but possibly not everyone.


Hidden Commands
There are hidden "/replay" commands to show leaderboard statistics. These commands only work in replays. Here is a list:
Code
   /replay show kills                     -- Shows the number of kills.
   /replay show razings                   -- Shows the number of razings.
   /replay show slaughter                 -- Shows the slaughter leaderboard.
   /replay show resources                 -- Shows the resources.
   /replay show minerals                  -- Shows the minerals.
   /replay show gas                       -- Shows the gas.
   /replay show score                     -- Shows the total score.
   /replay show score units               -- Shows the units score.
   /replay show score buildings           -- Shows the buildings score.
   /replay show score kills               -- Shows the kills score.
   /replay show score razings             -- Shows the razings score.
   /replay show score user                -- Shows the custom score.
   /replay hide                           -- Hides the leaderboard.




You can view my raw document here: http://code.google.com/p/vgce/source/browse/trunk/docs/Blizzard/Starcraft/sccmds.txt

EDIT: Added latency trick and a note about the command line parameters.

Post has been edited 1 time(s), last time on Sep 21 2009, 5:34 am by Heinermann. Reason: update




Sep 20 2009, 10:49 pm Neki Post #2



Some of that stuff you said aren't really secrets, but nonetheless are still useful to people who don't know about it. More like tricks to playing Starcraft. I didn't know about the replay thing though, that looks interesting and useful.



None.

Sep 20 2009, 10:59 pm Ahli Post #3

I do stuff and thingies... Try widening and reducing the number of small nooks and crannies to correct the problem.

I don't know if the "-ddemulate" works.
What is the problem with Vista without it?

I my scrolling performance is as bad as before. Disabling "color cycling" in options just fixes that. Without color cycling, there is no lag during scrolling anymore.




Sep 21 2009, 12:00 am poison_us Post #4

Back* from the grave

You forgot about the lat trick--joining A's game, leaving, and then A can join your game when he couldn't before.




Sep 21 2009, 12:03 am ClansAreForGays Post #5



:-( would have made an excellent article.




Sep 21 2009, 4:13 am -BW-Map_God Post #6



I have never had trouble running Starcraft-Broodwar on my Vista laptop (mostly just for map testing) so not sure why you would need the "-ddemulate command.

I was also surprised like poison_us that the lat trick was not mentioned. Since he didn't describe it very well I will describe it in this post. You want to play with a friend (or random b.net'er) but they get latency trying to join your game. So you try to find a game on the game list that you both can join. Once you both get into the game then you can leave and go host and that person will be able to join again. This works 99% of the time where either person can host, I've only run into one person that after doing this trick couldn't host a game for me to join. I've never had it not work for someone joining and then not being able to join my host.

It also helps when hosting to join a random game first as this fixes your latency with the players in it (if any leave for whatever your hosting) and it also appears to allow more people to join your host thereafter as it fixes latency with an unknown number of people thereafter that fit in the same category s the people in the game you join. (Don't ask me how that works I'm not sure yet but it's happened before. I've hosted...someone can't join then I join a random game there not in and rehost after and they can suddenly join. My guess would be it has to do withwho your battle.net host is.



None.

Sep 21 2009, 5:40 am Heinermann Post #7

SDE, BWAPI owner, hacker.

Quote from poison_us
You forgot about the lat trick--joining A's game, leaving, and then A can join your game when he couldn't before.
Ok, I added the Latency trick as I know it.

Quote from ClansAreForGays
:-( would have made an excellent article.
It's too bad my interest in that project died. :-/

Quote from Ahli
I don't know if the "-ddemulate" works.
What is the problem with Vista without it?

I my scrolling performance is as bad as before. Disabling "color cycling" in options just fixes that. Without color cycling, there is no lag during scrolling anymore.
It's "ddemulate", and the problem for me is with the drawing of icons on Battle.net. I think disabling unit portraits also improves performance if it's something you're worried about. It completely prevents opening the smk file, so that you can beat "don't click the flag".




Sep 21 2009, 3:22 pm theleo_ua Post #8



How to use replay commands (for example "/replay show kills") ? Where and when I should type them?

About latency trick:

You all know, that all "can join because a latency" problems is because host is using NAT( http://en.wikipedia.org/wiki/Network_address_translation ) and doesnt have real ip adress for receive incoming connections on 611X ports.

And as I know - if 2 persons A and B both using NAT without real ip adresses - they will cannot join each other even with latency tricks.

You said that:

>>Person A tries to join Host B's game, receives latency message.
>>Person A creates a game and Host B attempts to join his game, receives latency message.
>>Host B re-creates the game and person A can now join it without problems.

I understand this example that both players are NAT players without real ip adresses, because both received "latency message". So I think your example should not work, because 2 NAT players cannot join each other even with latency trick.

Now imagine, that person A has real IP without NAT.

Modified example (also poison_us told about this, but I explaining in details:) ):

Person A tries to join Host B's game, receives latency message.
Person A creates a game and B successfully join his game without latency message.
B re-creates the game and person A can now join it without problems.



And now lets speak about something interesting:

Example 3 - modified latency trick:

Person A has real IP adress without NAT
Persons B and C hasnt real IP adresses, using NAT

Persons B and C joining to A's game.
Persons A, B and C start playing this game.
Persons B and C leaving A's game.
Persons B creates a game.
Persons C trying to join B's game.
What will happen for C - sussessful join or latency message?


Thanks for reading.

BTW nice article - thanks for it.

Post has been edited 5 time(s), last time on Sep 21 2009, 3:31 pm by theleo_ua.



None.

Sep 21 2009, 9:28 pm Heinermann Post #9

SDE, BWAPI owner, hacker.

Well I don't understand the whole NAT thing and why it's related, but what I read means I can't disable it since I'm in a home with several machines in a local area network.

Quote
I understand this example that both players are NAT players without real ip adresses, because both received "latency message". So I think your example should not work, because 2 NAT players cannot join each other even with latency trick.
This has worked in the past at some point, I forget who it was, probably clokr_ or someone classic like that.

Quote
How to use replay commands (for example "/replay show kills") ? Where and when I should type them?
They only work in replays, so watch a replay and type in the command, and the leaderboard will change to that.

I want to try and keep the latency part simple, and not have to resort to a bunch of steps with players A, B, and C.


Also, it's about time I change my avatar...




Sep 21 2009, 10:30 pm theleo_ua Post #10



>>I want to try and keep the latency part simple, and not have to resort to a bunch of steps with players A, B, and C.

You dont need to add A B C example to article, but what happens in A B C example?:) I never tried that.

>>Well I don't understand the whole NAT thing and why it's related, but what I read means I can't disable it since I'm in a home >>with several machines in a local area network.

If you have only 1 PC at home and cant host games - you can resolve this problem by bying white (real) IP from provider. But if you have several PCs - the only solution for host games on each PC is bying several white (real) IPs: 1 real IP per each PC .

If your provider have this service (real IP for additional payment) - you can resolve your problems.

My current provider have the service "real ip" for a 5 dollars per month. I tested this feature with 2 PCs on my home - and it work (both hosted games sucessfully without any latency tricks).



None.

Sep 23 2009, 11:20 pm -BW-Map_God Post #11



Oh yea, I had one question on the replay commands--do they still work if you are playing a game replay which has a cycling leaderboard showing various stats every x seconds? It seems like they wouldn't but I wondered if anyone had tested it.



None.

Sep 24 2009, 3:24 am Falkoner Post #12



Quote
If you have only 1 PC at home and cant host games - you can resolve this problem by bying white (real) IP from provider. But if you have several PCs - the only solution for host games on each PC is bying several white (real) IPs: 1 real IP per each PC .

Lol, you can edit the ports Battle.net uses in the registry so each computer uses a different port and that actually fixes the problem, I've used it behind my own router and it works great :)



None.

Sep 24 2009, 3:26 am Jack Post #13

>be faceless void >mfw I have no face

What bit do I have to edit for that? My computer stopped being able to host recently.



Red classic.

"In short, their absurdities are so extreme that it is painful even to quote them."

Sep 24 2009, 3:35 am Falkoner Post #14



By default, SC uses port 6112 UDP, so you open up regedit, go to HKEY_CURRENT_USER\Software\Battle.net, go to the Configuration subkey, and create and new DWORD named "Game Data Port", then edit it, change the value type to decimal(this is just for convenience sake), and enter your new port number, then make sure to forward that port through your router.



None.

Sep 24 2009, 3:40 pm theleo_ua Post #15



Nice solution Falkoner:)



None.

Sep 24 2009, 3:53 pm Excalibur Post #16

The sword and the faith

Falk, can we force SC to use any port we like? Case and point can I force it to use Port 80 (default web browsing port) since my router refuses to port forward?




SEN Global Moderator and Resident Zealot
-------------------------
The sword and the faith.

:ex:
Sector 12
My stream, live PC building and tech discussion.

Sep 24 2009, 11:09 pm Falkoner Post #17



Quote
Falk, can we force SC to use any port we like? Case and point can I force it to use Port 80 (default web browsing port) since my router refuses to port forward?

Yeah, I'm pretty sure anything you put in there should work :)



None.

Sep 25 2009, 1:02 am payne Post #18

:payne:

A work-around for the "refresh slots" is to make a player rejoin the lobby, no? Write that down ;)
You might also want to give tricks about how to find laggers like saving in-game or such ;o
Talk about downloading shitz too. When a download status is stuck and there are red bars for a player, it normally means that player is the uploader, make him rejoin and the download should just continue :O

I'm note sure about all these infos, tho.



None.

Sep 25 2009, 8:06 am theleo_ua Post #19



Forgot to say: if 2 NAT payers (who cannot host) detected in same game - 99% that will be unplayable lag



None.

Sep 25 2009, 11:42 pm Heinermann Post #20

SDE, BWAPI owner, hacker.

That's true, and neither of them would lag normally.




Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[08:31 pm]
O)FaRTy1billion[MM] -- :wob:
[06:07 pm]
UndeadStar -- :wob:
[2021-10-22. : 12:00 pm]
Ultraviolet -- :wob:
[2021-10-22. : 10:38 am]
jjf28 -- :wob::wob:
[2021-10-22. : 10:32 am]
Zycorax -- :wob: intensifies.
[2021-10-22. : 8:51 am]
Zincoshine -- :wob:
[2021-10-22. : 4:43 am]
RdeRenato -- :wob:
[2021-10-22. : 4:43 am]
RdeRenato -- : wob :
[2021-10-21. : 4:52 pm]
jjf28 -- :wob: cause you failed to prefix your message with :wob:
[2021-10-21. : 2:48 pm]
MTiger156 -- *wobbing stops* :massimo:
Please log in to shout.


Members Online: Roy