I've made quite a bit of progress on the demo, but not as much as I'd like due to bugs and housework. Two major bugs popped up that caused the majority of the slowdown:
1) The code I implemented to allow the player to skip speech suddenly broke. I don't remember changing anything that was tied to it, but basically it instantly detected input and so was instantly skipping the first speech bubble (so, if you click on something and the character said one thing, it'd flash on screen and then off, but if the character said two things it would flash the first one and then skip to the second which would display properly.) I was able to resolve this, but it took some major debugging to figure out.
2) This was the big one: assets were not saving properly. This was happening all over the place; asset names weren't being saved and (the biggest issue) asset scripts were not being saved. So, the hour that I spent coding the script for all of the objects and the first scene last night was wasted when I saved and closed the editor. The was majorly due to the fact that I was storing an instance of the asset in it's editor which caused two more issues:
A) The program asking if you wanted to save changes before closing an asset editor was pointless as most changes were immediately saved (to the instance anyway; if you just closed they wouldn't be saved to the file.
B) I was only applying changes during validation. So, if you typed out a huge script (which I did) and then saved and closed without clicking out of the script editor control, the changes weren't saved.
I had noticed this issue a few days ago when editing a sprite. I would make changes to the sprite and those changes weren't being saved (this was actually due to the opposite issue: I'm not supplying an instance to the editor as the editor is in my code base and uses it's own classes.) So, I've redesigned the way the asset system works a little bit. Now whenever the editor is saving an asset from an asset editor, it passes the editor to the asset so that it can read the data from there. I'm sure this will cause bugs too, mainly because a lot of the assets have to clear data and then read it in from the editor, but it's working out much better now.
I've also found a few bugs in SAGE itself, which I've hopefully squashed. One major issue that remains on the task list is to fix the pathfinding; it is still in it's original, hacked-together version which means its not very efficient or smart.
The biggest time drain of all has been adding some usability features to the editor. These have taken a bit of time and work to get implemented and tested, but it was completely worth it as they have made development go much quicker. I've added key shortcuts for a lot of actions and I can now quickly convert assets from one type to another (create a sprite from a texture, create an object/character/item from a sprite, etc). I also simplified using the editor by adding the ability to switch into 'nodes' or 'links' mode; so you can just click and add a bunch of nodes/links rather than right click -> add node or right click -> add link -> click node 1 -> click node 2.
Anyway, on to the demo progress!
As I stated, I've made quite a bit of progress. I want to point out ahead of time that the screenshots I'm about to post are not very pretty. Instead of spending hours on art assets right now (for example, the window in the screenshots took me about an hour to an hour and a half), I'm use placeholder images for things I haven't already created images for. Again, not very pretty, but it is allowing me to plow through the demo development.
The screenshots show off a little bit of the bar's main room, which has now been expanded to allow for more elbow room and it's bathroom.
Here I've just picked up the cue ball off of the pool table.
Now I've traded my cue ball in for a screwdriver.
I've taken to the bathroom, checking out the window, stall, trash can, sink (left to right; yellow squares representing the stall, trash can, and sink).
I've opened the window to let in some fresh air and you never know, I may have to use the window as an entrance/exit some day.
It doesn't seem like much progress when showing it here, but a lot of the behind-the-scenes scripts have been written.
Now that I'm done rambling, I'm going to head to bed. A lot of work to get done tomorrow and Saturday.