ALIEN (ALtar Information ENgine)

Commercial desktop/client-server application | 1 year | VBA, C++, SQL
ALIEN - image1

About

In ALTAR Games' projects, we struggled a lot with managing configuration and localization data. It took quite serious effort and the results were never satisfying. The company produced computer games so this data was very complex with a lot of inner ties. The simple solution of saving this data to plain text files was not sufficient enough because of editors' inconvenience and we had difficulties with keeping the data in a consistent state. In addition, each new data structure creation or modification meant a certain mundane task for programmers. In a consequence, great deal of configuration data was hardcoded and the relationship between programmers and designers (editors) was in permanent turmoil. I suggested developing a generic solution which would secretly use a database system. My idea was approved and I wrote the program. The benefits of this solutions are the following ones:

  • Flexibility - After creating a new data structure or changing a current one, new code is automatically generated so programmers do not need to make this mundane task anymore
  • Consistency - Referential integrity is ensured, user checks can be easily defined
  • Conveniency - Editors can edit data in MS-Excel with a lot of added friendly features. Programmers use a OO framework to access data and all the code is automatically generated
  • Multi-access - Editors can work (read and write) at the time with the same data structure without influencing each other (just imagine this with a text file solution). Distributed teams are supported
  • Robustness - ALIEN makes backups automatically, the code generator is written in a very defensive way so the application program works even if the physical data does not match properly.
ALIEN - image2

My role

  • Architect - to find proper technologies and to design the application with the constraints of these technologies
  • Developer - to write the code of the application