Categories

Insider

Archives

Bricks Trouble Origins has been released!

I’m pleased to announce that my 1st game called Bricks Trouble Origins has been released today worldwide on the App Store as a free product.

Check it out here.

Game’s official website.

Startup spotlight article on develop-online.net

In Febuary 2011 2P Games got online coverage on casualgaming.biz website which later merged with develop-online.net. Check it out here.

1st game soon to be released – it’ll be free!

On June 7th 2011 I wrote a blog post in which I’ve considered creating free game based on same game mechanics as my full feature product. I’m pleased to announce that I’ve completed it and now working on marketing materials in preparation for its release. I’ve completed that game more than 6 months ago (October 2011). All this time it was “laying” on my hard drive waiting for my main project to be completed. The plan was to release both games simultaneously, but I’ve decided to go on with my instincts and release it now. Thanks to this I’ll get a critical feedback from players knowing which pitfalls to avoid in my other game. Game will be free to download from the Apple® App Store as a universal app. It also supports latest iPad Retina displays. I’ll announce more details after it’s released. Stay tuned and watch this spot.

Game dev post #3 – 10 useful game development hints

I’ve been so busy these days working on my free, promotional game (see previous post). I’m happy to announce that it has been finished! Yay! Not only that, I’ve spent additional week on upgrading in to universal app and added “Retina” display graphics. That’s right now no matter if you have an iPod, iPad or iPhone 4 – game will look just gorgeous with hi-res graphics.

Overall the whole game took me around 600 hours of pure development time.

I’m in the position to go back to the main project now and I must say that during development time of my free game I’ve written lots of code that will be reused. Things like: in-app purchases integration, “Open Feint”/”Game Center” support for achievements/leader boards, game settings handler, frontend, sounds & music manager and more – this will be all used in my “bigger” game. So I’m thinking that loosing those 3 months to develop this free product could actually be calculated as 1.5, since all of the above functionality took about month and a half to complete and will be reused. Also lessons learned from creating a universal app/adding “Retina” display support will come handy as well.

There are some thoughts that I would like to share, which I’ve encountered during development of my free game. Here are 10 useful game development hints:

  1. Since game is using Cocos2d for iPhone engine (http://www.cocos2d-iphone.org/), I’ve come across few issues that I’ve spent hours on debugging that turned out to be engine bugs. Upgrading it to a newer version fixed my problems. Conclusion: always check full release logs/community forums BEFORE digging into code and getting your hands “dirty”.
  2. Before you write a single line of code and try to “reinvent the wheel”, do a Google search for a similar problem you’re having. Chances are that someone has already written the code that you need – be sure to check the license though; you don’t want to infringe copyrights.
  3. Always mark temporary test code with “FIXME:” or “TODO:” so later it’s easy to do search and remove them when they are no longer needed – even better/safer option – test code which makes significant changes to the way the game behaves should be put inside “#ifdef DEBUG #endif” block. I’ve had some issues with achievements reporting code – it turned out that for testing purposes I’ve added a line of code which was clearing all saved achievements data every time I restarted the game (notification bar test).
  4.  Frontend manual elements positioning – it’s a NIGHTMARE! I need to think about some kind of editor to speed up this process. It takes absolutely ages to manually code position, compile, run. Totally inefficient way of doing things – same goes for in game elements.
  5. If you don’t have audio guy in your team, picking sound effects and music could take up to 2-3 days. After that you have to format sound/music so they’re right quality/loudness and size (I recommend Adobe Audition). In total about 3-4 days of work for this game. On the plus side it’s a great cost saver, on the minus side: time, sound/music are not unique to your game. Total cost of music/sound effects for my free game: around $250. Sources: www.soundsnap.com, www.neosounds.com, www.audiojungle.net.
  6. Make backup copies of your project on external drives – EVERY DAY! This is important – make on as many drives as you have + use free cloud drive like the one from Amazon (https://www.amazon.com/clouddrive/learnmore). You don’t want to lose even smallest amount of your work – believe me.
  7. Be aware of the platform limitations that you’re creating software for. I was very careful and aware of iPhone 3GS and iPod 3rd gen memory and CPU limitations, but when I’ve started upgrading my game to universal app I went a bit “wild” on the memory side of things. I thought – “Ok, iPad – 2x resolution graphics and same sound effects as on iPhone 3GS should load just fine…whaaa…!? What’s a memory warning level 2? Nooooo! Crash! <Rage!>” So it turns out that iPad has less RAM than iPod touch 4th gen with “Retina” display, since I had no memory warnings there – loading exactly the same assets. Seeing this made me a bit worried about my flagship game that I’ve just returned to – it has far more data to load…
  8. Always “nil” a pointer after releasing an object and always check pointers before doing operations on it. I know that in Objective-C you could do something mighty crazy as sending “release” message to nil objects and it’ll work fine but it’s not an excuse. If something is still in memory and it shouldn’t be – check retain count by using: “[obj retainCount]”. Use XCode’s performance tools to check performance and look for any memory leaks.
  9. Never leave your computer on and unattended when your 2 year old kid is sleeping in the next bedroom. He woke up, went to my office and… my code just didn’t compile anymore – thank God for “Undo”.
  10. Play your game to death! Honestly every game has got bugs, no matter how hard you’ve tried to make it bug free – we’re only humans and humans do make mistakes. So test it, and iron out any bugs you find. Always give someone else to play your game, a person who is not a developer – they’ll definitely find more bugs than you. Developers always tend to play their game “safe” because they know how exactly it works under the “hood”. My wife – Julia, she found 5 bugs within first 10 minutes of play.

 

Game dev post #2 – main project has been delayed

It’s been a long while since I wrote anything and that’s because I’ve been busy with not one, but two games! That’s right. After writting a marketting considerations post, on 11 July 2011 I’ve started working on a second game which is going to be free and this is the reason why main project will be delayed. Free project is based on the same mechanics but it’s a much simplier game – with less features. I’m planning on adding free updates in the future if players will like the project. This game is all about the score and competing who’s going to get most points. It also has achievements and will support both Game Center and Open Feint at launch date. It’s nearly finished, but it won’t be released after it’s done because as I said in the earlier post that this is going to be my marketting tool. It will be released at the same time as the main project, so it can promote it. I’ll try to establish user base and promote my other products inside this free game but it won’t have any other ads that could ruin the experience. Instead, marketting banners will be displayed only in the main menu, loading screen and pause menu. This is a part of my experiment on finding best ways to promote games in nowadays market. Hope it works. Until next time.

Marketing considerations

Game is looking more and more complete every day and because of that I’ve recently started to seriously think about my marketing strategy. I came up with an idea of releasing another game for free to promote my other future products. This would be the game with the same basic mechanics as my current paid title which is currently in development. Making such a free product would not cost me much time or money but could become a great marketing tool. Considering that free to play games are risk free for players when it comes to money, it could build a great potential customers base for the future. I think that in the time of a great competition on the AppStore it’s very important to do lots of clever marketing to get your game noticed.

Game dev post #1 – State of the project

It’s been a while since my last update. I’ve been extremely busy with the project and I have to say that the game is shaping up nicely and soon I’ll be in a position to reveal its title and some new art. I’m also thinking about creating product’s dedicated website – I want to make it nice and simple without sacrificing too much time towards producing it, especially when there is still game to finish. I hope I can still hit the deadline and release it in June, but this could be tricky without cutting out some features. If it comes to this – I promise to add them after release as a free update.

I have to say that I underestimated amount of coding and optimizations that I had to do on the game. Since I’ve added Box2D physics module I had to review collisions system and drastically decrease number of callbacks that are happening in response to those actions. I wasn’t happy with 40 FPS I wanted full 60. I started optimizing game code very early on so I could avoid surprises later. I’m maintaining performance wise attitude which means that before I even write a line of code I think what kind of an impact on CPU this could have. I also wanted to have game running smoothly on 2nd generation iPod touches. I resigned from using Objective-C’s NSArrays and NSDictionaries in places where it could really hurt the performance. I’m using standard C arrays instead. I’m also using objects pooling, which means that all objects are created and in memory before level loads (this also prevents memory fragmentation). Objects are never allocated/deallocated “on the fly” – they get activated/deactivated instead and sure I know that this approach uses up more memory but the performance that game receives in return is just priceless, especially for such a dynamic gameplay. I think that the game framework I’m creating will be future proof and will allow me to create games even quicker. I’m really happy with the result i got so far – this will definitely help me in my future projects.

So… how the game looks and what’s in it so far? Well I can say that nearly all interactive elements are in, but game is missing story mode and of course it hasn’t been balanced in terms of gameplay. I think I could release it without the story mode leaving it just with the endless mode instead and add story mode later on as an update, but that just wouldn’t be me. Since this is my flagship product I want to make it perfect. I just need to figure out what level of perfect is sufficient for the game to be released, otherwise I could end up “gold plating” it which is a bad thing when comes to releasing game on time. I don’t want that!

As for balancing the gameplay – I think this is the most important ingredient of any game. As a developer I have to allocate substantial amount of time for testing and balancing all of its elements. This is the “glue” that makes it “sticky” and fun to play. This is where beta testers come in and thanks to their feedback I can make adjustments. The tricky part is to figure out the difficulty level that is just right for that type of game and target audience that will play it. Make it too easy and it’s going to be boring, make it too hard and it’s not going to be fun to play.

How did it all begin?

When I was a kid I loved playing games on my NES console and always wanted to know how games are made. After my father bought first PC I started writing my own games in assembler. I made a few and wanted to sell them, but considering fact that I was 13 that time, my games were just too simple and silly to have any commercial value. My brothers were laughing and saying that even when someone buys my game that would be probably by a mistake. I didn’t give up though. I bought more books about programming and kept learning. I remember one time in a bookstore when I was looking to buy a new book about programming in assembler, lady said to me: “Little boy, there are no pictures in that book, do you still want to buy it? We do not give refunds”. That was so funny. Having absolute love and passion for games I decided that I want to work in games industry. In my country (Poland) there were no schools that could teach me games programming or any programming at all at that time, so I had to pick something close to it – electronics. I knew that after finishing school I’ll have a problem finding a job in games industry because back then there was no “serious” games industry in Poland. Also I realised that employers are not keen to employ a self-taught games programmer with an electronics degree. So I decided to work on something that could prove my abilities in programming and games creation.

When I was 17 years old, I wrote my first book about games programming and I struggled to find a publisher so it took about 2 years before it got published. After that, just before I finished school I’ve created an application for police HQ in my home city as a part of a diploma project which earned me “Technician of the year” title. City mayor congratulated me personally and I’ve received some computer peripherals as a 1st prize. Time went on and I didn’t feel complete, not without my dream games industry job. I wanted more from my life and I believed in my abilities and myself.

I moved to the UK because there were lots more opportunities to work in games. My first UK job was as an electronics engineer, but this was a temporary job just to keep food on a table. I always knew what I really wanted to do – create games. While I was working there I’ve started to write my 2nd book – sequel to “Programming games”, because readers really liked the first one and I already promised publisher that it’ll be done. This book was also published in Poland. After finishing my 2nd book I left my job with a plan in my mind. The plan was simple – stay at home and start working on a game demo to get into the games industry. I was supporting myself financially just with my own savings earned from a 1st job and after 4 months of hard work, my demo was finally finished. I “knocked” to several game companies’ doors and got some interviews, sadly with no success. Then I found an advert about a company located in Leamington Spa – Blitz Games Studios. I wrote to them and sent my demo. They invited me for an interview where they tested my practical skills in programming. I think this is the best way of testing a candidate and I’m very grateful for that. It worked! I got my first job in the games industry. I was very proud of myself.

My books were not a financial success but I think that they definitely helped me to get into the games industry even without university qualifications. Those books put me in the “spotlight” and sent a message to my future employer that I’m a candidate who has what it takes to create game code. Blitz Games Studios took me on board basing purely on my practical skills. It was a great place to be in and I enjoyed working for them, I met lots of talented and friendly people.

I always wanted more and before my 1st dream job, I had a completely different idea what it means to work in games industry as a programmer. I imagined that I would have more freedom and could use my design skills to put some of my ideas into the game. Unfortunately I was wrong – I was just a programmer. I guess I wanted to be on a programmer/designer role which didn’t existJ. Of course I still could suggest my ideas but nothing major, only simple things that didn’t affect the gameplay. I know that designers have more freedom when deciding how game is going to work and what goes in, but when it comes to suggesting these to a publisher – then it changes things. In my personal opinion some of the publishers just don’t want the game to be fun and are rejecting some of the best “fun factor” ideas. “Oh, well…” – I thought, the only way to release my creativity would be to set up a studio and make games based on my own, original ideas.

I left my day job and formed 2P Games with Julia as my business partner. My wife supported me from day 1, always giving me motivation to take matters further. She doesn’t know anything about games development but knows business administration side of things.

As for my previous employer – Blitz Games Studios, I know I can count on them in terms of support. This is because of their great “Blitz1Up” initiative. They have also launched “IndieCity” portal for indie games which is another great place to seek help. It’s nice of them they want to help out small studios and we are 100% with them on that idea. Thanks Blitz!

This is a short version of my story. Probably some of you will find it boring and others interesting but what I really wanted to do here is to send a message to all of you passionate game developers out there: “Believe in yourselves and own abilities, it’s never too late to chase your dreams. If you really want this, you can do it and no one is going to stop you”.

“It doesn’t matter who you are, it’s what you *do* defines you.” 🙂 (mini quiz: name the movie with that quote in it).

2P Games blog – what to expect?

Before I start writing next article I want to explain what 2P Games blog is going to be about. When I started preparing myself for a new business venture I tried to find something in the web on how other people have done this and how they’re holding up at the moment. I looked for articles where I could read about other indie game developers and their businesses. I’ve found some, but none of them described preparations and the process of opening the business. What went right and what went wrong, gotchas and pitfalls worth avoiding, market analysis, finances, how’s it going at the moment and what is planned for the future, game development progress etc. If I could find that kind of information in one place that would be fantastic – I thought, but it didn’t happen. I want to fix it. I want to give something to the indie games community and to all of you out there thinking about opening small businesses with idea to make games for a living.

In short: this blog is going to be about 2 things (nicely blended together):

1)      2P Games business – I’ll share everything I know, how I prepared for this new venture and inform about any gotchas/pitfalls worth avoiding basing it on my own past and current experiences. Julia will definitely add something as well. I think this information will be very useful to anyone thinking about starting their own small games development business.

2)      Game development – This is not a surprise, is it? I’ll share the news about games currently in development and their progress plus I’ll reveal how the game is performing in terms of sales after its release.

In the next article: how did it all begin.

Definitely