Entorns de Comunicacio Virtual
En la asignatura miraremos de hacer uso de diferentes tecnologias estandard (html + JS) para conectar diferentes usuarios.
- Theory I: Whats a VCE?
- Introduction to HTML + CSS + JS
- Theory III: VCEs and Communications
- Communications in JS
- Server-side in NodeJS
- Teoria IV: 3D on the Web
- Teoria V: Architecture of a 3D Web
- Teoria VI: Synchronizing Worlds
- Examples of VCEs
- Concepts: Tools for Creativity
- Final Tips
- Publishing your project
- Material: slides for the first assignment
When working from the university, remember to install the VPN of the UPF to be able to connect to the server.
The due date to the assigment will be the next Practice class (Januaty 24th). You must send me a ZIP containing all the code and a README.TXT file with all the useful info (Fullnames, NIAs, MAILS) and info that you think could be useful to me.
Some features that you could add:
- Special commands to do actions (change room topic, change username, etc)
- Private messages between users (check sillyserver sendMessage parameters)
- To add some very basic text based game inside the chat (like a trivial)
- Allow to have avatars for every user
- To create a canvas and allow users to draw together
Improve the chat from the first assigment so there is a canvas on the website visible by all users, where there is some kind of 3D content representing every user. When they send a text message only the people in vecinity can see the message.
Use Three.js, or Rendeer.js
It is important that the content of the scene is synchronized between all users.
Other interesting functionalities you could add:
- Users can interact with the content of the scene (pick up objects, give objects).
- Users can disconnect and when they reconnect they state is restored as before leaving.
- Spritesheets for characters.
The deadline is February 20th
To create an application that involves all the conceptos explained during the course (clients communication, world syncronization, 3D scene, user interface).
The application doesnt have to have many features, but the ones that it has must be polished.
Not all the features must be working completly, you could prototype them to show case the use case in one specific situation.
As soon as you have something upload it to your account in the course server (using FileZilla in SFTP mode).
If you code a server side app you can access the server using the terminal (in windows use Putty), and if you launch any server app, use a port between 9001 and 9999).
- 3D chat where users can walk around and talk to each other, and also interact with the environment in a meaningful way.
- A visualization tool where users can share information about the data being visualized.
- A collaborative tool to create some kind of content between different users.
- A simple board game where users move in a grid by turns.
- An application without a world state.
- A game with physics and where timing is crucial (tcp connections are not meant for physics).
- A musical application where users play together in realtime sending notes (too much latency).
Thinks that are forbidden:
The deadline is to be announced