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.