- Skyrim CE Progress Update
- 17 Jan 2019 01:20:39 pm Permalink
Sorry I haven't been keeping you up-to-date recently with my progress; I had plans to post in December and recent some more content, but then finals and winter break happened. Hopefully with this new semester comes some renewed productivity and drive. And, unfortunately, this post is not going to include much actual content (the only "new" screenshot I have at the moment is the one above), and instead perhaps boringly detail some important code/design changes, improvements, and setbacks.
Firstly, I have completely re-designed APRIL, the engine used to run Skyrim CE; previously, APRIL was "event-based", whereby interactions like dialogue, searching inventories, combat, etc. were managed via "events" which could be triggered by the player and in turn trigger other events (or put them in a queue to happen at a later time or location). It wasn't a terrible design, but I realized that basing things on "events" was rather inefficient since almost everything that "happens" in Skyrim is tied to NPC's or other entities somehow.
Thus, I've now made APRIL into an "entity-based" system, whereby interactions occur through entities directly. Dialogue and inventories are tied directly to their respective NPC's, and things like doors, chests, Standing Stones, etc. are just NPC's with special interaction options. This system should be less bulky and allow for more NPC's overall, as well as improve load times; currently, the system can handle 15,625 unique entities per mod, with 625 total possible mods (if those numbers look familiar, they are powers of 25); I do not expect for anywhere near that many mods to ever exist, but I've reserved the space nonetheless. Loading NPC's is a cinch, thanks a good deal to Mateo's help with some hex codes, and moving them around isn't too bad either. Oh, and the switch allowed me to a few more default textures to the world.
Now, there is one important memory-related drawback, which I don't think many people will mind: you can only have one save at a time. This is a tough situation, mainly because the only alternative would be to have a "master data" repository with all the default NPC states which gets copied over when you make a new game. This would definitely be a waste of precious Archive space as far as I can tell and run into some potential issues due to the names of lists needing being 5 characters or less; ideally I would like to edit as little data as possible during gameplay. If you guys have any input on this issue I'd love to hear it.
I've been writing and re-writing lots of documentation for all the techniques and design choices I've just mentioned and loads of other components of the engine, with the goal of having nearly everything planned out and streamlined before diving into the actual content so I don't have to go back and make exceptions for something I forgot. I'll release the documentation soon, along with (hopefully) an Alpha version of the game sometime in February, consisting of the first few quests up through the dragon attack at the Western Watchtower. I will be posting about how to participate in the Alpha and report bugs and such for it at a later date.
Sorry if this post was rambly and rather uninteresting; I felt bad for being silent about the state of affairs, and I don't think it would've been a good idea to just wait and drop the Alpha without any mention. Thanks if you made it this far, and as always any comments or critiques are welcome below.