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!
Showing posts with label Tower defense. Show all posts
Showing posts with label Tower defense. Show all posts
Tuesday, January 31, 2012
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.
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.
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.
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.
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.
"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.
Monday, December 12, 2011
A shiny new idea, I will call it "Tower Defense"
I disappeared for a time, working on Misfortune's marketing. I published it in Kongregate, added support for Twitter posts, played some more with the content. For now I am happy to let the game stand on its' own. I've decided to start working on a new project.
The hardest thing about Misfortune was the immense size of it. Misfortune is HUGE (especially for 3 guys who haven't made any game before). It has a server and a client, a pretty hefty SQL database containing items, monsters, events, dungeons, players and whatnot. I've been working on it for two and a half years, my partners joined me for the last two.
I want a smaller project. I want to start working on something and end working on it in no more than 3 months.
I have an idea. It's a secret, but I will tell you about it if you promise not to tell anyone. I don't want someone to do this before me. I call this game a "Monsters running around in a maze while the player positions defense towers to kill the said monsters" game. Acronym: MRAIAMWTPPDTTKTSMG. Catchy.
I'll just call it a "Tower Defense" game.
I intend to develop it for flash, android and iPhone. I will use the unity engine for the latter two, and develop the first separately. We will see how it goes.
I hope to describe in this blog the entire process of the development. Who knows, I might actually maintain this promise...
Good luck to me.
Subscribe to:
Posts (Atom)
