lerpz the rocketeer

52
BEAT IT! GAMES VIVA CS4343 – AY2010/2011 SEMESTER 2 Lerpz The Rocketeer

Upload: yvon

Post on 23-Feb-2016

33 views

Category:

Documents


0 download

DESCRIPTION

Lerpz The Rocketeer. Beat It! Games VIVA CS4343 – AY2010/2011 Semester 2. Overview. Full Game 12 levels 2 mechanisms Leaderboard for added incentive No major bugs, minimum minor bugs Full integration with Server Complete data collection and analysis - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lerpz The  Rocketeer

BEAT IT! GAMESVIVA

CS4343 – AY2010 /2011 SEMESTER 2

Lerpz The Rocketeer

Page 2: Lerpz The  Rocketeer

Overview

Full Game 12 levels 2 mechanisms Leaderboard for added incentive

No major bugs, minimum minor bugsFull integration with ServerComplete data collection and analysisCompleted observed experiment with 16

testersCollected 50 online player data

Page 3: Lerpz The  Rocketeer

PRODUCER QA LEAD

EXPERIMENT LEAD

Jie Hui

Page 4: Lerpz The  Rocketeer

Jie Hui – Producer

Weekly meetings Recording minutes Keeping agenda Tracking progress Keeping members updated with status of projects

Reports and presentations Keeping documentation of the design process Drafting of reports Led presentations

Page 5: Lerpz The  Rocketeer

Jie Hui – QA Lead

Tested builds extensively as soon as they are out

Tested data collection in games whenever possible

Helped in design process to ensure design stays true to research

Drafted test plans and test cases Led the first iteration of game testingDrafted side documents for any possible

additional features for game Side story

Page 6: Lerpz The  Rocketeer

Jie Hui – Experiment Lead

Designed and built website to host game www.crashstart.com/rocket

Researched on academic papers for referencesDrafting of game questionnaires and feedback

formsLed final experiment process

Recruitment of testers Scheduling of testers Collation of data Data crunching Analysis of data

Page 7: Lerpz The  Rocketeer

Jie Hui - Challenges

Keeping track of what 3 people are doing all at once

Keeping to deadlinesDesigning a novel test procedure for games

research

Page 8: Lerpz The  Rocketeer

PROGRAMMER GUI ARTIST

Luo Lan

Page 9: Lerpz The  Rocketeer

Luo Lan - Contributions

1. Data Collection+ Database Design+ Jump Data Collection

2. Login & Sign up System+ Data retrieve+ GUI Design+ Function implementation

3. Menu & Ranking System + GUI Design+ Function implementation

4. Feedback & Profile+ Database

Page 10: Lerpz The  Rocketeer

Player Jumpsdoes

Score

sort

Feedback

Profile

name

password track

ID

Level_ID

Attempt_ID

Jump_ID

From Platfor

m

From world

coordinateTo

Platform

To world coordinat

e

Angle

time

ID

name Level_ID

timeTaken

NO. of Attemp

s

1 N

N

1

•Luo Lan - Database Design

Page 11: Lerpz The  Rocketeer

•Luo Lan - Database design

Player:

Jumps:

Score:

Page 12: Lerpz The  Rocketeer

Luo Lan - Jump Data Collection

Pass jump data from Unity3D to PHP script after player completes or skips the level. (unityPHP.js)

Process jump data in PHP script and insert into database.(rocket_try.php)

Update the number of attempts in player table and score table. (rocket_try.php)

Page 13: Lerpz The  Rocketeer

Luo Lan - Data retrieval

• Group all players jump records by levels. (level_Info.php)

Separate expert group and novice group by score for each level. Score is computed from time and NO. of attempts .(rank_final2.php)

Calculate total number and average of success jump and fail jump for each obstacle, grouped by expert and novice. (num.php)

Calculate average time taken for each obstacle, grouped by expert and novice. (timeTaken.php)

Page 14: Lerpz The  Rocketeer

Luo Lan - Login & Sign up System

GUI Design Unity3D GUI Component, GUIStyle Button, background image

Page 15: Lerpz The  Rocketeer

Luo Lan - Script

Get player name and password from Unity GUI and pass data to PHP script.

PHP script connect database and check the uniqueness and validness.

Create a new account in player table and a new table of jump records if player’s name has not been used.

Return the track number and all levels’ complete status.

• (login.js) •(rocket_logsign.js)

Page 16: Lerpz The  Rocketeer

Luo Lan - Menu & Ranking System

GUI Design Layout, Unity3D GUI Component, GUIStyle Button, background image

Page 17: Lerpz The  Rocketeer

Luo Lan - Script

Get player information which include name, track and level completed status from database through PHP script.

Calculate and display correct layout according to track. If track is “jump first”, the “Rocket Launcher” column should place at left. If track is “rocket first”, the “Jet Pack” column should place at left.

Calculate and display correct button type (“attempted”, “completed”, “unlocked”, “locked”) according to level completed status data.

Highlight the “recommend level” button by red glow.Get sorted score for a particular level from database through PHP

script. Display the ranking table with the current player name

highlighted. When player clicks the level button, the ranking result of this certain level will be shown.

• MainMenu_backup.js

• rocket_menu.php• rocket_rank.php

Page 18: Lerpz The  Rocketeer

Luo Lan - Feedback & Profile Script

Send data of feedback and profile to PHP script. PHP script inserts values to database.

unityPHP.js rocket_feedback.php rocket_profile.php

Page 19: Lerpz The  Rocketeer

Luo Lan - Difficulty & Challenge

Compatibility for different Web Browsers

Page 20: Lerpz The  Rocketeer

DESIGNERQA

Kenny

Page 21: Lerpz The  Rocketeer

Kenny - Contributions

Conceptualising on the possibility of using rocket jump mechanic as a gameplay mechanic in a 2D side-scrolling platformer.

Identifying the possible types of obstacles and platforms that will be clearable by both jumping mechanisms without any biasness as much as possible

Page 22: Lerpz The  Rocketeer

Kenny - Balancing Levels and Mechanics

• Balancing both jump mechanics by tweaking parameters such that they take almost the same time to complete each stage

• The level design - incrementally introducing new elements in each stage to allow progressive learning for players

Page 23: Lerpz The  Rocketeer

Kenny - Stage 1

Learning Horizontal JumpIncreased Horizontal Jump achieved by-> Run and Jump (conventional jump)-> Move and Fire rocket (rocket jump)

Page 24: Lerpz The  Rocketeer

Kenny - Stage 2

Learning Vertical Jump-> Aiming the rocket almost perpendicularly to the groundBoxes act as soft cushion to prevent player from falling

Page 25: Lerpz The  Rocketeer

Kenny - Stage 2

Learning to fire off at the opposite direction

Page 26: Lerpz The  Rocketeer

Kenny - Stage 3

A hybrid of Stage 1 and 2Introduction of Laser Traps

Page 27: Lerpz The  Rocketeer

Kenny - Stage 4

Introduction of moving platforms

Page 28: Lerpz The  Rocketeer

Kenny - Stage 5

• Combination of moving platforms and laser traps puzzle element

• ‘Rhythm’ jumps from platform to platform

Page 29: Lerpz The  Rocketeer

Kenny - Stage 6

• An unstable platform randomly moving in the y-axis • Many gaps with lesser ground to stand on• Longest stage to test on player’s endurance

Page 30: Lerpz The  Rocketeer

Kenny - Aesthetics

An overall sci-fi theme to suit Lerpz’s outfitDissembling and assembling pre-existing

assets to be appropriately used for level design

Page 31: Lerpz The  Rocketeer

Indirectly telling a story through the use of props

Escape from jail to finally arriving at the spaceship

Page 32: Lerpz The  Rocketeer

Indirectly telling a story through the use of background

propsProgressing from a seemingly deserted

environment to an urban city

Page 33: Lerpz The  Rocketeer

Kenny - Aesthetics

Using clouds to make background objects less obvious

Applying random movement to the clouds to make the environment more vibrant

Page 34: Lerpz The  Rocketeer

Kenny - Aesthetics

Other minor polish to enhance usability

Back-end particle trail

Rotating glow on goal

Arrow Sign

Page 35: Lerpz The  Rocketeer

Kenny - Reasons for GUI Layout

Page 36: Lerpz The  Rocketeer

Kenny - Reasons for Leaderboard

Page 37: Lerpz The  Rocketeer

Kenny - Other individual contributions

Writing the kind of tips that will be triggered on certain platforms to aid player’s progress

Helping QA with playtesting sessionsHelping Experiment Lead with Observed

Experiment testing sessionsLooking at other possibilities of having

stages/obstacles built specifically for rocket jumping (but was not implemented at the end)

Page 38: Lerpz The  Rocketeer

PROGRAMMERQA

Esther

Page 39: Lerpz The  Rocketeer

Esther - Rocket Launcher Direction Controls

Rocket launcher obtained from Unity FPS tutorial

Uses RotateWithMouse.js to change launcher direction according to mouse position

Page 40: Lerpz The  Rocketeer

Esther - Rocket Launcher Direction Controls: Challenges

Confused launcher direction behavior Finally discovered that the X-Y plane of the mouse

screen coordinates had to coincide with X-Y plane of camera movement in world coordinates after much trial and error

Determining the appropriate character and launcher direction behavior Determining the most appropriate input priority Determining character direction vs. launcher

direction Many rounds of testing required

Page 41: Lerpz The  Rocketeer

Esther - Rocket Propelling

RocketLauncher.js modified to add PropellingForce(), used to add an equal and opposite force to weapon holder Also calculates angle information with necessary

offsets for shift data collectionRocket.js modified to activate

PropellingForce() upon collision explosion after a valid distance check (minImpactDistance)

Page 42: Lerpz The  Rocketeer

Esther - Rocket Propelling: Challenges

Propelling force initially set to be called upon launcher firing Several rounds of testing revealed exploitable

recoil effectMany rounds of testing required to

determine suitable propelling speed and fall speed to match conventional jump mechanism

Finding appropriate angle calculation and offset method to obtain a meaningful angle format for analysis

Page 43: Lerpz The  Rocketeer

Esther - Prediction Emission Trail Generation

Instantiates a tiny, 3D sphere near character’s feet, and applied with a force of opposite direction to rocket propelling force (TrailGeneration.js)

Uses Time.time to check for 0.1 sec intervals

Trail emitted only when no movement controls are activated, and when character is not moving in midair

Trail limited to first 3 rocket levelsTrail particle destroyed upon collision

Page 44: Lerpz The  Rocketeer

Esther - Prediction Emission Trail Generation: Challenges

Initiation upon every Update() was too frame rate dependent – emission could get too sparse and unreliable

Use of particle emitter drastically reduced frame rate quickly over time, even with severely limited emission parameters

Force applied to emission particles had to be tweaked manually by trial and error until desired accuracy was achieved

Page 45: Lerpz The  Rocketeer

Esther - Prediction Emission Trail Generation: Challenges

Finding appropriate conditions for emitting trail, to reduce distraction, confusion and unreliability

Finding appropriate instantiation position to avoid undesired interactions with rocket launcher missiles – trial and error

Page 46: Lerpz The  Rocketeer

Esther - Shift Tracking

Platforms, death zones and laser zones tagged and meaningfully labeled to aid in analysis (PlatformTracking.js)

Each platform transition (AKA shift) recorded upon conditional collision check: Level ID, try #, jump #, initial and destination platform IDs and world coordinates, jump angle and movement type (PlatformerController.js)

Shift data sent to unityPHP for sending to server

Page 47: Lerpz The  Rocketeer

Esther - Shift Tracking: Challenges

Ensuring that shift data is recorded at appropriate shift conditions Comparison of initial and destination positions

and movement type Several iterations of testing and tweaking

required before all necessary bases were covered

Page 48: Lerpz The  Rocketeer

Esther - Shift Tracking: Challenges

Shift data sent to unityPHP to be sent to server upon every shift – too many connections to the server with limited number of connection retries Latency issues Loss of shift data

Modified to send upon collision with goal or when “Skip Level” is pressed

Sending restricted to occur after gameplay levels More connection retries available –> reduced

data loss

Page 49: Lerpz The  Rocketeer

Esther - General Game Flow

Tracking and determining general game flow using Master.js Stores and calculates track, win, attempt,

feedback, platform, level and scene status information

Calculates maximum attempted levels and next recommended level

Used by unityPHP.js and many other scripts to determine game flow, obtain general game status information, and show/hide statuses of GUI elements

Page 50: Lerpz The  Rocketeer

Esther - GUI Elements

Modified Timer GUI to show time in MM:SS instead of seconds (unityPHP.js)

Coded scripts and created GUI objects and scenes for basic Start, Main Menu, Game Over, Feedback Form and Profile Form (Start.js, MainMenu.js, GameOver.js, FeedbackForm.js, ProfileForm.js)

Scripted and created basic game objects for Skip Level, Volume, Instruction Pane and Tooltips (SkipLevel.js, Volume.js, Tooltip.js)

Modified all GUI element placements to be compatible with all resolutions above 800x480

Integration of game levels with basic GUI and game flow

Page 51: Lerpz The  Rocketeer

Esther - Miscellaneous

Converted all game objects into new prefabs with PlatformTracking where appropriate

Indexed all game objects in linear order to facilitate platform naming and tracking; drew platform numbering level guide

Aided with exploration of observed experiment results: running of MANOVA and analyzing statistical output

Lerpz the Rocketeer video trailer Performed several gameplay recordings to find best video

capture tool Created final game trailer with gameplay video provided by Jie

Hui

Page 52: Lerpz The  Rocketeer

BEAT IT! GAMES

ESTHER LUAR – U065084YHO J IE HUI – U077440XKENNY LIM – U077128A

LUO LAN – U077394B

END