Skip to content

Commit 8eba4f0

Browse files
authored
readme fd1
1 parent 8fc44ea commit 8eba4f0

1 file changed

Lines changed: 63 additions & 56 deletions

File tree

README.md

Lines changed: 63 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -3,60 +3,67 @@ CIS 568-002: Virtual Reality Practicum, Spring 2017
33
MinJae Cho, Kunal Garg, Ray Kim, Kelly Tan, Henry Zhu
44

55
#VRy Paint
6-
- **Unreal Engine 4.14.3**
7-
8-
##February 9, 2017: Work Plan
9-
####Think through all the technical requirements of the aforementioned steps for this project. Write down and elaborate on what tasks will take what amount of (estimated) time. Be thorough here so we can give you good feedback.
10-
- Task and Time Estimate
11-
- The alpha mechanic demo is only a week away, so the arrow shooting mechanism is the first thing we should focus on.
12-
- How do we collaborate? Is using branches and pull requests hard? Can any of you teach me (is using dropbox bad)
13-
- We need to come up with a way to avoid working on the same blueprints at the same time. Splitting up the work into chunks is important. We’ll just combine the work for the shooting into many chunks and merge frequently for the first part cause the deadline is next week. Example (getting the arrow part to work) - a person works on animation of the bow based on how far the bow is pulled back, another works on how far the arrow travels based on power, another person (if possible 2) work out how movement should be done.
14-
- Multiplayer and gameplay mechanics (respawn…) What type of game is this? FPS arena game like Quake? Or a game like Overwatch (team based) (multiplayer ~ a week? - gameplay ~ decide over time?)
15-
- We need to make a character so that the players can see each other. Can we just have floating things instead?
16-
17-
18-
####Divide up the work between your team members according to the technical requirements mentioned above.
19-
- Actual splitting will take place after we have a better idea of what we need to do for the project.
20-
- Individual preference:
21-
- Henry: I have some experience with networking and multiplayer from using the Unity game engine (a few years ago...) and could implement some gameplay mechanics
22-
- Minjae: I can make the video, and would like to work on visual style, UX and shooting mechanism. - Kelly: I can try to work on the haptic/visual feedback. Can also help with the arrow shooting/switching mechanisms.
23-
- Kelly: I can try to work on the haptic/visual feedback. Can also help with the arrow shooting/switching mechanisms.
24-
- Kunal: I would like to work on the shooting mechanism or scene design
25-
- Ray: I would like to work on the scene / environment. I can also work on painting / marking system.
26-
27-
28-
####Invent your own mechanics and visual style - what will the win and loss conditions be? Do you have a preferred appearance for the world and for the player?
29-
- Invent your own mechanics and visual style - what will the win and loss conditions be? Do you have a preferred appearance for the world and for the player?

30-
- Mechanics - The user has to press a button on one of the controllers to start pulling the bow string. Once pulled back, the user can release that button to let go of the bow string, which releases the arrow. Additional button held down could be used to toggle between the types of arrows.

31-
- Idea: the bow could appear when the button is pressed. Could use either hand.

32-
- Initial velocity of arrow based on how far the user pulls back.

33-
- Should we be changing direction based not on the raycast but on where the other controller is? 

34-
- Yeah we could calculate the angle between the controllers or something to control the angle

35-
- Crosshair preview of where arrow will land/trajectory drawn.

36-
- Question: for arrow shooting, can we make them infinite? Or do you want us to implement a recharge mechanism? - Recharge mechanic could be better, pick up the arrows that randomly spawn on the ground

37-
- If picking up from ground, we need to create a mechanism for picking things up… just walking over or some kind of interaction?  Maybe if it’s within a certain radius you can look at it and press a button.

38-
- Visual style - Work with starter content as much as possible, and go for simpler geometries. Make style decisions later on.

39-
- Win/loss - For the prototype stage we should just brainstorm and try to decide on an idea. 

40-
- Cliche one is to just have health point, and after limited time / arrows compare the remaining health point.

41-
- Shooting at each other may be difficult.

42-
- Like those typical tutorial for Call of Duty or Overwatch. Dummy dolls can pop up and gain points by destroying those dummies. And dummies in harder place to reach have higher points <= these ones require teleport to get closer for example/

43-
- Another idea is if you’ve ever seen the game splatoon like trying to “paint” as much of the world as you can.  That way it’s more like a world exploring thing but also with an objective.  Hitting the other player with paint stuns them for a little.

44-
- Could make terrain different every level.  Also doesn’t necessarily need levels.

45-
- What should be the single player objective be?

46-
- Boring option is like a time trial or something.  See how much you can cover in a certain amount of time.

47-
- Could we put a unique twist on this that is only possible in VR.

48-
- Maybe we could have like occasional floating paint balloons that if they shoot them it like explodes paint.

49-
- World - we need a decently sized map with varied height, so that the user can shoot at various angles. There should also be obstacles to hide behind.
50-
51-
52-
####How will you meet the timeline described below?
53-
- Get the arrow/shooting mechanic done by weekend (preferably saturday) Split the arrow arc/distance/stuff implemented by one part of the team (2?) and the bow animation and xbox360/VR done by another part of the team (3?). Then merge the result and test on sunday?
54-
- I think we can use the gun in the starter content… the bullet travels like a ball… I think we can just use that and make it look like an arrow
55-
- Tasks Listed in order:
56-
- Creating the shooting mechanism
57-
- Add mechanic for recharging arrows, smooth out controls for arrow/bow interaction.
58-
- Add teleportation (bow) (Most important).
59-
- Begin level design.
60-
- Basic multiplayer interaction for at least 2 players.
61-
- Basic gameplay should work at this point. Flesh out gameplay and see what cool stuff could be added to the game. Level design should be almost done. Add more visual effects. Multiplayer has to work well (barely any lag (rubberbanding) and responsive)
6+
- Unreal Engine 4.14.3
7+
- [Demo Video] (https://youtu.be/UEPmKm9dm_0)
628

9+
## How to play
10+
#### Pick a game mode in the lobby
11+
- Shoot an arrow at a box indicating the game mode of your choice.
12+
- You can choose between _single player_, _host game_, and _join game_.
13+
- The box for _join game_ will only appear if the game detects a host in the local network. This box can several seconds to appear.
14+
15+
#### Paint the most area to win
16+
- In order to win, you have to paint the most area in your map within the time limit.
17+
- Destroy objects in the map to paint more area.
18+
19+
#### Shoot arrows
20+
- **Vive VR**
21+
- Hold both controllers up in front of you.
22+
- Hold down the **right trigger** and **pull back** to adjust strength.
23+
- Hold down the **left trigger** to toggle teleport arrow. Note that teleport is the only way to move with Vive controllers.
24+
- Let go of the trigger to **release** the arrow.
25+
- Use the **left touchpad** to look around horizontally.
26+
- **Keyboard**
27+
- Press **1** to toggle normal arrow, and **2** for teleport arrow.
28+
- **F** to shoot, and **WASD** to move around.
29+
30+
#### What arrows do
31+
- The non-teleport arrow will paint the ground with your color.
32+
- When an arrow hits objects in the map, like fruit stands and trees, it will destroy them.
33+
- When an arrow hits your opponent, they will be sent back to their original spawn area.
34+
- Teleport arrows will take you to the place where it lands.
35+
- Teleport arrows will not teleport you if it hits objects in the environment, or the walls.
36+
37+
38+
## Techniques used
39+
40+
#### Controls
41+
- **Motion controls**
42+
- Motion controls provide an intuitive way to shoot arrows. As if with a real bow, the distance pulled back determines the initial speed of the arrow, and the release of the finger on the bowstring (R trigger) releases the arrow.
43+
- **Haptic feedback**
44+
- The controller gently vibrates to let the player know that they’ve released an arrow.
45+
46+
#### Gameplay
47+
- **Painting**
48+
- The ground in VRy Paint is generated using cubes. When an arrow hits the ground, we set the material of the cubes in the hit region to paint material depending on the shooter.
49+
- **Minimap**
50+
- We place the minimap differently on screen and on HMD, because the 2D version obstructs the player’s view in VR, leading to discomfort. In order to reduce this discomfort, we place a minimap each in either side of the player’s peripheral vision, so that they can simply look to their side to see the minimap.
51+
- **Teleport with fade**
52+
- Moving around in VR can cause motion sickness because of the inconsistency between the movement in the visual field and physical movement. Limiting movement in VR to teleport solves motion sickness.
53+
- Instantaneous teleport can be disorienting, and sometimes even sickening due to the sudden change. The fade protects against these unpleasant effects by making the sudden change less perceivable.
54+
- **Game lobby**
55+
- Play alone, host a game, or join one in the multiplayer lobby. The game starts in the lobby, and players can choose their game mode before entering the game. Once the game is over, the player is teleported back into the lobby.
56+
57+
58+
## Answers to questions
59+
#### When in VR mode, did you feel any motion sickness? Why and why not?
60+
- We felt motion sickness when motion tracking was not working properly. However, because we limited movement in VR to teleportation with a fade, there is little motion other than the motion that corresponds to head movement. We did not experience motion sickness under normal circumstances.
61+
62+
#### What was the hardest part of the assignment?
63+
- The hardest part was getting getting multiplayer to work with our previous implementations. Because we started without any knowledge on designing a multiplayer game, fixing bugs in the game sometimes broke multiplayer functionality, and vice versa.
64+
65+
#### What do you wish you’d done differently?
66+
- We wish that we focused more on simplifying our blueprints and ironing out bugs. Because we had to learn as we go, at times, we had had to resort to inelegant solutions. This led to more variables and problems down the road.
67+
68+
#### What do you wish we had done differently?
69+
- It might have been useful to have had a vry simple individual “practice” Unreal assignment designed to get everyone familiar with Unreal before this assignment. Instead of learning on the go, we could have walked in with more realistic expectations and better workflow.

0 commit comments

Comments
 (0)