It's been a while

It has been a while since I last posted. My second year in university is hard, I study a lot and unfortunately I don't have enough time to work on WANA but I have no lectures this week so hopefully I can make some progress.

Meanwhile, I recently took part in a 48 hour game jam organised by my course leader. I was in a team with two of my friends and we made Electric Bible in the Middle East. Each team had to pick from 3 names generated by the video game name generator so there were other entries with crazy themes like Startrek Breakdancing and Excrusiating Ostrich Hell.
Our game was made with XNA. We had no artists on our team, just programmers so the sprites for the game were challenging to come up with, we mostly used sprites we found on the internet. We ended up scratching our initial idea halfway through the jam but it still turned OK in the end. Our game got 6th place out of 16 teams that started the jam (but not everyone had a game in the end though). It was exhausting but also a lot of fun!

Also my course leader told me that my game Textris is going to be featured at Games@Derby Expo - Derby University's game expo showcasing student games. I'm so excited about this! It will take place on the 13th December and it is sponsored by Microsoft. Come and see it if you happen to be in Derby at the time!

Posted by FiLkAtA | at 1:01 AM | 0 comments

Portfolio post

I've just finished a quick side project of mine and I decided to write this sort of 'portfolio post' to showcase some of my other work aside from WANA.

2 Player 3D Tic Tac Toe is the quick project in question. I tried playing 3D Tic Tac Toe on paper one evening with my sister and my cousin and not suprisingly it was rather confusing. I looked at some online versions but I couldn't find any that have easy enough control schemes so I thought this would be a great little side project. Plus I got to brush up on my Unity3D skills and it is one more thing for my portfolio.

Boxland is another little game I have up on Kongregate. It is an unfinished puzzle game, there are only a few levels. It was my very first Unity project and my first 3D game which was exciting for me at the time. You can probably notice that I have reused a few elements from it in my Tic Tac Toe game - I really wanted it to be a quick side project.

Textris is an XNA game I made as an assignment for my Computer Games Programming course last year. It was going to be plain Tetris but I had a week left until my submission deadline so I added a twist - aside from playing Tetris you also have watch out for words appearing on the screen which you have to type. Depending on whether you do that on time you will get a bonus or a penalty. The inspiration for this came from watching a friend play a typing game.

The following two projects are prototypes I haven't released before but are directly related to "We Are Not Alone" so I will share them here. Last year I was exploring the project of making WANA and at first it was going to be a full blown 3D game (I later realised I was way in over my head for the time). So I started with making a model of our solar system. I later expanded that into a galaxy generator similar to what I have in place in WANA now but in 3D (that one is runing only a thousand solar systems compared to the 10k of the 2D one). It was a great learning experience, I learnt a lot about how Unity works, stuff like textures, normal maps and shaders and 3D games in general.
The controls for both the prototypes are as follows: Move the mouse while holding the right button to change the camera view, use the mouse wheel too zoom in and out, clik on a star/planet to center the camera on it, double click on a star/planet to quickly zoom in on it.

Click it is a game I made for a 72 hour Game Maker game jam a few years ago. The theme was Insanity and though the game is rather short I think it is original and fits the theme nicely.

Keep Killing is quite old but I am fond of it so I thought I'd share it here. It is a top down shooter and it is also made with Game Maker. Unfortunately the online highscores no longer work but it still can be fun to play. It was inspired by the great game Crimsonland.

That's it from me for now, I hope you have fun with some of these games!

Posted by FiLkAtA | at 10:14 PM | 0 comments

Progress update

University has started again and I have decided to try to post more regularly on this blog. Hopefully my studies don't get too much in the way and I will still have time to work on the game. This post is going to be mostly an progress update, I don't feel like I've got enough new features in to release a new demo.

 I've been working on adding some stats to the planets. Their type and size are now displayed, but the more interesting thing is now they also have three types of production : Industry, Science and Flux.

Planet stats with decriptions on mouseover
- Industry is used for the production of ships and planet upgrades.
- Science output form all planets owned by the player contributes towards the technology he/she is currently researching.
Those two are pretty standart for this type of game but the third one is a bit more interesting. Flux acts as the game's currency but it also doubles as the fuel that the spaceships in the game use. This means that things (spaceships, upgrades, tributes, etc) are paid for in Flux and all ship movements use up some Flux. I think it is an interesting idea to explore and I haven't seen this done in any other game. It is also a different take on the traditional 'army upkeep' mechanic.
I was also considering Food and Population as planet stats but I decided to keep it simple for now. Planet anomalies inspired by Endless Space are also in the works. In fact I'm currently using a lot of text from that game since it is one of the primary sources of inspiration for 'We Are Not Alone'. Hopefully in the feature I will team up with a sci-fi oriented writer and all the text will be custom.

As I was working on adding those planetary stats I started using XML files for the first time and I must say it is a great way of saving data, I recommend that all starting out game programmers look into them.

I was also looking into reducing the planet generation time. I turned out that most of the time was spent on checking whether the newly generated star system would be too close to any of the others. As I was already doing the distance checks with the squared distances and couldn't come up with any optimizations I decided to try to make the code run in more than one thread. As I was reseaching how to do this I found out that the topic of  paralel computing is vast and it would take me a lot of time to get into it. Fortunately I came across Parallel.For, a for loop that runs on all available threads. It doesn't guarantee that the iterations will be executed in order but that was fine for my purposes. After using the parallel loop the galaxy generation time went down from 2.5s to 1.5s on my computer, I am happy with the performance increase.

Asteroid Belt, Arid and Tundra planets
Finally, I also added three new planet types: Arid, Tundra
and Asteroid Belt, again inspired by Endless Space. (An asteroid belt is not techically a planet, but ... :D )

That's it for now, looking forward to your comments!

Posted by FiLkAtA | at 5:48 PM | 0 comments

Random name generator

I decided to write this post about my random name generator because I had a hard time finding code or algorithms for anything like this and I believe that others will find it usefull.

I've spent a lot of time perfecting my random name generator. The first thing that comes to mind when you're trying to make a name generator is alternating consonants and vowels. I tried that but I wasn't satisfied at all. Most of the results you end up are impossible to pronounce.

And so, I wondered, how to make the results pronouncable? I wanted to find out which letter could follow which. I wrote a small program to analyze a bunch of random texts and tell me which letters were found following which. I used the results in a new generator and it was a big improvement over the first one. I removed some letter combinations that don't work in my opinion but still the generated names weren't what I wanted to get.

So my next observation was that some letter combinations are possible in the beggining of words, some in the middle and some in the end. I wrote another simple tool to analyze a big bunch of text and this time produce three tables for the relations between letters, which you can find below. I ended up changing the tables quite a bit as I was testing, removing combinations that usually don't work.

They way I currently generate the name is as follows: the first letter is random, the second is from the ones that can follow the first. If neither of them vas a vowel, I add one while making sure it can follow the previous letter. The next letter is from the table for the middle of the word. If it wasn't a vowel I add one the same way as before. The second to last letter is from the middle table as well while the last one if from the third table. Also I throw out any name that ahs three vowels in a row (this wan't in the last demo I posted but will be in the next). I hope it makes sense, check out the tables below and also the link to my implementation in C#. I hope this was useful! Here you can download my implementation. Also if anyone happen to wonder how to set up their blogspot blog to display code I recommend reading here. Looking forward to your comments!

Posted by FiLkAtA | at 4:06 PM | 0 comments

Planets prototype

Progress hasn't been as fast as I would like, but nevertheless I am ready with my next demo - download it here.
Planet types
The main new feature is the addition of planets to the star systems which so far don't do anything really, but I am slowly getting there. There are 8 different planet types so far - Lava, Desert, Terran, Jungle, Ocean, Gass giant, Arctic, Barren and there are also moons. I am planning on adding 2 or 3 additional planet types.

Also, the mighty sun has been kind enough to make some music for the game, please tell me if you like it and does it fit the game. I am personally very happy with how it turned out, I think it fits both the space theme of the game and the graphical style I've gone with.

Comments on the previous demo suggested that I should add dragging of the view around with the mouse, so that is possible now. Of course it is still possible to do it with the arrow keys as well. Clicking on star systems and planets zooms in on them, also scrolling in on them while they are highlighted does the same.

Have a look and tell me what you think!

Posted by FiLkAtA | at 1:42 PM | 0 comments

First prototype released

So here it is. The first prototype of the game - download it here. Nothing too fancy - move the camera around using the arrow keys or WASD, zoom in and out with the mouse wheel and select stars with the left mouse button.
Please disregard the placeholder menu. Also the graphics are far from final. I'm experimenting with an 8 bit retro visual style with this game, I thought it might turn out interesting, tell me what you think.

I'm happy with my random name generator, I think it produces nice and readable names most of the time and it is not very rigid and predictable like simply alternating consonants and vowels. It took me a while to get it right and if anyone is interested I might make a post about how I did it.

I am also happy with the fact that my galaxy features 10 000 stars. I had to abandon all linear algorithms I am so used to because then I would have perfomance issiues. I was initially thinking of using a quadtree, but then I found out about vantage point trees. Actually this last link is mostly useless and I found that there is very little information on VP trees on the internet and it is mostly very vague. It took me two full days to understand how to use them, I ended up reading about them in academic journals that you'd usually have to pay to access, luckily for me I am currently a student and my university has a subscrition to such collections. It might be worth making a post that explains them clearly with simple terms and free of charge.

I couple of days ago I found out about GameSprout - a cool website where people can share there ideas about games, discuss and refine them and help each other with art and programming. The very best ideas will be turned into reality by a game studio working with the creator of the idea and he will get a part from the profit. It is still in beta but I think it has great potential so I submitted We Are Not Alone - you can see its page here, it has already generated some interest. The guy that came up with this site is Jesse Schell, famous game designer, he leads the studio that will work on the most promising ideas. He aslo wrote "The art of game deisgn : a book of lenses", it is practically the bible when it comes to game design, I recommend it to everyone interested in that sort of thing, it is great for beginners. There are even some things in it that aren't restricted to just video games like designing interfaces for example. There is a set of cards that is sold with the 100 'lenses' from the book but my opinion is that they are not worth the money, I didn't get them, especially when there is an free android app with them. Still the book is great and the cards are just a way to quickly reference the lenses.

Whew, that was a long post, atleast by my standards. So play the demo, tell me what you think, comment about anything that I said and I will be sure to get back to you!

Posted by FiLkAtA | at 1:10 AM | 0 comments

About me

I guess in every blog there is a post like this so here I go:

My name is Philip Uzunov (aka FiLkAtA). I'm 20 and I am from Bulgaria.
I'm currently studying Computer Games Programming at the University of Derby in England (great course in case anyone is wondering!)

Obviously I've been into computer games for as long as I can remember and into making them for quite a while too. Nowadays I enjoy programming them even more than playing them.

My passion for programming started back in 2004 (I was 11) when I found out I liked it and I was good at it. I started going to national coding competitions in C++ and I was doing very well, my biggest achievement is a bronze medal from a Junior Balkan Olympiad in Informatics.

So soon after discovering programming I naturally wanted to make computer games. I still remember the day I found out about Game Maker and how excited I was to make simple little games and later realizing how powerful it actually is. A lot of people associate it only with its Drag & Drop functionality (which is great for absolute beginners) and automatically dismiss it as something that can't be taken seriously without knowing about its scripting language.Anyway, despite what people think of it it has taught me a lot.

I've also dabbled with Unity3D to get a taste of what programming a 3D game is like, a tiny bit with UDK and more seriously with Microsoft's XNA since I had to write a game using it for my university course. I also am going to use it to develop "We are not alone". I am probably going to post some of my old games soon.

Posted by FiLkAtA | at 1:19 AM | 0 comments

Hello world

Welcome to my blog!
 What is it all about? I will be posting about the development of a game that I've wanted to make for quite a while now. As you might have guessed it's called "We are not alone" and it's a real time 4X game set in space. The action will take place in a single galaxy with 10 tohusand star systems, far too many for anyone to explore (except if they really put a huge amount of time into it, I might put in an achievement or something for that) and this is what makes it stand out from most games in the 4X genre. One of the X's stands for "explore" but by the middle of the game the map is usually completely explore. In "WANA" there will be always something new to find. And of course the game will feature different alien races, space combat, diplomacy and some story elements. It won't be mupltiplayer, you won't be playing single matches, instead it will be one big experince where you take your single starting star system and grow it into a great big empire playing through the story of the game or doing as you please - the galaxy will be your sandbox!
So hopefully all goes well, I will be posting links to current versions of the game and any interesting and useful things I stumble upon during the development, stay tuned!

Posted by FiLkAtA | at 2:38 PM | 0 comments