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.

Wednesday, December 28, 2011

Such a Perfect Day

So... I spent my entire day trying to purchase an iPhone. And I failed.
I had a suspicion it would be that way. Contacting service providers, untangling their "attractive" (and completely incomprehensible) offers, struggling with the question of model, memory, second hand or new...
Ugh. This is why I had a Nokia up until now.
C'est la vie. My soon to be amazing tower defense game will hopefully be available in the app store, so I need an iPhone.
I finished with the Unity tutorials, and moved on to the research phase of the project. This means playing tower defense games, and plenty of them. I've toyed around with Defense Grid, Sol Survivor, several games in Kongregate, and got addicted to Kingdom Rush, Which is the best Tower Defense game I played since Plants vs. Zombies.
Research is fun. Next week: Design.

Sunday, December 18, 2011

A Bit of Dialogue With Gamers

A few days ago I've raised the rate of incoming mission credits to 1 per hour (instead of 1 per 6 hours, as was before). Ever since I did that more people have started playing the game and some chat has been generated on the Kongregate forum and comments.
I try and react to the complaints or praise that people post accordingly. Thus, a long thread complaining about the game's difficulty curve made me make the difficulty curve a little less steep.
Here are the main points raised, and my general thoughts regarding those points:

  1. Please remove the mission credits system - Naturally the requests (or at least some of them) are a bit less polite, but this is generally the sentiment. I haven't decided what to do with that yet.
    The mission credits system, contrary to what people think, is not intended to generate us more money by making people buy more. The system is mainly there to make people return to the game, thus enabling us to create a community of players who return periodically to see if anything was added or changed. This has not worked well as we thought. People generally get annoyed by it and it was a serious turn off for some. I can remove this but it will take some development time, and I need to think if it is for the best.
  2. The game seems to be over - this is a complaint regarding the fact that events are starting to repeat themselves. Here is the thing: Misfortune is supposed to be an ongoing adventure. Some open plot threads are left dangling and are supposed to be picked up later (as in some great games like "beyond good and evil" and "the longest journey"). However, the same as with the aforementioned games, this content has not been created yet, and will only be created if the game will be successful enough.
  3. We need better weapons/how do we get steam rifle and steam pistol - those separate questions converge to a single answer - the new weapons will be released soon. I am trying to think of a good way to do that.
  4. Bugs! BUGS!!!! - I am doing my best to fix them. There actually aren't a lot of bugs. The most serious one currently is that the game doesn't work in Ubuntu
Besides the fun I am having talking to people who like (or don't like) our game, I am 3/4 done on my Unity learning book. Once I am finished with that, we're off to game design!

Wednesday, December 14, 2011

Choosing the wrong tool for the job

First of all, I need to decide what tool to use when working on my Tower Defense game. It is a 2D game, so naturally I need something that fits 2D game development. Naturally, I've decided to work with Unity.
"Unity", my friend informed me "is intended for 3D games."
"No problem" said I "I will simply create flat sprites and position them one on top of the other like a stack of cards, and then position the camera in one spot so that it will look 2 dimensional."
"That's abuse of the platform. There are great engines for 2D development."
"I'm using Unity."
"You're an idiot."
Well, he actually didn't say that, he's a polite guy. But his tone hinted it, and that's fine with me. I know Unity is the wrong tool, but the thing is, I want to learn how to use Unity.
Scratch that. I don't want to learn anything. I want to know how to use unity. The learning process is really unnecessary.
I started looking for tutorials. After an hour of hair pulling, curses and prayers, I've stumbled upon this golden link.
10 Minutes later I've bought a nice kindle version of Unity Game Development Essentials. I'm in chapter three. I already have a lush island with palm trees and a volcano.



It's fun.