When I find out about a new technology to develop software, and in our case to develop games, I apply a self-made rule of thumb in order to take that technology into account or just get it discarded (for the time being).
It all started long ago when I was learning PHP, and followed a tutorial for a manual WAMP installation. Yeah, I learned quite a lot but I’m not applying that knowledge nowadays and never have been. It took me a while to set up a development environment because, guess what? the tutorial had mistakes and they were documented in the comments’ section! (I must say that was the only well-written tutorial I found out back then).
After that, a friend of mine suggested to use some web server solution stack package called AppServ. Wow, it blew my mind! I had a well-configured web server for PHP development in a couple of minutes, without the hassle of downloading and setting up three different programs/packages. Lesson learned; work smarter, not harder.
Then I started learning about SDL, Visual Studio, and a lot of different IDEs to develop C++ applications. I even took several Lazy Foo’s tutorial for setting up an environment, to see which one I liked the most. I spent a lot of time there, but it wasn’t wasted. I learned something too; measure the time it takes you to finish a task, specially a new one.
Last year I started developing HTML5 games and I had to research some technologies to start with and I tried several frameworks, including libGDX, Cocos2D-JS and Enchant.js. The winner was the latter. Why? despite what some people may say about the other two frameworks, I had a sprite moving on screen in no time with no effort*.
The 45m rule
I felt the same way as when I was learning PHP and setting up SDL for the first time. I was happy to learn but at the same time I had a client to deliver to, so I established a rule for adopting new technologies:
If it takes less than 45 minutes to show a sprite on the screen, consider it. Otherwise, throw it away!
It doesn’t count the time to download the packages or installer, but it does count the time to set up the environment and learn the basics in order to achieve the goal. I think it’s a basic one and it’s the necessary time to test some important aspects about a technology.
- If the official web site guides you through the steps successfully, the creators care about the documentation
- If you can complete the task fast because it’s understandable and looks easy, it is easy to learn
- If you can find good tutorials, forums, and a lot of non-official documentation, it has a great community to interact with and learn from
- Finally, if you can show a sprite moving on the screen in less than 45 minutes, with no prior experience, what will you do with more time? 😀
That’s it; 45 minutes or bust! What do you think? Share your thoughts on the comments section.
*meaning it took less than 45 minutes to read the docs, set up, and show a sprite on the screen.