Essentially, in singleplayer, the main advantage of using SQLite over just adding the query builder to existing storage system, is being able to run searches over unloaded cells at runtime. In singleplayer, most, or maybe all mods could get away with caching whatever they need on startup, and updating that cache as the session goes on. That's essentially a lot of code which will need to be rewritten by modders over and over. It might also result in inefficient RAM usage and save size increases. Combined with custom field support on OpenMW's standard models (planned by ptmikheev), the queries would take a lot of friction out of implementing such features (in cases where you don't need low latency, which is most of them I can think of). So while this might not be a 100% necessary addition, I feel like it would greatly improve modders' experience (especially the ones who do not happen to be programmers professionally), and would also allow us to reduce development time elsewhere (multiplayer, OpenMW-CS, etc).cc9cii wrote: ↑16 Nov 2020, 22:51 Ok, I skipped those parts
I still suspect you'll have some challenge to get this accepted until you can demonstrate a *killer* use-case. But I think you should still go ahead and implement it regardless. You'll have fun doing it and will learn more about OpenMW and game engines in general. I doubt I can be of much help other than some knowledge of ESM/ESP data, especially with later games (but they're already available elsewhere e.g. UESP).
EDIT: just to explain my interested in Lua scripting (by the way, I am not keen on Lua at all, having had some poor introduction to it on angband) - you may be aware that I'm trying to get later games (Oblivion, FO3, etc) to work. But I have little knowledge / experience in many subject areas, one of which is MODs and scripts. So I'm trying to understand more about them so that I make less fundamental errors that will lead to major re-writes.
As for suporting other games:
The current idea is to dehardcode as many game mechanics as possible. Which would allow to implement other games' gameplay as Lua "mods", which would either ship with OpenMW or come as separate downloads. Since it is also planned to re-implement MWScript in Lua, I imagine the same would be done for Oblivion script and Papyrus (or w/e the Skyrim's scripting system is).
So if you ask me, I'd focus on core engine functionality support - rendering techniques, physics, esp format parsing (which you have already been doing a lot) and reverse engineering the specifics of game mechanics (I think UESP is a better source in that regard for newer games compared to Morrowind, but needs to be verified). Many other features (e. g. UI) should probably be delayed until we have the Lua API.
Although specifically with UI, I have doubts that MyGUI will manage to gracefully render Skyrim's UI, or maybe even Fallout 3/NV pipboy. So that's something worth looking to as well, although worst case we don't really need the UI to be identical for the games to be playable.