I don't think any scripting language will help until it be using all of data pre-loaded. And text->bin conversion should happen at game starting stage. At the moment I believe it converts data to usable form each time when this data requested. And I'm not even sure it pre-loads this config (Yeah, like, each time it opens file, parses it and gets ONE variable).
Not only new game started too slow, but saved game loading too. Application also starts with kinda delay. Is there any logging? It might be helpful to find delay reason. Logging is the first thing each application should have.
Don't exaggerate, all data is pre-loaded, accessing everything as requested from disk would be insane.
This is veering off-topic, but to clarify:
- At application startup, all resources are loaded into memory (graphics & audio) and kept until application terminates, as well as a whole bunch of setup done. That's all the time when you see the initial "Loading..." screen. Battlescape also does some resource loading itself on start/end.
- When you select a language (or memorized from Options), this is loaded into memory and kept until application terminates.
- When a new game is started, ruleset is loaded into memory and kept until that game is terminated. That's all the time the game "hangs" when you press New Game. It is not loaded at startup because in the future rulesets will be more modular and different games can be using different rulesets. New savegame is then created in memory when a difficulty is selected.
- When a game is loaded/saved, ruleset and savegame are loaded into memory and kept until that game ends.
Yes this might be slow, unoptimized, unefficient, crappy, maybe I'm just doing it all wrong, whatever. Right now the goal is functionality, not performance, and YAML was chosen because it's incredibly easy to implement, modify and debug which is what we need at this stage. When the goal changes then we can look at all the million formats and all the possible solutions to make OpenXcom leaner and meaner, if you wanna look into this topic yourself that's up for you.