Chapter 1: Preface
Over the past few years where two dimensional and three dimensional graphic has been utilized consecutively for developing computer games and console games. Two dimensional graphic games have been very popular since the beginning of 1940’s and that’s where it all started at the first place. It started with 2D games at first which is developed for the use of arcade mainframes and console machines, followed by the development of computer games for mainframe computers. Through the innovation development of dimensional graphic games, 3 dimensional games were to emerge as the most popular game genre which started in the late 80’s. But despise all the development of 3D games in the games software industries, 2D games are still being developed in the new market. This is because 2D games are still being preferred by many people in the world, and due to this point, games software vendors are still taking account of 2D games development.
In the past few years, starting from the year 2000, 2D games starts to become widely know and played by many users with the development of mobile games and internet web based games. There have been rapid development of 2D technology to create new application games for the growing internet network, more and more website incorporate web based 2D mini games, online games and puzzle games.
It’s been proven that 2D games are getting more and more popular compared to the years before year 2000, and with more websites trying to incorporate 2D games towards their web as the 3rd party application. Such website is like the ever popular facebook.com incorporating hundreds and even thousands of 2D games as the 3rd party game application to attract more and more people towards joining the social web network.
Few years back, Microsoft introduced the XNA Game Studio software distributed across the internet to enable software programmers to develop new games for windows platform and also the new XBOX 360. The XNA game studio is licensed software, but with the MSDN help, the author as a student get to have the chance to obtain a tryout of this Microsoft XNA game studio. According to Microsoft, XNA game studio will need to be incorporated with Microsoft Visual Studio to enable references to be added in the system coding.
If we were to look back few years before, developing a game even for a two dimensional game would took probably months and even years, a simple personal computer would not even be sufficient to run the system codes, execute the game, and debug the system. And even with the availability of the development tools, it would surely require serious experts to come out with a game system coding, due to the complicated level of programming language available during the urban times. In other words there are almost none development tools available to reach in the hands of the student, or internet users to develop their own games by themselves. And by looking at the games development now, and comparing them, it is a breakthrough for the games development.
As I foresees the development potential for two dimensional games, I am sure that two dimensional game will have plenty of development potential in the future, as its been proven development of two dimensional games did not stop although three dimensional games been around for quite a long time, it didn’t manage to replace the two dimensional games market its technology. There are quite a few reasons why two dimensional games are still around developing, which mainly are because of its cheap development cost, simple development process, easy for users to understand and well played. It’s one of the reasons why Microsoft, the top player in IT industry is still in for two dimensional games development and searching for the breakthrough for it by creating development tools to support the development of two dimensional games.
Chapter 2: Development Tools
This chapter was designed to elaborate the use of each development tools which is related towards developing the XNA BubbleBall Attack 2D game. In order to produce this game system a set of software development tools need to be installed on the developer’s machine to enable full support to the game system.
All identified developing tools which is related in the development process includes DirectX SDK (DirectX Software Development Kit) a set of application programming interfaces designed to handle tasks. It is a development tool containing all DirectX software required to build and produce cutting-edge, rich media interactive applications.
Microsoft .NET Framework is required for its library reference of coding solutions to common problems and local machine to manage execution of code written programs specifically for the Microsoft framework.
Microsoft Visual Studio 2008 is the development tool used to write for the game system coding. This application is used to build up the game system code, code debugging process, system appearance design, execution of game system, it is mainly the key development tool used in this project.
Microsoft XNA Game Studio is utilized by me the system programmer to design the animation, sound, and the entire multimedia enhancement required for the game system. This tool is required to be included in this process to enable the coding languages to add references in its library files and to execute the library files in the Microsoft Visual Studio 2008. Without this tool, the coding language will never be executed because failure in retrieving the coding files from the library files.
Adobe Photoshop C3 is used by the developer to create image file as the two dimensional graphic to be presented in the system. All animation that present in the system is created by this tool and included in the system as the two dimensional graphic.
DirectX SDK is developed by Microsoft with the objective of allowing the creation of application for a certain software package, software framework, hardware plat form, computer system, video game console, operating system or any other similar platform which supports DirectX. DirectX SDK comes in a set of development tools which contains of all the DirectX software needed for a game developer to create DirectX based application using the Visual Basic.Net, C or C++, and C+ coding language which was developed by Microsoft.
The reason why DirectX SDK is so powerful was mainly because it was made up from many different system tools which some of the main components includes:
- DirectX headers and libraries
- DirectX system runtime components
- DirectX Application Programming Interfaces Documentations
- Additional application and source code developed using DirectX compliant
- Various powerful tools and utilities integrated to the DirectX SDK
This development tool allows me to take a complete advantage of DirectX technologies for creating excellent games and graphic applications. DirectX SDK allows developers to utilize its latest technology in hardware innovation for developing powerful games. DirectX SDK will receive update in its version releases to keep up with the latest technology enhanced within the DirectX software this is necessary to boost the codes, tools, library files and the documentation for every Microsoft Platform SDK.
Microsoft DirectX SDK comes with an important feature which is the D3DX library acts like a toolkit which provides developers with high level functionality to help create DirectX applications. This feature helps to optimize low level routines so as to obtain the best performance out of Microsoft platform. Incorporated with basic features such as math calculation and texture loading routines, updated technology in art manipulating content including tangent frame generation, mesh optimization and Precomputed Radiance Transfer.
DirectX SDK come with many other features such as D3DX effects framework, High Level Shading Languages, Shader Debugger, PIX for Window Platform. These technologies will help developer in all way developing their game system accordingly. DirectX SDK will be able to integrate with Microsoft Visual Studio .Net to enable developers to code their system using it. Pipelining feature will be enabled with the integration of DirectX SDK towards Microsoft Visual Studio .Net, these enable developers to code for pipelining structure for their game application. Certain samples will be included within DirectX SDK to help developers to understand the technologies used in DirectX.
In other words DirectX SDK will help developers by providing technical solution, best suitable graphic rendering outcome, graphic localization, code implementation, library files, better and simple developing experience, and also how to render and produce most from interactive audio. Microsoft DirectX SDK comes with all the features and tools needed for the graphic rendering, audio rendering, and visualization for game developers to make use of in order to create powerful DirectX based applications either for a simple game or a complicated game development.
Microsoft .NET Framework
Microsoft .Net Framework is a platform or so what people called a development environment to seamlessly create applications that accessible through developer’s computer from all across the world. It is an application adopted to comply with open standards such as eXtensible Markup Languages, Hypertext Transfer Protocol, and Simple Object Access Protocol in order to interact with applications that are available in other platform.
.Net Framework is platform independent and language independent system which allows the developer to use different programming languages such as VB.Net, C#, Jscript, VBscript, C and C++ to run applications on different platform such as Unix, Mac, Linux, and Window. .Net Framework enables developer to use various libraries to help in developing and application faster, easier and cheaper. As for now, .Net Framework is identified to be able to support over 20 different programming languages.
There is a reason for why .Net Framework is built to support multiple different types of programming languages is explained by the concept of Common Language Runtime engine. CLR engine compiles the code into Microsoft Intermediate Language. The MSIL is a set of instructions used to translate the codes into native codes making .Net Framework capable of language and platform independent. CLR is also responsible for run time services such as language integration, security enforcement, memory process and thread management. In addition, .Net Framework provides wide infrastructure to create web applications and non web applications. As for the time being, Microsoft has claimed .Net Framework comes in two different categories which is CLR and .Net Framework class library.
Common Language Runtime is responsible to provide common runtime services to all .Net based applications. As for more CLR reduces the developers time to code for an application by utilizing its feature like life cycle management, strong type naming, cross language exception handling, and dynamic binding designed to turn application development software into reusable components.
As for .Net Framework class library, it appears that this system consists of predefined sets of functionality that developer can freely utilize to enhance their application. The class library consists of three major components which are:
- Windows Form
Well for this game application project, I will be using CLR and also .Net Framework class library as VB.NET and Window Form will be use for my game application as the two key component.
Microsoft Visual Studio 2008
Microsoft Visual Studio 2008 was released in 19 November 2007 replacing the older version of Visual Studio with the newer enhanced version of Visual Studio. Visual Studio 2008 is focused based on the development for Window Vista, Microsoft Office 2007 system and web applications. Visual Studio 2008 requires .NET Framework 3.5 to run properly and to process compiles assemblies. Visual Studio 2008 will possess the ability to chooses and utilize different .NET framework version depending to the developers choice.
Microsoft Visual Studio 2008 delivers on Microsoft’s vision of smart client applications by enabling developers to rapidly create new applications without ignoring the quality of the application with accounted rich user experiences. Visual Studio 2008 comes with the ability for the developer to capture and analyze information to help make effective decisions. Packed with the ability for developer to rapidly create secured, manageable, and reliable applications is the strongest advantage of using Microsoft Visual Studio 2008.
Visual Studio 2008 promised to be able to deliver key advances for developers in three primary pillars which are:
- Rapid Application Development
- Effective team collaboration
- Breakthrough user experiences
Visual Studio 2008 has received a many users feedback and most of them are identified to be positive. Based on the three pillars, user’s feedbacks are mostly related to those of the three with different technology area. They are categorized into seven technology areas
- Focused on Smart Client Application Development
- Microsoft Office Applications Integrated
- Window Platform Applications Integrated
- Enhanced Productivity in Data Handling
- Enabling New Web Experiences
- Improved Overall Developer Experience
- Enhanced Application Lifecycle Management
It is the most effective smart client development to begin with good application design. Able to integrate UI designers into development process by supporting most of the popular languages such as VB.NET, C++, C#, Jscript, and many of others.
The first reason that I find to use Microsoft Visual Studio 2008 in my system development are mainly because it has a very good system development tools which is capable of rapid application development and the easy to understand .NET code languages, which is the language I preferred the most among all other programming language.
Microsoft XNA Game Studio
Microsoft XNA Game Studio is a set of game development tools designed based on supported versions of Microsoft Visual Studio tools that allows developers to build up games supported by Window platform, Microsoft XBOX 360 game console, and Microsoft Zune. XNA Game Studio will require both Microsoft DirectX SDK and Microsoft .Net Framework to run correctly when integrated into Microsoft Visual Studio 2008. This tool comes including the XNA Framework which acts as same as Microsoft .Net Framework. The XNA Framework will integrate XNA library files onto Visual Studio 2008 to enable XNA graphic and audio coding to get executed.
XNA Game Studio is seamlessly integrated with supported version of Microsoft Visual Studio tools, this integration will enable developers to use new coding structure to develop two and three dimensional games easily due to new library files added to the Visual Studio base library, developers will have a new experience in learning new codes which only works with the XNA Game Studio integration.
XNA Game Studio provides three main features which are:
- Game component models
- New framework library designed to support Microsoft Windows, XBOX 360, and Zune game development
- Integration with XNA Framework Content Pipeline.
Microsoft XNA Game Studio has become popular since it has been launched years ago, the reason why more and more people are utilizing it is because if new technology in game development breakthrough, the rapid application development, and the game quality produced.
Adobe Photoshop C3
Adobe Photoshop is simply an advanced graphic editing program designed and published by Adobe Systems. Adobe Photoshop managed to rise up as the graphic development software after years of competing in the market. Now, Adobe Photoshop is considered to be the top in its market leader for commercial bitmap and image manipulation software. Furthermore, Adobe Photoshop is known to be the flagship product in its company and the main development focus of the company.
Adobe Photoshop is developed to be a software targeting the graphic professional industry, its name has been around the graphic development tool industry for years. For so it gained the fame and popularity through time. Adobe Photoshop is consider to be the best, rated as a killer application for both MAC and Window OS.
Adobe Photoshop were born out from its first generation program named ImagePro in 1987. Developed by the Knoll Brothers, Thomas Knoll and John Knoll. The first published Photoshop program managed to sold at 200 copies which is considered a good outcome. And soon, in the following year, after the Adobe is established, the Knoll brothers purchases Adobe Photoshop distribution license to begin distributing Adobe Photoshop worldwide.
The reason Adobe Photoshop is used in the project development were mainly to develop image files which serves the purpose as two dimensional graphic rendered to the system. Image files are designed and edited in the Photoshop so that it could be added later to the system as the active two dimensional graphic.
Chapter 3: Research on the technology related to 2D games and game system’s programming
Two Dimensional Graphic
Two Dimensional games know as 2D computer graphic games are a computer based graphic images. These images are made up from 2D digital images, 2D texts, and 2D geometric models. Images can vary from image compositions, pixel arts, digital arts, photographs, and texts. 2D graphics are frequently used most in the graphic industry because of its conveniences and simple rendering. Nowadays almost all of the websites incorporates 2D graphic content into its webpage, those graphic content may vary from a tiny graphic image file to a fully functional 2D games. Therefore 2D graphic plays an important part in the information technology field.
Two dimensional graphic have certain advantages which makes it to be superior when compared with three dimensional graphic. The three main differences which makes 2D graphic to be superior are:
- Able to render faster than 3D graphic
This point makes developers to choose 2D graphic for low bandwidth consumption. And also why means rendering it also means that 2D graphic is produced faster when compared with 3D development. Thus 2D graphic can be developed with rapid application development tools.
- Creating simple games such as puzzle, card, and board games where high degree of realism is not required.
2D games are categorized as a simple graphic structure which can be easily developed, thus it does not require the graphics to be truly realistic. Games that is developed using 2D technology will be simple looking, not too complex, and depends a lot on the graphic coloring.
- Supported by all of the operating system
2D graphic technology is used heavily on the appearance of an operating system to increase system load efficiency. Thus OS such as Window, Mac and Linux implements lots of 2D graphic objects which increases the loading speed and reduces CPU workload in rendering OS graphical interface.
Two dimensional graphic started back during 1950’s using vector graphic devices. Soon enough raster based graphic technology was introduced and manage to take over the usage of vector graphic.
Vector graphics uses mathematical relationships between points and the paths connecting them to shape the image. Vector graphic emphasizes much more on the quality of the image compared with the raster graphic. Thus raster graphic are usually used to represent photographic images because of the quality it possess. Vector graphic are made from smooth quality images which do not suffers from loss of image quality even after resized. This is the main key point why people prefers vector over raster graphics.
The Figure 18.104.22.168 above shows the differences of the vector and raster graphic when the image is displayed in magnified condition. The left side of the picture is represented with vector graphic, the magnified image is displayed which total quality of the source image, produced with full quality of smoothness. Where else raster graphic, is represented at the right side with a bitmap image, which suffers great loss of picture quality due to the source image is produced with arrays of pixels.
In other word when judging an image quality, vector based graphic image wins fair. Vector graphics possess four main key advantages that makes it superior graphic which is:
- Complete Scalability
A vector graphic image allows picture resizing without suffering any quality loss. This applies to any size of picture whether it is at a size of a poster or business card. This is the key advantage of vector graphic.
- Compatibility for both web and print
Due to the image quality is always high, for this reason vector images are always compatible with printing specification and also web images. Unlike raster bitmaps which has a limited graphic resolution minimum of 300 dpi to be able to display the image in the paper and also in webpage.
- Completely editable using imaging tools
Vector graphics is completely editable using both vector and raster graphic editing tools such as Adobe Photoshop and Adobe Illustrator. Images can be resized, skewed, rotated, reshaped, combines with other vector model, and other functions that is supported by both vector graphic and the imaging tools.
- Supporting Background Transparency
Vector graphics will support all types of background, with any color or pattern, either it is with another raster graphic or vector.
Vector graphics when displayed in computer display will produce results of grids of small rectangular cells called pixels, vector graphics are composed of tiny pixel dots far smaller than raster graphics.
Raster Graphics is a type of graphic in which the image of it is separated into matrix of picture elements which is known as pixels. An image with the present of pixels in the image file is made up by rows and columns of pixels lines up forming an image in the picture. Each of the pixels will be assigned with different or same color which serves the purpose of creating color depth of an image, this is often referred as number of bits needed to encode all the colors. Raster graphics are usually coded in typical bits depth with are used nowadays in:
- Black and white ( Two Colors ) : 1 Bit
- Color shades of gray ( Four Colors ) : 2 Bit
- 16 Colors : 4 Bit
- 256 Colors : 8 Bit
- 65, 536 Colors ( 65K High Colors ) : 16 Bit
- True Color : 24 Bit
- True Color ( Improved ) : 32 Bit
In a raster graphic image, the numbers of row and column determines the image resolution, in other words the more pixels presented in an image the higher the resolution. Image resolutions are calculated using total pixels present in the first row multiplied by total pixel present in the first column. If the image is presented in certain physical size, then the size will combine with the number of pixels resulting with number of Dot Per Inch (DPI) in the image. DPI is a measurement of an image’s resolution. A high resolution image will present in higher DPI with smaller dot, this makes it harder to be spotted as individual spot in the image.
Raster Graphic is much more convenient when compared to vector graphic. They are resolution independent, thus it happens that raster graphic can be used to represent a photo realistic images in a short amount of time. But because of certain limitation in raster graphic, it makes the quality of the image to be vary from different source of quality. Pixels tend to get arranged in a regular pattern, resulting weird shaping pattern displayed in the screen of a computer monitor. Rather if the pixels are assigned with wrong color, the whole image might get displayed weirdly with all the color mixed. If a resolution is too low and the contrast is too high, certain pixels will stand out leaving the image with jaggies.
Figure 22.214.171.124 is a raster graphic image which shows clearly the pixel resolutions of the image. As the image shows the rectangular array of dots which is large enough to be identified using the eye of a human, these rectangular are call pixels. The image is displayed by drawing the pixels sequentially in a fixed order either from the left to right or top to bottom. The image of a fish is made up using plain white and blue color which is assigned to each of the pixel dots. Usually a raster image is made up from high resolution in which pixel dots are not visible from human’s eye sight. But the above image is a low resolution raster image, thus pixels are visible.
Raster graphic are presented in digital file format usually in JPEG images, Bitmap images, GIF images, TIFF images and PNG images. The usage of raster graphic has been popular since the rise of World Wide Web in the internet. This is because raster graphic presents huge advantages when it is utilized within the web network. Advantages of raster graphic are:
- Widely used in personal computer in displaying images.
Most of computer operating system nowadays supports raster image display as the basic image file distribution. Digital images are used widely in operating system as the main graphic image display. This is the strongest advantage of raster graphic.
- Web standard for image uploading, display, image file distribution and file download due to the small file size. It’s one of the main reason raster image is widely distributed across web.
- Resolution image independent, able to display all resolution types of image file.
- Can be edited using image developing tools.
Throughout all the advantages may be excellent in a point of view, but raster graphic image easily suffers from quality loss due to its pixel dot independent resolution. Most of the image file used to display raster graphic image have a limited color support which disadvantages in image color displayed in the monitor. Raster graphic images that are distributed across the network may be compressed to reduce its file size, this is a drawback as compressing the image file usually will reduce its image quality.
Benefits from Two Dimensional Games Programming Over Three Dimensional Games
- Development Cost
This point is obviously correct and without doubt, 2D games development is really cheaper when it is compared to 3D games development due to the difference of content creation. The move towards hi-definition graphic content has brought 3D games a breakthrough in the games technology, but at the same time the cost of development has also double up because of using new developed engines which is expensive. Most 3D games development faces high development cost and they are still in researching of new game engines to cut down the development costs. Unlike 2D games engines, they are sold cheaper than most of the 3D game engines in the market. This point is based on the logical assumption that 3D is a newer technology which need more resources for development and 2D is a traditional game technology which is developed even before existence of 3D, thus making it to be considered not as complex as 3D games development
- Graphical Processing Performance
2D games development uses lower processing speed and power compared with 3D development. In the old days where personal computers are still not as advance as nowadays, it is impossible to commence development in either 3D or 2D games development. But considering the advance of technologies nowadays which makes most of those not too complex games development of 2D and 3D graphic possible. In the old days personal computer lacks of the processing speed and memory capacity to run the system process. The reason why 2D games requires less graphical processing performance is because 2D games uses less graphical animation which would requires heavy framerate processing with fast processing speed.
- Shaders capabilities in 2D graphics
All thanks to the shaders technology used in the 3D technology, 2D graphics can now implement of shaders. 2D graphics can be enriched with a soft look to the entire scene, bloom effect, glowing effects and graphic effects. Shaders enable 2D graphic animation to improve its quality and technology. Although shaders brings lots of new effects to the 2D graphic, but it’s still in experimental stage where its relatively unexplored concept that has a lot of potential.
- Real time audio synthesis
2D games once uses midi and redbook audio for its audio sound effects, it’s the only available audio technology that is supported by the 2D graphic games. But that was during the old days. With the help of VST instruments, real time synthesis of audio can be implemented towards 2D game development. Music in games can expand beyond playback into performing dynamic arrangements and dynamic synthesis. The game can be implemented with audio music that is suitable with the nature of the game type accordingly. With the advanced processing power, a complete real time audio track can be implemented using VST effects in the form of compressors, equalizers and mixing tables. With this technology, 2D game nowadays could experience rich enhancement to bring new breakthrough.
- 2D Multiplayer Online Games
Despite 2D multiplayer games are being made in application program, there are publishers that release 2D online games which has gained quite the fame among online users. Despite the simple concept of 2D programming, new technologies enable the developers to actually implement 2D online games into website. Incorporating both the 2D engine and game program directly into web browsers nowadays. This is a very convenient and brilliant way into marketing 2D games online as no setups and download are required. This new technology has helps 2D games to be once again gain popularity in the world.
Programming language is the all time famous programming instructions which are created by developers since late 40’s until today which is to serve the purpose to create applications. The so call programming language is actually a set of languages which composed of words, symbols, and numbers which is made up to be algorithms that each type of language differs. In other words Programming Language is actually a set of instructions that constructs the logic of the system, instructs every action of the system and performs of functions. As human language are too difficult for a computer to understand, thus commands of programming language are used to replace human language so computers will understand the way it was designed for the same purpose.
In game development, programming process is inevitable, the functional process in the system is fully dependent to the programming code which is written in its way. The way game system reacts will turn out running according to the programming code structure in which the programmer designed it to be.
So far in the game development coding technology, only certain programming languages are capable in developing 2D and 3D game system. And most of the p