Tuesday, August 31, 2010

Robot Locomotion - Unity3D

This is from... an upcoming project.

Sunday, August 29, 2010

Game Creation Tools

At the last few GameJams, I've seen an increase in the use of RAD game tools, some of them even being developed by the participants themselves.

I thought I might collect a list of those tools here. The main criteria for being in this list, is that they don't require programming in a traditional computer language. Data Flow / Diagram languages are ok...

Shoot-em-up Construction Kit
Scirra Construct
Game Maker
Koonsolo RPG Editor
Adventure Maker
Reality Factory
Scratch
GameSalad
DS Game Maker
Game Builder Studio
Sploder
FIFE - wow, don't know how I missed this one for the last 5 years! Appears to be scripted using Python too!

Learning the Ropes.

Back in 1994 I applied for a job at Epic MegaGames. I sent them a bunch of my digital art and a resume.

I was 15, and very naive. :-)

It seems the guy who read my application took some pity on me. He sent me back some constructive criticism and gave me a few pointers on how to produce things they could use. He also included a 3.5 inch floppy disk, with the "PCGPE" software on it. This was the PC Game Programmers Encyclopedia. I'm very grateful he did this. He saved me from a lifetime of producing second rate game art!

It a shame that kids are no longer taught this kind of stuff. I doubt many of the new generation of graduates can actually explain how a computer works. I owe a lot to Denthor of ASPHYXIA, his VGA tutorials really got the ball rolling. I had to convert all his code to C from Pascal, as I did not have a Pascal compiler. In the end I had quite a collection of my own demo/intro programs. Horizontal Parallax Starfields, Fire Effects, Sinus Plasma, Scrollers, Lightning, Fractals... I guess a lot of this knowledge is now used in shader programming, and isn't entirely obsolete.

None of this would have happened if someone at Epic hadn't sent me that 3.5 inch floppy disk. I think it was Tim Sweeney. Could it be? I'm going to hunt through my old boxes of junk and see if I can find the letter...

Saturday, August 28, 2010

Modem Wars - 1988

I remember playing this on my old XT machine, with a Hercules Graphics Card in 4 shades of amber. I had to run a program called "CGA.COM" which let my Hercules graphics card emulate a CGA adapter.

Modem Wars was interesting as a tactical game. I never had a modem on my XT, so I could only play against the computer AI.



IIRC the game was turn based, and you could move each unit on your team before the AI took control. The aim of the game was to take out the opposing side's command unit, so it was a bit like chess, with some added moves. For instance, you could ask your units to 'bunker down', which added a defensive bonus at the expense of movement.



The command unit had a special move. It could send an unmanned, player controlled aircraft around the battlefield. You used this to find out the location of the opposing command unit. I think you could also use it to crash into other ground units, but this was usually a waste unless you were targeting the command unit.

Wednesday, August 25, 2010

Windows and Me.

When someone sends me an exe file, or an ActiveX DLL, and asks me to help out with something software related...

I don't. I haven't run Windows for seven years, and hope I never have to again.

It's amusing when you detect incredulity on their end... they can't believe that someone just doesn't have Windows. Some people even get annoyed. I can tell.

It's not that I'm trying to be elitist, difficult or contrary, I just don't like Windows. I hate it. Windows abuses it's users. I get all tense and angry every time I have to use it (which is _only_ when helping out close friends). If I really had to solve a Windows problem, I'd simply pay someone else to do it.

Some people imagine that 'commercial reality' should dictate what I use, what services I provide. Well, your'e welcome to your own reality, I'll stay in mine thank you! That is why I use tools like Python, and Unity3D. Software isn't worth writing (or using!) unless it is cross platform. Of course, Unity3D is not _entirely_ cross platform, but that will change one day.

Thursday, August 19, 2010

HTC Legend - Giving it another go...

Due to my iPhone 3G + iOS4 running like treacle down a hill, I am giving the HTC legend another go. I'm optimistic, as a software update is available which may help improve on my last experience.

Apple have really done their users a disservice with iOS4 on older phones. Given that the older models cannot use any of the new features (apart from the useless and unattractive UI changes) there is no reason the older phone should have such an awful performance degradation.

It is almost as if this line of code is sitting inside the iOS4 source code...

if deviceVersion != "iPhone4":
GoReallySlowMode(True)
SuckLotsOfBattery()
WaitSomeSeconds(Random() * 10)
ThinkAboutDoingSomething()
PretendToDoSomething()
FinallyDoSomething(reallyJerkyMode=True)


In fact... I'm willing to bet it is. Apple is the new Microsoft, using shady business methods in an attempt to force users to upgrade.

Megh.

/rant

Tuesday, August 17, 2010

A Strange Story.

A long time ago in a place far, far away...

I used to clean windows, in a small regional city called Bunbury. Not the operating system type, but the kind you look through, made of glass. :-) The money was good, the work was fun, and it helped me through the last year of my Comp. Sci. degree. Well, I never actually finished that degree. Ah well. Even so, I always hoped one day to build computer games instead of washing windows!

One day, while cleaning windows and contemplating what I wanted to do in life (game development seemed like a distant dream), I struck up a conversation with an older gent. He told me about his son, who spent day and night in front of his computer, making 3D graphics with a computer language, and apparently he was really good at it! His son was now working in Scotland, and had worked on a game called "GTA". Of course, at that time I had played the demo of GTA and knew exactly what he was talking about.

Why do I remember this quaint little story, more than a decade later?

I think that this was a turning point, where I realised that it was possible for someone in a remote town in a remote country to get an awesome job, building computer games. I think this event is probably a major reason that I am building games today, instead of accounting systems, or worse... web pages!

Why am I telling you this story?

Today I received an email from an Australian who is working in the UK, and is keen to move home. He works with computer games, and is investigating the local scene to see what it has to offer. He also happens to have worked with Take Two... on the GTA graphics engine... 14 years ago, and is from Bunbury. Yep. He is that guy.

Amazing. What are the odds?

Monday, August 16, 2010

Game Dev Wages in Perth.

I noticed a local developer has started hiring. It appears they're working on a PS3 game...

They're advertising a bunch of jobs, including creative types, and technical types. The advertised rate for the creative jobs is "40k". That seemed pretty low to me, so I did some research.

They stated in their requirements: "Minimum of 3-year degree with an emphasis in character animation or equivalent work experience." What is the award rate for a person with that kind of education?

Fair Work Australia tells me that it is $41579.20, assuming a 40 hour work week. If we assume the 40k figure includes Super, that means they're getting paid almost $5000 below the award rate. Ouch.

The technical jobs have a "45k" salary attached, which, including Super, is still just below the Award rate. Ouch Again.

App Store will Collapse in .AU.

Australian residents could lose access to the iTunes App Store.

If the legislation described in the linked article goes ahead, it is more likely that Apple will simply drop and block .au customers from it's App Store, rather than ask developers to pay the quoted $470 - $2040 dollars to get a game classified in Australia. At a minimum, It is likely that all free games would disappear.

Xbox Live Indie games already suffer because of Australian censorship laws. Local developer Black Lab Games cannot sell their StarHammer Tactics title on the Xbox in Australia because of this same legislation.

Safe Multithreading in Unity3D.

Working with multiple threads is often a necessary evil.

This is how I do it safely inside a Unity3D component. There are only certain times when it is safe to read or change variables in other components. For example, you will encounter problems if you try and modify or query Physics components while a FixedUpdate is occuring! This component uses a Mutex to let the thread know when it is safe to use other game objects.

using System;
using System.Threading;
using UnityEngine;


public class ThreadedComponent : MonoBehaviour
{
Thread thread;
Mutex mainLoop;

void Awake() {
mainLoop = new Mutex(true);
thread = new Thread(ThreadWorker);
}

void Start() {
thread.Start();
}

void OnApplicationQuit() {
thread.Abort();
}

void ThreadWorker() {
//Catch and report any exceptions here,
//so that Unity doesn't crash!
try {
_ThreadWorker();
} catch(Exception e) {
if(!(e is ThreadAbortException))
Debug.LogError("Unexpected Death: " + e.ToString());
}
}

void Update() {
//Gives the thread a chance to work with gameobjects.
mainLoop.ReleaseMutex();
mainLoop.WaitOne();
}

void _ThreadWorker() {
while(true) {
//Play nice with other threads...
Thread.Sleep(0);

//Do random work here...

//Wait till it is safe to work with GameObjects.
mainLoop.WaitOne();
//Work with gameobject in here...
//But don't take too long!
mainLoop.ReleaseMutex();
//Signal Unity that we're done with GameObjects.
}
}
}

Sunday, August 15, 2010

Javascript in .NET

I've just found a project which provides the V8 Javascript Runtime, embedded in .NET!

Think of the possibilities when mixing this with the OpenTK project. Fast, cross platform graphics, audio and input with game scripting in Javascript.. Hmmm.

Monday, August 09, 2010

Game Pirates: You are Bottom Feeding Algae Eaters.

Machinarium suffers a 95% pirate rate.

As a game developer, it is hard not to be outraged by these figures. Pirating is just not cool. I would write more, but I know it won't make a difference, it falls on deaf, dead and scarred ears. It is of no use trying to preach ethical and moral behaviour to self centred, me-first-gimme-gimme bottom feeders.

/rant.

Monday, August 02, 2010

Unity3D 3.0 - First impressions.

I like the new, darker interface. Looks great, and is easy on my eyes.

First difference I noticed... the compiler is stricter.

Second thing I noticed... the physics engine behaves differently. My in-development-car-game behaves completely differently in Unity 3.0.

Popular Posts