Thursday, February 9, 2012

The Mac

I bought a Mac-mini last Thursday. It has been sitting unconnected on my desk ever since.
This is the way I work. I do not like messing about with unfamiliar things, and I don't like messing about with hardware. If my PC taught me anything, is that new hardware causes pain. You insert a memory card, the screen stops working, the network card shuts down, and the entire computer laughs a hearty laugh.
Anyway, enough is enough, and today I braced for impact, connected my Mac-mini, and flipped the power switch on.
At first I was very upset. The thing wasn't working at all. The screen strangely displayed things, but no noise was emitted from the computer. I am used to the jet engine noise of my PC, which in writing translates to BROOOM BRM BRM BROOOOOOM CLICK CLICK CLICKEDLY CLACK. The Mac stood silently, mysteriously interacting with my screen and mouse. Well there is a simple explanation for this phenomena - the thing is obviously haunted.
So I started interacting with this eerie ghost, and the second terrifying thing occurred. it just worked.  No drivers needed, no 7 restarts, no spitting and hissing about unrecognized devices.
Quickly, I turned on my PC, which noisily started whirring, and together we stared at the spooky box on the table.
BRRRRM said my PC BRRM BRRRM CLICK CLICK.
Which, I think, was his way of saying that we should watch this thing, as it is likely to murder us in our sleep.

Tuesday, January 31, 2012

Infrastructure - Done!

I've started working on my tower defense game a month ago. Yesterday, I've finished creating the infrastructure. That's one month of work (minus my week of time waste in the beginning with my external engine, and a small family illness and some days... well, OK. All in all let's say two weeks).
What have I learned so far? Well, this is the first time I am working with Unity, and aside of learning how to use Unity, here is what I know now:

1. C# scripts are probably better to use in Unity than Javascripts. Or maybe not, but this is the way I feel.

2. Unity supports two mechanisms for GUI: First - the GuiTexture and GuiText objects, with which you can build your GUI by creating and dragging objects. Second - the GUILayout and GUI classes, in which you create your GUI with code. After a lot of hair pulling and frustration, I've reached the conclusion that the second method is much much better. It is more accurate, more trustworthy, and basically makes more sense.

3. I should think well and hard before I embark on creating an external engine. The questions "why?" and "why not?" should be foremost in my thoughts.

4. I have amazing graphic skills. I know how to download images from Google, and re-size them using uh... paint. Yup, the paint that comes with Windows. When I try to create them myself they look cute. Like the paintings my 4 year old son brings home from kindergarten.

Now all I have to do is create the actual game play. That means about 15 game levels, about 10-20 different enemies, at least 4 upgradable towers, some achievements, some skills, some special abilities. In short - back to the drawing board!


 

Friday, January 20, 2012

The Plague

Development of my game came to a screeching halt this week, as the plague hit our home.
My son brought it home, naturally. He always does. His throat became something reminiscent of the zombies in "Planet Terror". He started shivering. Worst of all, he couldn't go to kindergarten. I bought him a great babysitter for 0.99$, which enabled me to work for several hours more. After that I had a bored 4-year old climbing over my head, trying to "help" me. My entire project was almost deleted.
After that, I got infected. My throat felt as if I swallowed a live bee. Spells of dizziness caused me to sit on the floor frequently. Finally, I spent most of the day in bed, shivering, imagining how nice it would be if the bed was made of fire.

Feeling better now. Back to work next week.

Thursday, January 12, 2012

Unity and Me

After my bad breakup with my external engine, I was quite heartbroken, and found a good rebound - Unity.
We started off in the right foot, I've managed to create the basic project setting quite easily, and once I realized that I should work with the C# scripts, it became even better.
We had some good times, Unity and I. The time that I managed to make a tank follow a series of way-points on the screen. The easily created algorithm for the enemies to avoid crashing into each other. It all seemed to be almost too good. And then today... our first fight.
It all started with my towers. My towers are made out of two objects - the base (which is static) and the head, which revolves to follow the enemy. And Unity just wouldn't let them align:


I said some things that I can't take back. Unity was clearly upset and decided to crash. I tried to find a solution to this problem, but couldn't find anyone in the WHOLE internet with my problem. Not even one. I contemplated leaving game developing and returning to the drudgery of... well, of programming things that aren't games.
Finally I posted a question. Within 45 minutes I had my answer. I should use an orthographic camera. Of course!
Or-tho-gra-phic. Sounds kinky. But it works.
Now Unity and me are in a more stable phase of our relationship. We've finished with the mad passion of the beginning, and we are more comfortable with each other. I hope it lasts.

Tuesday, January 10, 2012

It Takes a Great man...

So... To put it shortly, one week wasted.
Naturally, this being a blog, I can put it as long as I want it to be, so here goes (the next paragraph is an elaborate whiny explanation of what I did wrong. It is completely plausible that readers might want to skip ahead):

I've started working on my Tower defense game, with the wonderful plan to do it twice: once in Unity for Android and iPhone, and once in Flash for... Flash. However, Unity released a beta version which (drum roll) can compile SWF files as well! So my plan changed and I now intend to make the game only in Unity.
However, in the before before time (long long ago), when I planned for two versions, I intended to create an external engine in which I will create the levels for the game. This seemed like a good idea at the time. 
Last week, that's what I created. It's a nice engine. You can plot enemy routes, and create spawn points and target points and tower limitations. I created an infrastructure to insert tower types and enemy types. I was very motivated. And then I realized it is completely useless.
It's useless, because I can do the same in Unity with much less work, and since there is no other version anymore, there is no point to it. In addition, I had to jump through hoops to connect my game to the engine's output. Eventually, I started from scratch.


Last week's work went into limbo, where socks go when they don't come out of the washing machine.

And now, for something completely different. Every now and then I stumble across a game that touches me in a special way. It's a game done just right, couldn't be better. This happened to me yesterday. It's called All That Matters, hosted in Kongregate. The game is beautifully made, the music is simply sublime, it's exactly the right length, and in the right difficulty. It is the tale of a man named Walter, and his family, but the game tells itself much better than I could ever try. It is completely free.
Why are you still reading this? Go play. Now.