1. GITAM INSTITUTE OF TECHNOLOGY, GITAM UNIVERSITY
Internship Project Report
on
“Shootemup”
(An Android Game)
Developed By: Vivek Prasad
B.Tech CSE (4/4)
3. ACKNOWLEDGEMENT
I deem it is my proud privilege to express my sincere regards and gratitude to Mr.
Nikunj Jain, Co-Founder (inoXapps) for providing this valuable opportunity to pursue
my internship at inoXapps Pvt Ltd. Interning at inoXapps is a real
implementation of knowledge & practical experience.
It is also my duty to record my thankfulness to Mr. Rachit Jain, Technical Head and Mr.
Abhishek Rai, Senior Android Game Developer, who imparted their valuable knowledge
on game coding skills. Their indebted knowledge about the subject helped me a lot to
acquire the insight of it and finally complete my project.
Finally, I take this opportunity to acknowledge the entire team of inoXapps who
collaborated in making this work successful.
(Vivek Prasad)
4. INTRODUCTION
Shootemup is basically a partial 3D shooting based android game developed using the
Libgdx game engine using Java as the base language and openGL ES library for graphics
implementation. The game is played in the X-Z axis with some reference o the Y-axis.
The game has very rich graphics with 3D monsters, bullets etc.
The Libgdx project is a cross-platform game development library written in Java, with
some JNI code for performance hungry sections. It abstracts away the differences
between writing desktop, Android and HTML5 games based on standards like OpenGL
ES/WebGL. Applications can be prototyped and developed entirely on the desktop, then
only 6 lines of code are needed to run your app on Android or HTML5.
Libgdx is a Java game development framework that provides a unified API that works
across all supported platforms.
The framework provides an environment for rapid prototyping and fast iterations.
Instead of deploying to Android/Javascript after each code change, you can run and
debug your game on the desktop, natively. Desktop JVM features like code hotswapping
reduce your iteration times considerably.
The features of the Libgdx game engine can be enumerated as:
Cross-platform graphics, audio, input, and file i/o abstractions
Direct OpenGL ES 1.x and 2.0 access
Meshes, textures, frame buffers, shaders and other OpenGL wrappers
Sprites, atlases, fonts, particles
Linear algebra and geometry utilities
2D scene-graph and UI library
Box2D physics and TMX tile map support
5. DESCRIPTION OF THE IDEA
Shootemup is basically a simple shooter game. The protagonist of the game shoots
bullets at monsters that spawn randomly onto the foggy land from some other world.
The monsters also shoot bullets towards the protagonist. An aim is provided that helps
the protagonist to shoot at the monsters which can be moved by using the D-pad
provided on the lower left corner of the screen. To shoot bullets, a tap on the lower right
corner of the screen is required. The monsters are also of different type and strength,
some requiring more bullets to be shot at to be killed and some even shooting bullets in
response. The basic aim of the game is to kill all the monsters before they breach the
protagonist’s base. Each breach decreases the protagonist’s age by a certain percentage
depending on the type of the monster. The bullets of the monster also make the health
bar of the hero to decrease a bit. If the health bar becomes empty, then the protagonist
is killed. Each kill rewards the hero with a certain amount of money which he can use to
buy more advanced guns at the shop menu. The game has a total of 3 different
backgrounds to play in, 4 different guns to select from and 5 different kinds of monsters
to shoot at.
6. IMPLEMENTATION DETAILS
The app is coded using Java and openGL using the Eclipse IDE and Android SDK
implemented using the libgdx game engine.
The user interface of the game provides the player with a loading screen after which the
main screen of the game is shown. The main screen has buttons for:
I. Play: For playing the game
II. Option: For toggling on & off music and volume
III. Store: For going into the shop to buy new weapons
IV. Highscore: For checking the top scorer’s list
Play: On tapping the play button, the player gets to choose the desired mission out of
the three backgrounds possible if they are unlocked. He then is taken to the level
selection screen where he can choose one of the levels corresponding to that mission.
The user can aim on the monsters by using the D-pad provided at the lower left corner
of the screen. To shoot bullets he needs to tap on the lower right corner of the screen.
The score is displayed as money earned in the upper right corner of the screen.
On breach of the area by the monsters or by getting shot by the monster’s bullets, the
health bar of the protagonist gets reduced by a predefined percentage.
The level ends when all the monsters in that level are dead and the protagonist is still
alive.
The play screen also has a pause button at the middle top of the screen which is used to
pause the game. On the pause screen the user has option to resume the game, restart
the game or go to the main menu.
7. Option: The option screen has a volume slider to increase and decrease the volume and
two buttons to toggle music and sound on & off.
Store: The store screen has 4 guns that the player can buy with the money he has
earned.
Highscore: This screen shows the list of top scorers in the game.
8. TECHNICAL ASPECT OF THE PROPOSED SOLUTION
Memory Requirements: “Shootemup” game needs around 32 MB for installation due to
its rich graphics and an extra 200 to 500 KB for user data.
Efficiency: In user testing conducted on android handsets of various processing powers,
the game ran without any lag or flicker.
User friendliness of the app: The app has a very intuitive user interface and game play
and has very rich graphics that will attract users of all age and taste.
17. CONCLUSION
Shootemup perfectly caters to the taste of audiences it was intended to be made for
providing an intriguing gameplay along with rich graphics. Attention to every minute
detail of gameplay is given to make the user experience highly rich.
The game has various missions and levels providing over 5 hours of gameplay. The
highscore section even intrigues players to break each other’s top scores making the
game even more addictive.