PCG in my Games

Hello everybody,
Long time with no posts or updates here. It seems like desert, sorry for that but I am sure people who follow me on twitter knows I was busy with my Master’s Thesis in Procedural Content Generation (PCG). I have always used PCG in my games as an excuse for being lazy and not designing levels (as I am not amazing level designer). In this post I will wrap up quickly some of the PCGs I used in my games. In the next post will talk about PCG in my Master’s Thesis.

As most of people noticed lots of my arcade games used PCG especially top down shooters (Clean’Em Up and Alone in the Park). All these games don’t have levels designed in advance, but instead they have enemy numbers and types to be generated. The system afterwards choose the most suitable location (away from the player position) and insert them. Pace Maker was a little different where the system generates the types and numbers based on the level of difficulty so as difficulty increase the number of enemies and variety of types increased.

Match a Number used PCG technique to generate the map. The idea is super easy

  • Insert random tiles (numbers and types) over the whole grid
  • Choose the solution length based on the player score (define the difficulty).
  • Generate a random path of the specified length without any loops.
  • Calculate the value of this path and consider it as player target

For the puzzle mode instead of generating paths, the whole playground is divided into sets according to the number of sets required at the beginning and then calculate the value of each set separately.

Atomic+ bullet pattern was generated based on a certain equation of difficult. The bullet generator is divided into the following features and by combining these features we can get a new shooter

  • Bullet Path (bp): how the bullet moves in the game (straight line, sin wave, spring, and circular path).
  • Number of Spawner (ns): how many places bullets should fire from the center (1, 2, 3, and 4).
  • Rate of Spawning (rs): how many milliseconds does the spawner need to spawn a bullet (800, 750, 700, 650, and 600).
  • Number of Burst bullets (nbb): how many bullets should the spawner generate at everyshot (1, 2, and 3).
  • Number of Bullets (nb): how many bullets the spwaner should shoot after each other (1, 2, and 3).
  • Spawner movement (sm): how the spawner update its position (no movement, circular movement, and ping pong circular movement)

Each of values for each feature has a specific difficulty score. This score is inserted in a difficulty equation and if the output difficulty is near the target difficulty then this generator is used else repick another random generator. The difficult equation is:

difficulty = sm * rs * bp * ns * nbb * nb

Last game I am going to talk about is DivCircle. The music and the rotation are both chosen by the computer. For the game music. The music is divided into several tracks overlayed over each other as the rotation speed increased each layer of the music got activated and as the rotation speed decrease the layers gets lower. Also as the player approach more towards the death, all layers volume decreased while sounds of talking people increases. That’s everything with the music and Ben Burnes did an amazing job in helping me to reach that. About the rotations, I divided the game into 14 sequence each one with its own difficulty score. These sequences are:

  • Speed Up
  • Speed Up Fast
  • Slow Down
  • Slow Down Fast
  • Reverse
  • Speed Reverse
  • Slow Reverse
  • Reverse, Reverse
  • Speed Up Fast, Speed Up Fast, Slow Down Fast
  • Slow Down Fast, Speed Up Fast
  • Speed Reverse, Slow Down Fast, Speed Reverse
  • Reverse, Speed Up Fast, Reverse, Slow Down, Reverse
  • Speed Up Fast, Speed Up Fast, Reverse
  • Speed Reverse, Slow Reverse, Speed Reverse

All actions are stored in a queue and every amount of time an action is activated and new action sequence is inserted in the list based on the current player score and current rotation speed and how old is the reverse. The amount of time for inserting and applying new action is decreased as the score increase.

This is everything for now, Hope its a little bit entertainment and useful. Stay tuned for the next post which is gonna be about General Level Generation for Puzzle Script (which is a part of my Master’s Thesis).

Bye Bye for now

Game Development BootCamp Talk

Hello Everyone,
Sorry for being away still trying to get out of depression but at same time I made a talk for an event called Game Development BootCamp in Egypt in Alexandria (a city on the north coast) I went there with my game developers / designers friends and I enjoyed it because it was really good time to get away from everything and try to get out of depression it helped somehow but I keep going back and back to depression but don’t worry I am getting out from that.

Here a recorded video about the talk (The talk is in Arabic so I will post the slides with English explanation to everything in here as I done with A Maze talk)

P.S. The talk is not recorded from the beginning they started a bit late (10 mins late)
Let’s cut the crap talk I am doing and let’s get to the talk itself :) The talk is called Tossing a Coin which is mainly my personal experience and trip about publishing commercial games till my latest game Atomic+ and telling people there is mainly a huge part of luck in all that but in the end do your best and may be the luck be on your side :)


How many people know this game? [lots of people raise their hands]

Yes its Flappy Bird.
You play as a bird that falls with gravity and when you touch the screen the bird flap its wings and jumps up. You have to pass through the pipes and avoid hitting into them or falling off the screen.

The game is stupidly hard and that’s because of the game having bad collision (hit boxes are a bit larger than object).
The pipes are same pipes from Super Mario.
So nothing unique about that game.

Although of all what I said the game had millions of downloads, it was the top in AppStore (for long time).
Everything started by some school students who downloaded the game and started challenging each other.
After sometime some people started recording weird vines about people playing Flappy Bird and getting angry and frustrated and because some of these vines are pretty weird and funny it caught people attention started wondering about the game and downloading it.
Also the cute little bird icon caught some people eyes.
But that’s not enough reason for getting to top of AppStore. The main reason is LUCK because of it school children found the game and because of Luck someone started vineing and these vines went viral.

Tossing A Coin is the name of my presentation today where I am gonna talk about my personal experience of releasing Commercial games in different stores.

Who am I? I am Ahmed Abdel Samea Khalifa Indie Game Developer / Designer.
Created around 5 Full games (2 flash games, 1 pc game, 2 iOS games) you can check them from games section on the website.
Created over than 30 prototypes mostly are done in gamejams.
Now working on new mobile game.

Why do I make games? First answer because I love games (love playing games, making games, watching games).
Its the only way I can express myself, as you can see I am terrible writer I can’t write good lines, sometimes feel shy talking to people. I make games to express a feeling I have, explain idea or thought or/and telling people my opinion about certain topic.
Games make people happy and I love seeing happy people with smiley faces so its another reason I make games.

How many people know this game? [Some people raise their hands] yes its 2048.
You have to swipe the screen in any direction so all tiles moves in that direction and equal tiles are combined in one tile with summation of both tiles. You have to get 2048 to finish the game. Every step new tiles entered the map with value of 2.

How many people know this game? [very few people raise their hands] Its called Threes.
Its the original game of 2048. Its same as 2048 but instead of 2 you play with 3 (From here come the name).

2048 is a copy of a game called 1024. 1024 is a copy of Threes but we can’t blame the developer he was just a little kid trying to learn programming so he created open source game 1024 based on his favorite game Threes.
Although Threes came out before 2048 but 2048 is much more famous and having more downloads than threes. So why is that?
Some people says because 2048 is a free game while Threes is paid one that makes people download it rather than threes.
Also being an open source project lots of clones of 2048 are placed in the store and on web and on every platform so it was easier to find 2048 than finding Threes.
Developer thinks that colors and animation he used is better than Threes (my view because it use de-saturated colors while Threes colors are more vivid) I think that reason is lame.
Also some people (like me) prefer number 2 and its multiple rather than 3.
But the hugest part of success of 2048 over Threes is LUCK because of it people noticed 2048 after Threes was out and become famous somehow.

Clean’Em Up is a game I made for PC with a friend of mine Omar Khaled Shoukry (that’s why we named ourselves Omidos (Omar + Amidos)). The game is top down shooter where you play with antivirus who wants to destroy viruses infecting the system. Viruses in the game act like real life computer virus (ex: Port Holes cause more viruses to enter the system, viruses infect files and replicates, Worms replicates themselves very quick …etc).

Since me and Omar love top down shooters so we decided to create one with a twist where the player can shoot from front and back (back is not for aiming its just supportive gun so you should choose carefully the best supporting gun in the back).
The game was part of Imagine Cup 2012 as a request from my friend Omar and also as a target and ambition to us (That’s why the game is about viruses and antiviruses).
We worked on the game for 6 Full months we everyday test the game and add new features and create new levels (I work more than 10 hours daily during that period on the game).
It was my first commercial game since I felt I put huge effort in the game. I thought I could charge some money from people for it. As I can’t find sponsor for it (like flash games) as it was made in XNA framework.
On the release day the game FAILED.

I always learn stuff by the hard way after releasing the game and something happens I start thinking why that happens so let’s analyze why it failed.
Since we had small time frame for the game and we aimed very high and I wanted to have aesthetics that makes you feel you are inside a computer so I got inspired by Geometry Wars graphics. Since Geometry Wars also a top down shooter people called my game Geometry Wars clone without even playing the game (as its different). So the look hurt the game a lot.
We designed around 75 Levels which was a huge mistake because most of them are just redundant levels with nothing new so the unique levels are just about 40 or 50 level max and all other levels are just repeating levels so people gets bored quickly before seeing different kinds of mechanics with different levels.
The game was designed by me and Omar and tested by us and other friends who are very good at top down shooters so the game was very very hard to any newbie and we didn’t notice that at all because for us its easy. Even when we where designing levels, I test the level and found it easy so I ask Omar so he agrees so we increase the difficulty of the level till making it insanely difficult.
The game didn’t focus to show the player what’s good about the new mechanic or how to choose the back weapon well so no one cared about the back weapon, so it was nothing to people as if there is nothing new just more headache.
I didn’t support XBox controller (as game was for PC) and most of top down shooter fans love to play games with dual sticks rather than keyboard and mouse.
Bad coverage hurt the game more because on day of release (I was still not very known) so when I sent emails to journalist in the indie press, it never got their attention because of the game look and lots of top down shooter games are released frequently, so rarely anybody wrote about it. Even the small amount who wrote about the game were not good reporters some of them didn’t judge the game and started judging me because the game was in English not Arabic and was for PC and not for iPad, another one gave the game bad rating because its PC game and he don’t like small games to be on PC and I should have made it for mobile devices.
Although all these reasons that caused the game to fail but the main reason behind everything was LUCK as usual because Flappy Bird had nothing and it was a hit.
After that huge failure I got pretty depressed and in very bad mood so to get out of that mood I started creating more games (prototypes).

So I created that game.

and that

and that

and that

and that

and that

and that

And more prototypes than I can share here. I made all these prototypes just to forget about my sadness and get out of it but what I didn’t know at same time that this was some kind of marketing to myself. I built a big audience, built fans on twitter by posting to #ScreenShotSaturday and following people and talking to designers and developers. Also making lots of games made the press featuring most of my games without even me asking them. So I had better contacts with press and more fans than before. That’s also the same reason why people create free games because they want to create fan base for themselves before going commercial.

Match a Number my first commercial game on iOS (also any mobile device) where you have to get the target number by holding a tile and move vertical or horizontal till you get the same result (blue tiles are positive, red tiles are negative, yellow tiles are multiplication).

The game was released on 14th Novemeber (I spend around from 1.5 to 2 weeks (Full time) working on it), I sent lots of emails to review sites, twitter friends and some of my fans, also made lots of tweets about game before release and on release day. I got nice amount of coverage but I just got 2.33K downloads (2.06K are free downloads as I set the game for free on my Birthday) I can say that game is a bit success compared to the massive failure of Clean’Em Up but still the money came didn’t cover the development cost [These stats are a bit old].

Atomic+ is my second commercial game on iOS where you play as that hollow circle that rotate in orb around the center and you should pick squares and avoid hitting white small dots (bullets) coming from the center. Getting a square make the player change direction of rotation and change background color and change the center shooting pattern (as center shoots bullets with a pattern that changes with each square). Touching the screen increase orbit radius and releasing decrease it. The game is nominated as Best Audio Game in IndiePrize 2014 in Amsterdam (Thanks to Essam Ghamdi without his music that game wouldn’t be possible or a hit).

The game was released on 19th December (I spend from 3 to 4 weeks working on it (Full Time)), I did same marketing for it like for Match a Number but this time I didn’t even cared a lot about resending again to people or following up with press. But the game was downloaded 31.8k times (23.2k are free downloads on my Birthday) That number is huge even the amount of money generated from it covered more than the development cost. Why that happens to Atomic+ and not Match a Number? That’s because Atomic+ was featured as Best New Game on launching week [These stats are a bit old].

So how and why I get best new game? As usual I think after something happens not before it.
It was Christmas time so people are willing to pay for a game and play in the weekends but that’s not a good reason because more games are released in Christmas than any day in the year.
Game vivid colors that matches iOS 7 design so maybe one of the reviewer found it sexy and looks nice on iOS and fits their new OS so he decided to feature it.
One button game which is easily to be played at any place and anytime with no hard or long time waiting or preparing to play the game.
The game was under Music Genre, how could that help? I didn’t think about it but it was great choice. All games should have two genres so Atomic+ was Action as first genre, but I got confused for the second genre I wanted to pick Arcade but there was no Arcade so I chose Music. So when some people started buying the game on release day (since there wasn’t a lot of games in Music genre as in Action genre) the game became on top charts of Music genre easier than Action genre so it helped it to keep for longer time with good rating.
But really the main reason behind that was LUCK as in my view Match a Number is a better game and better design than Atomic+ but Atomic+ was the hit.

So is everything happens is related to LUCK so why should put lots of work in games?

No that’s not true its not all about LUCK.
You should build fanbase before launching your game by making lots of free games or prototypes, engaging with people on twitter or on forums. A good example of good fanbase game went to Steam is Anodyne, since the developer kept a daily devlog on Tigsource till the end of development so he had a huge fanbase on the release day so one of these people put it on torrents so Sean used that point very good and made a 1$ discount for the game and featured his game on the piratebay website asking people to vote for it on Steam Greenlight. He got lots of votes and it was greenlit.
Always think out of the box never repeat, never clone, try to look different, played different, focus on the new thing in your game not the traditional stuff. Bad example for that was Clean’Em Up because I use same art style like Geometry Wars people thought it was a clone (we are not on candy land anymore).
Polish your game never release game look so bad or feels bad in playing (even as prototype) if you are going to release it in the wild just give some polish. Try to make your game looks new and nice and looks you.
Choose correct audience for your game which means if you are going to release game for word games players so you should focus on how to make your game good for those people not on how to make your game better to all people, because in the end they are your main buyers and target player who will never let you down and if your game is good they will buy it. So focus on these people rather than trying hard to appeal to everyone.
Last thing is always do your best and leave the rest to fate (Don’t worry a lot about LUCK).

That’s everything for now :) Hope you like the talk and help lots of indie developer to get out of their depression and that someday everything will be great :) There are a lot of information would love to share with you soon with new blog posts soon :)

Bye Bye

Match a Number Release

Hey All,

As the title says Match a Number has been released on the App Store (YaaaaaaaaY) the game is for 0.99$ till 21 November (first week) then it will be pack to its original price 0.99$.

So what are you waiting for go grab a copy from the App Store :) if you still not convinced yet here’s a preview about the game that can convince you ;) (PocketGamer).

That’s everything for now :) Stay tuned for more soon :)

Bye Bye

Match a Number Release Date

Hey All,
As the title says its Match a Number Release Date on 14 November :D YaaaaaaaY :D which is next Thursday :D YaaaaaaaaY :D I hope you are excited as I am too :) The game will be for 0.99$ for the launch week then return to its price which is 1.99$


The game will feature 3 modes and Thanks to Danny Day from QCFDesign for making the 3rd mode (Multiplayer) happens :) without him I will never though about it at all.


Also today GameJolt contest started and the theme is PARTY and there is lots of prizes to get and my two commercial games (Atomic+ and Match a Number) are part of the prizes too with amazing games by my favorite indie developers.

That’s everything for now I hope you are all waiting like me for the release day :)

Bye Bye

Match a Number News

Hey All,

I think you know by now that Match a Number website was launched and trailer too :) I have submitted it to IGF Student Competition for this year :) I have submitted it to App Store and its now waiting for review :)


Last thing that agent whiskers released the game track on BandCamp for 0.99$ and its really amazing you should get it.

That’s everything for now hope that apple approve the game soon so we all can enjoy playing it :)

Bye Bye

Atomic+ News

Hey everybody,
Hope there is still some people following me here on the blog as it have been long time since I wrote anything new but don’t worry I was away this time working on my new games. If anyone follows me on twitter (@amidos2006) he would probably know the running projects and he probably know that I have been working on Atomic+ for more than a month nearly two months.

I was aiming this year to submit Crappy Dreams as usual to IGF 2014 but I didn’t work on it as I wanted finish Atomic+ very fast and show the beta version to the public because I was going to show it at A Maze Festival at Johannesburg and also at Gamer’s Day in Riyadh.

Atomic+ got nice impression from Gamer’s Day and A Maze Festival but I couldn’t collect as much feedback on it in A Maze festival because it was viewed at a place called iLounge where it was far from Alex Theater (main place) where PC/Console are shown so hardly any person come to iLounge and all head to Alex Theater except for the launching day where the launch was on the top of the iLounge and I saw people loving my game and love it a lot and I got some really nice feedback where it cause to improve the game. Also I gave a talk there called “be Different” will post it here soon and hope to do it at another place too.

My Presentation

In Gamer’s Day I didn’t attend because it was impossible to get VISA to get to Saudi Arabia before pilgrim season so my musician Agent Whiskers went to the Gamer’s Day and we rocked there (I was wishing I was there) lots of people loved it and Agent Whiskers got interviewed by Arabic interview from GM-Moster

Here some of the feedback that the game had at Gamer’s Day


Also who follows me on twitter knows by now that I am working on an iOS version for my game Match a Number as I found it is easy to port to iOS and won’t need a lot of extra effort. When I showed the game to Danny Day (Head of QCF team) in South Africa he loved it a lot and suggested to me lots of improvements that made the game stands out now :) Since I always wanted to submit to IGF so I have to think which game to submit since Crappy Dreams was not finished yet so I have now two options either new Match a Number or Atomic+.

I chose Atomic+ for the IGF this year (YAAAAAAAAAY) I hope I have done the right decision for that :) I was wondering about how to pay the 95$ the entry fee and a friend of mine Tom (Founder of KintoGames) paid them for me as a gift and I am so so happy because I didn’t know how to pay them (because I don’t have much money)

Because of that I have made a trailer for Atomic+ and launched the website for it (Check the website)

That’s everything for now I have more and more news but I will post them on time (I hope nothing delays me more). Stay tuned for more news in the upcoming week about Match a Number launching so stay tuned.

Bye Bye

My LudumDare 27 entry: Match A Number

Hey All,
Sorry for being away and not writing here or doing any activities or not having any released games since Atomic (end of April) but sorry again for that I was in very bad mood and bad situations but I promise you, that lots of releases are soon because I have been working on some long term projects and they are almost finished so stay tuned ;)

I participated in past LudumDare 27 to release a new game but I had only 10 hours to make a game so I didn’t think about an idea I chose an old idea I had and implemented it. The result is Match A Number is out with two versions the LudumDare is very difficult because I restricted the timing to 10 seconds (to cop with the theme) but since the game had nice way to play so I made a relaxed version with more time and uploaded it to my beloved 3 portals

Go try it and don’t forget to rate my game on LudumDare. That’s everything for now don’t worry will post more frequent.

Bye Bye