Проблема с require и виртуальным устройством

Добрый день.
Я не понимаю ваш код, извините. Точнее - не понимаю что он может делать.
Скорее всего мой уровень знаний JS слишком мал.

А где new то для объекта?

Room же не функция.

И я вот не пробовал, но тоже зуб бы не давал, что объект так можно экспортировать. Во всяком случае в моем модуле я объявлял просто функции типа exports.Init = function … Внутри делал new Room и возвращал идентификатор в основной скрипт, потом его так же передавал.

Так же обратите внимание на module.ststic - только так можно обмениваться данными между скриптами. Всё остальное изолировано.