[This is a featured post, scroll down to access 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...
Just a quick project update. I'm continuing work on this piece now, hopefully it'll be ready for Halloween when I could make it a Facebook game. The idea is to have a multi-user environment wherein each player appears as a ghost. You'd be able to scare the NPCs as they walk through the environment by interacting with objects like furniture or spending 'energy' to manifest right in front of them.

More to come in the near future.
An interesting topic came to light on the forums recently. It seems that at the Google I/O event it was announced that C/C++ code might eventually be able to run natively inside their web browser using a new feature they have named 'Native Client'. The first thing(s) to come to mind are questions regarding security and how Google plan to address this in greater detail.
How does this fit into the scheme of things you ask?
We have various technologies vying for market penetration of their respective 3D plugins, of which Unity is just one. Google themselves are developing an open source standard for this medium and, until recently, seemed to have an advantage in that it would surely be supported natively by both their Chrome OS and internet browser at some point. The recent development, however, compromises their opportunity to monopolise this sector but, in the scheme of things, promises for a more inclusive browsing experience outside of their dedicated open source 3D content delivery system.
To quote Unity developer Jonas Echterhoff...
Yes. A very big step actually. In fact, the Lego Star Wars game Google is showcasing at the native client booth at the I/O conference right now has been tested on Linux (Ubuntu), and worked just fine!
It does, of course, require running a browser which runs native client (that is, Chrome, for the time being).
So there you have it, official word on the subject. This gives Unity yet another edge against competing open source standards which are likely to be implemented with Mozilla Firefox. As ever, the future is uncertain but the war is happening now and will dictate the development environments of the future.
I leave you with an official Google video on the subject.
I haven't updated my blog in a while but, now that I have a few moments to spare, I think I should. I recently had to hand-in a piece of work relating to the theme of time and space. To that end, I decided to do some terrain sculpting using Terragen and a few other tools I've collected over the years. I have a hard time leaving things alone and so I spent about 3-4 hours alone on trying to get the colours just right. I used samples from a variety of seasonal photos to get the desired look and feel.
Until Unity allows more than diffuse maps for the terrain shader, it will always be difficult to make good looking snow. Specular/bump maps would have allowed for glistening in the sun and made it appear less flat. I tried to combat this via the use of particle emitters for snow being blown downhill (Modern Warfare 2 uses the same technique), 'volumetric' light and fog. Summer uses an atmospheric engine and not a skybox, it's an altered version of a script I found on the Unity forums last year (more on this in a later post). The grass is factored into the real-time AO and, while it incurs a massive performance hit, looks great.
I might write a tutorial on this in the near future as it's something a lot of people have been asking me for.
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.
Recent comments