This client and server is written by me completely, nothing has been taken from any other open source projects.
client-side. Everything is handled by the server which in return sends headers to the client that does part of the job by itself. Meaning: the client will detect which direction the next tile is at, turning the correct avatar to that direction. A.k.a., it doesn't perform actions that could manipulate other clients or cause de-syncs.
There is a server, everything is handled properly through the server and clients.
8th of August edit:
I've spent a few hours last night and before, rewriting parts of the rooms to improve efficienty and performance, in the end, I fixed an issue that caused the canvas to lose 2-3 frames a second.
The walls are now registered as nodes (outlined in orange) in order to be able to in the future place furniture on the wall (+ hit registration for the door works now without having to cut it in half).
Users are now drawn on the interior canvas as well (previously they were drawn on a secondary canvas as it was used to construct the avatars from start, more of a tool for me if anything).
Every interior node is drawn properly in an order by an index that is calculated by the breadth multiplied by the height added by the depth.
When an avatar is drawn in a specific color, it's no longer drawn on a seperate canvas each and every time and copied onto the real canvas (yeah, I was lazy when writing the constructor, shh), it's now only drawn on a temporary canvas once and then copied into an array of Images.
When walking, you can now cancel your route and choose another route.
Oh and, there's now two canvas'. One's for the exterior (floor and wall set) and interior (all other nodes e.g. furnitures and users). Reasoning for this is because the floor and walls are static based on the room map and it wouldn't make too much sense to be re-drawing them 24 times a second. This won't take away any of the functionality since the actual nodes are still drawn on the main canvas (interior).
TL
R; just some optimization.
I plan on starting a GitHub repository for the client and server once I've gotten a bit further into the development.
Ripped off the error page from Habbo as well (before it vanishes when they merge), currently only displayed when <noscript> is displayed.