I’m thinking about buying Unity to use in a current project, but before I do buy it I’m hoping to get a little feedback from those of you that have experience with the engine.
Here’s what I’m doing:
I’m building interactive virtual sound environments/works inside 3D maps that, via LAN, can be experienced and altered in real-time simultaneously by several users. To achieve this I have to combine 3D gaming software with real-time audio processing software (Cycling 74’s Max/MSP).
So… all I really need to know before I jump in and buy Unity is this:
Can I access the positional coordinates of specific players inside the game environment (x,y,z,pitch,yaw, etc.) in REAL-TIME and constantly save that information to a file (txt or xml) on the hard drive of the computer being used? If I can do this then it will be easy for me to use that information to create a very subtle, and complex spatialized sound environment.
Another question:
Can the coordinate information of the players in the game be stored in a static location in the RAM of the server?
And then the big one: How easy will it be to do these things without experience writing code?
Any help would be really appreciated.
Thanks.
Zachary
Pretty much everyone on this forum is going to recomend Unity to you. We like it a lot around here 
I don’t quite uderstand what you are trying to achive but some of it sounds like it would be easy. Storing info for the position of each player could be done through the preferences file functions like this:
var playerNumber = 1;
var playerTransform : Transform;
var defaultPosition : Vector3;
// store the position
PlayerPrefs.SetFloat("Player" + playerNumber +"xPosition", playerTransform.position.x);
PlayerPrefs.SetFloat("Player" + playerNumber +"yPosition", playerTransform.position.y);
PlayerPrefs.SetFloat("Player" + playerNumber +"zPosition", playerTransform.position.z);
// read the position from the preferences. if there is no information stored, use the default value (defaultPosition).
playerTransform.position.x = PlayerPrefs.GetFloat("Player" + playerNumber +"xPosition", defaultPosition.x);
playerTransform.position.y = PlayerPrefs.GetFloat("Player" + playerNumber +"yPosition", defaultPosition.y);
playerTransform.position.z = PlayerPrefs.GetFloat("Player" + playerNumber +"zPosition", defaultPosition.z);
I have never even got near the networking type code so I don’t know anything about that subject but the idea I get is that it is fairly good and you could use it for your project.
You can easily get the real-time coordinates of the users and user either the preferences functionality or .Net to just write the coordinats to a file. .Net is pretty easy to use for this.
I don’t know about storing the coordinates in a static RAM location on a server. I think this would take some definitely programming know-how at the the lower level. This is getting really close to the hardware to do this. Why would you want it in a static location in RAM? You could accomplish something similar probably by using a database that stores everything in RAM. I can’t think of any names off the top of my head but there are some.
As far as ease. Writing to a file should be pretty easy. There are plenty of examples available on MSDN and via Google. Writing to a static location in RAM, good luck. I would look to see if another option would work for you. If you had Unity Pro you could do a plug-in and maybe pass the data real time, which would be much easier, at leat for me if I were doing it 