For this update, I’ve included a bit of the back-end view to show what’s going on under the hood.

At this point, a user has the option to select “a character”. When the character is loaded into the UI, they are assigned a “room”. The default room is the “lobby”, for lack of a better name. Using the chat window at the bottom, the user can talk with other users who are also in this “lobby”.

The upper panel now displays rooms pulled from the database and lists them as buttons. Each room has an “address”. If the user wants to move to another address, she clicks on the button. The feedback is provided in the chat window, and we can see that moving rooms are stored with the character header record in the database. All of this — the character selection, room listing and selection, and chat messaging — is handled using event models through SignalR, making it a painfully disconnected tangle of event emitters and listeners on both the javascript and C# side of the equation.

This is not a lot of progress, it seems, since the last update. Most of the time was spent just being a weekend when I didn’t even load the project. The rest of the time was spent wrestling with organizational weirdness that was causing errors. SignalR doesn’t throw a lot of useful exceptions out of the box, so problems were hard to track down. I also refactored a whole lot so that I could keep the structure organized enough that I could have a scaffold going forward. Doing something once is fine, but when I expect myself to replicate that design pattern throughout the rest of the application, if I can’t refer back to what I have already done and can make sense of it, I might as well just douse it with gasoline and light the whole thing on fire.

Next, I will be adding insult to injury as I attempt to integrate a real map into this. Not just a real map, but a fake map using real map conventions like lattitude and longitude so I can actually set down addresses. If you see an explosion on the horizon during the upcoming week, you’ll know how well progress is going on that front.

Sound off!

This site uses Akismet to reduce spam. Learn how your comment data is processed.