Pages

What is the difference between a Library and a Framework?

Tuesday, November 12, 2013

It is quite a common question in all of the software developers mind, what is the difference between a Library and a Framework? The two concepts are important but sometimes confusing.

Key Difference and Definition of Library and Framework

The most important difference, and in fact the defining difference between a library and a framework is Inversion of Control(IoC). When you call a method in a library, you are in control. But with a framework, the control is inverted: the framework calls you. This is pretty much the difference and definition of a framework. In the framework, all the control flow is already there, and there’s just a bunch of predefined white spots that you should fill out with your code.

A library is just a collection of class definitions. The reason behind is simple, i.e. get the code that has already been written by other developers. The classes and methods normally define specific operations in a certain area. Your code is in charge and it calls into the library when it sees fit. E.g., jQuery.

A framework is normally more complex. It defines a skeleton where the application defines its own features to fill out the skeleton. In this way, your code will be called by the framework when appropriately. The benefit is that developers do not need to worry about if a design is good or not, but just about implementing domain specific functions.

Awesome Code Syntax Highlighting in Blogger Post

If you want to share your code in the blog, you need to format the code snippet with proper syntax and highlighting. Blogger and Wordpress does not support code syntax highlighting by default. Fortunately an excellent open source and free code syntax highlighter tool called SyntaxHighlighter available in the web.

This is 100% JavaScript based SyntaxHighlighter tool to use in the web pages with out any dependency on other frameworks or third party tools. SyntaxHighlighter can be either downloaded & used on your own webserver or if you have a blog on Blogger, this can be directly used as well.

C#: Detect Windows OS Version Info

Friday, March 29, 2013

Currently, several versions of Windows OS are available in the market from Windows XP to latest Windows 8. For one my application, I was looking for a way to determine the OS version of the installed Windows at my workstation using C#. I have googled for the answer but no answer give me a clear idea and full functional way to determine the OS version. So, I find out a way to determine the OS version of Windows in my application using C# and in this tutorial I would like to describe the ways to do that.

Concept:


Every released windows operating system has a version number.  The version number has two main part formatted as "x.x", first digit is referred as Major Version Number and second digit is referred as Minor Version number.

Cocos2d-x: Coordinate System

Thursday, March 28, 2013

To understand the coordinate system of a game engine is a fundamental topic. In this tutorial I would like to describe the coordinate system of Cocos2d-x. The same concept is also applicable for Cocos2d game engine. You can also visit the Cocos2d-x Official Wiki Page which describes Cocos2d-x coordinate system briefly.

2D World Coordinate System


As cocos2d-x is a 2d game engine, we only use x-axis and y-axis to represent our coordinate system. Again, cocos2d-x uses OpenGL API to draw and manipulate objects. OpenGL use "right handed coordinate system" :

Debug Android NDK Project in Eclipse

Wednesday, March 27, 2013

Debugging Android NDK Application in Eclipse is cumbersome. There are some GDB agent to debug Android application there but the best GDB agent is NVidia Debug Manager Plugin from NVidia. To install the NVidia Debug Manager Plugin, at first you need to join in the Tegra Registered Developers Program. To do this go to this page and create an account. Next, a verification and approval process will be gone through. After NVidia approves your account you can download the Tegra Developers Pack.When you install the Tegra Developer pack, it gives you the option to select what you want to install and at this point, you can opt to install just the plugin.

Cocos2dx: Combine iOS and Android Project Files

In the previous two tutorials I have discussed on setting up Cocos2d-x environment for both iOS and Android.  So, now we have two project structure, one for iOS and another fore Android. In this tutorial I will discuss on how to combine this two project and develop the game in Cocos2d-x using the same code base and structure.

Both iOS and Android project source directory consists of C++ files and these files are located under the "Classes" directory. Open the project explorer and you will find this two identical folder.



So, we can use the same files for developing two different game application by linking the files. To do so, open up your SampleGame project in Xcode. Select the Classes group, click Delete, and select “Move to Trash” when the popup appears.

Setting up Cocos2d-x for Android Game Development

Tuesday, March 26, 2013

As cocos2d-x is ported to C++, now you can develop game for both iOS and Android platform. In the previous tutorial I have discussed on how to setting up cocos2d-x game engine in OSX for iOS game development. Now, in this tutorial I will discuss on Android game development using cocos2d-x.

This tutorial asumes that you have a fully functional Android development environment using Eclipse IDE and Android SDK. If you do not, please go through  "Setting up Android Development Environment"  from Android Official Developers Site first, which provides a step by step procedure on setting up a dedicated Android Application Development environment and install various prerequisite softwares.

Setting up Cocos2d-x in Mac OSX for iOS Game Development

Cocos2d-x support multi-platform game development including iOS game developments. In this tutorial I will discuss how to install the Cocos2d-x game engine in your workstation for iOS game development.

Prerequisites:

  • Mac OSX version 10.6 or upper.
  • XCode 3.2.5+ 

Introduction to Cocos2d-x

Cocos2d is an easy to use and amazing 2d game engine to develop iOS based games. It is free and open source. But as it is written in Objective-c, you can only develop games for iOS and Mac using it. To overcome this issue and support multi-platform game development,  cocos2d-x is developed.

Top 5 Free Text Editors for Mac OSX

Friday, February 22, 2013

Many of the windows users use notepad++ as a text editor but unfortunately there is no mac version available for mac OSX. For mac user there are many alternative text editors.  These are much powerful and versatile.


TextWrangler

TextWrangler is a free version of BBEdit (see below). It offers a broad range of support for different programming languages, and fantastic find and replace functionality. A reliable and powerful tool, especially considering its freeware status.