Sunday, October 26, 2014

Leaping forward

Now I'm really starting to understand Unity. After a handful of tutorials and fooling around with it I can proudly say that I have at least the basics of Unity down. Because of that, I was able to make great progress with Cube Blast! The problem I've shown you last week with the enemies merging into one has been solved now. The first thing I tried was to make every enemy check every other enemy in the level and perform calculations based on their distance from all the other enemies. As you might imagine, this was very ineficcient but it looked really cool. Check it out:
 The enemies work as some sort of repelling magnets where the repelling force is greater the closer they are to another object. I thought it looked amazing!
Unfortunately, this technique was very inefficient and would cause a huge drop in FPS the more enemies you had in the level. So I have now settled on a different technique. The enemies now only look at enemies intersecting their bounding box and repel from them. This made the algorithm much much lighter and still kept the enemies from forming a single block, though the effect looks much less impressive.
So my first goal this week was achieved: keeping the enemies from forming a single block. Next up was actually being able to hit the enemies. Thanks to Unity, this was farily easy to do. I could simply shoot a block and check if it intersected with any enemies. If it intersected, I could simply destroy the enemy and that's it. But that wasn't enough. It looked boring and stale and the blocks you shot would go on forever piercing all enemies in their path. So it was time to make it a bit more fancy, which meant one thing: particles. I have constructed some fancy particles which follow the bullet around and make an exploding effect on impact. Also, enemies being killed now splattered into particles to make it a bit more satisfying. The effect looks like this:
You might also notice that the bullets slow down when they've hit an enemy. With every impact they slow down and below a certain speed they explode. That way, you can pierce your bullets through a few enemies. Once I had that I programmed the enemies to have varying speeds so that not every enemy would walk as fast as all the others. Finally, I added a different kind of enemy which would come at you in a wave-like pattern. That was initially a bug, but hey you know what they say: "it's not a bug, it's a feature!" and a feature it was. To make the game ready to be played I divided the enemies into waves and added a bit of a menu.

I kept my promise to you, so here it is: the first playable version of Cube Blast!

So what's next? Well, there isn't much of a goal yet. So I would like to add some kind of money system which you can use to buy and upgrade spells you have. Since it is a bit of a dominant strategy to hug the corner and shoot in both directions you should be encouraged to walk around a bit. So this is what I came up with:
The idea is that in the level a 'book' will spawn in a random location. You have to kill enemies within a certain range of these books to increase your currency with which you can buy/upgrade spells and abilities. I'll start working on that next week and we'll see where we'll end up.

For questions, feedback or requests I can always be reached at:
indiestepsblog@gmail.com 





Sunday, October 19, 2014

Getting the hang of it!

I have followed several tutorials and have been struggling for a while now. But it seems I'm getting the hang of it! I begin to understand Unity more and more and the more I understand it, the more I see its potential. I now managed to spawn enemies into my room, plus I solved the wall-collision problems. The enemies I spawn now also follow my player around, the only problem is that the enemies are still able to walk inside each other. This results in a large cluster of enemies:
Other than that, things are going pretty good! I am currently working on an efficient way for the enemies to slightly repel from each other. I have already defined a function that can repel two objects from each other sort of like a magnet. Problem is, it doesn't quite work yet for many enemies at a time. Hopefully I can solve that problem soon and then start working on the actual shooting on the enemies! 
This is how far I got so far:
Hopefully next week I'll be able to provide you guys with the first version that has actual gameplay elements to it, namingly shooting the green blocks to bits! In any case, Unity is very fun to work with once you get to know its workings a bit.

For questions, feedback or requests I can always be reached at:
indiestepsblog@gmail.com

Sunday, October 12, 2014

Unity make me feel this way...

Well, it was a rough start with Unity. I've been quite occupied but I managed to spend some time on game development. I have to say, starting with an entirely new engine feels like I have to start all over again. All of a sudden I can't do the simplest tasks and I feel lost most of the time. But, I believe that once I get the hang of it Unity will allow me to make my games much quicker than XNA. Another thing about Unity is that it ports to pretty much any system whereas XNA could only port to windows. I managed to implement Visual Studio into Unity using UnityVS which is so much better than using MonoDevelop to do my coding. Once you have gotten used to Visual Studio, it's hard to go back to simpler compilers.
Ok, so let's see my progress so far. The few hours I could spend on the game were spent in frustration and confusion. After some struggle, I managed to get a cube to move around with a camera to smoothly follow it around:

Well, I guess it's better than nothing. Even though this is very simplistic I managed to get a bug in collision-detection between the cube and the black walls around it, if you run into those walls the cube starts to vibrate and it looks really broken. I guess I'll just watch some more tutorials on the matter and hopefully I'll be able to make games in Unity effectively pretty soon.

This is what I'll set as my goals for this week:
- fix collision bug
- make random enemies spawn in and follow player around

I think that'll be plenty for now, seeing as I am really not used to working in Unity yet.
Hopefully, I'll see you next week!

For questions, feedback or requests I can always be reached at:
indiestepsblog@gmail.com


Sunday, October 5, 2014

Oh boy, what a week

Well I'm glad I warned you last week that there wouldn't be any specific game update this week. I have been incredibly busy with all sorts of things and developing a game did not really fit into my schedule. Hopefully I'll have something presentable next week, even though I'm still going to be pretty occupied.

First of all I visited a few candidate locations for the game event I help organize called Indievelopment. We have a few good locations on our minds and after we have picked one we can finally begin inviting developers and informing press about our event. I was put in charge of press contacting. Therefore, I now possess a large list of press contacts which helps out tremendously once I start trying release and promote my own games.

I was also invited for a playtest session for Ronimo games! I can't tell you a lot about what I saw specifically(that would violate the contract I signed), but I can tell you what playtesting is like of course!
When I walked in their office I was greeted by one of Ronimo's designers. I had to sign the NDA clause and after that I was put in a room in front of a 42" screen. The game I had to play was already set up and I was simply asked to start and play. I had to write down any oddities I noticed on a sheet of paper(bugs, unfair levels, etc.). Every once in a while a designer walked in and watched me play. He would occasionally ask me why I chose certain tactics or give me slight hints on how to complete difficult levels. Since it was a playtest, some levels were almost impossible to complete(for me at least) while some others seemed incredibly easy.
At the end of my 2 hour play session we sat down with the designers and the other playtesters to discuss the game and suggest certain changes. I managed to give some useful advice and suggestions which hopefully helps them to perfect their game.

Finally I'd like to tell what I plan to do for my next game project.
Since I am not at all familliar with Unity I will start by doing something really simple. You control the center cube and you need to defend yourself from all these other tinier cubes. You can unlock and powerup several spells to defend yourself. Your goal is to survive for as long as possible.
Does not look exciting or original in any way now does it? Well that isn't exactly the point yet. Before I can make more complex and original games(and trust me, I have tons of ideas) I need to familiarize myself with the engine I'm using first. So we keep it simple for our first project, don't worry though because just because it is simple does not mean it isn't fun!

For questions, feedback or requests I can always be reached at:
indiestepsblog@gmail.com