Saturday, March 3, 2018

It Loads!

I pulled and all-nighter. I do not recommended to do this on a Friday night. It's going to botch up my Sunday schedule, but I'll take that as a fair punishment. The game loaded it's first save file and I was able to get int the game proper. The loader is way broken and was hard-coded in parts to load a particular file. I do have the data blocks properly delineated so I just have to correct about 10 off-by-one errors. There are still curious number of sections I'm skipping, but most appear to be linked list pointers that were saved when the whole struct blob was written to disk. This data is really not needed because when the game loads the data, it rebuilds the linked lists anyway. I've been using these "blank" spots to check for hard drive errors during load. The good news is I can actually shim in data in these areas and keep things compatible.

So, now I'm in the game, How does it run?

Ship Status
Like pure unoptimized garbage. I expected this though. I'm using debug libs and I have nowhere near touched surface locking. To give you an idea of how things are, I'm running an 3.4Ghz i7-6700 with 16GB of ram. ROE is taking up 31% of my CPU resources when running. I'm pretty sure two of my 8 cores were at 100%. I could actually hear the cooling fans spin up. when it starts to run. The game is crutching on my gross and hacky legacy color management routines. This makes some of the screens take upwardly of 15 seconds to render.

The good news is I'm in, and I was able to tool around. I can't save the game quite yet, the clock is broken, and commands hang, but it didn't crash. Truth be told I didn't really push it too much. It was more a quick turn of the key to make sure everything at least functions.

I'm going to go to bed now, Later on this afternoon when I get up, I'm going to break up the game loader into different parts to better separate the data sections. The game already does this with solar system entities. With it all broken up I can then optimize and map each section properly. I would like to identify what I'm skipping over. I'm almost sure what they are so I'm not missing anything scary.

When the load map is complete, it will be easy to map that to the save function. I do have a tiny degree of leeway as, as I said above, I don't have to save pointers. I'll probably stuff in some data as a place holder so I can see it's nothing. ...maybe "DEC0DE" in hex. I feel so much better being productive again. I'm about 80% done with the filesystem purge now.

Fleets are loading! Timer's busted though.

No comments:

Post a Comment