Balls on a Board CO1301 Games Concepts Portfolio AssessmentCO1301 Games Concepts – Portfolio AssessmentGame 1 – Balls on a BoardYou must implement a simple 3D game scene containing moving objects controlled by the keyboardaccording to the specification overleaf. You are expected to complete this in your own time outsideof scheduled labs. But you should ask your lab tutor for advice if you are stuck.Do not diverge from this specification. If you do, then you will lose marks. Ask for clarification if youare unsure!Your final submission should include the .cpp file of your project, the media folder containing allyour models, and a word document containing your state transition diagram if you are aiming formarks higher than 60%.In addition to the above, your formative feedback point submission should include a video (not morethan 2 minutes) showing your game in execution.The associated set of model files for this game can be found on Blackboard inside“Game1_Models.zip”. The models include a ball (ball.x), a floor (floor.x) and a board (board.x).Game SpecificationYou should aim to implement the features described below in order. To be eligible for a mark withinany classification, you must have attempted all the features for all the previous classifications. Treatthe grade boundaries as milestones in a real game development project.Basic Scene LayoutTo achieve any classification, you must first implement the basic scene layout and then meet therequirements of the classification. The basic scene layout is specified below:• Create a new TL-Engine Project called “BallsBoard”• Create a folder called “media” inside your visual studio project folder and copy the suppliedmodels into it.• In your code use relative addressing to access the media files – i.e. myEngine->AddMediaFolder(“./media”);• Using “floor.x” for the mesh, create a floor model at position ( 0, -0.2, 0 ).• Then use the “board.x” mesh to create a board model and position it at the origin so that itappears placed on the floor. The board is checkered with squares of 50 x 50 units.• Create a manual camera at position (0, 240, -240), and rotate it about the x-axis by 45 units,such that it is suspended in the air and looking downwards towards the ground.• Using “ball.x” mesh, create sphere1 at position (125, 10, -125), and sphere2 at (-125, 10, 75).The base of each sphere should be touching the floor.Balls on a Board CO1301 Games Concepts Portfolio AssessmentFigure 1 Initial positions of sphere1 and sphere2 (shown in 2D)Figure 2 Screenshot of the basic scene layoutBalls on a Board CO1301 Games Concepts Portfolio AssessmentPass Mark/ Third Classification (40% +) Milestone 1• The code that you submit must compile without errors.• Your scene is set up correctly as described above.• The spheres should both slide diagonally forwards and backwards thus:o sphere1 should move between its starting point of ( 125, 10, -125 ) and position( -75, 10, 75 ).o sphere2 should move between its initial position ( -125, 10, 75 ) and position( 75, 10, -125 )• Declare a state variable for each sphere to determine its current direction of travel.• The speed at which the spheres move must be defined in your code by a constant floatnamed kGameSpeed.• As the game starts, the sphere1 should start moving away from the camera, and sphere2should start moving towards the camera.• The player should be able to hit the Escape key to quit the game.Balls on a Board CO1301 Games Concepts Portfolio AssessmentLower Second Classification (50% +) Milestone 2• Add a single float variable called sphereSpeed to adjust the speed of both spheres.o Hint: You should use this variable to multiply the constant kGameSpeed todetermine how far to move a sphere each frame.• The variable should have an initial value of 1.• The player should be able to increase or decrease the speed of both spheres by 1/10th of thevalue of kGameSpeed each time they scroll the mouse wheel up or down respectively.• Set limits for the maximum and minimum speed possible: minimum speed is half the valueof kGameSpeed, and maximum speed is five times the value of kGameSpeed.• The spheres should take turns in moving so that sphere1 completes a single diagonal trip,then stops and wait for sphere2 to complete a single diagonal trip, and so on…• Use a state variable to determine which sphere should be moving.• The player should be able to hit the P key as a toggle to pause and resume the movement ofboth spheres.Balls on a Board CO1301 Games Concepts Portfolio AssessmentUpper Second Classification (60% +) Milestone 3 – breakeven point achieved• Using the resources supplied, change the skin of sphere2 to blue.• Expand the possible values of your spheres’ state variables so that each sphere can nowmove along all four diagonals.• Rather than moving forwards and backwards along the same diagonal, the spheres shouldmove clockwise along a square-shaped path (sides of 200 units each) as shown in thediagrams below.Figure 3 Sphere1’s movement pathFigure 4 Sphere2’s movement path• Only one sphere should be moving at a time, meaning the spheres take turns to movearound their square-shaped paths.• Each moving sphere should appear to roll along in the correct direction, by rotating aboutthe appropriate axis.• Create a state transition diagram to show the behaviour of your spheres.Balls on a Board CO1301 Games Concepts Portfolio AssessmentFirst Classification (70% +) Milestone 4 – bonus payments received• Add another two spheres to the scene:o sphere3 at position (-125,10, -125)o sphere4 at position (125, 10, 75)• Use the indigo and green skins for the new spheres.• sphere4 should move along the same path that sphere1 moves, while sphere3 moves alongthe same path that sphere2 moves.• Therefore when the game starts, spheres 1 and 4 move along their square-shaped path tocomplete a single trip while spheres 2 and 3 wait, once spheres 1 and 4 complete their tripthen spheres 2 and 3 move along their square-shaped path to complete a single trip whilespheres 1 and 4 wait, and so on until the game is quitted.• When the player hits the up-arrow key, all the spheres should be raised 30 units slowly inthe y-axis. This should only work if the spheres are touching the floor.• While the spheres are raised 30 units above their initial position, the player should be ableto hit the down-arrow key so that they are slowly lowered till they touch the floor.• Hitting the up or down arrow while the spheres are in the process of being raised or loweredshould not perform any action.• It should not be possible to raise the spheres higher than 30 units above their initialpositions or lower them below the point where their bottoms touch the floor.• Make sure that as each sphere rolls along the ground, it rotates in the correct direction.• Spheres should not roll if they are raised, they should only roll when they are on the floor.• Update the state transition diagram to show the updated behaviour of your spheres.Balls on a Board CO1301 Games Concepts Portfolio AssessmentHigh First Classification Milestone 4 – extra bonus payments receivedThere are some final marks available but only if you have completed the first classification:• When the player hits the E key, cycle the colours of the spheres around in a clockwisedirection (i.e. each sphere takes the skin of the sphere that was next to it when the gamestarted).
- Assignment status: Already Solved By Our Experts
- (USA, AUS, UK & CA PhD. Writers)
- CLICK HERE TO GET A PROFESSIONAL WRITER TO WORK ON THIS PAPER AND OTHER SIMILAR PAPERS, GET A NON PLAGIARIZED PAPER FROM OUR EXPERTS