Entorns de Comunicacio Virtual
En la asignatura miraremos de hacer uso de diferentes tecnologias estandard (html + JS) para conectar diferentes usuarios.
- Teoria I: Que es un ECV?
- Introduccion a HTML + CSS + JS
- Teoria III: VCEs and Communications
- Communications in JS
- Teoria IV: 3D on the Web
- Teoria V: Architecture of a 3D Web
- Teoria VI: Synchronizing Worlds(not finished)
- Concepts: Tools for Creativity
- Server-side in NodeJS
- Publishing your project
Users must be able to interact between them.
Download the starter framework (contains HTM+CSS+JS) or you can use your own.
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. 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, (one mesh with a nice material and one light). Users can see where are other users located (rendering a sphere in every user position).
Use Three.js and any library you like.
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 (add new elements, modify elements, …).
- Users can add annotations on the scene (markers that once clicked show you some info)
- Users can interact with other users (for instance, to change the camera to their point of view).
The deadline is to be announced
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