Feature #1794
Mobile apps and shared client/server code (more modular code structure)
40%
Description
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 __CLIENT__
and __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)
Related issues
History
#1 Updated by skyjake over 10 years ago
- % Done changed from 0 to 10
#2 Updated by skyjake almost 10 years ago
- Assignee changed from skyjake to Deng Team
#3 Updated by skyjake over 9 years ago
- Description updated (diff)
#4 Updated by skyjake over 9 years ago
- % Done changed from 10 to 30
#5 Updated by skyjake over 9 years ago
- % Done changed from 30 to 20
The work in the cmake-build
branch brings some improvements for modularity. Also, Qt 5 has better support for mobile OSes overall.
#6 Updated by skyjake over 9 years ago
- Related to Feature #1637: Switch to Qt 5 added
#7 Updated by skyjake over 9 years ago
- Related to Feature #1887: Migrate project build system to CMake 3 added
#8 Updated by skyjake over 9 years ago
- Related to Feature #1991: Qt 5.5 as minimum requirement for GUI, Qt 5.x for non-GUI build added
#9 Updated by skyjake over 9 years ago
- Related to deleted (Feature #1637: Switch to Qt 5)
#10 Updated by skyjake over 9 years ago
- Related to Feature #1675: Switch to new Qt 5.4+ OpenGL APIs (from QGLWidget) added
#11 Updated by skyjake over 9 years ago
- Subject changed from Modularized project structure to enable mobile apps, shared client/server code to Mobile apps and shared client/server code (more modular code structure)
#12 Updated by skyjake over 9 years ago
- Category changed from Enhancement to Redesign
#13 Updated by skyjake over 9 years ago
- Related to Feature #2028: libcommon uses the preprocessor excessively in order specialize for doom, heretic, and hexen added
#14 Updated by skyjake over 9 years ago
- Tags set to CodeQuality
#15 Updated by skyjake over 8 years ago
- Status changed from In Progress to Progressed
#16 Updated by skyjake over 8 years ago
- % Done changed from 20 to 30
Progress in resource management.
#17 Updated by skyjake over 8 years ago
- Status changed from Progressed to In Progress
#18 Updated by skyjake about 7 years ago
- Status changed from In Progress to Progressed
- % Done changed from 30 to 40
A mobile build for iOS has been successfully made, although via non-modular means: compiling everything statically into a single binary.
#19 Updated by skyjake almost 5 years ago
- Status changed from Progressed to Closed
Closing as obsolete.