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
-
I've just seen and used a brilliant ssh option. The command: sudo ssh -D localport user@externalhost will set up a local SOCKS proxy l...
-
Working with multiple threads is often a necessary evil. This is how I do it safely inside a Unity3D component. There are only certain time...
-
Update: This is another planet shader, with more physical fidelity. Shader "Planet" { Properties { _MainTex ("Di...
-
When you start working with threads in your Unity3D project, you will discover that many things need to be done in the main loop. For exampl...
-
Space is awesome. Especially when it is generated using Perlin noise, and some cool shaders. You can try it out over here.
-
Possibly slightly more correct lighting. The rim light is now only applied in the direction of the sun, rather than being purely based on v...
-
So, you've created a car prefab using WheelCollider components, and now you can apply a motorTorque to make the whole thing move along. ...
-
It is not an official port, but a very good replica. This is one of my favorite games, and I don't have many. It's deep, difficult, ...
-
Summary: NodeJS wins. Test Program ab -n 10000 -c 5 http://localhost/ Gevent Code from gevent import wsgi class WebServer(object): ...
-
Thank to Adrian Boeing I was inspired this morning to hack together a ripple shader for Unity3D. Thanks for the math Adrian. You can see t...



