Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.


IMAT3608 - Mobile Games Lecture 17 Revision Part 2

This lecture covers the second part of our discussion of the forthcoming exam.

Jethro Shell

on 31 March 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of IMAT3608 - Mobile Games Lecture 17 Revision Part 2

IMAT3608 - Mobile Games Lecture 18
Lecture 18 - Revision Lecture
Part 2

Overview of Seminar Papers
Themes For Questions Part2
Overview of Seminar Papers
Different overall themes were covered in seminar presentations.
These will be represented as essay style questions.
Dr Jethro Shell

Generating Income From Mobile Games
1) Paid Apps: Direct income from the purchase of a game. Positioning of cost is important (99p or £4.99?). Get people to download as Alpha with only a couple of levels -> purchase full version.
2) Freemium: Initial aquisition of the app is free but to progress within the game the user is encouraged to purchase additional content (coins to purchase, speed up progress, additional items or levels). Discussion of misuse.
3) Data Gathering: The app can gather data about user behaviour, type of activities etc and this can be sold and/or for marketing purposes.
4) Cross Promotions: Using a purchased game to promote additional games / services -> games on consoles, other titles, etc.
5) Advertising: Use of advertising space within the gaming structure -> banners, clickable ads, increase purchase price to remove ads.
Activity LIfecycle
Top of pyramid -> running in foreground, user interacts
User leaves activity -> Moves down
onCreate - first process, main entry point, onStart and onResume in quick sucession
Pause - partially visible
stop but not continue and release resources
OnPause is simple
Initialised every time so think of components

onRestart is called when we return
onStop is used to clean up, similar to activity starting for first time
Last stage is onDestroy
Remove background threads and long-running resources.
3d Graphics
Android uses OpenGL ES API
Number of versions: 1.0 / 1.1 (Android 1.0), 2.0 (Api level 8), 3.0
Two fundamental classes:
GLSurfaceView: draw and manipulate objects
GLSurfaceView.Renderer: Required for drawing objects, needs separate class.
3d graphics exist in x,y,z space.
OpenGL deals in primitives (triangles and quads).
Draw to screen using onScreenCreated, onSurfaceChanged, onDrawFrame.
Look at how to construct 2d images:
Vertices of a triangle
Put vertices in buffer
Setup index array
Draw elements
Artificial Intelligence
History of AI: Early AI came with Pacman (State machine), Golden Eye and Metal Gear Solid improved, recent games vast increases (GTA5 etc).
Simple AI techniques:
Seek - takes input from the character and the target as static data. Goal is to reach target.
Flee - takes input again. Goal is to escape from character (chase away).
Wander - Use of simple random values to have character randomly reach goal point.
Path Finding:
Important for NPC to get from point A to point B.
Can easily fail: aimless, objects in the way, stuck
Use directed non-weighted graphs
A* considers the node that is "most likely" to lead to the shortest path. Most likely is controlled by a heuristic.
A* works on iterations
Decision Trees:
Fast and easy to implement.
Can be learnt from data or produced from experience.
Made up of connected decision points.
History of Mobile Games
1) Programmable calculator games, handheld games -> early products.Early mobile games: First mobile game, Tetris 1994. Snake (selected models 1997) preloaded in 1998. Snake first multi-player game via infrared port.
2) Hand held gaming: Gameboy, N-Gage mobile phone focused on Gaming 2003, lure people away from Gameboy.
3) Evolution of mobile gaming: Nintendo introduce Gameboy advance and DS. Touchscreen elements. 3DS offers larger, higher resolution screen and 3D. PSP is introduced to the market -> advanced gaming.
4) Advent of smart phones: Discussion of the introduction of iPhone and the emergence of Android on devices. Additionally the impact of Google Play and Apple App store. Games are more assessable, cheaper and easier for developers to distribute.
5) Future of mobile gaming: Evolution of hardware -> greater input modalities such as eye tracking, increased processing power (3d graphics etc), interaction with consoles and "play everywhere" gaming.
M - Learning
1) What is M-Learning: The ability to learn everywhere at any time without permanent physical connection to cable networks.
2) Examples: Improve cognitive abilities of players trough brain training, iPad use fostered sharing and collaboration, use of Duolingo to learn a language.
3) Advantages: Accessibility, interaction, adaptability to a student, wider access, special education, collaboration, availability
4) Issues: Technology, correct design, "right tool for correct job"
5) Future: Changes in technology can enhance learning opportunities, greater ubiquity of devices for students, teaching staff greater usage of devices.

Augmented and Mixed Reality
1) What is augmented reality?: Create a sensation of virtual objects in the real world. Combine VR and real elements.
2) Applications to mobile: Interactive remote toys, Piclings (Mario Style platformer), ARBasketBall (Use markers for baskets)
3) Benefits: Immersive environment, enhance learning, additions to locations etc
4) Limitations: Processing power, camera, location based, technologically advanced
5) Future: Increased ability of mobile devices. More AR (Google Glass). Faster connections (4G) make social AR gaming more applicable.
Mobile Games Vs Mobile Phone Games

1) Pricing: Mobile games rely on a single payment rather than micro-payments or advertisements. Mobile phone games are predominantly cheaper in the first instance.
2) Development time: Mobile phone games often can be less involved in the developmental cycle. This is reflected in the cost profile. Indie developers use the platform.
3) User perceived value: Mobile games will generally have larger content (tied to cost profiles). Mobile games -> longer to complete, depth of gameplay compared to mobile phone games. Reflection of casual gaming.
4) Usability / Controls : Touch screen / accelerometers (easy to use, single hand) vs gamepad (designed for gameplay, can be complex)

Games Engines For Mobile Development
1) Why use game engines?: It assists the creation and development of games. Framework to abstract elements of a game so they do not need to be directly coded. This can include graphics, sound, asset management etc. Speed, consistency, cost, cross platform.
2) Cross platform: iOS, Android, Windows 8 -> Marmalade, Unity, Coco2d (Remove need for single approach)
3) Game Engine Framework: Functionality (graphics, sound, animation etc), visual tools for development, reusable, can be middleware components that can be extended.
4) Graphics: Graphical engines specific for 2d and 3d support.
Interfaces and Interaction Techniques For Mobile Games
1) Visual: Camera are now ubiquitous parts of smart phones. Used in many games. AR content. Emergence of eye tracking. Samsung introduced the technology. Starting to see in games.
2) Sensors: Accelerometer and gyroscope are now used in many games. Tilt to run. Single hand movement. GPS to add location data to games (Ingress etc).
3) Touch: Trackball seen in older phones. Stylus has made a re-emergence (Samsung Note). Drawing games can be more applicable to this device / interaction. Plug-in controller for specific gaming. D-Pad style devices.
4) Connectivity: Infrared was used initially, less so now. Bluetooth ubiquitous now. File transfer, also short range multi-player gaming.
5) Microphone: Voice recognition can provide interaction. Innovative ways of control (Pah!, Singster).

Comparison of Platforms
1) Languages: Android -> Java, popular, can use scripting; iOS -> Objective-C, exclusive to iOS and OSX.
2) Development Environment: Android -> Eclipse IDE, ADT, ability to push apps to Google Play, sign apps, GUI build; iOS -> Xcode
3) Requirements: Android -> IDE, $25 developer profile; iOS -> Mac, Xcode, iOS developer profile ($99 per annum) , Apple review apps.
4) Markets: Android larger device coverage, larger market share, lower average app revenue (larger qty on store).
Overview of Seminar Papers
Location Based Games
1) Market:
Current games use location to change the nature of the game.
Geosocials -> use their location to find treasure, Qonqr -> use location to challenge other players, Ingress -> find locations defined as portals.
2) Limitations:
Tracking accuracy: Can be as little as 25m.
Based on location: May make game unbalanced.
3) Other uses / games:
Pac-manhattan -> people directly interacting.
Exercise based gaming -> FourSquare (gamification for discount)

Heuristics in Games
1) Usability heuristics:
Easy access to the gameplay.
Layout of buttons / menus
Reward system -> clear and concise.
2) Gameplay heuristics:
Entertaining, non-repetitive, easy to understand.
Heuristics are used during the design phase.
Testing can be lengthy.
Set of heuristics can be followed (Korhonen & Koivisto): Clear goals, see progress, rewards, player is in control, balance.
3) Mobility heuristics:
Screen brightness next to surround.
Power consumption.
Variable audio.
Change to events (phone call etc)
Size of hardware
Start , suspend and end game easily.
Consider each type of interface.
Sales Strategies
1) Paid Apps: Fixed revenue for an application on the app market place. Immediate revenue.
2) Partnerships: Sponsorship from a major brand (Angry Birds and Star Wars). Purchase characters etc.
3) Game App Promo: Mailing lists -> increase exposure, social media etc.
4) Advertisements: Cost Per Click, Cost Per Impression, Banners -> produce revenue.
5) In App Purchase: Expand gaming experience, extra levels, increase progress etc.
6) Merchandising: Outside of game but can produce linked revenue.
GUI Building for Mobile Games
1) Importance of GUI:
Replacement to command line.
Easier interface to grasp quickly (intuitive).
Offers menus and options.
2) Good GUI design:
Requires careful, structured planning.
Use design guidelines and design goals.
Mobile needs to address the differing haptic interfaces and screen resolutions.
Considerations of the need to use soft keys and full screen interaction.
3) Design for specific users:
Mobile GUI have a wide range of tasks. Must analyse the requirements carefully and target the design.
Older users may need large font size and avoidance of bright colours.
Developers can offer configuration to assist with generalisation.
4) Mobile Vs PC:
Mobile have small screens and resolutions, less processing power and often only touch screens.
Angry Birds -> ported to PC, uses similar interface.
Dungeon Defenders -> ported to PC, mobile is simpler, on screen button pads. PC uses keys, shows more detail, increased features.

Multi-player Mobile Games
1) Definition:
Video game played on a mobile device that lets you interact with another individual over a communication connection (Bluetooth etc).
2) Who plays MMG? :
Majority aged over 39, possibly due to casual nature of games.
Increase in smart phone ownership (approx. 6.8 billion).
3) MMG's :
Rise of games such as Words with Friends and 8 Ball Pool.
Casual games rather than hardcore MMG that are seen in the console market.
Release of next - gen may alter this trend.

Managing Data
Persistence - maintaining a data object outside the length of time that the OS process requires it.
Can be done with programming languages, databases and persistent storage.
Writing data - Create location, use buffer writer, write data, catch any exceptions.
Read data - Locate persistent storage, use buffer reader, read data, catch exceptions.
Need to manage permissions.
Content Providers:
Manage access to a central repository.
Provide access to complex data, ability to copy files and custom search.
Provides CRUD (Create, Retrieve, Update and Delete).
We discussed: retrieving data, using data, inserting data and updating data.
Data centric approach - different from MVC: view database, edit and control it.
Android provides SQLite databases and content proviers.
Each app has its own database.
Content providers offer defined interface for using and sharing database.
Class takes care of opening, creating and upgrading databases.
Create database -> Upgrade database using handler -> Add an item -> Find an item
create the open list of nodes, initially containing only our starting node
create the closed list of nodes, initially empty
while (we have not reached our goal) {
consider the best node in the open list (the node with the lowest f value)
if (this node is the goal) {
then we're done
else {
move the current node to the closed list and consider all of its neighbors
for (each neighbor) {
if (this neighbor is in the closed list and our current g value is lower) {
update the neighbor with the new, lower, g value
change the neighbor's parent to our current node
else if (this neighbor is in the open list and our current g value is lower) {
update the neighbor with the new, lower, g value
change the neighbor's parent to our current node
else this neighbor is not in either the open or closed list {
add the neighbor to the open list and set its g value
Location Based Data
Location can be global (lat and long), referenced (building) or named (street).
Different ways of knowing where we are:
GPS: triangulation using three or more satellites.
Cell ID: Within a cell which has a unique ID and longitude and latitude. Varying sizes so accuracy can be improved by triangulation.
GPS Independent Data:
Get data without using Google Maps.
Provided by the use of LocationProvider.
Google Maps:
API handles all access to Google maps servers.
1) Install the Google Play services SDK.
2) Add Google Play services as an Android library project.
3) Reference the Google Play Services in your app's project.
4) Obtain an API key. To do this you need to register a project in the Google
Add features: Markers, shapes, Overlays and Tiles.
Avoid using objects when possible.
Recycle objects when they are used.
Clean up after yourself.
Eliminate unnecessary grphics.
Rotate and mirror them in the game, reduce redundancy.
Minimise network usage.
Use static constants.
Use instance rather than getters.
Use enhanced loops (two times faster).
Avoid using floating point.
Use libraries were possible.

Test application on devices.
Use automated testing where possible (uiautomatorviewer).
Use of proguard and lint for optimisation and obfuscation.
What to optimise:
Maintainability - structure and organisation of code.
Size - memory requirements.
Portability - Run on different platforms.
Speed - execution of the game.
// Defines a new Uri object that receives the result of the insertion
Uri mNewUri;


// Defines an object to contain the new values to insert
ContentValues mNewValues = new ContentValues();

* Sets the values of each column and inserts the word. The arguments to the "put"
* method are "column name" and "value"
mNewValues.put(UserDictionary.Words.APP_ID, "example.user");
mNewValues.put(UserDictionary.Words.LOCALE, "en_US");
mNewValues.put(UserDictionary.Words.WORD, "insert");
mNewValues.put(UserDictionary.Words.FREQUENCY, "100");

mNewUri = getContentResolver().insert(
UserDictionary.Word.CONTENT_URI, // the user dictionary content URI
mNewValues // the values to insert
Full transcript