Apple IOS Game Development Engines P
Total Page:16
File Type:pdf, Size:1020Kb
SWE578 2012S 1 Apple IOS Game Development Engines Abstract—iOS(formerly called iPhone OS) is Apple's section we make comparison and draw our conclusion. mobile operating system that is used on the company's mobile device series such as iPhone, iPod Touch and iPad which II. GAME ENGINE ANATOMY have become quite popular since the first iPhone launched. There are more than 100,000 of the titles in the App Store are A common misconception is that a game engine only games. Many of the games in the store are 2D&3D games and draws the graphics that we see on the screen. This is of it can be said that in order to develop a complicated 3D course wrong, for a game engine is a collection of graphical game, using games engines is inevitable. interacting software that together makes a single unit that runs an actual game. The drawing process is one of the I. INTRODUCTION subsystems that could be labeled as the rendering With its unique features such as multitouch screen and engine[3]. accelerometer and graphics capabilities iOS devices has Game engines provide a visual development tools in become one of the most distinctive mobile game addition to software components. These tools are provided platforms. More than 100,000 of the titles in the App Store in an integrated development environment in order to are games. With the low development cost and ease of create games rapidly. Game developers attempt to "pre- publishing all make very strange but new development invent the wheel” elements while creating games such as opportunity for developers.[2]Game production is a quite graphics, sound, physics and AI functions. That is why demanding task including not only development but also games engines are called “middleware”. In the perspective level design, modeling, animation, sound and music of business sense they provide a flexible and reusable production. Game development is regarded as development software platform, which provides all the core functionality of a software system called a “game engine” or “game needed and also reduce costs, risks and time to market middleware”. The process of game development is [13]. frequently economized by mostly reusing the same engine Figure 2 shows the structure of a game engine that for more than one games [3]. A Game engines anatomy works for most games. By knowing all of the parts of a consist of components such as a rendering engine for 2d or game engine and how they work together, we can design 3d graphics, a physics engine, a collision detection system, the whole game at the start, and build our application the a sound engine, an animation system (interpolator and/or “Right Way”. The framework consists of code necessary to sprite based) etc. get an application started, including creating an instance of A game engine also overcome some complicated issues the application and initializing the rest of the subsystems. such as artificial intelligence, networking, resource Our code manages framework class when our application management, memory management, threading, starts and is responsible of creating and destroying the state localization machine, graphics engine and audio engine. The Game State Manager is a state machine that keeps track of the current game state. When the game starts, the A. Research Contributions state machine creates the basic state information. It saves Without a game engine it can be said developing a all information required by each state and to destroy complicated game is impossible, Thus, in this paper game temporary information when the application leaves a state. engines for iOS platform will be discussed. There are also The graphics engine is responsible for visual output and free and commercial ones in order to develop games. We includes drawing graphical user interface (GUI) objects for will take glance most popular and talented ones. the user to interact with, animating 2D or 3D models, and B. Outline rendering backgrounds and special effects. This paper is organized as follows. In section II general game engines’ architecture will be discussed and in section III open-source 2D and 3D game engines and in section IV commercial engines will be discussed. In the last This work was supported in part by the Software Engineering Department of Bogazici University. P Baran Ipek is with the Software Engineering Department, Bogazici University, Istanbul (e-mail: [email protected]). l a t SWE578 2012S 2 built from many smaller units, that contain algorithms for solving certain problems, like path finding. Then you can specify behavior for your objects by combining these units. C. Audio This subsystem of game engine’s responsibility is to abstract the sound card hardware that exist in the computer or game console, to allow other parts of the engine to create and play sounds without having to worry about the sound hardware. Figure 2. Functional structure of a game engine D. Renderer The graphics renderer handles everything that is displayed on the screen, be it displaying text fonts, bitmap We will use Torque Game Engine[2] as a reference graphics, or effects such as transparency. Many graphics throughout all the paper while discussing game engine renderer uses OpenGL for its hardware abstraction, along architecture. At this abstract level, the idea of object with a Direct3D wrapper for its OpenGL calls, so that the orientation is applied to a game engine. The parts that user can choose which API the software should use, when build an engine are often referred to as subsystems and the user is running in Windows.[3] each one has its own responsibility. The main subsystems are: E. Input • Audio The input subsystem deals with how the system reacts • Input when the user presses keys on the keyboard, or uses the • Physics mouse. Like other subsystems it encapsulates the specific • Renderer input hardware calls in separate classes that other systems • Artificial intelligence (AI) cannot interact with directly. • Core • Scripting • Networking F. Scripting The soft architecture is the design of the game, and We will dig deeper into these subsystems, how they everything that makes the game unique. This is the part work, can be implemented. that you can be involved in to do everything you want, but unlike the hard architecture, you are on your own with your A. Physics scripts. It can be said that scripting is programming in the soft Regardless what for a developer use a physics engine but architecture, while developing into your engine's source they have to handle any or both of the different kinds of code is programming in the hard architecture. For instance body physics, rigid or soft. Rigid body physics are the Torque Script is the scripting language of Torque Game easiest to calculate because you do not have to take Engine that is completely untyped, which means that a deformation into account,but on the contrary advance variable can hold an integer in one part of the script, and a games use soft body physics. few lines later hold a string.[3] Physics calculations can be very heavy and thus slowing the game down. You can not simulate perfectly the real world so you have to use a simplified version of the real world physics in order to lower the computing power needed.[3] B. Artificial Intelligence Artificial Intelligence is not the same kind of subsystem as physics or graphics in the sense that you cannot reuse most of the code from game to game. It is game specific and this is why an Artificial Intelligence engine is often SWE578 2012S 3 iPad, iPod Touch and also provide emulation of iDevice(s) on Microsoft Windows and programming support via XCode and Visual C++[6]. Actually we can say that the SIO2 is also a universal OpenGL ES mobile game development platform designed for light commercial and small consumer use. It is more specifically designed to single developers, or small teams of, developers who wish to sell mobile applications. SIO2 allows you coding in C and C++ in order to complete manipulation and scripting options for advanced game developers. It also offers full platform support for the features such as graphics, scene management, scripting, animation, physics engine, audio and video, lighting and shadow. With the combination using free, open-source Blender software [8] and the SI02 game engine it is easier to create very cool 3D characters and games. The SIO2 APIs are built in C/C++ for maximum speed and flexibility, and for those who are good at low level programming, the SIO2 API are also available via a LUA scripting interface. The SIO2 SDK is available on the official site for Download after a simple registration; you will gain access III. OPEN SOURCE GAME ENGINES to everything you need to start creating 3D game for your mobile device. Generally it can be said that it is worth to There are several open source game engines you may download and use this engine in order to create games. choose and in this section we will discuss some of them are You have pay also $49 for one-game certification. used from many applications and these are available in the app store. C. GALAXY ENGINE A. ISGL 3D ENGINE Galaxy Engine is a game development package for iSGL3D (iOS Scene Graph Library) is a 3D framework Macintosh, iPhone, and iPad. It is built in Cocoa and uses for the IOS platform that is written in Objective-C, the OpenGL, OpenGL ES, and OpenAL libraries that enabling the creativity of developers to flourish in a 3D allow you use the iPhone SDK features such as Game world without dealing with the OpenGL’s complexities.