Mobile apps and shared client/server code (more modular code structure)
Currently, the client and the server are separate applications but share some of the source code files. This is not an ideal situation, because code is duplicated, preprocessor segments
__SERVER__ can get cumbersome/confusing, and the basic structure lacks flexibility.
In the future, for instance an iOS app needs to contain both the client and the server components wrapped under an iOS-specific UI.
The common code shared by the client and server (basic map data, resource handling), needs to be separated into its own (shared or static) library, so that both applications can use it. (The client would extend some of the classes with GL, etc. functionality.)The naming of the libraries could be improved:
- libdeng2 => libcore
- libdeng1 => liblegacy (support for legacy code)
- libserver => static library with server-specific, platform-independent functionality
- libclient => static library with client-specific, platform-independent functionality
- libdoomsday => library containing code shared by the client and server (GPL)