[This is a featured article, scroll down for more recent entries]
Welcome back, I haven't written a tutorial in a while so I thought I would make this one worth having waited for.
The purpose of this guide is to help you, the developer, to create a networked virtual environment without having to do any coding whatsoever. It goes without saying that the fastest methods of content creation are usually the best when working as an independent professional (or even as a member of a small team). With that having been said, I'm aware that this information is highly sought after and that I could probably benefit more by selling it as an eBook. As things are however, I will be providing this information free of charge (
) with the only cost being for the project file ($2), should any of you want it. Moving on, we need to discuss the following...
An authoritative server, understood in the context of gaming, is a process which simulates the virtual environment and updates all clients/users with objective data. As an example, if we imagine a group of physics objects colliding with one another, an authoritative server would simulate the collisions by itself and update the client(s) as changes occur whereas a non-authoritative server would simply ignore the complexities involved with the simulation and not bother updating the clients (which then leads to inconsistencies regarding what each user sees). An authoritative server is significantly more complex to create/set up than an otherwise non-authoritative version, it is also more demanding of system resources. This is an incredibly brief summary of a subject which is infinitely more complex than I have hinted at here but, for now, that's all you need to be aware of. We're going to look at a non-authoritative solution, just the very basics. Unity does have its own built-in solution for creating multi-user environments. It is, however, a bit more complex to set up than the method I am about to show you. Some alternatives to Unity's integrated solution are SmartFox, NetDog and Photon. Today, we'll be looking at SmartFox. A bit of background, to quote from the SmartFox website:
SmartFoxServer was originally designed to specifically target Flash Player based applications and games. Thanks to its popularity it has quickly gained interest among other technologies such as Java, Director, .Net/Unity 3D etc...
So, moving on to the first step on the next page...
I actually made this one a while ago now. We're supposed to be mass-producing 3D artefacts of this sort every week for the masters I'm currently doing. All the textures are from cgtextures.com. I haven't had time to edit them extensively (as you can see from the tiling at either end of the roof).
Interestingly, the lighting seemed to look better without the roof, and so that's how I decided to bake it. You might notice that there's no discernible light source from which to cast the shadows.
It took me about a day to do. I'm quite pleased with my current workflow and hope to upload more content in the future, along with tutorials.
If anyone's interested, I lightmapped the scene with lightup and have written a tutorial on the process. You can read it here.
If you have the Unity 3D plugin installed, you can walk around the scene here.
Just a quick apology to all those who were attempting to access the site yesterday. I was having server problems, not anymore.
It just keeps getting better and better for Unity developers. Those of you who read Nicholas' blog at the main website will be aware that they're 'scrambling like mad' to add support for the iPad by its launch date. Considering the similarities it shares with the iPhone, the transition shouldn't be that tough. It seems that Apple are, understandably, inundated with requests from companies to allow them early access to the device and that this is the only real inhibition facing the Unity devs.
Regarding the new GPU, there's not much sensible information out there currently other than that the chip itself seems to be a multi-purpose solution to the systems architecture. The main processor is an ARM Cortex-A9 and the GPU is an ARM Mali GPU. The CPU and GPU are all on the same chip, running at 1GHz in comparison to the iPhone 3GS which runs at 0.6GHz. Finding information on the GPU is tough, though the manufacturer's website states it supports 4x and 16x full scene anti-aliasing (should you need it).
Of importance to note here is that this is another opportunity to make some money. Creating apps for the iPhone, which sell, has become significantly more difficult due to how much content there already is in the store. While the iPad will supposedly support all the current iPhone apps, the new SDK ensures that there'll be loads of new stuff. The faster GPU also means that we will have fewer constraints to deal with when optimizing content for the device and more opportunities to impress users with visuals. The future is looking very promising with new markets and a growing industry, exciting times indeed.
Yet another project I'm working on, this time a health and safety training environment for the University of Hertfordshire. The purpose of this particular app is to allow the staff to assess the ability of potential employees to spot dangerous situations in the office environment, things like low chairs, wires trailing across the floor, screen glare etc...
I'm going to try and keep the polycount low on this one as it's going to be delivered via a web browser and you can never tell how fast another user's machine is. To that end, I've allowed the user to switch between quality settings and might make some super low poly models for the ultra low setting.
Again, I'm not using real-time lighting, as beautiful as the stuff is. This is mainly in consideration of performance issues. Having said that, there's a lot you can do with baking your own lightmaps, as you can see in the shots.
Just a quick reminder to readers. Although Unity 3D is marketed as being a game engine, it is just a 3D engine. You can do more with it, other than make games.
AVATAR: Added Value of teAching in a virTuAl woRld
I recently came back from Rome where we (our group from the University of Hertfordshire) attended the first in a series of meetings related to the European AVATAR project. It aims to establish which conditions in a 3D virtual world are most conducive to the practice(s) of learning and teaching. To that end, one of the requirements is to establish which virtual world is best suited to the task. Readers of the blog will be aware of my work in Second Life and how, besides development, I have been undertaking research into how the medium is able to facilitate communication and learning.
One thing on a lot of peoples minds is how we define a virtual world (for the purposes of education). Evidently, a simple 3D Virtual Learning Environment will not suffice. The task is to find (or event construct) a 3D multi-user environment with an integrated set of building tools and a freely accessible library of 3D models. This sounds very much like an exact description of Second Life, the only problem being that there is reluctance in adopting the platform across the board.

For all its problems, Second Life has shown us what happens when you give people, with no background in 3D, a simple construction set and the means to work together. Some of the things people have built range from entire virtual settlements to railway networks spreading over significant areas of the landmass. There is no longer any doubt that this medium has removed the most stubborn barriers (lingual, social and taboo alike) and encourages cooperation between individuals. The only problem lies in its implementation.
People do not like the idea of Linden Lab (the creators of SL) being in charge of all the content contained inside the environment. It's too big a responsibility for them to handle and, to be frank, they charge too much money. SL has gone out of its way to recreate a lot of the problems which exist in the real world, namely a lack of space. This is virtual space which is distributed at a cost, it's almost a license to print money (were it not for server maintenance fees it would be).
One of the most important requirements of the virtual world we need to find/create is that it be open source. Again, Second Life's open-source equivelant, OpenSim, seems to be a likely candidate. Time will tell what the final decision will be, but rest assured there's going to be an extremely critical analysis and that SL no longer has a free ticket.
I leave you with a video of some of my previous work in SL.
Recent comments