1 / 52

Lerpz The Rocketeer

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

yvon
Download Presentation

Lerpz The Rocketeer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LerpzThe Rocketeer Beat It! Games VIVA CS4343 – AY2010/2011 Semester 2

  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 • Completed observed experiment with 16 testers • Collected 50 online player data

  3. Jie Hui Producer QA Lead Experiment Lead

  4. 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

  5. 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 testing • Drafted side documents for any possible additional features for game • Side story

  6. Jie Hui – Experiment Lead • Designed and built website to host game • www.crashstart.com/rocket • Researched on academic papers for references • Drafting of game questionnaires and feedback forms • Led final experiment process • Recruitment of testers • Scheduling of testers • Collation of data • Data crunching • Analysis of data

  7. Jie Hui - Challenges Keeping track of what 3 people are doing all at once Keeping to deadlines Designing a novel test procedure for games research

  8. LuoLan Programmer GUI Artist

  9. LuoLan - Contributions • Data Collection • Database Design • Jump Data Collection • Login & Sign up System • Data retrieve • GUI Design • Function implementation • Menu & Ranking System • GUI Design • Function implementation • Feedback & Profile • Database

  10. LuoLan - Database Design Attempt_ID password Level_ID Jump_ID track From Platform name ID From world coordinate does Player 1 N Jumps To Platform Feedback To world coordinate Profile N sort Angle 1 time Score NO. of Attemps ID name Level_ID timeTaken

  11. LuoLan - Database design Player: Jumps: Score:

  12. LuoLan - 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)

  13. LuoLan - 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)

  14. LuoLan - Login & Sign up System • GUI Design • Unity3D GUI Component, • GUIStyle • Button, background image

  15. LuoLan - 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)

  16. LuoLan - Menu & Ranking System • GUI Design • Layout, Unity3D GUI Component, GUIStyle • Button, background image

  17. LuoLan - 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

  18. LuoLan - 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

  19. LuoLan - Difficulty & Challenge Compatibility for different Web Browsers

  20. Kenny Designer QA

  21. 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

  22. 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

  23. Kenny - Stage 1 Learning Horizontal Jump Increased Horizontal Jump achieved by -> Run and Jump (conventional jump) -> Move and Fire rocket (rocket jump)

  24. Kenny - Stage 2 Learning Vertical Jump -> Aiming the rocket almost perpendicularly to the ground Boxes act as soft cushion to prevent player from falling

  25. Kenny - Stage 2 Learning to fire off at the opposite direction

  26. Kenny - Stage 3 A hybrid of Stage 1 and 2 Introduction of Laser Traps

  27. Kenny - Stage 4 Introduction of moving platforms

  28. Kenny - Stage 5 • Combination of moving platforms and laser traps puzzle element • ‘Rhythm’ jumpsfrom platform to platform

  29. 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

  30. Kenny - Aesthetics An overall sci-fi theme to suit Lerpz’s outfit Dissembling and assembling pre-existing assets to be appropriately used for level design

  31. Indirectly telling a story through the use of props Escape from jail to finally arriving at the spaceship

  32. Indirectly telling a story through the use of background props Progressing from a seemingly deserted environment to an urban city

  33. Kenny - Aesthetics Using clouds to make background objects less obvious Applying random movement to the clouds to make the environment more vibrant

  34. Kenny - Aesthetics Other minor polish to enhance usability Arrow Sign Back-end particle trail Rotating glow on goal

  35. Kenny - Reasons for GUI Layout

  36. Kenny - Reasons for Leaderboard

  37. 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 sessions Helping Experiment Lead with Observed Experiment testing sessions Looking at other possibilities of having stages/obstacles built specifically for rocket jumping (but was not implemented at the end)

  38. Esther Programmer QA

  39. Esther - Rocket Launcher Direction Controls Rocket launcher obtained from Unity FPS tutorial Uses RotateWithMouse.js to change launcher direction according to mouse position

  40. 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

  41. 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 collection • Rocket.js modified to activate PropellingForce() upon collision explosion after a valid distance check (minImpactDistance)

  42. Esther - Rocket Propelling: Challenges • Propelling force initially set to be called upon launcher firing • Several rounds of testing revealed exploitable recoil effect • Many 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

  43. 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 levels Trail particle destroyed upon collision

  44. 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

  45. 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

  46. 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

  47. 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

  48. 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

  49. 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

  50. 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

More Related