2D GAME MAKING
2D GAME MAKING PROJECT REPORT | 2D GAMING MANAGEMENT SYSTEM | VISUAL PROGRAMMING | GAME PROGRAMMING
Project Overview
This is the documentation of Final Year Project of BS (CS) Degree. This documentation includes the brief description of Tambo Game Maker. TGM is a windows application which provides user friendly interface which allows users to design game by On-Click events without the requirement of prior computer programming experience. It is specially designed for those people who want to create their own games without writing code. This system will provide a large variety of tools through which users will be able to develop 2D game easily and in less time.This documentation covers all the phases of system development including requirement analysis, designing, and implementation and testing.
Tambo Game Maker is proposed for the users who want to develop androids games without spending countless hours in learning how to become a programmer. TGM allows user to make exciting mobile games, without the need to write a single line of code. The people who have no interest in coding can easily make their own games. User can create quality games within very little time. User can make games with backgrounds, graphics, music and sound effects. There is an easy built-in LUA programming Language, which gives users the full flexibility of creating games with TGM.
1.2  
Relevance to course module
The course of “Visual Programming” provides us the basic knowledge of
making a windows application. “Human Computer
Interaction” helped us in designing user friendly GUI.“Object-oriented
programming” and “Software Engineering” was also verybeneficial during the
course of the project.
1.3Project Background
Tambo Game Maker is easy to use software that anyone can use to make their own 2D games by using On Click events. Basic purpose of the project is that anyone who has less programming skills can easily make games.The software works on a few levels; beginners can make games by On-Click events, and advanced users can write their own code to make advanced games.
1.4 Literature Review
As such we have not reviewed any specific literature for the development ofTambo, because the idea was our own. Game Salad is a 2D game engine famous for the iPhone. It has a visual programming to make rapid games for Mac operating system not for windows so we proposed Tambo which is an windows application and develop games for android.
1.5Methodology And Software
Life Cycle

In this project, Waterfall method is used for
the development as the output from the specific stage becomes the input of the
next stage in development. During each stage, additional information is
gathered or developed, combined with the inputs, and used to produce the stage
deliverables. It is important to note that the additional information is
restricted in scope. “New ideas” that would take the project in directions not
anticipated in the initial set of high-level requirements are not incorporated
into the project. Rather, ideas for new capabilities or features that are
out-of-scope are preserved for later consideration.
Chapter: 2
Problem
Definition
2.1           
Purpose
The purpose of Tambo Game Maker is to create games rapidly for the android. TGM is proposed to reduce the time of spending countless hours in learning programming and understanding the code and then correct the error occurred in coding. This system gives user the platform to make its own games easily in short time and without writing any single line of code. TGM provides a large variety of tools through which users will be able to develop their game without having knowledge of programming. It will provide ease and make the game development easy for non-technical programmers. Its purpose is to avoid spending more time finding the fun, making games with TGM is a lot of fun.
2.2           
 Product Functions
Tambo Game Maker provides an interface for developing 2D games for Android using Game Development Kit. It will provide user’s On-Click event functions to create game by organizing objects on screen. These objects can be a ball, a balloon, a car and many more. There are different options to apply action on objects. The user can apply physics on objects. Actions and events that occur in games such as movement, background, rotation, collision, touch, tab, creation, destruction and many more. There are different functions which user can perform with this system.
- Add and delete an object.
- Add text on game and can set its font size.
- Manage the object properties which include the width and height of object.
- Select an image for object of its own choice.
- Easily set the reference point of the object.
- Apply physics on objects. Tambo Game Maker gives all the options related to physics like friction, gravity, bouncing, density, acceleration and many more for develop games.
- Add music and sound effects.
- Select a background from the collection of background images.
- Set the boundary of games.
- Set the resolution of game.
- Make its own game easily and in short time.
- Save its game.
- Play its game.
- Run its game on mobile.
- Set the body type of the object. Body type of object can be dynamic or static.
- Body shapes of object whether it is rectangular or a round in shape.
- Randomly repeat the objects.
- Rotate the objects.
- Enable score for its own game.
Chapter: 3
Requirement Analysis
3.1. Functional Requirements
F1-The System shall provide the facility to
manage the objects.
F2-The System shall provide the facility to
manage time for the game.
F3-The System shall provide the facility to
manage physics on objects.
F4-The System shall provide the facility to add
touch events.
F5-The System shall provide the facility to add
background image to game.
F6-The System shall provide the facility to add
background music to game.
F7-The System shall allow the user to manage
gravity for the game.
F8-The System shall provide the facility to
generate code.
F9-The System shall allow the user to manage
score.
F10-The System shall
provide the facility to manage text.
F11-The System shall provide the facility to edit
build settings.
F12-The System shall
provide the facility to manage collisions on object.
F13-The System shall provide the facility to edit
config.lua.
F14-The System shall
provide the facility to manage game boundary.
F15-The System shall
provide the facility to save the game.
F16-The System shall provide the facility to play
the game.
F17-The System shall
provide the facility to write lua code for objects.
3.2
Non Functional Requirements
3.2.1
Usability
- It is necessary that the user is familiar with the usage of mobile phones.
- He/ She must have the knowledge of game development process.
- The user must have the basic knowledge of Lua Game language, so he/she will be able to play games on Corona SDK.
3.2.2   
Reliability
- Game developed by this system will be created in very
     less time and will be very easy to create.
3.2.3    Performance
- The game should be able to run efficiently on android
     that fulfills the software interface requirements.
- The game developed using
     this system will be easily built in using Java SDK.
3.2.4   
Supportability
This system shall be able to work on Windows operating
system and will be able to function on all mobile phones. 
3.2.5    Design Constraints
Tambo Game maker is developed using Microsoft visual studio and corona SDK.
3.2.6    Licensing Requirements
There is no licensing requirement for this system, as it is
not being developed for selling
purposes. 
3.3       
Use Case Model
3.3.1
Use Case Diagram

Figure 1: Use Case
Diagram
3.3.2   
Actors
Description
Actors are the person who is using this application. Actor can make perform different functions of TGM and can make its game.
3.3.3   
Use Case
Description 
1.      Manage Objects
| Name: | Manage Object | 
| Description: | This feature will be used
  to edit/set the properties of object according to the user requirements. | 
| Preconditions: | Tambo Windows’s application
  is running. | 
| Post-conditions:  | Object Properties edited
  correctly. | 
| Actor’s: | User. | 
| Normal Sequence: | -         
  User adds the
  object from the menu. -         
  User set the
  object properties. -         
  Object
  Properties will be set according to the user requirements. | 
2.      Add Time
| Name: | Add Time | 
| Description: | This feature will help user
  to add time in game. | 
| Preconditions: | Time should be enabled in
  game environment. | 
| Post-conditions:  | User sets required fields. | 
| Actor’s: | User. | 
| Normal Sequence: | -         
  User selects
  game environment. -         
  User enables
  time. Fill the required
  fields and enables time limit. | 
| Alternative: | Time is unable. | 
3.      Manage Touch Event On Objects
| Name: | Manage Touch Event on
  Object. | 
| Description: | This feature will be used
  to add touch event on object. | 
| Preconditions: | Required fields in touch
  event should be filled. | 
| Post-conditions:  | Touch Event Applied
  Successfully. | 
| Actor’s: | User. | 
| Normal Sequence: | -         
  User selects
  the object. -         
  User add touch
  event on object. | 
| Alternative: | Reapply the touch event on
  object. | 
4.      Add Background Image
| Name: | Add Background Image | 
| Description: | User selectsbackground
  image. | 
| Preconditions: | Windows application support
  image. | 
| Post-conditions:  | Background image displayed. | 
| Actor’s: | User. | 
| Normal Sequence: | -         
  User selects
  background image. -         
  Background
  image displayed in window. | 
5.      Manage Physics On Object
| Name: | Manage Physics On Object | 
| Description: | This feature is used to
  enables physics on object and set properties. | 
| Preconditions: | Physics properties are
  enabled. | 
| Post-conditions:  | Properties will be
  mentioned. | 
| Actor’s: | User. | 
| Normal Sequence: | -         
  Tambo Windows
  application will display the properties. -         
  If enabled,
  user set the physical properties on object. | 
| Alternative: | Reapply the physics. | 
6.      Add Background Music
| Name: | Add Background Music | 
| Description: | This Feature will add
  background music in games according to the user choice. | 
| Preconditions: | User shall have background
  music in gallery. | 
| Post-conditions:  | Background music will be
  added in game. | 
| Actor’s: | User. | 
| Normal Sequence: | -         
  User adds the
  background music in game. -         
  Tambo Windows’s
  application will add the music according to the user’s choice. | 
| Alternative: | Retry and add new
  background. | 
7.      Manage text
| Name: | Manage Text | 
| Description: | This feature will allow
  user to manage the text. | 
| Preconditions: | User selects text tab from
  menu. | 
| Post-conditions:  | Text is being displayed. | 
| Actor’s: | User. | 
| Normal Sequence: | -         
  User add the
  text. -         
  User delete the
  text. -         
  Text is
  displayed during game. -         
  User edit text
  properties | 
8.      Generate Lua Code
| Name: | Generate Lua Code | 
| Description: | This feature will help
  users to generate lua code of whole game. | 
| Preconditions: | TGM Windows application
  generated lua code. | 
| Post-conditions:  | Lua code is being displayed. | 
| Actor’s: | User. | 
| Normal Sequence: | -         
  User clicks the
  option ‘Generate Code’ from menu. -         
  Tambo Windows’s
  application will generate lua code. | 
9.      Manage Score
| Name: | Manage Score | 
| Description: | This feature will be used
  to add score in game. | 
| Preconditions: | Score must enable in game
  environment. | 
| Post-conditions:  | Score is displayed | 
| Actor’s: | User. | 
| Normal Sequence: | -        
  User selects
  Game Environment. -        
  User enables
  score and set the axis. | 
10.  Edit Build Settings
| Name: | Edit Build Settings | 
| Description: | This feature help user to
  edit build settings. | 
| Preconditions: | . | 
| Post-conditions:  | Settings applied on the
  game. | 
| Actor’s: | User. | 
| Normal Sequence: | User edits orientation from
  build settings. | 
| Alternative: | Reset the orientation. | 
11.  Manage Tap
| Name: | Manage Tap on Environment. | 
| Description: | This feature will be used
  to add tap or touch function in game. | 
| Preconditions: | User must add touch
  function from properties. | 
| Post-conditions:  | Tap applied successfully. | 
| Actor’s: | User. | 
| Normal Sequence: | -         
  User adds touch
  or Tap function in game. -         
  Enable required
  task in touch function. | 
| Alternative: | Tap function is not added. | 
12.  Edit Config.lua
| Name: | Edit Config.lua. | 
| Description: | This feature will be used
  to edit config.lua from settings. | 
| Preconditions: |  | 
| Post-conditions:  | Settings applied on the
  game. | 
| Actor’s: | User. | 
| Normal Sequence: | -         
  User set scale
  in config.lua from settings. -         
  Set its height
  and weight. | 
13.  Manage Game Boundary
| Name: | Manage Game Boundary. | 
| Description: | This feature will help user
  to set game boundary. | 
| Preconditions: | Game boundary should be
  enabled. | 
| Post-conditions:  | All the fields must be
  filled. | 
| Actor’s: | User. | 
| Normal Sequence: | -         
  User enable
  game boundary. -         
  Fill the
  required fields. | 
14.  Save Project
| Name: | Save Project. | 
| Description: | This feature will help user
  to save the project. | 
| Preconditions: | Save the project. | 
| Post-conditions:  | User gives the path to save
  the project. | 
| Actor’s: | User. | 
| Normal Sequence: | -         
  User selects
  save tab from menu. -         
  Give the path
  to save the project. | 
| Alternative: | Save again. | 
15.  Manage Repetition On Object
| Name: | Manage Repetition on
  Object. | 
| Description: | This feature will be used
  to repeat the object. | 
| Preconditions: | Object is selected. | 
| Post-conditions:  | Repetition is enabled. | 
| Actor’s: | User. | 
| Normal Sequence: | -        
  User selects
  the object. -        
  Enable
  repetition from properties. | 
| Alternative: | Retry.  | 
16.  Manage Collision On Object
| Name: | Manage Collision On Object. | 
| Description: | This feature will be used
  to set collision on objects. | 
| Preconditions: | Object must be selected. | 
| Post-conditions:  | Collision added on object. | 
| Actor’s: | User. | 
| Normal Sequence: | -         
  User selects
  object. -         
  Select
  properties. -        
  Add collision
  on object. | 
Chapter: 4
The Design
4.1
UML Structural Diagrams
4.1.1
Class Diagram
The
class diagram is the main building block of object oriented modeling.
It is used both for general conceptual modeling of
the systematics of the application, and for detailed modeling translating the
models into programming code. Class diagrams can also be used for data modeling. The classes in a
class diagram represent both the main objects and or interactions in the application
and the objects to be programmed.

Figure 2: Class Diagram
4.1.2
Component Diagram
Components are wired together
by using an assembly connector to connect the required interface of one component with the provided interface of
another component.

Figure 3: Component Diagram
4.1.3
Package Diagram

Figure 4: Package Diagram
4.1.4
Deployment Diagram

Figure 5: Deployment Diagram
4.2
UML Behavioral Diagrams
4.2.1
Activity Diagrams
Activity diagrams are graphical representations of workflows of
stepwise activities and actionswith support for choice, iteration and
concurrency. In the Unified Modeling Language, activity diagrams can be used to describe the
business and operational step-by-step workflows of components in a system. An
activity diagram shows the overall flow of control.
Add Object

Figure 6: Add Object
Add Background
Image

Figure 7: Add Background Image
Add Background Music

Figure 8: Add Background Music
Add Gravity

Figure 9: Add Gravity
Add Time

Figure 10: Add Time
Delete Object

Figure 11: Delete Object
Edit Build Settings

Figure 12: Edit Build Settings
Edit Config.lua

Figure 13: Edit Config.lua
Manage Collision On Object

Figure 14: Manage Collision On Object
Manage Game Boundary

Figure 15: Manage Game Boundary
Manage Repetition On Object

Figure 16: Manage Repetition On Object
Manage Touch Event On Object

Figure 17: Manage Touch Event On Object
Score

Figure 18: Score
4.2.2
State Diagrams
State diagrams are used to give an
abstract description of the behavior of a system. This behavior is analyzed and
represented in series of events that could occur in one or more possible states.

                                                             
Figure 19: Add Touch

Figure
20: Manage Collision

                                                          
Figure 21: Manage Object

                                                Figure
22: Manage Score
                                                Figure 23:
Manage Text
4.3
UML Interaction Diagrams
4.3.1
Sequence Diagrams
A
sequence diagram shows object interactions arranged in time sequence. It
depicts the objects and classes involved in the scenario and the sequence of
messages exchanged between the objects needed to carry out the functionality of
the scenario.
Add Object

                                                          Figure
24: Add Object
Add Score

Figure 25: Add Score
Add Text

Figure 26: Add Text
Add Time

                                              
Figure 27: Add Time
Add Collision

Figure 28: Add Collision
Delete Object

Figure 29: Delete Object
Game Background

Figure 30: Game Background
Game Boundary

Figure 31: Game Boundary
Touch Event

Figure 32: Touch Event
Chapter 5
Implementation
5.1 System Implementation
This chapter describes the whole implementation of TGM. We divide its
implementation in different modules which are following.
5.1.1       
Design
1st we design an interface for the application. It was
design keeping in mind the rules of HCI and user friendly. All objects, game
environment properties, events were handle on click. User will not have to
right code.
5.1.2       
Object
and Text.
Then the next important part was object and text. Objects will be
images of anything like cartoon, ball, balloon and many more. For games,
objects have properties and different events are applied on it and text is
displayed where ever user wants. All these functionalities were completed. For
this we create a panel which contains properties of objects and text like
width, height, rotation etc.
5.1.3       
Physics
on object.
Now the third module was physics on object. It was one the most
important modules. In this, we created an easy way to apply physics like
bounce, friction etc.
5.1.4       
Collision
and Touch on object.
In this module, collision and touch events are added to Objects.In
collisions, user will be able to perform many actions like add sound when
collision occurs, display text message. 
In touch user can destroy objects, end the game etc.
5.1.5       
Repeat
Object
This module was designed after collision and touch on object. In repeat
object, objects can be repeated from four areas, top, bottom, right and left.
Repeating can be done for finite numbers or infinite and after specific time
given by the user. 
5.1.6       
Game
Environment
In this module, game environment items were created.  It contains game background, game background
music, game boundaries, and time, score etc.
5.1.7       
Generate
LUA Code.
This is the most important module of the Application. In this module,
lua code of all objects, collisions, text, tap event, game environment is
created dynamically. It includes their position, images, and properties etc.
5.1.8       
Save
Game
This module is to save the file which is required to build a game for
android. All file required including images, music files are also saved with
the main.lua file.
5.1.9       
Play
Game
This module is to play the game which is saved in the previous module.
If the game is not saved, it will automatically save the game and run it on
Corona SDK (Simulator). But in order to play this game on android, user has to
build the game using Corona SDK. Then install it on android. 
Chapter: 6
Testing & Evaluation
6.1 Verification
This is an activity to verify whether we have built the system right or not in the development life cycle.
6.1.1 Functional Testing
Below are some of the test cases, verifying the system functional abilities.
Test Case: 1
| Test Case: Add Object. | ||||
| Description: The user adds an object. | ||||
| Data Requirements: There is no requirement required to add object. | ||||
| Step No.             | Step Description | Expected Result | Transaction Name | User Think Time(in Seconds) | 
| 1 | User open the App | App is opened | Open App | 5 | 
| 2 | User select add
  object option | Object is added in
  the screen | Add Object | 5 | 
Test Case: 2
| Test Case: Delete Object. | ||||
| Description: The user deletes an object. | ||||
| Data Requirements: There should be an object which user wants to delete. | ||||
| Step No.             | Step Description | Expected Result | Transaction Name | User Think Time(in Seconds) | 
| 1 | User select the
  object | Object is selected | Select Object | 5 | 
| 2 | User select the
  delete object option | Object is deleted | Delete Object | 4 | 
Test Case: 3
| Test Case: Add Collision. | ||||
| Description: The user adds collision on object. | ||||
| Data Requirements: There should be an object on which user wants to add collision. | ||||
| Step No.             | Step Description | Expected Result | Transaction Name | User Think Time(in Seconds) | 
| 1 | User selects the
  object. | Object is
  selected. | Select Object. | 5 | 
| 2 | User fills the
  required fields. | Collision is added | Add Collision | 4 | 
Test Case: 4
| Test Case: Add Background Image. | ||||
| Description: The user adds an image for the background
  of game. | ||||
| Data Requirements: There is no requirement required to add background image. | ||||
| Step No.             | Step Description | Expected Result | Transaction Name | User Think Time(in Seconds) | 
| 1 | User selects the
  Game Properties Tab. | Game Properties
  Tab is selected | Select Game
  Properties Tab. | 5 | 
| 2 | User select an
  image for the game background | Background Image
  is selected | Select Background
  Image | 5 | 
| 3 | User adds the
  selected image. | Background image
  is placed | Add Background
  Image | 4 | 
Test Case: 5
| Test Case: Add Sound. | ||||
| Description: The user adds sound for the game. | ||||
| Data Requirements: There is no requirement to add sound on game. | ||||
| Step No.             | Step Description | Expected Result | Transaction Name | User Think Time(in Seconds) | 
| 1 | User selects the
  Game Properties Tab. | Game Properties
  Tab is selected | Select Game
  Properties Tab | 5 | 
| 2 | User selects a
  sound for the game. | Sound is selected | Select Sound | 4 | 
| 3 | User adds the
  selected sound on game. | Sound is added | Add Sound | 5 | 
Test Case: 6
| Test Case: Add Text. | ||||
| Description: The user adds text. | ||||
| Data Requirements: There is no requirement to add text on game. | ||||
| Step No.             | Step Description | Expected Result | Transaction Name | User Think Time(in Seconds) | 
| 1 | User open the App | App is opened | Open App | 5 | 
| 2 | User selects add
  text option. | Text is added in
  the screen | Add Sound | 4 | 
Test Case: 7
| Test Case: Add Physics on Object. | ||||
| Description: The user adds physics on game. | ||||
| Data Requirements: There is no requirement to add text on game. | ||||
| Step No.             | Step Description | Expected Result | Transaction Name | User Think Time(in Seconds) | 
| 1 | User selects the
  object. | Object is selected | Select Object | 5 | 
| 2 | User add physics
  on object | Physics is added on
  object | Add Physics on
  Object | 5 | 
Test Case: 8
| Test Case: Generate Code | ||||
| Description: The user generates code for the game. | ||||
| Data Requirements: There should be an object or event performed to view its code. | ||||
| Step No.             | Step Description | Expected Result | Transaction Name | User Think Time(in Seconds) | 
| 1 | User performs
  events. | Events are
  performed | Perform Events | 5 | 
| 2 | User select the
  generate code option | Code is generated | Generate Code | 5 | 
Test Case: 9
| Test Case: Add Touch Event on Objects. | ||||
| Description: The user adds touch event on object. | ||||
| Data Requirements: There should be an object on which user wants to add touch event. | ||||
| Step No.             | Step Description | Expected Result | Transaction Name | User Think Time(in Seconds) | 
| 1 | User selects the object. | Object is selected | Select Object | 5 | 
| 2 | User fills the
  required fields. | Touch event is
  added on objects | Add Touch event on
  Objects. | 5 | 
Test Case: 10
| Test Case: Add Score. | ||||
| Description: The user adds score for the game. | ||||
| Data Requirements: There is no requirement required to add score. | ||||
| Step No.             | Step Description | Expected Result | Transaction Name | User Think Time(in Seconds) | 
| 1 | User selects the
  Game Properties Tab. | Game Properties
  Tab is selected | Select Game
  Properties Tab. | 5 | 
| 2 | User enable the
  add score checkbox. | Score is placed on
  screen | Enable Score | 2 | 
| 3 | User fills the
  required fields. | Score is added  | Add Score | 4 | 
Test Case: 11
| Test Case: Add Time. | ||||
| Description: The user adds time for the game. | ||||
| Data Requirements: There is no requirement required to add time. | ||||
| Step No.             | Step Description | Expected Result | Transaction Name | User Think Time(in Seconds) | 
| 1 | User selects the
  Game Properties Tab. | Game Properties
  Tab is selected | Select Game
  Properties Tab. | 5 | 
| 2 | User enable the
  add time checkbox. | Time is placed on
  screen | Enable Time | 2 | 
| 3 | User fills the
  required fields. | Time is added  | Add Time | 4 | 
6.1.2 Static Testing
Static testing is primarily syntax checking of the code and manually reviewing the code or document to find errors. Software coding is checked for any type of syntax and logical errors. It is verified that system is in a stable condition and, will alert the user if he/she is performing any action will fail the process.
6.2 Validation 
This is the activity to validate that software meets the specifications and that it fulfills its intended purpose. It may also be referred to as software quality. It is validated that all the system functions are in scope and are same as defined in the requirements analysis phase. Furthermore we have also implemented a some extra features in our system that was not mentioned in our scope and in our project requirements.
6.3 Usability Testing
Usability testing is a technique focuses on measuring a human-made product's capacity to meet its intended purpose for ensuring that the intended users of a system can carry out the intended tasks efficiently, effectively and satisfactorily.The aim is to observe people using the product to discover errors and areas of improvement The system is tested in terms of usability and results have shown complete success.
6.4 Unit Testing
Every module of the application is tested separately. Modules like add object, delete object, add collision, enable physics and many more were tested and results in a successful working condition
6.5 Integration Testing
After the success of unit testing, we combined all the individual modules of the system and tested as a group and testing again the system we get successful results.
6.6 System Testing
We implemented and tested our game which we develop using Tambo Game maker on android it is working effectively and functioning accurately.
Future Work
As our product Tambo Game Maker develops and designing simple 2D games for android we are planning to add some more features in this application. Features like animated sprites and animated background. Advanced functions on the object of game like firing, shooting, jumping and many more.
Chapter: 8
GUI
8.1 Tambo Game Maker
· Loading Application

Figure 33: Loading Application
· Home Page

Figure 34: Home Interface
· Add Object

Figure 35: Add Image
·        
Add Text

                                                                      Figure
36: Add Text
· Background Image

Figure 37: Background Image
· Background Music

Figure 38: Background Music
·        
Open Image

Figure 39: Open Image
· Add Touch

Figure 40: Add Touch
· Add Collision

Figure 41: Add Collision
· Generate Lua

Figure 42: Generate Lua
· Settings

Figure 43: Settings
· Save

Figure 44: Save Project

No comments:
Post a Comment
Note: Only a member of this blog may post a comment.