Location, Location, Location

It is true: I should be working on the game right now. But I couldn’t resist more beta data!  Here are 5,871 geolocated SpyParty Early-Access Beta IP addresses:

Thank you, Guam!

A few things of interest:

  • I started to color code the points by the time they registered, and then I thought I’d do a gif animation over the duration of the beta, and then I realized I’d already spent way too much time on this!
  • I got a flurry of Japanese sign ups and tweets, mostly referencing this nice article on 4Gamer.net.  I should probably have the sign up page translated into Japanese and Korean…
  • Are there really a bunch of sign ups from Arviat, NU, Canada, or is that a bug in the free IP geolocation database I used, or my code?  Also, Sao Tome?  Oh, wait, duh…Sao Tome is right near 0,0 lat/lon, so that’s probably just a bug!  Arviat is a mystery, though.
  • I got the map image from here, but be warned, one of their “Mercator” projections isn’t.  I thought I had a math bug for an hour or so in the code I hacked up to render this.

Okay, back to work on the auto-updating and content packing!  Fun fun fun!


  1. John says:

    Hmmm… well, in a couple months I’ll be moving to the Rocky Mountain area from my current location in the Pacific Northwest of the USA. You should probably make another map at that point in time! :P
    The “international awareness” of SpyParty is pretty awesome!

  2. Ezithau says:

    I’m in the Iceland blob, and hope I get to do beta

    • checker says:

      You definitely will (everybody who signs up will, I need to update the FAQ), and thanks for signing up!

  3. Ger says:

    Well, it could be worse!
    Had you gone by facebook location data, you’d be getting a hit from Elephant Island!

  4. Annie Moose says:

    Ooh ooh ooh! I think I see my house!

    I’m from the gigantic mid-to-East US blob.

  5. Jared says:

    Is it me, or does it seem like it just skips over Oregon completely? lol, WE ARE HERE AND WE WANT TO ENJOY IT CHRIS!

  6. Nice. Congratulations for all the interest you have generated. I’m really excited to try the game.
    By the way, what software/code did you use to colour the map?

  7. Jon says:

    Absolutely fabulous! I’m in the northern scandinavia blob ;)

    What did you use to render the map, if you’d care to give a short comment?

    • checker says:

      A bunch of totally hacked terrible code I wrote, filled with stuff like this:

          assert((w == 1236) && (h == 1165));
          MercatorAspectRatio = float(w)/float(h);
          EquatorY = float(h-565)/float(h);
          MeridianX = float(618)/float(w);
          LatScale = (float(h-456)/float(h) - EquatorY)/0.549306144335f;   // 30 degrees
          LonScale = 1-MeridianX;

      or this:

      vector_2 XYFromLatLon( float lat, float lon )
          float x = MeridianX + LonScale*(lon/180.0);
          lat = RadiansFrom(lat);
          float y = EquatorY + LatScale*log((sin(lat) + 1)/cos(lat));
          // return vector_2(WindowWidth*x,(WindowWidth/MercatorAspectRatio)*y);
          return vector_2(MercatorAspectRatio*x,y);

      and this:

          glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
          for(uint i = 0, ni = IPAddresses.size(); i < ni; ++i) {
              uint ip = IPAddresses[i];
              geo_ip_range* range = FindIPRange(ip);
              if(!range) {
              geo_location* loc = FindLocation(range->locid);  assert(loc);
              float r = 0.007f, a = 0.15;
              vector_3 green = RGBtoHSV(vector_3(0.0f,1.0f,0.0f));
              vector_3 blue = RGBtoHSV(vector_3(0.0f,0.0f,1.0f));
              float t = float(i)/float(ni);
              vector_3 c = HSVtoRGB(t*green + (1-t)*blue);
              vector_2 xy = XYFromLatLon(loc->lat,loc->lon) + r*vector_2(genrand_real_cc()-0.5f,genrand_real_cc()-0.5f);
              float z = i*1e-7f;
              glTexCoord2f(0,0); glVertex3fv(make_v3(xy-vector_2(-r,-r),z).el);
              glTexCoord2f(1,0); glVertex3fv(make_v3(xy-vector_2( r,-r),z).el);
              glTexCoord2f(1,1); glVertex3fv(make_v3(xy-vector_2( r, r),z).el);
              glTexCoord2f(0,1); glVertex3fv(make_v3(xy-vector_2(-r, r),z).el);

      Etc. Basically, I downloaded the geolocation csv files and map I mention above, figured out where the important parts of the map were in the image, load it in, render it as a texture, then look up all the IPs and splat them down as a little gaussian alpha blob texture.

    • Jon says:

      Ah, I get the gist, thanks :)

  8. Soupnazi says:

    Whoa, totally cool.

    Gosh, my whole state is covered in blue/green.

  9. agentorange says:

    I’m the Guam blob. 

  10. jordy says:

    I wonder who those people are in the middle of no where.

    • Soupnazi says:

      That’s my 100 signups. :P

      That’s actually a really good question. I wonder…

  11. Chelsea says:

    They could be using Tor or another proxy server or something too.

I have temporarily disabled blog comments due to spammers, come join us on the SpyParty Discord if you have questions or comments!