Key Information
Tutors: Fred Tovey-Ansell (ESE), Simon Pocock (IETL)
Course Level: Level 3
Course Credit: 1 credit
Class Duration: 3 x 2 hours plus 3 x 2 hours asynchronous work
Prerequisites:
- An intermediate understanding of an object-oriented programming language such as Java, C#, C++ or Python. The Graduate School offers a course in Object-Oriented Python that would fulfil this requirement.
- An understanding of Unity’s fundamentals including Unity’s component system, familiarity with the Unity editor, and awareness of Unity’s scripting API. The Graduate School offers an Introduction to Unity 3D course which would meet this requirement.
- A working knowledge of Git and GitHub. This could be from attending this Graduate School course, or equivalent experience from elsewhere.
- Unity installed on a laptop for hands-on work, please see the minimum system requirements.
Course Resources
Virtual Reality (VR) applications can be of significant benefit to teaching and learning. VR allows students to gain an intuitive, spatial understanding of 3D concepts and data, and undergo training relating to hazardous activities or environments without risk. VR applications can also be useful in research for the presentation or examination or results, or the production of 3D interactive environments required for research or industry.
Creating feature-rich VR applications from scratch is a substantial undertaking, requiring significant development time and expertise, especially if these applications are to support multi-user functionality. The ViRSE (Virtual Reality Student Experience) platform facilitates the development and delivery of substantive, multi-user, VR applications through a multitude of pre-written building blocks and APIs. ViRSE handles all networking, VR/flatscreen integration, and interaction systems. ViRSE developers must undergo training to setup a ViRSE project and utilise these features.
Many of the concepts and skills learnt in this course will be transferable to development in other VR frameworks.
Syllabus
- Setting up a GitHub account and local Git client to create a fork from the ViRSE project template repository and pull updates
- Overview of the ViRSE project template structure and architecture
- A run-through of the user-facing ViRSE tutorial to gain understanding of the controls, interface, and interaction systems provided by ViRSE
- Creation of a simple 3D environment, with simple components such as ViRSE InfoPoints and ViRSE Grabbables
- Implementation of more advanced components such as ViRSE Activatables and ViRSE Adjustables and writing basic scripts to handle their operation
- Implementation of integrated ViRSE user interfaces
- Implementation of basic bespoke netcode
- Workshopping a design for a simple VR application
- Creating, exporting a simple VR application using the above components
- Playtesting games with other participants of the course
This course combines independent study, following videos and other training material produced by the course tutors, and three scheduled in-person workshops. Completion of the independent study sections should take no more than two hours per week, in addition to some set up time before the start of the course. Each chunk of independent study will be followed by an in-person workshop, which will be two hours each. These will reinforce the material learned during independent study, introduce more advanced concepts, provide an opportunity to playtest your created games with other participants of the course, using the VR hardware in one of Imperial's VR labs, and enable the tutors to give direct, in-person support.
Learning Outcomes
After completing this workshop, you will be better able to:
- State the utility of ViRSE for development of VR applications
- Classify the different components provided by ViRSE and explain their relationships
- Implement simple C# code to interact with the ViRSE API
- Describe the broad structure of the network architecture of multiplayer ViRSE systems
- Design and implement a simple multiplayer ViRSE application
Important Pre-Course Information
This course covers more content than we'll be able to get through in the 6 hours of in-person teaching time, so attendees are expected to spend approximately 2 hours working through course content before each in-person class.
Dates & Booking Information
There are no further sessions taking place this academic year. Course dates for 2024-25 will be available to book from late September.
To book your place, please follow the booking process advertised on the main programme page