Cavalry and Infantry

Infantry and Calvary

Cavalry may win a battle, but infantry are needed to win a war! The fate of the gaming space hangs in the balance and in the end, there will be winners and losers. I had a talk with Emeka Okoye about the future of gaming in West Africa and he passionately spoke about how the war would be decided on the mobile phone.

As you all know I love developing games for the web. For me the integration of content, development and tools on a single platform is particularly exciting. However, by the end of this year, I would have a decision to make on if I will be starting a game studio.

Don’t get me wrong! Technically I have what it takes to build a world-class game studio. The problem is the environment the industry finds itself in need of a repeatable and scalable business model. Commiting oneself to the onslaught of the coming years with no startup capital and without a guarantee of victory is either an act of faith or a form of insanity. However being a creative person, I believe it must come from within. So for the rest of the year, I will be searching my soul for if I want to build a game studio.

From my conversation with Emeka Okoye I sort of realized that by commiting to the web, I had effectively wiped out the mainstream which typically use mobile phones. In Africa, today, the two most popular phone brands are Nokia and Samsung both supporting the J2ME and Android platforms respectively.

Last year, I got frustrated with the Java programming language and swore off it! I took a lot of courage to close a door on 3 years of development in a programming language. At that time the mother company of the Java programming language Oracle had a lawsuit with Google which was against the spirit with which Java was built. That said the trends in the industry shows that Oracle has acknowledged the threat to it.

Now in the gaming space, web game development offers the freedom to toy around with game ideas in a platform that offers stability. However, the downside of web gaming in Africa is latency. Our internet connectivity is horrible! By developing games for the web only, I commit myself to a single point of failure which from an engineering perspective is a recipe for disaster.

So developing for the web means taking care of the cavalry. However occupation of territory happens due to the infantry. A small history lesson the city of Ibadan in Nigeria developed because of the occupation of the infantry stationed there by the leader of the Oyo Empire. Though the Oyo Empire  had a great calvary force, occupation was done by its infantry.

Same thing will happen with the games we develop. We can get noise (sorry I mean engagement) by developing for the web, but at the end of the day occupation will be with infantry. In tech speak: Flash and HTML5 will be how we get attention to what we do but at the end of the day if we make the decision to be relevant on our own continent, the Java programming language  will be where the occupation forces will have to be concentrated.


Tool Selection


Hello Everyone! I am happy to be back this week. Last week was really crazy so I missed a post. However, today is my 34th post on this blog and I am glad to be here! Next week will be Game Developer’s Conference and the West African gaming elder Eyram Tawia will be making a presentation. Now let no man ask him if they can enter his traveling bag because that place is already booked by me.

This week I will be looking at the tool selection criteria that I use when deciding on a tool. As a product developer, good tools should enable you get the job done and not overwhelm you. Before choosing a tool, I am honest with myself. The first question I ask myself is my level of skill. If a tool is higher than my level of skill, I will not use it. An example of this is CakePHP. While I feel is it a great PHP framework, I also feel that it is not for an intermediate developer working without a mentor to guide the learning process. So, at the end of my search for a PHP framework, I chose CodeIgniter. Now in 2 years time, my level of skill will improve. Will I then switch to CakePHP, only time will tell. So without much ado, here is my tool selection criteria.

Popularity and Community
How much buy-in a tool has from people is important. No matter how good a tool is, it does not have a future if no one hears about it. Ask Lotus Note what happened! In its day it was a vastly superior tool to Microsoft Excel. Compare that to Java in its glory days. I learnt Java because of its popularity. Back in the day, there was almost a super-cool status to being a Java programmer. In fact the hype around it made it seem like the cure for everything from world peace to HIV/AIDS and Cancer. Now did it live up to the hype? You be the judge but even to this day when I tell people that I am a programmer, the first language they mention is Java. It also had a vibrant community around it. I say had because nowadays I am no longer sure. There is a law in the corporate realm that whenever a technology giant touches an open source project, the community tends to be slaughtered at the altar of profits. When Oracle took over Sun Microsystems, this law came into effect. But it isn’t all doom and gloom. The Netbeans IDE now has support for HTML5 and for all my hatred for Oracle and what they did with the Java language, Netbeans 7.3 is a great IDE for HTML5 and PHP. What is really cool about it even if you have sworn off Java (Like I did last year) is that you can download just the modules that will enable you work with HTML5 and PHP.

Documentation and Examples
No matter how great a tool is, if the documentation reads like greek, no developer will touch it. Good tools have great documentation! A classic example of this is XCode by Apple. Now I had to do research on developing for iDevices once upon a life time and I was suprised at the level of details of the documentation. Examples also matter! I was trying to create a chart for a particular project. Using Raphael was becoming cubersome so I decided to go in search of another JavaScript Library. In the course of searching, I found Highcharts. Not only did it meet the documentation criteria, the examples on pie chart creation are in my opinion the best among all the charting libraries I researched.

Licensing and Pricing
Yes legal and accounting issues do matter. I personally love FOSS (Free and Open Source Software) but even when deciding to use a product, you must read the license! Highcharts for example is free for non-profit purposes. Now a typical developer will say this is Africa and I will agree. But scaling has a way of catching up with a developer. Once a team gets big enough, it could have a lawsuit on its hands! You can ask Samsung about what Apple did to them. For years the issues where always there but Apple did nothing. Only when they where sure that Samsung was a big enough target did they go after them. Even Microsoft is not exempt from this. In the early days of tech adoption in Nigeria, banks got their software from Computer Village (A place where you can get everything tech in Nigeria). Now this was fake software but there was no stopping the binge that had started! One day when Microsoft was sure that they had found a home on most of the banks servers, they struck! Until that time, most banks did not know that Nigeria had an anti-piracy law. In the end, a lot of money was coughed out and Microsoft‘s dominion was assured in the banking halls of Nigeria.

Easy to Setup
No matter how great a tool is if it isn’t easy to setup, I am not interested! For years, this was my argument with Android. It was always a pain to setup. Now being a spoiled Windows user did not help matters! To illustrate how much of a problem it was, when the Android team finally decided to package Android into a single setup, guess which OS users got the package?

Easy to Use
Here all discussions end! If a tool is not easy to use based on the subjective experience of the user, then nothing else I have written in this post matters. Microsoft is the definitive standard for user accessibility in Africa! I wonder if I would be a programmer by now if I had to learn to from command prompt at the start. Even among all my programming friends this trend emerges. It seems like the guys who learnt Visual Basic (A drag and drop programming environment) first are still programming while those who where introduced into programming with C++ (A command line programming environment) are no longer programmers. Don’t get me wrong, in order to really push the limits of a machine, you must use the command line. The only problem is when you are being introduced to this at the beginning when you are trying to find your feet. In truth all tools have prerequisites for usage and jumping head first into using a tool without knowing its prerequisites is sometimes a recipe for failure. That noted, good programmers also know that the fastest way to learn is via experimentation. If we are too afraid to learn how to use a tool because we are afraid that we might break something, we might as well become project managers.

That’s my piece on tool selection. If you have anything to add do drop a comment in the comments section below. With this post, I hope you also understand why I use WordPress.