Fast Paced Strategy Mobile Game

Similar documents
3 Multimedia Programming with C++ and Multimedia Frameworks

The Design and Implementation of an Android Game: Foxes and Chickens

MINECRAFT In Your Library. Michael Shereda and Kyle Rudisill

Lesson 8: Simon - Arrays

Index. 2D arrays, 210

U.Rahamathunnisa 1, S. Pragadeeswaran 2 *Assistant Professor, SITE, VIT University, Vellore. **MS(SE) Student, SITE, VIT University, Vellore.

Fruit Machine. Level. Activity Checklist Follow these INSTRUCTIONS one by one. Test Your Project Click on the green flag to TEST your code

Research on Transplanted Design of Mobile-Terminal-Based Educational Games

Global online games market value

Computer & Video Game Genres. CSCI 130 Computer Game Design Prof. Jason Fritts

Capcom Co., Ltd. (Tokyo Exchange, First Section, 9697) Forecast Revisions for Year ending March 31, 2014

Free Report Preview The Global Growth of Esports Trends, Revenues, and Audience Towards 2017

ActionScript 3 and Game Design

How To Make A Successful Online Game On Runescape

Android Based Mobile Gaming Based on Web Page Content Imagery

Android and OpenCV Tutorial

Graphic Objects and Loading Them into TGF2/MMF2

Game Design Document and Production Timeline. John Laird and Sugih Jamin University of Michigan

Cloud gaming and simulation in Distributed Systems. GingFung Matthew Yeung. BSc Computer Science 2014/15

The Darwin Game 2.0 Programming Guide

Develop Computer Animation

The first step is to upload the Helicopter images from a strip. 1) Click on Resources > Create Sprite 2) Name it spr_helicopter 3) Click Edit Sprite

Boolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority)

Interaction: Mouse and Keyboard DECO1012

NATIVE PERFORMANCE. ANY DEVICE.

How To Write A File Station In Android.Com (For Free) On A Microsoft Macbook Or Ipad (For A Limited Time) On An Ubuntu 8.1 (For Ubuntu) On Your Computer Or Ipa (For

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C

J a v a Quiz (Unit 3, Test 0 Practice)

General Questions about TC3Net Residential DSL:

Facts and figures XS SOFTWARE : WE ARE PROUD OF : Is a leading international company - specializing in browser games for over 9 years now

(Part 2) Lunch Block 7 1:05 PM 2:27 PM

Tutorial on OpenCV for Android Setup

Creating a 2D Game Engine for Android OS. Introduction

LibGDX játék fejlesztése és publikálása Google Play-en. Vörös Viktor, NNG

Investigator s Handbook

Project 2: Character Animation Due Date: Friday, March 10th, 11:59 PM

1. Get to know the SCRATCH Work Space:

Two teams per chapter, three per state. Minimum of 2 students per team Students who excel in the following:

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders

Bergen Community College - Information Technology Course Syllabus

SOFTWARE UNIT 1 PART B C O M P U T E R T E C H N O L O G Y ( S 1 O B J A N D O B J 3-2)

U-HID Pac-LED64 PacDrive U-HID LEDs

Use fireworks and Bonfire night as a stimulus for programming

Home Course Catalog Schedule Pricing & Savings Training Options Resources About Us

USE OF HYPERVIDEO FOR TEACHING C/C++ Luiz-Alberto Vieira-Dias Andre Catoto-Dias

NetEase Games - Paid Internship Program

COURSE OUTLINE REVISED SPRING 2008

User manual Disk-Transfer. for Casablanca Avio, Prestige, Kron and Solitaire

ecifs In Depth Copyright 2001, CodeFX

Test Fragen. October 2003 Project Management Wilhelm F. Neuhäuser IBM Corporation 2003

Chapter 1 Basic Introduction to Computers. Discovering Computers Your Interactive Guide to the Digital World

[Name of the game] Game Design Document. Created by [Name of the team]:

Untitled. Game Design Document Team Brest

Orange Unified School District Video Game Design II Year Course

Summer. at CSI. Launch Your Creativity

How to Build a Simple Pac-Man Game

How to Install and use Windows XP Mode and Windows Virtual PC in Windows 7 for older 32 bit only Applications

Online Video Brochures: A Powerful New Direct Marketing Application

Computer Vision. License Plate Recognition Klaas Dijkstra - Jaap van de Loosdrecht

Software Manual. HP SimpleSave. Backup Software User Manual. SimpleSave

Intelligent Resource Scheduling for Reduced Turnaround Durations. Rob Richards, Ph.D.

GAME MASTERS: THE GAME Resource Kit

ID TECH UniMag Android SDK User Manual

EXECUTIVE SUMMARY. The 7th Guest Part III: The Collector 1

Game Programming with DXFramework

GAME:IT. Designing Good Games

Lecture 4 Multiplayer Game Design 13/14 S1

Age of Wonders I Quick Start Guide

MS Active Sync: Sync with External Memory Files

Config software for D2 systems USER S MANUAL

Introducing PlayFab. The Complete Game Operations Platform. October 28, 2014

Microcontroller Systems. ELET 3232 Topic 8: Slot Machine Example

Keil C51 Cross Compiler

Mobile App Development Using App Inventor

Proper Instructions Play Yugioh Card Game Mac

BOLLI Registration Information and FAQ

The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications

Project Management Dr. James A. Bednar

Mobilozophy L.L.C. All Rights Reserved

With Massive Reach, Precise Targeting, and Stellar Customer Support, PlayHaven Ads Outperform All Other Mobile Game Ad Networks

The Course.

Information and Communication Technology (Full Course) Unit 2: Using Multimedia and Games Technology

ECE 122. Engineering Problem Solving with Java

Kids College Computer Game Programming Exploring Small Basic and Procedural Programming

Design guidelines Handheld gaming

Discovering new features in HTML5 Offline applications

Global entertainment and media outlook Seizing the initiative

IMGD The Game Development Process: Fun and Games

Learn Game Development Course 2015

Electronic Games: A STORY OF TWO MARKETS Today s Mainstream Casino Gamer. Tomorrow s EGM and Interactive Audience

Term Project: Roulette

Software Evaluation Guide for Autodesk 3ds Max 2009* and Enemy Territory: Quake Wars* Render a 3D character while playing a game

PIC 10A. Lecture 7: Graphics II and intro to the if statement

Design and Development of a Mobile Game - Based Learning Application in Synonyms, Antonyms, and Homonyms

WATC Merit Badge College 2016 Game Design

#include <Gamer.h> Gamer gamer; void setup() { gamer.begin(); } void loop() {

Application Note: AN00121 Using XMOS TCP/IP Library for UDP-based Networking

ABSTRACT INTRODUCTION. driver for Java is capable of sending SQL statements, to access and update SAS data.

5 - Low Cost Ways to Increase Your

Transcription:

HKUST Independent Project CSIT 6910A Spring 2014 Report Fast Paced Strategy Mobile Game Submitted By, Email: jiefeng218@gmail.com MSc. Information Technology (2013), HKUST Supervised by, Dr. David Rossiter Department of Computer Science and Engineering, HKUST 1

Content Background... 3 1.1 Why Game?... 3 1.2 Why on Mobile Phone?... 4 1.3 Why Fast paced strategy?... 4 Introduction... 5 2.1 Brief description... 5 2.2 Demonstration... 5 Game Design... 11 3.1 Hardware & Software Employed... 11 3.2 Flow Chart of Game... 11 3.3 Main Class Diagram... 12 3.4 Implementation of Fight States... 12 3.5 Other Details... 15 Conclusion and Future work... 16 Appendix... 17 2

Background As a game enthusiast, I want to develop an Online Fast Paced Strategy Mobile Game as my independent project. 1.1 Why Game? Gaming can make a better world Jane McGonigal, TED Talk 1. Though using one game to change the world is idealistic, Gaming can actually affect player imperceptibly and make a better world. How big is the gaming audience? No other sector has experienced the same explosive growth as the computer and video game industry. Michael D. Gallagher, president and CEO, Entertainment Software Association. Actually, the total number of people around the globe who play games is expected to surpass 1.2 billion by the end of 2013 2. Furthermore, the global games market is currently worth $70.4 billion and is expected to grow at 6% a year 3. In China, there are about 490 million game players till 2013. The total game market income has reached $13.7 billion in 2013, increased by 38% 1 http://www.youtube.com/watch?v=de1dubesgym 2 Newzoo: Global Games Market Report 3 2013 State Of Online Gaming Report 3

than 2012. The game industry has great potential of development. 1.2 Why on Mobile Phone? Portability is the most important feature of mobile phone, which make it more suitable for some simple games than PC. These kind of games aim for players time fragments. What s more, with development of mobile phone industry and increasing speed of mobile network (4G is available now in some country, and 3G is becoming popularization), better special effect and more social interaction on mobile game become possible. All of these enhance the game experience and attract more and more people playing mobile phone game. In China, the number of mobile phone user is approaching 1.15 billion, and it keep increasing. The number of mobile gamers in China is expected to hit 192 million by the end of 2012, according to market researcher Niko Partners. This means that the number of mobile gamers now likely exceeds the number of PC players in China. Mobile Game is now becoming the hottest one, and I think this situation will keep for more than 3 years, especially in China. 1.3 Why Fast paced strategy? In my opinion, mobile game should aim for mobile phone users time fragments. So it should be fast paced, suitable for several minutes, even 4

seconds. That also means the game should be simple with easy operations and short story, unlike traditional RPG game. Indeed, the most popular mobile game are chess game, card game and casual puzzle game, nowadays. My inspiration comes from these kinds of games, and mostly from Hearthstone, a fast-paced strategy card game from Blizzard Entertainment. But it is still a little complex and monotonous. This project will creates a simple and funnier mobile game. Introduction 2.1 Brief description This game is a turn-based fighting Game. At the beginning, the player have only one sprite. And he can use it to go through different chapters to fight with different monsters. He can also use skill to capture the monsters to make up a bigger team (change the fighting sprites in the edit scene). After winning the fight, all the sprites that have attended the fight, will get some experience (sprites will increase their level after getting enough exp.) and goods. 2.2 Demonstration Main Scene: The first scene after start the game, player can choose different part of the game. After click the start button, there are several chapters. 5

Fig.1 Main Scene Fig.2 Choose Chapter Set Scene: Player can enable or disable the background music and sound effect, or change their volume. 6

Fig.3 Set Scene Fight Scene: The most important part of the game. The monsters are on the left hand side, while the player s sprites are on the right. There are 4 different commands: attack, skill, goods and escape. 7

Fig.4 Fight Scene Attack is the basic command, click on it and next click on one of the monsters, the sprite will attack it. Fig.5 Sprite attack After clicking on the skill and goods button, the skills or goods will appear. (You can catch new sprites) 8

Fig.6 Skills Fig.7 Skill effect After victory, player can get some items, like HP (Item that can increase sprite s healthy point) and MP (Item that can increase sprite s magic point). Also his sprites, which participated in the battle, will get some EXP (Experience, which can be used to increase sprite s level). 9

Fig. 8 Victory Edit Scene: In this scene, player can check his own sprites and make different formation. The maximum number of sprites that can attend in battle is 4. Fig. 9 Edit Scene 10

Game Design 3.1 Hardware & Software Employed Platform: Android Game Engine: Cocos2dx (version2.2.1) Development environment: VisualStudio2012, CocoStudio (version 1.1.0.0), JDK&JRE, Eclipse with ADT, NDK Develop language: C++ 3.2 Flow Chart of Game Fig.10 Flow Chart 11

3.3 Main Class Diagram Fig.11 shows the dependency of the main classes. (The simple version, taking Fighting Scene as example) Fig.11 Main class diagram 3.4 Implementation of Fight States The most important part in this game are the logic states of sprites. There are many states of each sprite, and the states of them are almost the same. Considering these characteristics, they can be implement as finitestate machine. The state diagram of sprite is like this: 12

Fig.12 state diagram This is implemented by using State Pattern and Observer Pattern. Fig. 13 show the class diagram of State Pattern. Fig.13 class diagram of State Pattern implementation 13

Observer Pattern is used when sprites are waiting response from others. For example, when attack command is chose, the active sprite will waiting for click on enemy. The following code is for observing and posting: //add an observer CCNotificationCenter* t_pnoticenter = CCNotificationCenter::sharedNotificationCenter(); SEL_CallFuncO t_ocallfunco = callfunco_selector(basicsprite::getresponsefromenemy); t_pnoticenter->addobserver(m_sprite, t_ocallfunco, "enemy", NULL); m_sprite->setstate(m_sprite->waitingclickonenemy); //post a message void Formation::ccTouchEnded(CCTouch *ptouch, CCEvent *pevent) { BasicSprite* bs = NULL; if (containscctouchpoint(ptouch, bs) && isalive(bs->gettag())) { char* name = NULL; if (side == PLAYER_SIDE) name = "player"; else name = "enemy"; CCNotificationCenter::sharedNotificationCenter()->postNotification(name, bs); } } 14

3.5 Other Details Constans.h AudioManager --- including all the file path --- music related interface package /* preload */ static void preloadbgmusic(const char* music); static void preloadeffect(const Sound& sound); /* called at AppDelegate */ static void init(); /* play */ static void playmusic(const char* music,bool loop = true); static void playeffect(sound& sound, bool loop = false); static void playeffect(const char* path,bool loop = false); /* pause */ static void pausemusic(); static void pauseeffect(const Sound& sound); /* stop */ static void stopmusic(bool release = false); static void stopeffect(const Sound& sound); static void stopalleffect(); /* resume */ static void resumemusic(); static void resumeeffect(const Sound& sound); /* end */ static void end(); 15

AnimationUtil --- animation related interface package //add a sprite action frame static void createspriteanimwithframename(const char* spritename, const char* actionname, CCAnimation* & animation, float delay = 0.1f, unsigned int iloops = 1); //add all the action frame of a sprite static void addspriteanimationswithname(const char* spritename); //add skill effect static void addskillanimationswithname(const char* skillname, float delay = 0.1f, unsigned int iloops = 1); //get sprite animation static CCAnimation* getspriteanimationwithname(const char* spritename, int action); //get skill animation static CCAnimation* getskillanimationwithname(const char* skillname); Conclusion and Future work In this project, I have finished the single-player part of a turn-based fight game, the whole fighting scene and edit scene. It can easily adding more sprites or items by import more pictures or frame animations resource into the project, the code will automatically read these resources, as mention before. But there are a lot of elements that can be added. For example, the sprite add attributes like Critical Strike and Dodge Rating, which can increase the diversity of the game. And still, this game is a single-player game, it can be change to be a multi-player online game. That will make it funnier and more attractive. 16

Appendix Minutes of the 1st Project Meeting Date: Friday, 21 March 2014 Time: 1:10 PM Place: Room 3512 Attending: Prof. Rossiter, HUANG Jiefeng Absent: None Recorder: HUANG Jiefeng Approval of minutes The minutes of the last meeting were approved without amendment. Report on Progress HUANG Jiefeng finished the project demo, including the main scene, set scene and part of the fight scene. Discussion Items and Things to Do Change the game to single-player one Finish the fight scene Meeting adjournment The meeting was adjourned at 2:00 PM. 17

Minutes of the 2nd Project Meeting Date: Thursday, 24 April 2014 Time: 1:30 PM Place: Room 3512 Attending: Prof. Rossiter, HUANG Jiefeng Absent: None Recorder: HUANG Jiefeng Approval of minutes The minutes of the last meeting were approved without amendment. Report on Progress HUANG Jiefeng finished the main part of the fight scene, including adding skills, goods and sprites attributes. Discussion Items and Things to Do Finish the edit scene Write the first version of report Meeting adjournment The meeting was adjourned at 2:30 PM. 18

Minutes of the 3rd Project Meeting Date: Wednesday, 14 May 2014 Time: 1:00 PM Place: Room 3512 Attending: Prof. Rossiter, HUANG Jiefeng Absent: None Recorder: HUANG Jiefeng Approval of minutes The minutes of the last meeting were approved without amendment. Report on Progress HUANG Jiefeng finished and showed the whole project, including the code, report and video. Discussion Items and Things to Do Modify and submit the project Meeting adjournment The meeting was adjourned at 1:30 PM. 19

Minutes of the 4th Project Meeting Date: Friday, 16 May 2014 Time: 2:00 PM Place: Room 3512 Attending: Prof. Rossiter, HUANG Jiefeng Absent: None Recorder: HUANG Jiefeng Approval of minutes The minutes of the last meeting were approved without amendment. Report on Progress HUANG Jiefeng showed the final video and report. Discussion Items and Things to Do None Meeting adjournment The meeting was adjourned at 2:30 PM. 20