Nov 21, 2016
I mentioned in my last post that I had a stream planned, and I wanted to share the archive that I'd popped up (part 2 is here - unfotunately, the stream dropped out and 5 minutes in between were lost).
In this video, I run through the process of creating an Icicle game using the editor tools I've been working on. I was really surprised at how much I got done in an hour and a half. Even though it's not particularly polished and has a pretty simple puzzle chain, but I was still able to put together a vaguely interesting 22 scene layout with some objectives and and end-state in under the length of a feature film. Woo!
The video feels like a pretty good primer for the engine and the editor tools, but videos don't really make for good reference materials (they're hard to skim, impossible to search, etc.), so I also put together a tutorials page that I hope makes for something that can be more accessible to someone who wants to read while they work. It's still pretty rough, but all this will probably be the foundation for the engine's final documentation as it evolves and gets closer to release. It's all good stuff to have on hand!
I shipped an update earlier today to the editor builds to fix some bugs, address some feedback and slot in a couple of new features that I had in mind.
The most interesting changes (from my perspective at least) have been changing the insert order behaviour when adding new tasks, the ability to reorder and reparent tasks, shortcuts for opening the resources folder and the user data folder in a file browser, and some rudimentary support for copying text (I didn't think I had any options that wouldn't involve major refactoring since I don't have text selection support, but one of the participants suggested I could just add the entire text content of a GUI widget that the mouse is hovered over when Ctrl+C is pressed - thanks Tim!).
The most disappointing bug award goes to my use of std::endl, which happens to have different behaviour on different platfoms (this should have been obvious to me, but it wasn't). On Windows, this was pushing \r\n into files that I was only reading \n out of. I ended up replacing all my std::endl usage with '\n', so all is right with the world now, except that anything that jam participants running Windows created can possibly (probably?) have mixed line endings hiding within it and will not behave on Linux or Mac. I'll have to put thought to how to nicely address that without having to rewrite all my file handling stuff (something I want to , but not just yet).
I think that across the jam, I'll probably aim to do an update every second day - that'll give people time to get work done without constantly having to deal with updates, and time for me to iterate on stuff and be thoughtful about changes instead of scrambling to get them done (which usually results in bugs!).
So far, it's been great to talk with people about their experiences with the engine. It's also been good to get practice at talking about the engine's core concepts and their relationships to some of its limitations. Icicle will never be a general purpose engine, but I feel like I should do what I can to make it flexible whenever that doesn't compromise the engine's core identity or the tenets I designed it around. Already, my todo list has gained a few new features that I wasn't previously considering.
I'm looking forward to seeing how the event continues :)