Ive been working on a small yet ambitious game over the last 3 months.
It's almost baked, so we're starting up the Hype Machine.
You can see a small preview here.
It follows my usual MO, with a Python backend and a Unity3D client. More coming soon! :-)
Friday, September 21, 2012
Wednesday, September 12, 2012
Spacecraft shading cont...
Today I discovered that Unity3D will let you apply multiple materials to a single mesh. So I used a bump mapped triplanar material, an image based lighting material and a triplanar emissive material on the one ship. I had to adjust the shaders so they would work together, Eg. the IBL shader only uses the emissive channel and blends on top of the previous material.
Monday, September 10, 2012
Spacecraft Shading
After revamping my Spacebox tool I implemented a little shader which uses the spacebox cubemap to apply image based lighting to a model. Realistic lighting in space adds a lot of immersion factor to a scene.
I really want to texture this ship procedurally. I've played with some tri-planar shaders, but am not super happy with the results. Who can tell me a good idea on how to approach this? :-)
I really want to texture this ship procedurally. I've played with some tri-planar shaders, but am not super happy with the results. Who can tell me a good idea on how to approach this? :-)
Tuesday, September 04, 2012
UniWeb, WWW and crossdomain.xml explained.
I get many confused emails from people trying to get UniWeb to work in the Unity WebPlayer. It works, but you have to set things up correctly, as described in the manual. I'll explain it again here, maybe it will reduce the influx of support emails!
Situation #1.
You want to use the builtin WWW class to fetch stuff from a HTTP server.
In this case, you MUST have a crossdomain.xml file that is hosted by that SAME HTTP server,
This will allow, and ONLY allow Unity's builtin WWW class to work. It has no effect on the usage of .NET sockets within Unity.
This particular setup will NEVER help you get .NET sockets (and by
extension UniWeb) working within Unity WebPlayer.
Situation #2.
You want to use UniWeb to fetch stuff from a HTTP server.
In this case, you MUST have a server process running on a port on the SAME host, which follows the behaviour specified in the manual.
This will allow .NET sockets (and therefore UniWeb) to work within a Unity WebPlayer. The Security.PrefetchSocketPolicy MUST be called before .NET sockets will successfully connect to a host on ANY port.
Particularly note this section from the manual:
Also note:
Situation #1.
You want to use the builtin WWW class to fetch stuff from a HTTP server.
In this case, you MUST have a crossdomain.xml file that is hosted by that SAME HTTP server,
This will allow, and ONLY allow Unity's builtin WWW class to work. It has no effect on the usage of .NET sockets within Unity.
This particular setup will NEVER help you get .NET sockets (and by
extension UniWeb) working within Unity WebPlayer.
Situation #2.
You want to use UniWeb to fetch stuff from a HTTP server.
In this case, you MUST have a server process running on a port on the SAME host, which follows the behaviour specified in the manual.
This will allow .NET sockets (and therefore UniWeb) to work within a Unity WebPlayer. The Security.PrefetchSocketPolicy MUST be called before .NET sockets will successfully connect to a host on ANY port.
Particularly note this section from the manual:
Specifically the server expects to receive a zero-terminated string
that contains. It only sends to the client the socket policy xml document when this string (and exactly this string) has been received. Further, it is required that the xml header and xml body are sent with a single socket write.
Also note:
Note: Whilst the crossdomain.xml and socket policy files are both xml
documents and are broadly similar, the way that these documents are served are very different. Crossdomain.xml (which applied to http requests) is fetched using http on port 80, where-as the socket policy is fetched from port 843 using a trivial server that implements the <policy-file-request/>. You cannot use an http server to issue the socket policy file, nor set up a server that simply sends the socket policy file in response to a socket connection on port 843. Note also that each server you connect to requires its own socket policy server.
Monday, September 03, 2012
JS Games
I'm clearly not under enough pressure so I've decided to have a go at the 13K Javascript Game Competition.
I spent some time looking at existing libraries, and it seems clear that very few were designed for tiny 13k games! Obviously I must therefore write my own engine. Chortle. It will be fashioned after the superb design of Unity3D.
Code is on github, and I'm happy to say my base framework weighs in at 612 bytes compressed. Next up, adding things that draw stuff.
I spent some time looking at existing libraries, and it seems clear that very few were designed for tiny 13k games! Obviously I must therefore write my own engine. Chortle. It will be fashioned after the superb design of Unity3D.
Code is on github, and I'm happy to say my base framework weighs in at 612 bytes compressed. Next up, adding things that draw stuff.
Labels:
Games,
Javascript,
Snippet
Subscribe to:
Posts (Atom)
Popular Posts
-
These are the robots I've been working on for the last 12 months. They each weigh about 11 tonnes and have a 17 meter reach. The control...
-
This hard-to-see screenshot is a Generic Node Graph Editing framework I'm building. I'm hoping it can be used for any kind of node...
-
So, you've created a car prefab using WheelCollider components, and now you can apply a motorTorque to make the whole thing move along. ...
-
MiddleMan: A Pub/Sub and Request/Response server in Go. This is my first Go project. It is a rewrite of an existing Python server, based o...
-
Why would I ask that question? Python 3 has been available for some time now, yet uptake is slow. There aren't a whole lot of packages i...
-
It is about 8 degrees C this morning. So cold, especially when last week we had high twenties. To help solve the problem, a friend suggeste...
-
After my last post, I decided to benchmark the scaling properties of Stackless, Kamaelia, Fibra using the same hackysack algorithm. Left axi...
-
I'm now using bzr instead of svn. I'm pushing my repositories to: http://exactlysimilar.org/bzr/ I'm also auto publishing docume...
-
Possibly slightly more correct lighting. The rim light is now only applied in the direction of the sun, rather than being purely based on vi...
-
I've just read a newspaper article (courtesy of Kranzky ) from WA Business News documenting the malfeasance, gross negligence and misc...