No more file format woes
As I was working on the new unified file format today, I couldn’t help but think to myself “Wouldn’t a relational database be great right now?”. But of course, relational databases are exclusive to server environments.
I had completely forgotten, until today, about SQLite. SQLite is a wonderful flat file relational database. I have used it previously in another project (funnily enough, another distributed project - Distributed Backup System). It supports the majority of the SQL protocol, is ACID compliant and is super simple to use. There is even a C++ wrapper so you don’t have to use the C style function calls. To top it off, there is a free database editor GUI available.
Frankly, I am ecstatic right now. This will cut a tremendous amount of time off saving/loading code and will be more flexible to boot. Because of the database, I’ll be able to save statistics and useful data much easier, meaning more scientific value from the project (and less headache for me). I am now planning on including some features I was hesitant about because of the hassle in programming (such as crossover mutations).
The one concern I have is physical size. With the power of databases come the inevitable increase in physical hard drive usage. Hopefully I can find a happy medium so volunteers are not required to sacrifice a large chunk of HDD space for data collection and storage.