Game Development Community

Noob Question... sorry in advance

by Rawles "Numba" Roberts III · in Torque Game Engine · 02/20/2006 (8:39 am) · 5 replies

Hello. Would like to take this opportunity to say "Hi" to everyone and say I have enjoyed many of the tutorials/resourses posted, and all of the questions that have been answered.

With that in mind, I have a question. But perhaps a little background on the problem....

I am lead programmer on a small team to make a space sim to replace/enhance the one we used to play. We have reached the point were they are beginning to ask questions that I cannot answer, so I turn to the GG community. And so here I am.

The question is: What are the MAX and MIN player/object coordinate values for the 'game world'/userspace/playfield/whatever other name it has.

I ask this because an idea for a theme has been proposed (basing this game in a 'semi-static' replica of our solar system. I need to know how large the 'universe' can be, so I can approve/disapporve/offer alternatives. The idea is to have the 'solar system' as a 'base' playfield, and then 'sub-areas' around stations, depots, outposts, etc. with volume triggers for entry points. (Enter said volume, load new area)

I have looked though some of the code, but have as yet been unable to locate how(or even where) an object's coordinates are stored.

Second question (related to first) is: If the coordinate system proves to be too small, will changing it to a different size (say signed int to signed long, or signed long long) break any netcode or cause other problems?

Knowing the size (and nature) of the coordinate system would help me greatly in solving some disputes, and determining game direction.

"A man's gotta know his limits...."

Thank you very much in advance for your anwer(s).

Rawles III (Numba1) (dont' ask, it's my callsign, long story)

#1
02/20/2006 (10:15 am)
Coordinates are stored in signed 32-bit float trios (X, Y and Z). There are no hard limits in Torque. But there are some sort of issues while working with massive numbers on *any* computer, because you'll be dealing with the limit of float variables.

For creating massive scale coordinate systems, you need to do some fancy tricks. Do some google'ing and you might find some itneresting approaches. Maybe you can check Celestia, a free 3D space atlas. Celestia allows you to both be on a planet's surface, or zoom out all the way until the whole Milky Way is visible from outside.
#2
02/20/2006 (10:59 am)
OK, thanks Manoel. I was hoping it was a standard float, but thank you for confirming that. It will be relatively easy to set the scale now, as the solar system out to and even slightly beyond Pluto will easily fit in a float (at 1 meter = 1 unit) I hadn't planned on it being any bigger, and if we get to the point of 'other' sloar systems being in the mix, I had toyed with the idea of zoning those anyway.

Thank you very much, and also thank you for the other ideas.

Numba
#4
02/20/2006 (10:08 pm)
Hmm, I wasn't aware of that. Thank you Matt, you have saved me many many hours of grief. I may need to discuss specific implimentations of that with you, but just being aware of it allows me to dodge the bulet. Thank you very much.
#5
02/21/2006 (12:22 am)
Just went back and re-read the 3rd article. I see what you are getting at. To effectively track player positions and have them update smoothly within the solarsystem as a whole, I'll need to change the Point3F class to F64. I sense a headache coming.... I think I'll just sectorize each important area until I think I can tackle that, as I don't know for sure what repercussions changing the Point3F class would have, especially on ping times, bandwidth requirements, and most likely every single matric calc in the engine. Definitely not within my math capabilities right now, even though most of the work has been done already (the initial setup of the matrices). As I said, it would seem that a 'zoned' approach would be best right now.