Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!

1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Member Since 09 May 2012
Offline Last Active Apr 07 2014 05:14 AM

Posts I've Made

In Topic: common client/server IO volume & rates

10 July 2012 - 01:36 AM

Yes right. Perhaps I should have been more detailed in my question! ;)

I'm interested in trade-offs between package frequency and size being made nowadays in production grade real-time multiplayer games, and what bandwidth and latency game developers assume/require the players to have.

In the MMO I'm working on I'm currently sending world state updates in the range of 1-5 kb, 5-10 times per second. It's a strategy MMO and as such doesn't quite have the precision requirements of an FPS. But I have yet to write a more advanced package splitting and data compressing logic. I don't know if that is likely to be necessary so I'm curious at what others are doing regarding network IO performance.

In Topic: Optimal representation of direction in 3D?

03 July 2012 - 07:42 AM

Hodgman - all fair points, if you're looking for an optimal representation for a given specific kind of computation.

In Topic: Optimal representation of direction in 3D?

03 July 2012 - 04:16 AM

From your first post, it sounds like your task is to compress them into the most efficient storage format? If so, you could just run your regular normalized XYZ vectors though ZLIB Posted Image (p.s. sorry for the tongue-in-cheek post)

No it's rather about optimal value representation. (An analogous discussion would be: Are floats an optimal or close-to-optimal representation of Real values given an N bit word to store it in?)

But computability would be nice, which the approach I found in the last post appears not to be. The best approach that's still practical still seems to be the

Equidistant Azumuthal Projection.

In Topic: Optimal representation of direction in 3D?

03 July 2012 - 02:37 AM

Nice that I'm not the only one that finds such problems exciting! ;-)

It was the Equidistant Azumuthal Projection I was considering (your second link). After some more thought on it, yes you're perfectly right! While it is possible to construct the projection so that there are no redundancies except at two poles, swapping one projection for the other will probably only move the dense and sparse precision areas around. Orthogonal coordinate systems will probably always produce varying angular precision over a curved surface.

I started thinking about it another way. Since we're looking for a discrete geometric representation of points on a unit sphere surface, preferably with uniform distribution, why not state the problem as a discrete maths problem: for a given number N of representation bits, find an enumeration of 2^N points on the unit sphere surface that are as equidistant as possible, and for which the translation to and from the the bit representation can be done algorithmically (worst case) or algebraically (best case).

This problem seems to be a special case of Spherical Code: http://en.wikipedia.org/wiki/Spherical_code
Such as Spherical Covering: http://neilsloane.com/coverings/index.html

Another approach could be the Circle Packing problem: http://mathworld.wolfram.com/CirclePacking.html

It still seems there is no algebraic (i.e. non-iterative) solution however. :-/

(3D applications' renditions of spheres could also be interesting to look into - how do they map spheres to polygons?)

In Topic: Optimal representation of direction in 3D?

02 July 2012 - 03:26 PM

My idea in the first post was essentially spherical coordinates, which as a pure value space can be thought of as two-dimensional vector (rectangle from [-PI,-PI/2] to [PI,PI/2]). A better solution but not perfect one seems to be to use the azimuthal projection variation I described.

In this (academic) exercise what I was striving for was essentially a bit representation of a 3D-direction with no redundancies, no invalid nor un-normalized values and if possible uniform precision.