From 29e9309ed611e24397eb3286ee5965b7841afc20 Mon Sep 17 00:00:00 2001 From: OGordoo Date: Tue, 17 Nov 2020 18:24:58 +0000 Subject: [PATCH 1/6] Unreal Engine Branch --- subjects/armyofone/README.md | 28 ++++++++++ subjects/armyofone/audit/README.md | 37 +++++++++++++ subjects/firingrange/README.md | 35 +++++++++++++ subjects/firingrange/audit/README.md | 25 +++++++++ subjects/mousevr/README.md | 40 +++++++++++++++ subjects/mousevr/audit/README.md | 31 +++++++++++ subjects/nascaronlinealpha/README.md | 52 +++++++++++++++++++ subjects/nascaronlinealpha/audit/README.md | 47 +++++++++++++++++ subjects/vehiclephysics/README.md | 44 ++++++++++++++++ subjects/vehiclephysics/audit/README.md | 49 ++++++++++++++++++ subjects/widgetfactory/README.md | 43 ++++++++++++++++ subjects/widgetfactory/audit/README.md | 39 ++++++++++++++ subjects/zombieai/README.md | 60 ++++++++++++++++++++++ subjects/zombieai/audit/README.md | 43 ++++++++++++++++ 14 files changed, 573 insertions(+) create mode 100644 subjects/armyofone/README.md create mode 100644 subjects/armyofone/audit/README.md create mode 100644 subjects/firingrange/README.md create mode 100644 subjects/firingrange/audit/README.md create mode 100644 subjects/mousevr/README.md create mode 100644 subjects/mousevr/audit/README.md create mode 100644 subjects/nascaronlinealpha/README.md create mode 100644 subjects/nascaronlinealpha/audit/README.md create mode 100644 subjects/vehiclephysics/README.md create mode 100644 subjects/vehiclephysics/audit/README.md create mode 100644 subjects/widgetfactory/README.md create mode 100644 subjects/widgetfactory/audit/README.md create mode 100644 subjects/zombieai/README.md create mode 100644 subjects/zombieai/audit/README.md diff --git a/subjects/armyofone/README.md b/subjects/armyofone/README.md new file mode 100644 index 00000000..43c0d052 --- /dev/null +++ b/subjects/armyofone/README.md @@ -0,0 +1,28 @@ +## ArmyOfOne + +In this exercise, you will learn to create a complex player movement from scratch. The character you will use is Countess from the game Paragon. She's nice after you know her, just give her a chance. + +### Objectives + +For this project you will implement a fully playable character using what we call Animation Blueprint, Aim Offset and PlayerCharacter Blueprint. + +### Instructions + +Starting from an empty project, after creating a level with a floor (nothing else is really required), you should: + +- create a Third Player Character Blueprint and apply the Countess mesh to it. + - give the character the ability to: + - move forward, backward, left and right using the WASD keys + - look around and change direction using the mouse + - jump using Space + - attack using the left mouse click +- create an animation blueprint file to animate the character so she can be animated while running, jumping, attacking, etc. +- implement the Aim Offset, so that when the player moves the mouse, the head of Countess follow the direction we’re looking at, in a 180-degree angle. +- separate the upper and lower body part, so that the character is able to walk and attack at the same time without any animation problems. +- make Countess lean according to the mouse direction, while running forward. +- use Animation Blendspace to organize your movements. +- use Animation Blueprint variables to handle different animation states. + +When finished, your project should look like the executable example on the folder or the “Expected Result” video. + +> Don’t forget to zip up the project compile and save everything for peer correction. diff --git a/subjects/armyofone/audit/README.md b/subjects/armyofone/audit/README.md new file mode 100644 index 00000000..b98fe574 --- /dev/null +++ b/subjects/armyofone/audit/README.md @@ -0,0 +1,37 @@ +#### Functional + +###### Can Countess move in the four directions (forward, backward, left and right) using the WASD keys? + +###### Can Countess jump using the Space key? + +###### Can Countess attack using the left mouse click? + +###### While running, does moving the mouse left and right change the player leaning angle and direction? + +###### Does the animation used for the countess in the animation blueprint are stored in a BlendSpace file? + +###### Does the head of the countess follow the mouse orientation? + +###### Is an Aim Offset being used to move the Countess head according to the mouse movement? + +###### Can Countess attack using the blades when clicking on the left mouse button? + +###### Does the Countess body blends between two animation???????? + +###### Are there no severe body transition when starting the attack or jumping, etc…? + +###### Can you attack and move around at the same time without damaging the animations performance? + +###### Does the Countess body blends between two animation (are blend nodes being used)? + +###### Is the upper body and lower body being controlled as "two separate modules"? + + + +###### Does the Animation Blueprint have at least three variables in order to handle the character speed, if she is in the air and attacking? + +#### Bonus + +###### Can Countess execute more than 3 attacks? + +###### Are there at least two different Countess skins being used? diff --git a/subjects/firingrange/README.md b/subjects/firingrange/README.md new file mode 100644 index 00000000..5ce24b0a --- /dev/null +++ b/subjects/firingrange/README.md @@ -0,0 +1,35 @@ +## FiringRange + +In this exercise, you will learn to use Unreal Engine and use Blueprints to script functionalities of a basic FPS game. The theme is to reproduce a firing range. And remember weapons are allowed only inside the shooting area!! + +### Instructions + +The map of this project should be composed by a cube with dimensions of X = 35, Y = 40, Z = 1, simulating the floor and other cubes as walls around the floor. In the map there should be a zone where the character should be able to walk around and shoot to the targets and another zone where the player can not go, where the targets are present. + +For this project you will have to create a Blueprint Class target, that will have some characteristics. The target should : + +- either be moving from side to side or stationary. +- be dynamic, using the timeline node. +- use a public variable to set or unset the movement animation of the target. +- rise again after x seconds after being hit it with a projectile, , and behave like before it was hit. + +Only one class of target is allowed on the whole project. + +The previous mentioned projectile should: + +- have a size of X = Y = Z = 0,5. +- have a speed of 10000. + +The First-person template and all needed assets can be found in the Firing Range folder. + +When finished, your project should look like the executable example on the folder or the “Expected Result” video. + +> Don’t forget to zip up the project compile and save everything for peer correction. + +#### Bonus + +Here are some ideas for improving the game: + +- Targets with different speeds +- Textures on the walls and ground +- Add obstacles in front of the targets diff --git a/subjects/firingrange/audit/README.md b/subjects/firingrange/audit/README.md new file mode 100644 index 00000000..91866e57 --- /dev/null +++ b/subjects/firingrange/audit/README.md @@ -0,0 +1,25 @@ +#### Functional + +###### Are the map size and composition (using cubes) being respected? + +###### Are the projectile size and speed being respected? + +###### If you try to move the target to the target zone, is the player forbidden from trespassing to that zone by a invisible wall? + +###### When you shoot a target, does the bullet go through the invisible wall? + +###### Did the targets lay on the ground correctly on the floor when hit by the projectile? + +###### Did the target rotate from the bottom and not from the center? + +###### Is there only one class “BP_Target” is present on the project? + +###### Do all the public variable have a tooltip? (Mouse over it to check if a description is set or check if the variable have a little green eye on the right) + +#### Bonus + +###### Does different targets have different speeds? + +###### Does walls and floor have texture? + +###### Are there obstacles in front of targets? diff --git a/subjects/mousevr/README.md b/subjects/mousevr/README.md new file mode 100644 index 00000000..21aa4527 --- /dev/null +++ b/subjects/mousevr/README.md @@ -0,0 +1,40 @@ +## MouseVR + +On this one you will learn the basics of interaction using objects, learn the use of blueprint interface, learn stereoscopic sphere texturing. How, you ask? By creating a game in which you'll be in a city and will be looking for interaction points in order to travel through the map. And do not to look straight at the end of the subject. + +### Objectives + +You will have to create a game that uses the mouse as if it were the player head in a VR game. You will navigate through the map using the mouse, focusing in certain points in order to "teleport" to that location. + +### Instructions + +After creating a blank project and importing the content from the provided folder, you should focus on the following points to accomplish the previous explained features: + +- Use Scene Capture to take a 360 degrees screenshot, that you’ll need later on every targeted location on the map. + - With this, you can create a new material and apply it to a sphere. + - Find a way to display the material inside and outside the sphere to create a VR world illusion. +- Create a pawn that can move his head using the mouse inside the spheres. +- In order to play the game, the player only needs to use the mouse and never the keyboard. +- Create your own interaction point to indicate where the player is heading. + - The design of the interaction point is up to you, but it should display a text underneath it, indicating where this interaction point is gonna lead the player to (burger store, metro, park, etc...) + - There should always be an interaction point visible to the player, somewhere in the world that lets the player quit, no matter where the player is in the map. +- There should be no brutal transitions in the teleportation phase. +- Use an Interface Blueprint to handle interactions: a Blur, a Focus and an Active interaction. +- Use SphereTraceByChannel node to be able to look at objects. + - Use casting with your interaction point to know which object you are looking at. +- Use interaction timer to set how many time should the player look to an interaction point, in order to travel to the next space (Like on the video example). In other words, the player should look for a while at the interaction point before getting teleported to the next scene. +- Except for the interaction point and the spheres containing the panoramic images, no 3D objects are allowed on the map. + +When finished, your project should look like the executable example on the folder or the “Expected Result” video. + +> Don’t forget to zip up the project compile and save everything for peer correction. + +### Bonus + +As bonus for this project there are the following: + +- Create a circle around the interaction points, that indicates when the interaction point will be triggered. +- Animate the interaction points. +- Add looping background music during the experience. + +Ah, made you look. diff --git a/subjects/mousevr/audit/README.md b/subjects/mousevr/audit/README.md new file mode 100644 index 00000000..7f95644c --- /dev/null +++ b/subjects/mousevr/audit/README.md @@ -0,0 +1,31 @@ +#### Functional + +###### When you move the mouse does the "head" of the player moves accordingly? + +###### Can we navigate throughout the map using interaction points? + +###### Does every interaction point contain a text underneath it indicating where that interaction point is going to lead you? + +###### Do all interaction points led you to the location they tell you? + +###### Can we play the whole game without pressing any key on the keyboard? + +###### Is a "Quit Game" interaction point always available, so that it is possible to quit the game at any point of the game? + +###### No brutal teleportation visible to the player? + +###### Is a sphere being used to cast instead of a single ray, in other words, did the student used a SphereTraceByChannel node? + +###### Is an Interface Blueprint being used to handle the different actions on the interaction point (Blur,Focus and Active)? + +###### To be able to teleport to a different scene, do you need to stare for a little at a interaction point? + +###### Except for the interaction point and the spheres containing the panoramic images, is there any 3D objects on the map? + +#### Bonus + +###### Is a circle that indicates when the interaction point will be triggered present? + +###### Is the interaction point animated? + +###### Is there looping background music during the game? diff --git a/subjects/nascaronlinealpha/README.md b/subjects/nascaronlinealpha/README.md new file mode 100644 index 00000000..de8c7fc5 --- /dev/null +++ b/subjects/nascaronlinealpha/README.md @@ -0,0 +1,52 @@ +## NascarOnlineAlpha + +In this exercise, you will create a racing online game. The player will be able to race with another player, to see who is faster. When you feel stuck remember that once, a man couldn’t work out how to fasten his seatbelt. But then it suddenly clicked! + +### Objectives + +You will have to create a car game using an already existing project that you will have to download. + +You will learn to analyze the code and understand what the developer did before you and adapt to extend the gameplay to continue the development of the game. + +### Instructions + +In order to start the project, you will have to open the Epic Games Launcher, switch to the Learn tab and search for the Vehicle Game project. Once you find it and download it, you can create a new Vehicle Game project and that will be the base of your project. + +As the game is done, you only will need to make the multiplayer part of it. Basically, you will have to: + +- As soon as the game starts it should ask for a name to assign to the player. +- Create a main menu map where the player can choose either to Host/Join a session. + - If the player chooses to Host, the game should ask you for a server name, number of players allowed on the server, if the player wants to host via LAN or ONLINE and a host button that launches the player into a multiplayer Lobby. + - Max. number of players should be 4 and the minimum should be 2. + - If the server name is not provided, the player can not yet host the server and a warning message should appear, requesting to insert a name for the server. + - If you press the Join button, the game should display to the player, a list of available sessions he/she can join. Also a refresh button should be available to search for sessions again. + - A button with the server name in it should appear for each session found. By clicking on it, the player is directly transferred to the host lobby. + - It must be presented to the player the option to do the search for LAN sessions or ONLINE sessions. + - In the start menu, there should be also a button that enables the player to quit the game. + - In every other menu, there should be a button that allows the player to go back. +- On the host lobby, before the creator of the session starts the game, the player can drive around the map. + - A widget should pop on the screen saying “Waiting for the host to start” if you are not the host and “Click START to start” otherwise. Therefore the host of the server should have available a Start button. +- Once the game started, all players spawn on the map and the race starts after a countdown (A little delay may occur for the client but it quickly goes back to normal so don’t worry for that.) +- The first to finish the race has a text on the screen written “YOU WIN” and “YOU LOSE” for the other players. +- Once the player crosses the finish line, the player input is disabled (player can no longer move). +- Use the provided loading screen to hide all screen/player switching between maps and screens. + +As for the multiplayer aspect, here are some hints that you will have to follow: + +- Use the Advanced Session plugin to have more host options when creating and searching for a session. +- Use replicated Custom Events to share information. +- Use Game Instance to handle all widgets navigation. +- Use Game State and replicated variables to know who is the winner of the game. If you have more info to share for all players on the game, do it through Game State using server replication. +- Use "Has Authority" checks to know if it is the server or the client that is trying to execute an action. + +When finished, your project should look like the executable example on the folder or the “Expected Result” video. + +> Don’t forget to zip up the project compile and save everything for peer correction. + +### Bonus + +As bonus for this exercise you can: + +- create a restart race button when all players crossed the finish line. +- display the winner on every player screen when crossing the finish line. +- make players join a server by IP address, from another LAN network (two players connected to different networks, for example). diff --git a/subjects/nascaronlinealpha/audit/README.md b/subjects/nascaronlinealpha/audit/README.md new file mode 100644 index 00000000..04b57a80 --- /dev/null +++ b/subjects/nascaronlinealpha/audit/README.md @@ -0,0 +1,47 @@ +### Functional + +###### Does the starter menu contains an Host, Join, and Quit button? + +###### On the Host and Join menu can the player travel back to the main menu? + +###### On the Host menu can the player custom the following options: server name, max player number, play mode (LAN, ONLINE)? + +###### Is the maximum number of players 4 and the minimum 2? + +###### If you try to host the server without a server name (input text box empty), does a warning message appears and you are forbidden to enter the server? + +###### On the Join menu can you switch between searching LAN sessions and Online sessions? + +###### Once the game finds a session, does a button with the session name displays on the screen? + +###### Does this button allows the player to join the host session? + +###### Is there a loading screen while joining the session? + +###### Inside the lobby, can players see each other driving around? + +###### Does a message present either to “Wait for host to launch the game” and “Click start to launch the game” depending if you're the session host or a client? + +###### Is the loading screen present on both server and client when the START button is pressed by the host? + +###### After the host clicks on the start button, do all players spawn on the race map? + +###### Does the race starts after a countdown? + +###### Does it appear, on the screen, a message indicating that the player wins or loses, when the players cross the finish line? + +###### Is the player input disabled (player can not move) when the race finishes? + +###### Is the Advanced Session plugin being used to create and search a session? + +###### Do all widgets navigation are handled inside the GameInstance of the player? + +###### Does the student used "Has Authority" to know if a custom event is called by the server or the client? + +### Bonus + +###### When all players crossed the line, is a restart button available? + +###### When crossing the finish line does the name of the winner displays on the screen? + +###### Can the players join a session by inserting an IP? diff --git a/subjects/vehiclephysics/README.md b/subjects/vehiclephysics/README.md new file mode 100644 index 00000000..45ecae28 --- /dev/null +++ b/subjects/vehiclephysics/README.md @@ -0,0 +1,44 @@ +## Vehicle Physics + +In this exercise you will learn to use the heritage system to create multiple blueprints from a single blueprint file. Also, you will learn to create the vehicle gameplay from scratch using blueprints. Remember to always wear a seat belt and don't text and drive. + +#### Objectives + +The point of this exercise is to create three cars and be able to enter and exit them as a third person character and drive them around. + +#### Instructions + +The player starts the game by controlling a Third Person character and as soon he gets close to one of the doors of one the three cars present in the level, a message should appear saying to press 'E' to enter the car. As soon as the player presses 'E', the corresponding door of the corresponding car should open and the player should then control the vehicle. Once inside the vehicle the player can press 'E' again to exit the car. Once pressed, the left door of the vehicle should open and the player should appear next to the car. + +As for the vehicle, these instructions will be the ones that you will have to take into consideration: + +- create a blueprint named BaseCar, that will be the parent of all vehicles classes. + - BaseCar should be a fully functional and realistic vehicle, in other words, should accelerate, brake, have an handbrake, the back wheels should not turn, neither should the front wheels exceed a certain angle, etc. + - BaseCar should also have dynamic instance for the lights. + - The vehicle lights needs to simulate the real behavior of a real vehicle. When pressing the letter 'L' the front lights and the rear presence lights should turn on or off, when braking three braking lights (left, right and center) should turn on and the rear lights should turn on when reversing. + - The BaseCar blueprint should contain "Set Material" nodes to change the headlamp material in order to have the effect that the lights are turned on. +- use PhysicMaterials to simulate rain driving terrain. +- only one AnimationBlueprint can be used for this project. +- when inside the vehicle, if the 'C' key is pressed, the camera should change from third person view of the vehicle to the driver view inside the car. + - when in the camera of the driver, the player must be able to see the gears and the speed in the dashboard + +There must be three models of cars on the map the character can choose from. All of them should be inherit the BaseCar class. These three models should be: + +- a Peugeot 3008 year 2018 car. +- an Audi A8 year 2011 car. +- a Tesla Model 3 car. +- The Mass, Acceleration, Number of gears, Max speed, Torque Curve, etc. needs to be really close of the selected vehicle. This [website](https://www.automobile-catalog.com) could help you find what you’re looking for. + +To create the map you should use the Landscape tool. Also add a track using spline roads. + +When finished, your project should look like the executable example on the folder or the “Expected Result” video. + +> Don’t forget to zip up the project compile and save everything for peer correction. + +#### Bonus + +As bonus objectives you can: + +- Create steam/flames particles going out from car exhaust. +- Animate the character entering and sitting in the car +- Add a button to open the doors while inside the car without exiting it diff --git a/subjects/vehiclephysics/audit/README.md b/subjects/vehiclephysics/audit/README.md new file mode 100644 index 00000000..0d93e90a --- /dev/null +++ b/subjects/vehiclephysics/audit/README.md @@ -0,0 +1,49 @@ +#### Functional + +###### Are there at least three different car models? + +###### When you walk close to a car door, does a message appear saying that to enter you need to press the 'E' key? + +###### If you click 'E' next to the car door, does the door open and you start controlling the car? + +###### Once inside the car, if you press 'E' again, does the character exits the car? + +###### After checking the three cars blueprints, did all of them inherit the "BaseCar" class? + +###### Does the vehicle feels right to drive/reacts normally while driving it? + +###### Do the rear wheels have steer angle of 0.0, in other words, do not turn? + +- Did the Front wheels have a steer angle between 25 and 35? + +- Front wheels are not affected by handbrake? + +- Is the "Suspension force offset" inside the "Vehicle Wheel" Blueprint between 5 and 15, to make the vehicle not lean too much when steering left and right? + +###### Are the car wheels not blurry while driving? + +###### Does the car wheels never go through the floor? + +###### Do the front lights and rear presence lights turn on and off alternatively, when you press 'L'? + +###### Do the brakes turn on when you are driving and hit the brake key ('S' or down key presumably)? + +###### Do the rear lights turn on only while you are reversing? + +###### Does the car headlamp material is modified using the "Set Material" node inside the BaseCar Blueprint to replicate the light effect on the car? + +###### While inside the car, press 'C' repeatedly. + +###### Did the camera switch between the third person camera on the car to the driver camera? + +###### while on the driver camera, can you see the speedometer and the gear? + +###### Does the map include a spline road? + +#### Bonus + +###### When hitting the throttle does steam/flames particles go out from car exhaust? + +###### Is the character animated while entering car? + +###### Can you open the doors while inside the car without exiting? diff --git a/subjects/widgetfactory/README.md b/subjects/widgetfactory/README.md new file mode 100644 index 00000000..006f001c --- /dev/null +++ b/subjects/widgetfactory/README.md @@ -0,0 +1,43 @@ +## Widget Factory + +The focus of this exercise is to learn to display information, buttons, images and whatever you will need on the screen using Widgets. Kinda like those displays in Iron Man, but not really. + +### Objectives + +You will create a first-person style game with only directional and mouse input. The main goal is to create a pause menu where you can change the graphics settings such as resolution, resolution scale, render distance, shadow, texture quality and so on… + +### Instructions + +For this project you will start the game with an empty project and it is requested that you: + +- Create a PlayerCharacter blueprint and give him the ability to move forward, backward, left and right. Also, use the mouse to look around. +- Create a start menu by pressing Escape. +- This Start menu should pause the game and the mouse should show up. + - The Start menu should have a minimum of 4 buttons: + - Resume, that resumes the game when clicked + - A button for each of the students in the group with their username + - Each button should link directly to each student Intra profile. + - Graphics Settings, explained afterwards + - Quit to desktop, that on release should exit the game + +When the player clicks on the Graphics Settings button, another widget should appear where it contains: + +- a slider that lets the player choose the percentage of the resolution scale. +- a dropdown menu where the player can choose the resolution. + - At least three different resolutions should be displayed in the dropdown +- a button at the bottom of the Widget to apply the two above resolution settings. +- a checkbox that when switched on shows the game in full screen and in windowed mode otherwise +- four choices for PostProcessQuality, ShadowQuality, TextureQuality, EffectQuality and FoliageQuality. These four choices are LOW, MEDIUM, HIGH and EPIC. + - Theses settings got to be executed with the “Execute Console Command” node. +- PostProcessAAQuality setting should have the following options as buttons: Off, 2x, 4x, 6x. + - You can use the “append (string)” node to switch between all four choices. +- A “Back” button that bring us back to the main Start menu. +- No more than 25 string variables are allowed in the Graphics Setting widget file. + +While controlling the player in the game, a widget should be visible at all times. This widget should display on a corner of the screen the rounded X, Y, Z (as integers) coordinates of the player. Just make sure it doesn’t disturb the visibility of the other widgets. If you want, after opening the pause menu you can make the player position widget disappear, making it appear again when you return to the game. + +On the level you should display some grass, textured objects and post process on the terrain to show the settings changes. You can find some stuff on the Resources folder. + +When finished, your project should look like the executable example on the folder or the “Expected Result” video. + +> Don’t forget to zip up the project compile and save everything for peer correction. diff --git a/subjects/widgetfactory/audit/README.md b/subjects/widgetfactory/audit/README.md new file mode 100644 index 00000000..548187c0 --- /dev/null +++ b/subjects/widgetfactory/audit/README.md @@ -0,0 +1,39 @@ +#### Functional + +###### Does the player move correctly forward, backward, left, right? + +###### Does the player rotate according to the mouse movement? + +###### Can you see the coordinates of the player position on a corner? + +###### As you are moving through the map, are the coordinates on the widget changing? + +###### Did the Start menu popped up, when Esc is pressed? + +###### Is the game on the background paused? (check on the Player blueprint if the game pause is set) + +###### On the click release, did the quit button on the start menu exited the game? + +###### When clicked, did the resume button on the start menu resumed the game? + +###### When clicked, did the username buttons on the start menu opened the Intra profile of the correct students? + +###### When clicked, did the Graphics Settings button on the start menu opened another widget with the different settings to change? + +###### Does the Graphics Settings menu contain a “resolution scale” slider and a dropdown menu list with a minimum of 3 different resolutions? + +###### Are the Shadow Quality, Post Process, Texture Quality, Effects Quality and Foliage Quality settings present in the Graphics Settings menu? + +###### Do all previous settings contain four choices ("LOW", "MEDIUM", "HIGH" and "EPIC") + +###### Did the widget fit the screen in whatever resolution the game was set on? + +###### Was the 25 string variables limit respected? + +#### Bonus + +###### Was there a resolution confirmation button anytime when changing resolution? + +###### Was the “On Release” attribute of the buttons used instead of the "On Pressed"? + +###### Are the default screen resolution automatically set to get the best computer performance? diff --git a/subjects/zombieai/README.md b/subjects/zombieai/README.md new file mode 100644 index 00000000..6797d312 --- /dev/null +++ b/subjects/zombieai/README.md @@ -0,0 +1,60 @@ +## ZombieAI + +The goal of this exercise is to create a zombie game with a wave system similar to the Call of Duty zombie mode. Do you know what does it take to become a zombie? Dead-ication. + +### Objectives + +You will use the content in the Resources folder to create a zombie wave game. The player will be a character with one of the guns and zombies will be coming for him from various points in the map. + +Also you will use the solution from one of the previous exercises. + +### Instructions + +These are some the features that the game should have: + +- a Menu map where you will display 3 options: + + - Start Game (Load the map and launch the game) + - Settings (Migrate your WidgetFactory project to integrate it to this one) + - Quit Game (Exits the game) + +After entering the game by clicking the "Start Game" button, the game should contain: + +- a widget on the screen should be visible for the player life and should also contain the wave number that the player is in. +- an enemy spawning system from a blueprint that can be placed around the world. + - zombies should never all spawn at the same time. Zombies should spawn one by one every `N` second(s)(you decide what N is). +- create the animation for the Zombie. There should be at least two animations (running and attacking). These actions have to be performed by the Behavior Tree. + - on spawn, the Zombie should detect the player location and run towards it, following the Behavior Tree that you created earlier. +- when shooting, a fire projectile has to be casted and shot from the muzzle of the rifle. +- when the Zombie is near the player, the zombie should hit the player. + - when the player is hit, his life bar should decrease. + - after 5 hits the player should die. + - the life of the player should slowly get back up, 2 seconds after the hit. If the player gets hit again, wait 2 seconds again to give him back his health. +- on zombie component hit with the projectile, the zombie should lose health when it gets hit and should not die in one shot. + - after being hit multiple times and dying, the death of the zombie has to be noticeable. +- the zombie spawning and the recovery of health should be handled by the node "Set Timer by Function Name" +- the wave system should be as simple as it sounds. When you kill a certain amount of zombies in the first round, you calculate the number of zombie you want for the second round and spawn them (You can maybe get more creative than zombiesNumber \* 2 or \* wave). + - more zombies should spawn as the waves increases. +- you have the freedom to create the map and design the level. Just be sure that the Navigation Mesh Bound covers the whole map or else you’ll have trouble with the zombie not coming for the player. +- every projectile and zombie should be destroyed when they're no more visible/alive. +- the sound from the shot and from the zombie have to be handled. + - zombie sound should be following the zombie and the distance should raise or lower the sound when the player gets closer or far. + - when you shoot, there must be heard two sounds: the shot sound and the shells of the round hitting the ground. +- when the player is dead at least two information have to be displayed on the screen: + - Number of zombies killed + - Wave the player died + - this two stats also have to be displayed when the player presses the TAB button and be hidden when the TAB button is released. + +When finished, your project should look like the executable example on the folder or the “Expected Result” video. + +> Don’t forget to zip up the project compile and save everything for peer correction. + +### Bonus + +To make the game more interesting you could: + +- Implement a way of receiving power-ups/benefits when a zombie dies (like get more health, make the zombies slower, or other things). +- Make a 3D main menu. +- Implement a point system, in which every time the player kills a zombie, pass wave, etc…, the points gets higher. +- Add creepy music during the game, add sound at each new wave, etc… +- make the player have to reload the weapon, in other words, make the gun go out of ammo. diff --git a/subjects/zombieai/audit/README.md b/subjects/zombieai/audit/README.md new file mode 100644 index 00000000..a11eb1ff --- /dev/null +++ b/subjects/zombieai/audit/README.md @@ -0,0 +1,43 @@ +#### Functional + +###### Does the project start with a menu where you can select between "Start game", "Settings" and "Quit Game"? + +###### Are the projectiles casted from the muzzle of the rifle? Check that on the gun blueprint searching by the projectile. + +###### Does the zombie die after being hit multiple times with the projectile and doesn’t die in one shot? + +###### Do you notice perfectly when a Zombie dies? The zombie doesn’t just disappear from the screen? + +###### Is every zombie destroyed after being killed? + +###### Is there no projectile kept in memory after being used? + +###### Does each wave has more and more zombie? + +###### Does the player dies after being hit 5 times? + +###### Did the student used "Set Timer by Function Name" to spawn Zombies and restore the player life when being hit? + +###### After pressing the `P` key on the viewport of the project, do you confirm that the navigation mesh bound cover the whole terrain? + +###### The behavior tree contains tasks that get the player location, chase the player and attack him when the player is close? + +###### When you shoot, can you hear the shot and the sound of the shell hitting the ground? + +###### Can you hear the sound getting louder as he comes closer? + +###### Did the student used a Sound Attenuation make the sound get louder as the zombie gets closer? + +#### Bonus + +###### Does the player receives any power-ups/benefits when a zombie dies? + +###### Is the main menu a 3D main menu? + +###### Does the game has a points system? (in which every time we kill a zombie, pass wave, etc, the points gets higher?) + +###### Does the game has creepy music? + +###### Is a sound played each time you move to the next wave? + +###### Does the gun goes out of ammo? From 40eda3d1e62336627e356f7d109e7eb4bffe8fab Mon Sep 17 00:00:00 2001 From: OGordoo Date: Wed, 18 Nov 2020 18:17:40 +0000 Subject: [PATCH 2/6] expected result videos on readmes --- subjects/armyofone/README.md | 2 +- subjects/firingrange/README.md | 7 ++++--- subjects/mousevr/README.md | 2 +- subjects/nascaronlinealpha/README.md | 2 +- subjects/vehiclephysics/README.md | 2 +- subjects/widgetfactory/README.md | 6 +++--- subjects/zombieai/README.md | 2 +- 7 files changed, 12 insertions(+), 11 deletions(-) diff --git a/subjects/armyofone/README.md b/subjects/armyofone/README.md index 43c0d052..0822f7d1 100644 --- a/subjects/armyofone/README.md +++ b/subjects/armyofone/README.md @@ -23,6 +23,6 @@ Starting from an empty project, after creating a level with a floor (nothing els - use Animation Blendspace to organize your movements. - use Animation Blueprint variables to handle different animation states. -When finished, your project should look like the executable example on the folder or the “Expected Result” video. +When finished, your project should look like the executable example on the folder or the [“Expected Result” video](https://youtu.be/sebi5icA1MM). > Don’t forget to zip up the project compile and save everything for peer correction. diff --git a/subjects/firingrange/README.md b/subjects/firingrange/README.md index 5ce24b0a..5b79562d 100644 --- a/subjects/firingrange/README.md +++ b/subjects/firingrange/README.md @@ -6,8 +6,11 @@ In this exercise, you will learn to use Unreal Engine and use Blueprints to scri The map of this project should be composed by a cube with dimensions of X = 35, Y = 40, Z = 1, simulating the floor and other cubes as walls around the floor. In the map there should be a zone where the character should be able to walk around and shoot to the targets and another zone where the player can not go, where the targets are present. +You will need this [image](), from which you will create a new material and associate the image to it. + For this project you will have to create a Blueprint Class target, that will have some characteristics. The target should : +- have associated to it the previous created material. - either be moving from side to side or stationary. - be dynamic, using the timeline node. - use a public variable to set or unset the movement animation of the target. @@ -20,9 +23,7 @@ The previous mentioned projectile should: - have a size of X = Y = Z = 0,5. - have a speed of 10000. -The First-person template and all needed assets can be found in the Firing Range folder. - -When finished, your project should look like the executable example on the folder or the “Expected Result” video. +When finished, your project should look like the executable example on the folder or the ["Expected Result" video](https://youtu.be/EBibaN-dh_0). > Don’t forget to zip up the project compile and save everything for peer correction. diff --git a/subjects/mousevr/README.md b/subjects/mousevr/README.md index 21aa4527..d4622847 100644 --- a/subjects/mousevr/README.md +++ b/subjects/mousevr/README.md @@ -25,7 +25,7 @@ After creating a blank project and importing the content from the provided folde - Use interaction timer to set how many time should the player look to an interaction point, in order to travel to the next space (Like on the video example). In other words, the player should look for a while at the interaction point before getting teleported to the next scene. - Except for the interaction point and the spheres containing the panoramic images, no 3D objects are allowed on the map. -When finished, your project should look like the executable example on the folder or the “Expected Result” video. +When finished, your project should look like the executable example on the folder or the [“Expected Result” video](https://youtu.be/Tor1Q10NG_Q). > Don’t forget to zip up the project compile and save everything for peer correction. diff --git a/subjects/nascaronlinealpha/README.md b/subjects/nascaronlinealpha/README.md index de8c7fc5..1e687af8 100644 --- a/subjects/nascaronlinealpha/README.md +++ b/subjects/nascaronlinealpha/README.md @@ -39,7 +39,7 @@ As for the multiplayer aspect, here are some hints that you will have to follow: - Use Game State and replicated variables to know who is the winner of the game. If you have more info to share for all players on the game, do it through Game State using server replication. - Use "Has Authority" checks to know if it is the server or the client that is trying to execute an action. -When finished, your project should look like the executable example on the folder or the “Expected Result” video. +When finished, your project should look like the executable example on the folder or the [“Expected Result” video](https://youtu.be/s56rio0bw0U). > Don’t forget to zip up the project compile and save everything for peer correction. diff --git a/subjects/vehiclephysics/README.md b/subjects/vehiclephysics/README.md index 45ecae28..af860286 100644 --- a/subjects/vehiclephysics/README.md +++ b/subjects/vehiclephysics/README.md @@ -31,7 +31,7 @@ There must be three models of cars on the map the character can choose from. All To create the map you should use the Landscape tool. Also add a track using spline roads. -When finished, your project should look like the executable example on the folder or the “Expected Result” video. +When finished, your project should look like the executable example on the folder or the [“Expected Result” video](https://youtu.be/4dXjFKh_jjY). > Don’t forget to zip up the project compile and save everything for peer correction. diff --git a/subjects/widgetfactory/README.md b/subjects/widgetfactory/README.md index 006f001c..ea37ca0a 100644 --- a/subjects/widgetfactory/README.md +++ b/subjects/widgetfactory/README.md @@ -8,7 +8,7 @@ You will create a first-person style game with only directional and mouse input. ### Instructions -For this project you will start the game with an empty project and it is requested that you: +For this project you will start the game with an empty project and be sure to create it including the starter content. It is requested that you: - Create a PlayerCharacter blueprint and give him the ability to move forward, backward, left and right. Also, use the mouse to look around. - Create a start menu by pressing Escape. @@ -36,8 +36,8 @@ When the player clicks on the Graphics Settings button, another widget should ap While controlling the player in the game, a widget should be visible at all times. This widget should display on a corner of the screen the rounded X, Y, Z (as integers) coordinates of the player. Just make sure it doesn’t disturb the visibility of the other widgets. If you want, after opening the pause menu you can make the player position widget disappear, making it appear again when you return to the game. -On the level you should display some grass, textured objects and post process on the terrain to show the settings changes. You can find some stuff on the Resources folder. +On the level you should display some grass, textured objects and post process on the terrain to show the settings changes. You can find some stuff on the StarterContent folder. -When finished, your project should look like the executable example on the folder or the “Expected Result” video. +When finished, your project should look like the executable example on the folder or the [“Expected Result” video](https://youtu.be/0v-spQJwDwM). > Don’t forget to zip up the project compile and save everything for peer correction. diff --git a/subjects/zombieai/README.md b/subjects/zombieai/README.md index 6797d312..8e3988b1 100644 --- a/subjects/zombieai/README.md +++ b/subjects/zombieai/README.md @@ -45,7 +45,7 @@ After entering the game by clicking the "Start Game" button, the game should con - Wave the player died - this two stats also have to be displayed when the player presses the TAB button and be hidden when the TAB button is released. -When finished, your project should look like the executable example on the folder or the “Expected Result” video. +When finished, your project should look like the executable example on the folder or the [“Expected Result” video](https://youtu.be/d8MqIVuC88k). > Don’t forget to zip up the project compile and save everything for peer correction. From a0d277aaa408fd9768ae68b81a2a7e86446fceab Mon Sep 17 00:00:00 2001 From: OGordoo Date: Tue, 24 Nov 2020 11:34:57 +0000 Subject: [PATCH 3/6] Guide and download resources links --- docs/unreal-engine-setup.md | 39 ++++++++++++++++++++++++++ subjects/armyofone/README.md | 6 ++-- subjects/firingrange/README.md | 6 ++-- subjects/mousevr/README.md | 4 ++- subjects/nascaronlinealpha/README.md | 4 +-- subjects/vehiclephysics/README.md | 6 ++-- subjects/widgetfactory/README.md | 12 ++++++-- subjects/widgetfactory/audit/README.md | 2 +- subjects/zombieai/README.md | 6 ++-- 9 files changed, 70 insertions(+), 15 deletions(-) create mode 100644 docs/unreal-engine-setup.md diff --git a/docs/unreal-engine-setup.md b/docs/unreal-engine-setup.md new file mode 100644 index 00000000..c1288748 --- /dev/null +++ b/docs/unreal-engine-setup.md @@ -0,0 +1,39 @@ +## Setup Guide + +This is a guide with all steps to install the Epic Games Launcher and Unreal Engine to get ready to work. + +First up you will need to register on [Epic Games](https://www.epicgames.com/id/register?redirect_uri=https%3A%2F%2Fwww.epicgames.com%2Fstore%2Fen-US%2F&client_id=875a3b57d3a640a6b7f9b4e883463ab4). + +Then depending on your operating system, you will need the following steps: + +### Windows + +- On the [Epic Games main page](https://www.epicgames.com/store/en-US/) you can find on the top right corner a button (`Get Epic Games`), click on it. +- An download pop up box should appear, so proceed to download the installer. +- After going through all the steps to install the Epic Games Launcher, open it and sign in using your account. + +### Linux + +- First of all you will need to install `wine` to run Windows programs on Linux systems. + + - If you have a 64-bit Linux system use: `sudo apt install wine64` + - If you have a 32-bit Linux system use: `sudo apt install wine32` + - Check if it's installed correctly with: `wine --version` + +- Then, you will need to instal `Lutris` in order to download Epic Games with the following commands: + +```sh +sudo add-apt-repository ppa:lutris-team/lutris +sudo apt update +sudo apt install lutris +``` + +- After `Lutris` is installed, open it and on the top bar, search for `Epic Games` and you will see the result `Epic Games Store`. Go ahead and click on install. + +- After installing it, open it and sign up to your account. + +### Unreal Engine + +- Once the Epic Games Launcher is opened, go to the `Unreal Engine` tab and select the Library tab. +- Click on the plus icon to add `Unreal Engine 4` and choose the version you want to install, by clicking on the dropdown list. Then click on install. +- After installing the Unreal Engine, you can click on `Launch` and prepare for the next adventure. diff --git a/subjects/armyofone/README.md b/subjects/armyofone/README.md index 0822f7d1..425ea73f 100644 --- a/subjects/armyofone/README.md +++ b/subjects/armyofone/README.md @@ -23,6 +23,8 @@ Starting from an empty project, after creating a level with a floor (nothing els - use Animation Blendspace to organize your movements. - use Animation Blueprint variables to handle different animation states. -When finished, your project should look like the executable example on the folder or the [“Expected Result” video](https://youtu.be/sebi5icA1MM). +After downloading and unzipping this [file](), you can copy its content to your project Content folder. -> Don’t forget to zip up the project compile and save everything for peer correction. +When finished, your project should look like the [“Expected Result” video](https://youtu.be/sebi5icA1MM). + +> Do not forget to zip up the project compile and save everything for peer correction. diff --git a/subjects/firingrange/README.md b/subjects/firingrange/README.md index 5b79562d..1413a844 100644 --- a/subjects/firingrange/README.md +++ b/subjects/firingrange/README.md @@ -6,8 +6,6 @@ In this exercise, you will learn to use Unreal Engine and use Blueprints to scri The map of this project should be composed by a cube with dimensions of X = 35, Y = 40, Z = 1, simulating the floor and other cubes as walls around the floor. In the map there should be a zone where the character should be able to walk around and shoot to the targets and another zone where the player can not go, where the targets are present. -You will need this [image](), from which you will create a new material and associate the image to it. - For this project you will have to create a Blueprint Class target, that will have some characteristics. The target should : - have associated to it the previous created material. @@ -23,9 +21,11 @@ The previous mentioned projectile should: - have a size of X = Y = Z = 0,5. - have a speed of 10000. +After downloading and unzipping this [file](https://assets.01-edu.org/FiringRange.zip), you can copy its content to your project Content folder. + When finished, your project should look like the executable example on the folder or the ["Expected Result" video](https://youtu.be/EBibaN-dh_0). -> Don’t forget to zip up the project compile and save everything for peer correction. +> Do not forget to zip up the project compile and save everything for peer correction. #### Bonus diff --git a/subjects/mousevr/README.md b/subjects/mousevr/README.md index d4622847..a924ca71 100644 --- a/subjects/mousevr/README.md +++ b/subjects/mousevr/README.md @@ -25,7 +25,9 @@ After creating a blank project and importing the content from the provided folde - Use interaction timer to set how many time should the player look to an interaction point, in order to travel to the next space (Like on the video example). In other words, the player should look for a while at the interaction point before getting teleported to the next scene. - Except for the interaction point and the spheres containing the panoramic images, no 3D objects are allowed on the map. -When finished, your project should look like the executable example on the folder or the [“Expected Result” video](https://youtu.be/Tor1Q10NG_Q). +After downloading and unzipping this [file](https://assets.01-edu.org/MouseVR.zip), you can copy its content to your project Content folder. + +When finished, your project should look like the [“Expected Result” video](https://youtu.be/Tor1Q10NG_Q). > Don’t forget to zip up the project compile and save everything for peer correction. diff --git a/subjects/nascaronlinealpha/README.md b/subjects/nascaronlinealpha/README.md index 1e687af8..63c8d656 100644 --- a/subjects/nascaronlinealpha/README.md +++ b/subjects/nascaronlinealpha/README.md @@ -39,9 +39,9 @@ As for the multiplayer aspect, here are some hints that you will have to follow: - Use Game State and replicated variables to know who is the winner of the game. If you have more info to share for all players on the game, do it through Game State using server replication. - Use "Has Authority" checks to know if it is the server or the client that is trying to execute an action. -When finished, your project should look like the executable example on the folder or the [“Expected Result” video](https://youtu.be/s56rio0bw0U). +When finished, your project should look like the [“Expected Result” video](https://youtu.be/s56rio0bw0U). -> Don’t forget to zip up the project compile and save everything for peer correction. +> Do not forget to zip up the project compile and save everything for peer correction. ### Bonus diff --git a/subjects/vehiclephysics/README.md b/subjects/vehiclephysics/README.md index af860286..7570c4d5 100644 --- a/subjects/vehiclephysics/README.md +++ b/subjects/vehiclephysics/README.md @@ -31,9 +31,11 @@ There must be three models of cars on the map the character can choose from. All To create the map you should use the Landscape tool. Also add a track using spline roads. -When finished, your project should look like the executable example on the folder or the [“Expected Result” video](https://youtu.be/4dXjFKh_jjY). +After downloading and unzipping this [file](https://assets.01-edu.org/VehiculePhysics.zip), you can copy its content to your project Content folder. -> Don’t forget to zip up the project compile and save everything for peer correction. +When finished, your project should look like the [“Expected Result” video](https://youtu.be/4dXjFKh_jjY). + +> Do not forget to zip up the project compile and save everything for peer correction. #### Bonus diff --git a/subjects/widgetfactory/README.md b/subjects/widgetfactory/README.md index ea37ca0a..ad7636b2 100644 --- a/subjects/widgetfactory/README.md +++ b/subjects/widgetfactory/README.md @@ -38,6 +38,14 @@ While controlling the player in the game, a widget should be visible at all time On the level you should display some grass, textured objects and post process on the terrain to show the settings changes. You can find some stuff on the StarterContent folder. -When finished, your project should look like the executable example on the folder or the [“Expected Result” video](https://youtu.be/0v-spQJwDwM). +When finished, your project should look like the [“Expected Result” video](https://youtu.be/0v-spQJwDwM). -> Don’t forget to zip up the project compile and save everything for peer correction. +> Do not forget to zip up the project compile and save everything for peer correction. + +### Bonus + +As bonuses you can maybe: + +- Add a resolution confirmation button when changing resolution. +- Use the “On Release” attribute of the buttons, instead of the "On Pressed". + Automatically set the default screen resolution to get the best computer performance. diff --git a/subjects/widgetfactory/audit/README.md b/subjects/widgetfactory/audit/README.md index 548187c0..e39b685f 100644 --- a/subjects/widgetfactory/audit/README.md +++ b/subjects/widgetfactory/audit/README.md @@ -32,7 +32,7 @@ #### Bonus -###### Was there a resolution confirmation button anytime when changing resolution? +###### Was there a resolution confirmation button when changing resolution? ###### Was the “On Release” attribute of the buttons used instead of the "On Pressed"? diff --git a/subjects/zombieai/README.md b/subjects/zombieai/README.md index 8e3988b1..992d487d 100644 --- a/subjects/zombieai/README.md +++ b/subjects/zombieai/README.md @@ -45,9 +45,11 @@ After entering the game by clicking the "Start Game" button, the game should con - Wave the player died - this two stats also have to be displayed when the player presses the TAB button and be hidden when the TAB button is released. -When finished, your project should look like the executable example on the folder or the [“Expected Result” video](https://youtu.be/d8MqIVuC88k). +After downloading and unzipping this [file](https://assets.01-edu.org/ZombieAI.zip), you can copy its content to your project Content folder. -> Don’t forget to zip up the project compile and save everything for peer correction. +When finished, your project should look like the [“Expected Result” video](https://youtu.be/d8MqIVuC88k). + +> Do not forget to zip up the project compile and save everything for peer correction. ### Bonus From b75dd4211b495ab9bfab794dfe97adcb038b8d73 Mon Sep 17 00:00:00 2001 From: Chris Date: Mon, 7 Dec 2020 19:13:43 +0000 Subject: [PATCH 4/6] first proofreading --- docs/unreal-engine-setup.md | 14 +++---- subjects/armyofone/README.md | 8 ++++ subjects/armyofone/audit/README.md | 26 ++++++------ subjects/firingrange/README.md | 16 ++++---- subjects/firingrange/audit/README.md | 16 ++++---- subjects/mousevr/README.md | 26 +++++++----- subjects/mousevr/audit/README.md | 8 ++-- subjects/nascaronlinealpha/README.md | 47 +++++++++++++++------- subjects/nascaronlinealpha/audit/README.md | 22 +++++----- subjects/vehiclephysics/README.md | 20 ++++----- subjects/vehiclephysics/audit/README.md | 30 +++++++------- 11 files changed, 133 insertions(+), 100 deletions(-) diff --git a/docs/unreal-engine-setup.md b/docs/unreal-engine-setup.md index c1288748..6fbd20ad 100644 --- a/docs/unreal-engine-setup.md +++ b/docs/unreal-engine-setup.md @@ -8,19 +8,19 @@ Then depending on your operating system, you will need the following steps: ### Windows -- On the [Epic Games main page](https://www.epicgames.com/store/en-US/) you can find on the top right corner a button (`Get Epic Games`), click on it. -- An download pop up box should appear, so proceed to download the installer. +- On the [Epic Games main page](https://www.epicgames.com/store/en-US/) click on the top right corner button (`Get Epic Games`). +- A download pop up box should appear, then proceed to download the installer. - After going through all the steps to install the Epic Games Launcher, open it and sign in using your account. ### Linux -- First of all you will need to install `wine` to run Windows programs on Linux systems. +- First of all, install `wine` to run Windows programs on Linux systems. - If you have a 64-bit Linux system use: `sudo apt install wine64` - If you have a 32-bit Linux system use: `sudo apt install wine32` - - Check if it's installed correctly with: `wine --version` + - Check if it is installed correctly with: `wine --version` -- Then, you will need to instal `Lutris` in order to download Epic Games with the following commands: +- Then, install `Lutris` in order to download Epic Games with the following commands: ```sh sudo add-apt-repository ppa:lutris-team/lutris @@ -30,10 +30,10 @@ sudo apt install lutris - After `Lutris` is installed, open it and on the top bar, search for `Epic Games` and you will see the result `Epic Games Store`. Go ahead and click on install. -- After installing it, open it and sign up to your account. +- After installing it, open it and sign in with your account. ### Unreal Engine - Once the Epic Games Launcher is opened, go to the `Unreal Engine` tab and select the Library tab. -- Click on the plus icon to add `Unreal Engine 4` and choose the version you want to install, by clicking on the dropdown list. Then click on install. +- Click on the plus icon to add `Unreal Engine 4` and choose the version to install by clicking on the dropdown list. Then click on install. - After installing the Unreal Engine, you can click on `Launch` and prepare for the next adventure. diff --git a/subjects/armyofone/README.md b/subjects/armyofone/README.md index 425ea73f..3e190c7f 100644 --- a/subjects/armyofone/README.md +++ b/subjects/armyofone/README.md @@ -11,16 +11,24 @@ For this project you will implement a fully playable character using what we cal Starting from an empty project, after creating a level with a floor (nothing else is really required), you should: - create a Third Player Character Blueprint and apply the Countess mesh to it. + - give the character the ability to: + - move forward, backward, left and right using the WASD keys - look around and change direction using the mouse - jump using Space - attack using the left mouse click + - create an animation blueprint file to animate the character so she can be animated while running, jumping, attacking, etc. + - implement the Aim Offset, so that when the player moves the mouse, the head of Countess follow the direction we’re looking at, in a 180-degree angle. + - separate the upper and lower body part, so that the character is able to walk and attack at the same time without any animation problems. + - make Countess lean according to the mouse direction, while running forward. + - use Animation Blendspace to organize your movements. + - use Animation Blueprint variables to handle different animation states. After downloading and unzipping this [file](), you can copy its content to your project Content folder. diff --git a/subjects/armyofone/audit/README.md b/subjects/armyofone/audit/README.md index b98fe574..1a668b5f 100644 --- a/subjects/armyofone/audit/README.md +++ b/subjects/armyofone/audit/README.md @@ -1,37 +1,37 @@ #### Functional -###### Can Countess move in the four directions (forward, backward, left and right) using the WASD keys? +###### Can the Countess character move in the four directions (forward, backward, left and right) using the WASD keys? -###### Can Countess jump using the Space key? +###### Can the Countess character jump using the Space key? -###### Can Countess attack using the left mouse click? +###### Can the Countess character attack using the left mouse click? -###### While running, does moving the mouse left and right change the player leaning angle and direction? +###### While running, does moving the mouse left and right change the player's leaning angle and direction? -###### Does the animation used for the countess in the animation blueprint are stored in a BlendSpace file? +###### Is the animation used for the countess in the animation blueprint stored in a BlendSpace file? -###### Does the head of the countess follow the mouse orientation? +###### Does the Countess head follow the mouse orientation? ###### Is an Aim Offset being used to move the Countess head according to the mouse movement? -###### Can Countess attack using the blades when clicking on the left mouse button? +###### Can the Countess character attack using the blades when clicking on the left mouse button? -###### Does the Countess body blends between two animation???????? +###### Is the Countess body blending between two animations? -###### Are there no severe body transition when starting the attack or jumping, etc…? +###### Are the body transitions smooth when starting an attack or jumping, etc…? ###### Can you attack and move around at the same time without damaging the animations performance? -###### Does the Countess body blends between two animation (are blend nodes being used)? +###### Does the Countess body blends between two animations (are blend nodes being used)? ###### Is the upper body and lower body being controlled as "two separate modules"? -###### Does the Animation Blueprint have at least three variables in order to handle the character speed, if she is in the air and attacking? +###### Does the Animation Blueprint have at least three variables in order to handle the character speed if she is in the air and attacking? #### Bonus -###### Can Countess execute more than 3 attacks? +###### Can the Countess character execute more than 3 attacks? -###### Are there at least two different Countess skins being used? +###### Are they at least two different Countess skins being used? diff --git a/subjects/firingrange/README.md b/subjects/firingrange/README.md index 1413a844..c758ae29 100644 --- a/subjects/firingrange/README.md +++ b/subjects/firingrange/README.md @@ -1,22 +1,22 @@ ## FiringRange -In this exercise, you will learn to use Unreal Engine and use Blueprints to script functionalities of a basic FPS game. The theme is to reproduce a firing range. And remember weapons are allowed only inside the shooting area!! +In this exercise, you will learn to use the Unreal Engine and Blueprints to script functionalities of a basic FPS game. The theme is to reproduce a firing range. And remember, weapons are allowed only inside the shooting area!! ### Instructions -The map of this project should be composed by a cube with dimensions of X = 35, Y = 40, Z = 1, simulating the floor and other cubes as walls around the floor. In the map there should be a zone where the character should be able to walk around and shoot to the targets and another zone where the player can not go, where the targets are present. +The map of this project should be composed of a cube with dimensions of X = 35, Y = 40, Z = 1. It should simulate the floor and other cubes as walls around the floor. In the map there should be a zone where the character is able to walk around and shoot the targets and another zone where the player can not go and where the targets are present. -For this project you will have to create a Blueprint Class target, that will have some characteristics. The target should : +For this project you will have to create a Blueprint Class target, that will have some of these characteristics. The target should : - have associated to it the previous created material. -- either be moving from side to side or stationary. +- either be moving from side to side or be stationary. - be dynamic, using the timeline node. - use a public variable to set or unset the movement animation of the target. -- rise again after x seconds after being hit it with a projectile, , and behave like before it was hit. +- rise again after x seconds after being hit it with a projectile, and behave like before it was hit. -Only one class of target is allowed on the whole project. +Only one class of target is allowed for the whole project. -The previous mentioned projectile should: +The previously mentioned projectile should: - have a size of X = Y = Z = 0,5. - have a speed of 10000. @@ -33,4 +33,4 @@ Here are some ideas for improving the game: - Targets with different speeds - Textures on the walls and ground -- Add obstacles in front of the targets +- Adding obstacles in front of the targets diff --git a/subjects/firingrange/audit/README.md b/subjects/firingrange/audit/README.md index 91866e57..c1763833 100644 --- a/subjects/firingrange/audit/README.md +++ b/subjects/firingrange/audit/README.md @@ -1,25 +1,25 @@ #### Functional -###### Are the map size and composition (using cubes) being respected? +###### Are the map size (X = 35, Y = 40, Z = 1) and composition (using cubes) being respected? -###### Are the projectile size and speed being respected? +###### Are the projectile size (X = Y = Z = 0,5) and speed (10000) being respected? -###### If you try to move the target to the target zone, is the player forbidden from trespassing to that zone by a invisible wall? +###### If you try to move the target to the target zone, is the player forbidden from trespassing to that zone by an invisible wall? ###### When you shoot a target, does the bullet go through the invisible wall? -###### Did the targets lay on the ground correctly on the floor when hit by the projectile? +###### Did the targets correctly lay on the floor when hit by the projectile? ###### Did the target rotate from the bottom and not from the center? -###### Is there only one class “BP_Target” is present on the project? +###### Is there only one class “BP_Target” present on the project? -###### Do all the public variable have a tooltip? (Mouse over it to check if a description is set or check if the variable have a little green eye on the right) +###### Do all the public variables have a tooltip? (Mouse over it to check if a description is set or check if the variable have a little green eye on the right) #### Bonus -###### Does different targets have different speeds? +###### Do different targets have different speeds? -###### Does walls and floor have texture? +###### Do the walls and floor have texture? ###### Are there obstacles in front of targets? diff --git a/subjects/mousevr/README.md b/subjects/mousevr/README.md index a924ca71..ab8c903b 100644 --- a/subjects/mousevr/README.md +++ b/subjects/mousevr/README.md @@ -1,6 +1,6 @@ ## MouseVR -On this one you will learn the basics of interaction using objects, learn the use of blueprint interface, learn stereoscopic sphere texturing. How, you ask? By creating a game in which you'll be in a city and will be looking for interaction points in order to travel through the map. And do not to look straight at the end of the subject. +On this one you will learn the basics of interaction using objects, learn the use of blueprint interface and learn stereoscopic sphere texturing. How, you ask? By creating a game in which you will be in a city and will be looking for interaction points in order to travel through the map. And do not to look straight at the end of the subject. ### Objectives @@ -10,33 +10,41 @@ You will have to create a game that uses the mouse as if it were the player head After creating a blank project and importing the content from the provided folder, you should focus on the following points to accomplish the previous explained features: -- Use Scene Capture to take a 360 degrees screenshot, that you’ll need later on every targeted location on the map. +- Use Scene Capture to take a 360 degrees screenshot, that you will need later on every targeted location on the map. - With this, you can create a new material and apply it to a sphere. - Find a way to display the material inside and outside the sphere to create a VR world illusion. + - Create a pawn that can move his head using the mouse inside the spheres. + - In order to play the game, the player only needs to use the mouse and never the keyboard. + - Create your own interaction point to indicate where the player is heading. - - The design of the interaction point is up to you, but it should display a text underneath it, indicating where this interaction point is gonna lead the player to (burger store, metro, park, etc...) + - The design of the interaction point is up to you, but it should display a text underneath it, indicating where this interaction point is going to lead the player to (burger store, metro, park, etc...) - There should always be an interaction point visible to the player, somewhere in the world that lets the player quit, no matter where the player is in the map. + - There should be no brutal transitions in the teleportation phase. + - Use an Interface Blueprint to handle interactions: a Blur, a Focus and an Active interaction. -- Use SphereTraceByChannel node to be able to look at objects. + +- Use a SphereTraceByChannel node to be able to look at objects. - Use casting with your interaction point to know which object you are looking at. -- Use interaction timer to set how many time should the player look to an interaction point, in order to travel to the next space (Like on the video example). In other words, the player should look for a while at the interaction point before getting teleported to the next scene. + +- Use an interaction timer to set how many times should the player look at an interaction point in order to travel to the next space (like on the video example). In other words, the player should look for a while at the interaction point before getting teleported to the next scene. + - Except for the interaction point and the spheres containing the panoramic images, no 3D objects are allowed on the map. After downloading and unzipping this [file](https://assets.01-edu.org/MouseVR.zip), you can copy its content to your project Content folder. When finished, your project should look like the [“Expected Result” video](https://youtu.be/Tor1Q10NG_Q). -> Don’t forget to zip up the project compile and save everything for peer correction. +> Do not forget to zip up the project compile and save everything for peer correction. ### Bonus -As bonus for this project there are the following: +The following are the bonuses for this project: -- Create a circle around the interaction points, that indicates when the interaction point will be triggered. +- Create a circle, around the interaction points, that indicates when the interaction point will be triggered. - Animate the interaction points. - Add looping background music during the experience. -Ah, made you look. +Ah! I made you look. diff --git a/subjects/mousevr/audit/README.md b/subjects/mousevr/audit/README.md index 7f95644c..ad2df98c 100644 --- a/subjects/mousevr/audit/README.md +++ b/subjects/mousevr/audit/README.md @@ -1,6 +1,6 @@ #### Functional -###### When you move the mouse does the "head" of the player moves accordingly? +###### When you move the mouse does the "head" of the player move accordingly? ###### Can we navigate throughout the map using interaction points? @@ -12,15 +12,15 @@ ###### Is a "Quit Game" interaction point always available, so that it is possible to quit the game at any point of the game? -###### No brutal teleportation visible to the player? +###### Are all teleportation visible to the player smooth and non brutal? ###### Is a sphere being used to cast instead of a single ray, in other words, did the student used a SphereTraceByChannel node? ###### Is an Interface Blueprint being used to handle the different actions on the interaction point (Blur,Focus and Active)? -###### To be able to teleport to a different scene, do you need to stare for a little at a interaction point? +###### Do you need to stare for a little at a interaction point to be able to teleport to a different scene? -###### Except for the interaction point and the spheres containing the panoramic images, is there any 3D objects on the map? +###### Except for the interaction point and the spheres containing the panoramic images, are there any 3D objects on the map? #### Bonus diff --git a/subjects/nascaronlinealpha/README.md b/subjects/nascaronlinealpha/README.md index 63c8d656..f778681a 100644 --- a/subjects/nascaronlinealpha/README.md +++ b/subjects/nascaronlinealpha/README.md @@ -1,42 +1,59 @@ ## NascarOnlineAlpha -In this exercise, you will create a racing online game. The player will be able to race with another player, to see who is faster. When you feel stuck remember that once, a man couldn’t work out how to fasten his seatbelt. But then it suddenly clicked! +In this exercise, you will create a racing online game. The player will be able to race with another player to see who is faster. When you feel stuck remember that once, a man could not work out how to fasten his seatbelt. But then it suddenly clicked! ### Objectives You will have to create a car game using an already existing project that you will have to download. -You will learn to analyze the code and understand what the developer did before you and adapt to extend the gameplay to continue the development of the game. +You will learn to analyze the code and understand what the developer did before you, and adapt it to extend the gameplay to continue the development of the game. ### Instructions In order to start the project, you will have to open the Epic Games Launcher, switch to the Learn tab and search for the Vehicle Game project. Once you find it and download it, you can create a new Vehicle Game project and that will be the base of your project. -As the game is done, you only will need to make the multiplayer part of it. Basically, you will have to: +As the game is done, you only will need to make the multiplayer part of it. Basically, these are the requirements: - As soon as the game starts it should ask for a name to assign to the player. + - Create a main menu map where the player can choose either to Host/Join a session. - - If the player chooses to Host, the game should ask you for a server name, number of players allowed on the server, if the player wants to host via LAN or ONLINE and a host button that launches the player into a multiplayer Lobby. - - Max. number of players should be 4 and the minimum should be 2. - - If the server name is not provided, the player can not yet host the server and a warning message should appear, requesting to insert a name for the server. - - If you press the Join button, the game should display to the player, a list of available sessions he/she can join. Also a refresh button should be available to search for sessions again. + + - If the player chooses to Host, the game should ask you for a server name, number of players allowed on the server, whether the player wants to host via LAN or ONLINE, and a host button that launches the player into a multiplayer Lobby. + + - The maximum number of players should be 4 and the minimum should be 2. + - If the server name is not provided, the player can not yet host the server and a warning message should appear requesting to insert a name for the server. + + - If you press the Join button, the game should display, a list of available sessions which the player can join. Also a refresh button should be available to search for sessions again. + - A button with the server name in it should appear for each session found. By clicking on it, the player is directly transferred to the host lobby. - - It must be presented to the player the option to do the search for LAN sessions or ONLINE sessions. - - In the start menu, there should be also a button that enables the player to quit the game. + - The option to do the search for LAN sessions or ONLINE sessions must be presented to the player. + + - In the start menu, there should also be a button that enables the player to quit the game. + - In every other menu, there should be a button that allows the player to go back. -- On the host lobby, before the creator of the session starts the game, the player can drive around the map. - - A widget should pop on the screen saying “Waiting for the host to start” if you are not the host and “Click START to start” otherwise. Therefore the host of the server should have available a Start button. -- Once the game started, all players spawn on the map and the race starts after a countdown (A little delay may occur for the client but it quickly goes back to normal so don’t worry for that.) -- The first to finish the race has a text on the screen written “YOU WIN” and “YOU LOSE” for the other players. -- Once the player crosses the finish line, the player input is disabled (player can no longer move). + +- On the host lobby, before the creator of the session starts the game, the player should be able to drive around the map. + + - If you are not the host, a widget should pop on the screen saying “Waiting for the host to start” and if you are the host it should be a “Click START to start” widget. Therefore the host of the server should have a Start button available. + +- Once the game started, all players spawn on the map and the race starts after a countdown (A little delay may occur for the client but it quickly goes back to normal so do not worry about this possible issue.) + +- The first to finish the race has a text on the screen written “YOU WIN”. The rest of the players get a “YOU LOSE” instead. + +- Once the player crosses the finish line, the player input is disabled (the player can no longer move). + - Use the provided loading screen to hide all screen/player switching between maps and screens. As for the multiplayer aspect, here are some hints that you will have to follow: - Use the Advanced Session plugin to have more host options when creating and searching for a session. + - Use replicated Custom Events to share information. + - Use Game Instance to handle all widgets navigation. + - Use Game State and replicated variables to know who is the winner of the game. If you have more info to share for all players on the game, do it through Game State using server replication. + - Use "Has Authority" checks to know if it is the server or the client that is trying to execute an action. When finished, your project should look like the [“Expected Result” video](https://youtu.be/s56rio0bw0U). @@ -49,4 +66,4 @@ As bonus for this exercise you can: - create a restart race button when all players crossed the finish line. - display the winner on every player screen when crossing the finish line. -- make players join a server by IP address, from another LAN network (two players connected to different networks, for example). +- make players join a server by IP address, from another LAN network (two players connected to different networks for example). diff --git a/subjects/nascaronlinealpha/audit/README.md b/subjects/nascaronlinealpha/audit/README.md index 04b57a80..81cd8b17 100644 --- a/subjects/nascaronlinealpha/audit/README.md +++ b/subjects/nascaronlinealpha/audit/README.md @@ -2,17 +2,17 @@ ###### Does the starter menu contains an Host, Join, and Quit button? -###### On the Host and Join menu can the player travel back to the main menu? +###### On the Host and Join menu, can the player travel back to the main menu? -###### On the Host menu can the player custom the following options: server name, max player number, play mode (LAN, ONLINE)? +###### On the Host menu, can the player customize the following options: server name, max player number, play mode (LAN, ONLINE)? ###### Is the maximum number of players 4 and the minimum 2? -###### If you try to host the server without a server name (input text box empty), does a warning message appears and you are forbidden to enter the server? +###### If you try to host the server without a server name (input text box empty), does a warning message appears and are you forbidden to enter the server? -###### On the Join menu can you switch between searching LAN sessions and Online sessions? +###### On the Join menu, can you switch between searching LAN sessions and Online sessions? -###### Once the game finds a session, does a button with the session name displays on the screen? +###### Once the game finds a session, Is a button with the session name displayed on the screen? ###### Does this button allows the player to join the host session? @@ -20,21 +20,21 @@ ###### Inside the lobby, can players see each other driving around? -###### Does a message present either to “Wait for host to launch the game” and “Click start to launch the game” depending if you're the session host or a client? +###### Is a message present either stating to “Wait for host to launch the game” or to “Click start to launch the game” depending whether you are the session host or a client? ###### Is the loading screen present on both server and client when the START button is pressed by the host? ###### After the host clicks on the start button, do all players spawn on the race map? -###### Does the race starts after a countdown? +###### Does the race start after a countdown? -###### Does it appear, on the screen, a message indicating that the player wins or loses, when the players cross the finish line? +###### When the players cross the finish line, does a message appear on the screen indicating that the player wins or loses? -###### Is the player input disabled (player can not move) when the race finishes? +###### When the race finishes, is the player input disabled (player can not move)? ###### Is the Advanced Session plugin being used to create and search a session? -###### Do all widgets navigation are handled inside the GameInstance of the player? +###### Are all widgets navigation handled inside the GameInstance of the player? ###### Does the student used "Has Authority" to know if a custom event is called by the server or the client? @@ -42,6 +42,6 @@ ###### When all players crossed the line, is a restart button available? -###### When crossing the finish line does the name of the winner displays on the screen? +###### When crossing the finish line does the name of the winner display on the screen? ###### Can the players join a session by inserting an IP? diff --git a/subjects/vehiclephysics/README.md b/subjects/vehiclephysics/README.md index 7570c4d5..9e0d69eb 100644 --- a/subjects/vehiclephysics/README.md +++ b/subjects/vehiclephysics/README.md @@ -1,6 +1,6 @@ ## Vehicle Physics -In this exercise you will learn to use the heritage system to create multiple blueprints from a single blueprint file. Also, you will learn to create the vehicle gameplay from scratch using blueprints. Remember to always wear a seat belt and don't text and drive. +In this exercise you will learn to use the heritage system to create multiple blueprints from a single blueprint file. Also, you will learn to create the vehicle gameplay from scratch using blueprints. Remember to always wear a seat belt and do not text and drive. #### Objectives @@ -10,24 +10,26 @@ The point of this exercise is to create three cars and be able to enter and exit The player starts the game by controlling a Third Person character and as soon he gets close to one of the doors of one the three cars present in the level, a message should appear saying to press 'E' to enter the car. As soon as the player presses 'E', the corresponding door of the corresponding car should open and the player should then control the vehicle. Once inside the vehicle the player can press 'E' again to exit the car. Once pressed, the left door of the vehicle should open and the player should appear next to the car. -As for the vehicle, these instructions will be the ones that you will have to take into consideration: +As for the vehicle, these are the expectations: - create a blueprint named BaseCar, that will be the parent of all vehicles classes. - - BaseCar should be a fully functional and realistic vehicle, in other words, should accelerate, brake, have an handbrake, the back wheels should not turn, neither should the front wheels exceed a certain angle, etc. + - BaseCar should be a fully functional and realistic vehicle. In other words, it should accelerate, brake, have a handbrake, the back wheels should not turn, neither should the front wheels exceed a certain angle, etc. - BaseCar should also have dynamic instance for the lights. - The vehicle lights needs to simulate the real behavior of a real vehicle. When pressing the letter 'L' the front lights and the rear presence lights should turn on or off, when braking three braking lights (left, right and center) should turn on and the rear lights should turn on when reversing. - - The BaseCar blueprint should contain "Set Material" nodes to change the headlamp material in order to have the effect that the lights are turned on. + - The BaseCar blueprint should contain "Set Material" nodes to change the headlamp material in order to have the effect where the lights are turned on. - use PhysicMaterials to simulate rain driving terrain. + - only one AnimationBlueprint can be used for this project. -- when inside the vehicle, if the 'C' key is pressed, the camera should change from third person view of the vehicle to the driver view inside the car. - - when in the camera of the driver, the player must be able to see the gears and the speed in the dashboard -There must be three models of cars on the map the character can choose from. All of them should be inherit the BaseCar class. These three models should be: +- when inside the vehicle, if the 'C' key is pressed, the camera should change from the third person view of the vehicle to the driver view inside the car. + - when in the camera of the driver, the player must be able to see the gears and the speedometer in the dashboard + +There must be three models of cars on the map the character can choose from. All of them should inherit the BaseCar class. These three models should be: - a Peugeot 3008 year 2018 car. - an Audi A8 year 2011 car. - a Tesla Model 3 car. -- The Mass, Acceleration, Number of gears, Max speed, Torque Curve, etc. needs to be really close of the selected vehicle. This [website](https://www.automobile-catalog.com) could help you find what you’re looking for. +- The Mass, Acceleration, Number of gears, Max speed, Torque Curve, etc. needs to be really close of the selected vehicle. This [website](https://www.automobile-catalog.com) could help you find what you are looking for. To create the map you should use the Landscape tool. Also add a track using spline roads. @@ -41,6 +43,6 @@ When finished, your project should look like the [“Expected Result” video](h As bonus objectives you can: -- Create steam/flames particles going out from car exhaust. +- Create steam/flames particles going out from the car exhaust - Animate the character entering and sitting in the car - Add a button to open the doors while inside the car without exiting it diff --git a/subjects/vehiclephysics/audit/README.md b/subjects/vehiclephysics/audit/README.md index 0d93e90a..297366d6 100644 --- a/subjects/vehiclephysics/audit/README.md +++ b/subjects/vehiclephysics/audit/README.md @@ -6,44 +6,42 @@ ###### If you click 'E' next to the car door, does the door open and you start controlling the car? -###### Once inside the car, if you press 'E' again, does the character exits the car? +###### Once inside the car, if you press 'E' again, does the character exit the car? ###### After checking the three cars blueprints, did all of them inherit the "BaseCar" class? ###### Does the vehicle feels right to drive/reacts normally while driving it? -###### Do the rear wheels have steer angle of 0.0, in other words, do not turn? +###### Do the rear wheels have steer angle of 0.0, in other words, do they not turn? -- Did the Front wheels have a steer angle between 25 and 35? +###### Did the Front wheels have a steer angle between 25 and 35? -- Front wheels are not affected by handbrake? +###### Are the front wheels are not affected by handbrake? -- Is the "Suspension force offset" inside the "Vehicle Wheel" Blueprint between 5 and 15, to make the vehicle not lean too much when steering left and right? +###### Is the "Suspension force offset" inside the "Vehicle Wheel" Blueprint between 5 and 15, in order to make the vehicle not lean too much when steering left or right? ###### Are the car wheels not blurry while driving? -###### Does the car wheels never go through the floor? +###### Do the car wheels never go through the floor? -###### Do the front lights and rear presence lights turn on and off alternatively, when you press 'L'? +###### Do the front lights and rear presence lights turn on and off alternatively when you press 'L'? -###### Do the brakes turn on when you are driving and hit the brake key ('S' or down key presumably)? +###### Do the brakes lights turn on when you are driving and hit the brake key ('S' or down key presumably)? ###### Do the rear lights turn on only while you are reversing? -###### Does the car headlamp material is modified using the "Set Material" node inside the BaseCar Blueprint to replicate the light effect on the car? +###### Is the car headlamp material modified using the "Set Material" node inside the BaseCar Blueprint to replicate the light effect on the car? -###### While inside the car, press 'C' repeatedly. +###### While inside the car, press 'C' repeatedly. Did the camera switch between the third person camera on the car to the driver camera? -###### Did the camera switch between the third person camera on the car to the driver camera? - -###### while on the driver camera, can you see the speedometer and the gear? +###### While on the driver camera, can you see the speedometer and the gear? ###### Does the map include a spline road? #### Bonus -###### When hitting the throttle does steam/flames particles go out from car exhaust? +###### When hitting the throttle does steam/flames particles come out from car exhaust? -###### Is the character animated while entering car? +###### Is the character animated while entering the car? -###### Can you open the doors while inside the car without exiting? +###### Can you open the doors while inside the car without exiting it? From 436322d57f499cfe8aee9dd3baac55b58f27ef67 Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 8 Dec 2020 18:32:43 +0000 Subject: [PATCH 5/6] second proofreading, clarifications and ponctuation. --- docs/unreal-engine-setup.md | 2 +- subjects/armyofone/README.md | 10 +++--- subjects/armyofone/audit/README.md | 2 -- subjects/firingrange/README.md | 6 ++-- subjects/mousevr/README.md | 2 +- subjects/mousevr/audit/README.md | 2 +- subjects/nascaronlinealpha/README.md | 6 ++-- subjects/nascaronlinealpha/audit/README.md | 4 +-- subjects/vehiclephysics/README.md | 10 +++--- subjects/widgetfactory/README.md | 41 ++++++++++++++-------- subjects/widgetfactory/audit/README.md | 8 ++--- subjects/zombieai/README.md | 38 ++++++++++++-------- subjects/zombieai/audit/README.md | 20 +++++------ 13 files changed, 84 insertions(+), 67 deletions(-) diff --git a/docs/unreal-engine-setup.md b/docs/unreal-engine-setup.md index 6fbd20ad..ccb18b5d 100644 --- a/docs/unreal-engine-setup.md +++ b/docs/unreal-engine-setup.md @@ -28,7 +28,7 @@ sudo apt update sudo apt install lutris ``` -- After `Lutris` is installed, open it and on the top bar, search for `Epic Games` and you will see the result `Epic Games Store`. Go ahead and click on install. +- After `Lutris` is installed, open it and on the top bar, search for `Epic Games` and you will see the result `Epic Games Store`. Go ahead and click on `install`. - After installing it, open it and sign in with your account. diff --git a/subjects/armyofone/README.md b/subjects/armyofone/README.md index 3e190c7f..ca3b1ca2 100644 --- a/subjects/armyofone/README.md +++ b/subjects/armyofone/README.md @@ -14,12 +14,12 @@ Starting from an empty project, after creating a level with a floor (nothing els - give the character the ability to: - - move forward, backward, left and right using the WASD keys - - look around and change direction using the mouse - - jump using Space - - attack using the left mouse click + - move forward, backward, left and right using the WASD keys. + - look around and change direction using the mouse. + - jump using Space. + - attack using the left mouse click. -- create an animation blueprint file to animate the character so she can be animated while running, jumping, attacking, etc. +- create an animation blueprint file to animate the character so she can be animated while running, jumping, attacking, etc... - implement the Aim Offset, so that when the player moves the mouse, the head of Countess follow the direction we’re looking at, in a 180-degree angle. diff --git a/subjects/armyofone/audit/README.md b/subjects/armyofone/audit/README.md index 1a668b5f..11acb5fe 100644 --- a/subjects/armyofone/audit/README.md +++ b/subjects/armyofone/audit/README.md @@ -16,8 +16,6 @@ ###### Can the Countess character attack using the blades when clicking on the left mouse button? -###### Is the Countess body blending between two animations? - ###### Are the body transitions smooth when starting an attack or jumping, etc…? ###### Can you attack and move around at the same time without damaging the animations performance? diff --git a/subjects/firingrange/README.md b/subjects/firingrange/README.md index c758ae29..6d070d19 100644 --- a/subjects/firingrange/README.md +++ b/subjects/firingrange/README.md @@ -31,6 +31,6 @@ When finished, your project should look like the executable example on the folde Here are some ideas for improving the game: -- Targets with different speeds -- Textures on the walls and ground -- Adding obstacles in front of the targets +- Targets with different speeds. +- Textures on the walls and ground. +- Adding obstacles in front of the targets. diff --git a/subjects/mousevr/README.md b/subjects/mousevr/README.md index ab8c903b..4c47f6d5 100644 --- a/subjects/mousevr/README.md +++ b/subjects/mousevr/README.md @@ -19,7 +19,7 @@ After creating a blank project and importing the content from the provided folde - In order to play the game, the player only needs to use the mouse and never the keyboard. - Create your own interaction point to indicate where the player is heading. - - The design of the interaction point is up to you, but it should display a text underneath it, indicating where this interaction point is going to lead the player to (burger store, metro, park, etc...) + - The design of the interaction point is up to you, but it should display a text underneath it, indicating where this interaction point is going to lead the player to (burger store, metro, park, etc...). - There should always be an interaction point visible to the player, somewhere in the world that lets the player quit, no matter where the player is in the map. - There should be no brutal transitions in the teleportation phase. diff --git a/subjects/mousevr/audit/README.md b/subjects/mousevr/audit/README.md index ad2df98c..dd61a67e 100644 --- a/subjects/mousevr/audit/README.md +++ b/subjects/mousevr/audit/README.md @@ -18,7 +18,7 @@ ###### Is an Interface Blueprint being used to handle the different actions on the interaction point (Blur,Focus and Active)? -###### Do you need to stare for a little at a interaction point to be able to teleport to a different scene? +###### Do you need to stare for a little at an interaction point to be able to teleport to a different scene? ###### Except for the interaction point and the spheres containing the panoramic images, are there any 3D objects on the map? diff --git a/subjects/nascaronlinealpha/README.md b/subjects/nascaronlinealpha/README.md index f778681a..ddaab27c 100644 --- a/subjects/nascaronlinealpha/README.md +++ b/subjects/nascaronlinealpha/README.md @@ -1,6 +1,6 @@ ## NascarOnlineAlpha -In this exercise, you will create a racing online game. The player will be able to race with another player to see who is faster. When you feel stuck remember that once, a man could not work out how to fasten his seatbelt. But then it suddenly clicked! +In this exercise, you will create an online racing game. The player will be able to race with another player to see who is faster. When you feel stuck remember that once, a man could not work out how to fasten his seatbelt. But then it suddenly clicked! ### Objectives @@ -36,9 +36,9 @@ As the game is done, you only will need to make the multiplayer part of it. Basi - If you are not the host, a widget should pop on the screen saying “Waiting for the host to start” and if you are the host it should be a “Click START to start” widget. Therefore the host of the server should have a Start button available. -- Once the game started, all players spawn on the map and the race starts after a countdown (A little delay may occur for the client but it quickly goes back to normal so do not worry about this possible issue.) +- Once the game started, all players spawn on the map and the race starts after a countdown (A little delay may occur for the client but it quickly goes back to normal so do not worry about this possible issue). -- The first to finish the race has a text on the screen written “YOU WIN”. The rest of the players get a “YOU LOSE” instead. +- The first to finish the race gets a message on the screen displaying “YOU WIN”. The rest of the players get a “YOU LOSE” instead. - Once the player crosses the finish line, the player input is disabled (the player can no longer move). diff --git a/subjects/nascaronlinealpha/audit/README.md b/subjects/nascaronlinealpha/audit/README.md index 81cd8b17..63c52ada 100644 --- a/subjects/nascaronlinealpha/audit/README.md +++ b/subjects/nascaronlinealpha/audit/README.md @@ -8,13 +8,13 @@ ###### Is the maximum number of players 4 and the minimum 2? -###### If you try to host the server without a server name (input text box empty), does a warning message appears and are you forbidden to enter the server? +###### If you try to host the server without a server name (input text box empty), does a warning message appear and are you forbidden to enter the server? ###### On the Join menu, can you switch between searching LAN sessions and Online sessions? ###### Once the game finds a session, Is a button with the session name displayed on the screen? -###### Does this button allows the player to join the host session? +###### Does this button allow the player to join the host session? ###### Is there a loading screen while joining the session? diff --git a/subjects/vehiclephysics/README.md b/subjects/vehiclephysics/README.md index 9e0d69eb..284b99da 100644 --- a/subjects/vehiclephysics/README.md +++ b/subjects/vehiclephysics/README.md @@ -13,7 +13,7 @@ The player starts the game by controlling a Third Person character and as soon h As for the vehicle, these are the expectations: - create a blueprint named BaseCar, that will be the parent of all vehicles classes. - - BaseCar should be a fully functional and realistic vehicle. In other words, it should accelerate, brake, have a handbrake, the back wheels should not turn, neither should the front wheels exceed a certain angle, etc. + - BaseCar should be a fully functional and realistic vehicle. In other words, it should accelerate, brake, have a handbrake, the back wheels should not turn, neither should the front wheels exceed a certain angle, etc... - BaseCar should also have dynamic instance for the lights. - The vehicle lights needs to simulate the real behavior of a real vehicle. When pressing the letter 'L' the front lights and the rear presence lights should turn on or off, when braking three braking lights (left, right and center) should turn on and the rear lights should turn on when reversing. - The BaseCar blueprint should contain "Set Material" nodes to change the headlamp material in order to have the effect where the lights are turned on. @@ -22,7 +22,7 @@ As for the vehicle, these are the expectations: - only one AnimationBlueprint can be used for this project. - when inside the vehicle, if the 'C' key is pressed, the camera should change from the third person view of the vehicle to the driver view inside the car. - - when in the camera of the driver, the player must be able to see the gears and the speedometer in the dashboard + - when in the camera of the driver, the player must be able to see the gears and the speedometer in the dashboard. There must be three models of cars on the map the character can choose from. All of them should inherit the BaseCar class. These three models should be: @@ -43,6 +43,6 @@ When finished, your project should look like the [“Expected Result” video](h As bonus objectives you can: -- Create steam/flames particles going out from the car exhaust -- Animate the character entering and sitting in the car -- Add a button to open the doors while inside the car without exiting it +- Create steam/flames particles going out from the car exhaust. +- Animate the character entering and sitting in the car. +- Add a button to open the doors while inside the car without exiting it. diff --git a/subjects/widgetfactory/README.md b/subjects/widgetfactory/README.md index ad7636b2..a25e160a 100644 --- a/subjects/widgetfactory/README.md +++ b/subjects/widgetfactory/README.md @@ -1,6 +1,6 @@ ## Widget Factory -The focus of this exercise is to learn to display information, buttons, images and whatever you will need on the screen using Widgets. Kinda like those displays in Iron Man, but not really. +The focus of this exercise is to learn to display information, buttons, images and whatever you will need on the screen using Widgets. It is kinda like those displays in Iron Man, but not really. ### Objectives @@ -10,33 +10,44 @@ You will create a first-person style game with only directional and mouse input. For this project you will start the game with an empty project and be sure to create it including the starter content. It is requested that you: -- Create a PlayerCharacter blueprint and give him the ability to move forward, backward, left and right. Also, use the mouse to look around. +- Create a PlayerCharacter blueprint and give him the ability to move forward, backward, left and right. Also, the mouse has to be used to look around. + - Create a start menu by pressing Escape. -- This Start menu should pause the game and the mouse should show up. + +- This Start menu should pause the game and the mouse should display. + - The Start menu should have a minimum of 4 buttons: - - Resume, that resumes the game when clicked - - A button for each of the students in the group with their username + + - A Resume button, that resumes the game when clicked. + - A button for each of the students in the group with their username. - Each button should link directly to each student Intra profile. - - Graphics Settings, explained afterwards - - Quit to desktop, that on release should exit the game + - A Graphics Settings button, this is explained afterwards. + - A Quit to desktop button, that on release should exit the game. When the player clicks on the Graphics Settings button, another widget should appear where it contains: - a slider that lets the player choose the percentage of the resolution scale. + - a dropdown menu where the player can choose the resolution. - - At least three different resolutions should be displayed in the dropdown -- a button at the bottom of the Widget to apply the two above resolution settings. -- a checkbox that when switched on shows the game in full screen and in windowed mode otherwise + - At least three different resolutions should be displayed in the dropdown. + +- an apply button at the bottom of the Widget which actualizes the two above resolution settings. + +- a checkbox, which when switched on, shows the game in full screen and in windowed mode otherwise. + - four choices for PostProcessQuality, ShadowQuality, TextureQuality, EffectQuality and FoliageQuality. These four choices are LOW, MEDIUM, HIGH and EPIC. - - Theses settings got to be executed with the “Execute Console Command” node. + - These settings have to be executed with the “Execute Console Command” node. + - PostProcessAAQuality setting should have the following options as buttons: Off, 2x, 4x, 6x. - You can use the “append (string)” node to switch between all four choices. -- A “Back” button that bring us back to the main Start menu. + +- A “Back” button that bring the player back to the main Start menu. + - No more than 25 string variables are allowed in the Graphics Setting widget file. -While controlling the player in the game, a widget should be visible at all times. This widget should display on a corner of the screen the rounded X, Y, Z (as integers) coordinates of the player. Just make sure it doesn’t disturb the visibility of the other widgets. If you want, after opening the pause menu you can make the player position widget disappear, making it appear again when you return to the game. +While controlling the player in the game, a widget should be visible at all times. This widget should display on a corner of the screen the rounded X, Y, Z (as integers) coordinates of the player. Just make sure it does not disturb the visibility of the other widgets. If you want, after opening the pause menu you can make the player position widget disappear, and make it appear again when you return to the game. -On the level you should display some grass, textured objects and post process on the terrain to show the settings changes. You can find some stuff on the StarterContent folder. +On the level you should display some grass, textured objects and post process on the terrain to show the settings changes. You can find some of those in the StarterContent folder. When finished, your project should look like the [“Expected Result” video](https://youtu.be/0v-spQJwDwM). @@ -44,7 +55,7 @@ When finished, your project should look like the [“Expected Result” video](h ### Bonus -As bonuses you can maybe: +As bonuses you can: - Add a resolution confirmation button when changing resolution. - Use the “On Release” attribute of the buttons, instead of the "On Pressed". diff --git a/subjects/widgetfactory/audit/README.md b/subjects/widgetfactory/audit/README.md index e39b685f..63a07846 100644 --- a/subjects/widgetfactory/audit/README.md +++ b/subjects/widgetfactory/audit/README.md @@ -1,14 +1,14 @@ #### Functional -###### Does the player move correctly forward, backward, left, right? +###### Does the player move correctly forward, backward, left and right? ###### Does the player rotate according to the mouse movement? -###### Can you see the coordinates of the player position on a corner? +###### Can you see the coordinates of the player position in a corner? ###### As you are moving through the map, are the coordinates on the widget changing? -###### Did the Start menu popped up, when Esc is pressed? +###### Did the Start menu popped up, when the Esc key is pressed? ###### Is the game on the background paused? (check on the Player blueprint if the game pause is set) @@ -24,7 +24,7 @@ ###### Are the Shadow Quality, Post Process, Texture Quality, Effects Quality and Foliage Quality settings present in the Graphics Settings menu? -###### Do all previous settings contain four choices ("LOW", "MEDIUM", "HIGH" and "EPIC") +###### Do all previous settings contain four choices ("LOW", "MEDIUM", "HIGH" and "EPIC")? ###### Did the widget fit the screen in whatever resolution the game was set on? diff --git a/subjects/zombieai/README.md b/subjects/zombieai/README.md index 992d487d..ad004d17 100644 --- a/subjects/zombieai/README.md +++ b/subjects/zombieai/README.md @@ -1,6 +1,6 @@ ## ZombieAI -The goal of this exercise is to create a zombie game with a wave system similar to the Call of Duty zombie mode. Do you know what does it take to become a zombie? Dead-ication. +The goal of this exercise is to create a zombie game with a wave system similar to the Call of Duty zombie mode. Do you know what it takes to become a zombie? Dead-ication. ### Objectives @@ -14,36 +14,46 @@ These are some the features that the game should have: - a Menu map where you will display 3 options: - - Start Game (Load the map and launch the game) - - Settings (Migrate your WidgetFactory project to integrate it to this one) - - Quit Game (Exits the game) + - Start Game (Load the map and launch the game). + - Settings (Migrate your WidgetFactory project to integrate it to this one). + - Quit Game (Exits the game). -After entering the game by clicking the "Start Game" button, the game should contain: +After entering the game by clicking the "Start Game" button, these are the game requirements: - a widget on the screen should be visible for the player life and should also contain the wave number that the player is in. + - an enemy spawning system from a blueprint that can be placed around the world. - zombies should never all spawn at the same time. Zombies should spawn one by one every `N` second(s)(you decide what N is). + - create the animation for the Zombie. There should be at least two animations (running and attacking). These actions have to be performed by the Behavior Tree. - on spawn, the Zombie should detect the player location and run towards it, following the Behavior Tree that you created earlier. + - when shooting, a fire projectile has to be casted and shot from the muzzle of the rifle. + - when the Zombie is near the player, the zombie should hit the player. - when the player is hit, his life bar should decrease. - after 5 hits the player should die. - the life of the player should slowly get back up, 2 seconds after the hit. If the player gets hit again, wait 2 seconds again to give him back his health. - on zombie component hit with the projectile, the zombie should lose health when it gets hit and should not die in one shot. - after being hit multiple times and dying, the death of the zombie has to be noticeable. -- the zombie spawning and the recovery of health should be handled by the node "Set Timer by Function Name" + +- the zombie spawning and the recovery of health should be handled by the node "Set Timer by Function Name". + - the wave system should be as simple as it sounds. When you kill a certain amount of zombies in the first round, you calculate the number of zombie you want for the second round and spawn them (You can maybe get more creative than zombiesNumber \* 2 or \* wave). - more zombies should spawn as the waves increases. -- you have the freedom to create the map and design the level. Just be sure that the Navigation Mesh Bound covers the whole map or else you’ll have trouble with the zombie not coming for the player. -- every projectile and zombie should be destroyed when they're no more visible/alive. + +- you have the freedom to create the map and design the level. Just be sure that the Navigation Mesh Bound covers the whole map or else you will have trouble with the zombie not coming for the player. + +- every projectile and zombie should be destroyed when they are no more visible/alive. + - the sound from the shot and from the zombie have to be handled. - - zombie sound should be following the zombie and the distance should raise or lower the sound when the player gets closer or far. - - when you shoot, there must be heard two sounds: the shot sound and the shells of the round hitting the ground. + - zombie sound should be following the zombie and the sound should increase or decrease depending wether the player gets closer or futher from the zombie. + - when you shoot, two sounds must be heard: the shot sound and the shells of the round hitting the ground. + - when the player is dead at least two information have to be displayed on the screen: - - Number of zombies killed - - Wave the player died - - this two stats also have to be displayed when the player presses the TAB button and be hidden when the TAB button is released. + - the number of zombies killed. + - the wave during which the player died. + - these two stats also have to be displayed when the player presses the TAB button and be hidden when the TAB button is released. After downloading and unzipping this [file](https://assets.01-edu.org/ZombieAI.zip), you can copy its content to your project Content folder. @@ -59,4 +69,4 @@ To make the game more interesting you could: - Make a 3D main menu. - Implement a point system, in which every time the player kills a zombie, pass wave, etc…, the points gets higher. - Add creepy music during the game, add sound at each new wave, etc… -- make the player have to reload the weapon, in other words, make the gun go out of ammo. +- Make the player have to reload the weapon, in other words, make the gun go out of ammo. diff --git a/subjects/zombieai/audit/README.md b/subjects/zombieai/audit/README.md index a11eb1ff..73286ae2 100644 --- a/subjects/zombieai/audit/README.md +++ b/subjects/zombieai/audit/README.md @@ -2,31 +2,29 @@ ###### Does the project start with a menu where you can select between "Start game", "Settings" and "Quit Game"? -###### Are the projectiles casted from the muzzle of the rifle? Check that on the gun blueprint searching by the projectile. +###### Are the projectiles casted from the muzzle of the rifle? Check this on the gun blueprint searching by the projectile. -###### Does the zombie die after being hit multiple times with the projectile and doesn’t die in one shot? +###### Does the zombie die after being hit multiple times with the projectile and does not die in one shot? -###### Do you notice perfectly when a Zombie dies? The zombie doesn’t just disappear from the screen? +###### Is a Zombie death perfectly noticeable? Does the zombie just not disappear from the screen? ###### Is every zombie destroyed after being killed? ###### Is there no projectile kept in memory after being used? -###### Does each wave has more and more zombie? +###### Does each wave have more and more zombie? -###### Does the player dies after being hit 5 times? +###### Does the player die after being hit 5 times? ###### Did the student used "Set Timer by Function Name" to spawn Zombies and restore the player life when being hit? ###### After pressing the `P` key on the viewport of the project, do you confirm that the navigation mesh bound cover the whole terrain? -###### The behavior tree contains tasks that get the player location, chase the player and attack him when the player is close? +###### Does the behavior tree contain tasks that get the player location, chase the player and attack him when the player is near? ###### When you shoot, can you hear the shot and the sound of the shell hitting the ground? -###### Can you hear the sound getting louder as he comes closer? - -###### Did the student used a Sound Attenuation make the sound get louder as the zombie gets closer? +###### Can you hear the sound getting louder as the zombie comes closer? #### Bonus @@ -34,10 +32,10 @@ ###### Is the main menu a 3D main menu? -###### Does the game has a points system? (in which every time we kill a zombie, pass wave, etc, the points gets higher?) +###### Does the game have a points system? (in which every time we kill a zombie, pass wave, etc... , the points gets higher?) ###### Does the game has creepy music? ###### Is a sound played each time you move to the next wave? -###### Does the gun goes out of ammo? +###### Does the gun run out of ammo? From 0070562ba42caab35ee3a1a2c0c2a481f484404e Mon Sep 17 00:00:00 2001 From: OGordoo Date: Wed, 9 Dec 2020 11:42:01 +0000 Subject: [PATCH 6/6] last adjustments --- subjects/armyofone/audit/README.md | 2 -- subjects/nascaronlinealpha/audit/README.md | 2 +- subjects/vehiclephysics/README.md | 3 ++- subjects/vehiclephysics/audit/README.md | 4 ---- 4 files changed, 3 insertions(+), 8 deletions(-) diff --git a/subjects/armyofone/audit/README.md b/subjects/armyofone/audit/README.md index 11acb5fe..80fea176 100644 --- a/subjects/armyofone/audit/README.md +++ b/subjects/armyofone/audit/README.md @@ -24,8 +24,6 @@ ###### Is the upper body and lower body being controlled as "two separate modules"? - - ###### Does the Animation Blueprint have at least three variables in order to handle the character speed if she is in the air and attacking? #### Bonus diff --git a/subjects/nascaronlinealpha/audit/README.md b/subjects/nascaronlinealpha/audit/README.md index 63c52ada..df52f73a 100644 --- a/subjects/nascaronlinealpha/audit/README.md +++ b/subjects/nascaronlinealpha/audit/README.md @@ -12,7 +12,7 @@ ###### On the Join menu, can you switch between searching LAN sessions and Online sessions? -###### Once the game finds a session, Is a button with the session name displayed on the screen? +###### Once the game finds a session, is a button with the session name displayed on the screen? ###### Does this button allow the player to join the host session? diff --git a/subjects/vehiclephysics/README.md b/subjects/vehiclephysics/README.md index 284b99da..9be207c0 100644 --- a/subjects/vehiclephysics/README.md +++ b/subjects/vehiclephysics/README.md @@ -29,7 +29,8 @@ There must be three models of cars on the map the character can choose from. All - a Peugeot 3008 year 2018 car. - an Audi A8 year 2011 car. - a Tesla Model 3 car. -- The Mass, Acceleration, Number of gears, Max speed, Torque Curve, etc. needs to be really close of the selected vehicle. This [website](https://www.automobile-catalog.com) could help you find what you are looking for. +- The Mass, Acceleration, Number of gears, Max speed, Torque Curve, etc. needs to be really close of the selected vehicle. +- This [website](https://www.automobile-catalog.com) could help you find what you are looking for. To create the map you should use the Landscape tool. Also add a track using spline roads. diff --git a/subjects/vehiclephysics/audit/README.md b/subjects/vehiclephysics/audit/README.md index 297366d6..ddf3d0a6 100644 --- a/subjects/vehiclephysics/audit/README.md +++ b/subjects/vehiclephysics/audit/README.md @@ -16,10 +16,6 @@ ###### Did the Front wheels have a steer angle between 25 and 35? -###### Are the front wheels are not affected by handbrake? - -###### Is the "Suspension force offset" inside the "Vehicle Wheel" Blueprint between 5 and 15, in order to make the vehicle not lean too much when steering left or right? - ###### Are the car wheels not blurry while driving? ###### Do the car wheels never go through the floor?