Hey everyone! It has been a little while since my last post, but finally there is a new build for you. I will explain some in this post what I spent all that time doing. Or, if you don't care, you can just check out the build here...
So what was I doing you ask!? I was trying to make sure that the game will run at a whopping 60 fps on any computer. It turns out that by using the normal Unity sprite renderer for every tile on the screen was a bad idea. It was making a call to the graphics card for every tile. This resulted in 100's of calls to the graphics card every frame of the game! I didn't notice this for quite a while because a modern gaming PC can handle this just fine, but when I tried to load the game on my phone it ran at 1 fps or worse.
Something that you might be surprised to hear is that making games in general isn't that hard. The tools are so good that I am confident that most people who wanted to could figure out how to make a game. However, what makes great game developers great is their ability to make the game perform well even on old machines. This requires you to employ lots of design patterns and techniques that professional software developers use. You need to understand concepts such as memory utilization, garbage collection, algorithm complexity and much more.
When you want to do mobile development, this whole performance issue becomes critical. To give an example, on windows phone if you want to run on any device (not just the high end ones) then you can only use 90MB of memory for your game. This is like having to write your game to run on a computer over 10 years old, and as a result, brings a whole new set of challenges to bear. That being said, even after spending some weeks on perf optimizations, this game is still not running smoothly on my phone. Hopefully I am able to figure out how to harness Unity in a way that will work. Nonetheless, for now, I am putting the perf optimizations aside to focus on adding some more content because that is more fun.
In the next build (v0.5) you can expect for the environment to change dramatically. We will be trying out a more pirate based theme which will take place on ships and whatnot. So, look forward to that!
Some exciting news this week is that I have added an artist to the team. His name is Kurt and I worked with him before on "Legends of Descent". I am super excited to be working with him again and to see what kind of a sweet style we can come up with.
Over the last week, we have been discussing where our game should be set and what the overarching plot should be. So far, I have just been developing the game as a typical dungeon crawler, which really isn't fresh at all. However, Kurt has come up with a bunch of interesting ideas which I will share out with you guys. Also, my father in law had some interesting ideas as well.
Here are Kurt's different ideas...
The game could take place on a fantastical ship. As the ship travels the game will progress and the mood will change based on the surrounding atmosphere. Perhaps at the end of the game it could crash on an island.
You are defending an island against an invading army. Each play through you will explore different portions of the island.
You are in an ancient military city that comes under a zombie invasion. You have to fight your way out of the city to survive.
You are in a forest for that breaks out into fire while you are defending it. By the end of the battle you are defending a pile of embers and ash.
You are on a giant and the different areas are represented by areas of his body such as a forest in his hair or a plain on his skin. Perhaps it could even be a rock giant which has grassy areas and whatnot no him.
You are in a suspension city which is connected with bridges and has rivers below. Creatures spawn from the canyons below and crawl up into the city.
Here are ideas from my father in law...
The game takes place in the world of bugs (amongst the grass and the weeds). You play as one kind of bug that must survive and fight off other bugs and threats.
The game takes place in a house and the world is made up of toys.
The game is parody on the current vampire craze and reuses characters from them but in a humorous way.
So, as you can see we have a wealth of different ideas at this point. This is the phase of game development that I have heard referred to as the "unreasonable optimism" phase in which you dream up all kinds of crazy things that would be awesome. However, the next step is to reel it in and see what is really possible and what is really fun. So, I think that we will pick a couple of the best ideas and do a bit of prototyping to see what works best.
Sound off in the comments about what setting and plot you think would be awesome for an action rogue-like to take place in. Hopefully you will all get to see some prototypes over the next few weeks.
Today I wanted to talk a little about one of the great pillars of RPG games, which is character progression. This is basically the way in which the game allows you to shape and change your character to be what you want over time. In a typical fantasy RPG, it usually takes the form of level ups which increase your power and unlock new abilities. However, this concept has become so popular that it has invaded the majority of modern games. Even sports games now allow up to level up the players on your team and upgrade their statistics to make them better players.
Incredibly overloaded WoW UI
However, I find myself questioning if it is possible to have too much of a good thing. Many modern games focus on having DEEP ability trees for players so as to increase the amount of options that the player has. However, this results in needing to spend a lot of time studying the differences between different paths of this tree to understand what you want to do. This can be a somewhat of a long and arduous process to understand, and often times the differences are subtle enough that you might not even care what they are. Don't get me wrong, I love traditional RPG progressions just as much as everyone else, but I am wondering if it is time for a change of pace.
There are a couple things that these progression trees bring to a game that I think are really fun and expand the value of the game. They are the following...
They give you a sense of accomplishment as you play the game.
They force you to make decisions which have consequence on how you play.
They improve replay-ability since you can make different choices the next time you play.
I state several of my design goals with this game in this post. They included that it will include perma-death as well as that a full play through should be around 2 hours of time. As a result, the idea of a deep level up and skill tree doesn't really make sense for this game. Instead, it makes more sense to have a very large breadth of things the player can do so that each time they play the game it feels very different. So, this is going to be my goal with regards to progression of characters.
Diablo 2 ability tree and stats
Furthermore, with this new game, I am thinking about taking a much different path in which the character progression is not strongly tied to the character themselves. I am considering not having any experience points or level ups at all. Instead, the progression will be focused on the items that the player collects which will dramatically change how the game is played. The best items in the game will be hard to get, and you will only be able to get 1 or 2 of them in a single play through. So, you will have to chose which ones you want to go for at the start and work your way to it. I am still deciding exactly what that will look like. Perhaps I will add some sort of a crafting system that will allow you to progress towards the best items in the game by collecting their components. I will probably implement a few different options and see which one works best.
Let me know in the comments what are your favorite character progression implementations in games and what you like about them. Maybe there is something I can borrow!
Before I spill my thoughts about game development all over you, I should let you know that the first build of the game is online for people to try out. This is mostly just a technical test to see what the engine can do. So, enjoy...
Now that we have that out of the way, today I wanted to talk about something that is incredibly important for INDIE games to think about... style. As an indie dev, you are working on an extremely constrained budget compared to modern AAA games. For instance, I can usually afford to front a few thousand dollars for everything I need to make a game that I can't do myself. This is nothing compared to the millions of dollars spent making modern AAA games. So, how is it possible to still compete in this situation? The answer is to chose an interesting style for you game which makes it appealing and beautiful but much cheaper to create than modern super realistic 3d graphics.
Coming up with a game style can take a great deal of creativity. There are many examples of how this has been done extremely well over the past years. A couple that come to mind are "Limbo" and "Braid" which both did an amazing job of creating a compelling world on indie budgets (though their budgets were still reasonably larger than mine).
After making "Legends of Descent" I learned a few lessons about the important of the style that you pick for your game. Legends used environment tiles which I would then arrange in a way to produce a dungeon. The first set of tiles that I used for development I borrowed from a game called "Tibia" and then later had an artist make original ones for me. I then took free character sprites from the web to use for my character and the enemies. This kind of worked out ok, but to be honest, the styles of the two clashed quite a bit. Also I ran into issues because the character sprites that I used were so large that they used a lot of memory. Furthermore, the character sprites were pretty expensive to get done by an artist, which limited how many enemy types I could put in the game. In the end, style is one of the things that I regret most about Legends.
Tiles being used to create a dungeon level in "Legends of Descent"
So, what are the important things that you should consider when deciding on your games style. Here are a few that I can think of...
Will the style of all of the elements of your game flow together or feel disjointed?
Is the style original or creative making it pleasing to view?
How expensive will each asset cost to be made?
How reusable are the assets? Can you easily tweak them to make many variations?
Do the assets need to be created in several different angles (if 2d)? How many?
With those in mind, I have picked a much different style for my current game. First off, I will have it be top down instead of orthographic (from an angle). This allows me to rotate the sprites around 360 degrees instead of having to have many sprites drawn for each angel. Secondly, instead of using many drawn frames for the characters, I am instead going to break them up into pieces which I will animate by moving. This is similar to the game "Rayman" and will allow me to create lots of interesting animations with minimal art assets. Lastly, I am going to go for a more cartoony style that is probably inline with the SNES generation of games. I think that this is going to allow me to create a really large amount of content without being constrained severely by my small budget.
I found an awesome blog post about creating top down art here. You will notice that I have used his sprites with some slight modifications for version 0.1 of my game.
In the first build which is linked at the top of this post you can go try out the game and get an idea for how it will look. All of these graphics are either made by me or borrowed from free art sites. So, they give you an idea of how it will feel, but none of them are final. Once I am sure that this is the way I want to go I will bring on an artist to start doing the real ones. Let me know what you think in the comments!
Before you can start making a game there is something that you must have first... an idea. In general, it's pretty easy to come up with a game idea. However, it is much harder to come up with a fun game idea. Furthermore, it is nearly impossible to come up with an "original" game idea. Pretty much all of the games that I have ever made are derivations on games that I have played on the past. In general, I play a game that I really like, and then I think about how I would change it, and then I go do that. As a result, I have a lot of respect for indie dev's who can actually come up with things that have never been done before.
So, in light of that, what kind of a game should I make now? Well, when I was teaching myself Unity last month I prototyped a game that my wife had suggested. It was a puzzle-platformer that had a very unique twist to it that I have never seen or heard of before. You can tell it came from my wife because it actually was original! I got all the way to a playable prototype which I really enjoyed making, but then came the moment of truth. I needed to actually design a puzzle that was fun to play. It turns out that I am completely terrible at puzzle creation. So, I gave up on that and decided to move towards something more familiar.
Recently, I have been having a lot of fun playing Roguelike games. For those who don't know, Roguelikes generally are RPG games which have a focus on procedural generation and perma-death. Some recent examples of games like this are "Dungeons of Dredmor" and "FTL" which are amazing games. I really like the perma-death idea for a couple of reasons
It keeps play session shorter since it is no fun playing a game for more than a few hours if your entire progress will suddenly be lost.
It adds a real intensity to the game since the consequence of death is so much higher
It creates a great stage for re-playable content
Dungeons of Dredmor
My last game "Legends of Descent" was an action RPG with a lot of procedurally generated content, so it is not too far off from a Roguelike. However, the only consequence of death was a small gold cost. I wouldn't want to delete anyone's character because some people had actually logged 100's of hours into their characters.
So, what do I want to do differently with this new game now? Well, here are the main design points that I am currently thinking will guide me...
Perma-death for all characters
One play through from start to finish should take less than 2 hours
The theme will be fantasy of some sort, likely an dungeon crawler still
If players level-up, it will be pretty simple. No complex skill trees
Most of the progression of the game will be through collecting items which will drastically change how you play based on which ones you equip.
The game will be real time action, not turn based
There will be a strong emphasis on replay-ability. Likely there will be unlockable content and some randomization to support this.
FTL
I know that leaves a huge portion of the game still completely unknown. I agree, and I plan to flesh those details out as I go. I will try a bunch of things out and keep the fun and toss the rest. If anyone decides to read this blog, then they can contribute to shaping the end product as well. Hopefully at the end I will end up with something worth the time!
Welcome to my new blog "AM Indie Dev". I named the blog this because ever since my daughter was born 3 years ago I have found that most of my "free time" exists in the wee hours of the morning when no human is normally awake. After coming to the conclusion that I was not going to be sleeping during these hours as long as I had small children, I decided that I would make some use out of them by learning to make indie games. Thus, my early morning indie game dev adventures began.
So far I have published 6 games. 5 of them on the Windows Phone 7 platform and 1 of them on the Xbox Live Indie Games platform. My most popular one is a top down action RPG called "Legends of Descent" which is very similar to the original Diablo. I spent about a year creating it and adding content to it, and it was an absolute blast. However, it was a big project and left me feeling a little burned out at the end. On top of that, Microsoft stopped supporting the XNA framework which I was using, so my entire engine no longer worked. As a result of this, I haven't created a new game for over a year now. Well... the time has come to start it up again. I am finally ready to get serious about a new project.
That's where you come in. I have decided to do regular blog posts as I create this new game and allow people to enjoy the process along with me. I have spent the last month learning how to use the Unity engine, and I have decided that I am ready to start a new game using it. Since it has a web player, I am hoping to regularly post updated builds of the game online that people can try out and give feedback on. Hopefully it will also be fun for people to see it come together over the course of many months.
So, here are some of the things you can expect from this blog over the next few months...
Getting to play a game from its infancy until it actually becomes fun
Getting to give feedback on the game and see it actually change
Hear my musings about indie game development in general
Learn something about how games are made as I share my progress
I hope you are as excited to go on this adventure as I am. My plan for the next couple of weeks is to do some posts about different game ideas that are going through my head and then eventually decide on one to pursue. I will also try and get a basic tech demo of a game up and running online so people can begin playing along. Let's make a game!