ECV - Javi Agenjo at UPF


Última actualización: 20/04/2015

Entorns de Comunicacio Virtual

En la asignatura miraremos de hacer uso de diferentes tecnologias estandard (html + JS) para conectar diferentes usuarios.



Server: (or locally

Assigment I

To make a chat app that connects to the course server: at port 9000 using the library SillyServer so users can send messages between them.

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

Assigment II

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

Final Assigment

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).

Some ideas:

  • 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.
  • Thinks that are forbidden:

  • 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).

The deadline is to be announced