Roadmap Proposal
Overview
Version numbering scheme similar to SDL, ref https://wiki.libsdl.org/CategoryVersion
The version consists of three segments (X.Y.Z)
X = Major Version, which increments with massive changes, additions, and enhancements
Y = Minor Version, which increments with backwards-compatible changes to the major revision
Z = Patchlevel, which increments with fixes to the minor revision
Development planning
A full feature report is to be made on every major/minor release point, containing the list of features which are flagged as a stable part of this release, as well as a thorough usability testing for direction adjustment. This is to be used to replan and adjust the direction of the following release points.
Status
We are currently at version 0.9.0. The next release will be 0.9.1 and contain several bugfixes.
Version 1
General aims
Remain fully compatible with Ryzom Live and further Version 1 source content data (source assets and leveldesign).
Minor versions may break compatibility with Ryzom Live binary client data (georges sheets only). Binary client data compatibility with Ryzom Live provided by compatibility branch
Minor versions May break compatibility with Ryzom Live network connection (msg.xml and database.xml differences only), compatibility must only require the correct msg.xml version to be used, compatibility also provided by the compatibility branch
(Fully compatible with Ryzom Live on default branch provided the proper content data build is used in v1.0; further minor versions may break network; use a compatibility branch for using the Ryzom Live data build)
Major engine and content breaking feature changes, are deferred to version 2. Feature additions that are compatible or easily upgradeable to will be added to version 1.
v1.0 - Stable engine and data pipeline (2017 FEB/APR)
Make the v1.0 release when the following goals have been reached.
Missing, broken or nearly complete features to be fully implemented
Deprecated features to be removed
Deliverables
Working shard with Silan, the old newbielands (mostly empty) and Ryzom Ring fully functioning (without pr maps)
Minimal sample sound data for reference (incl sound sheets) (plus sound anim sheets, as they are part of animation data)
*(1) To be done on a separate branch, and patched in at v1.0 release. A 0.x release will be made without these breaking changes.
*(2) Audio will be done post-funding.
v1.1 - Cross-platform tools, new features
Make the v1.1 release when the following goals have been reached. These features are not part of v1.0 because they will take longer (need testing), and depend on a stable engine feature set.
New features
v1.2 - Cosmetics
Tools
Login Screen and Character Selection
Ingame
v1.3 - Cross-platform content pipeline
Tools
v1.any - Other features, to be planned
Graphics and Engine Utilities
Ryzom Core API Service
Gameplay
Ryzom Ring
Version 2
Major breaking changes to the engine are put in v2. (This allows the tools to be fully developed without the engine completely changin)
Start work on v2 after v1.0 is released (rather passively than actively), simultaneously with v1.1 (or later).
No backwards compatibility with binary client data with v1.0 will be provided. Several file formats may be changed fundamentally.
Do not expect these features anytime soon, ever.
v2.0
Remove OpenGL 1.2 and Direct3D 9 drivers
(Maybe) Mantle/DX12 style rendering backend (also OpenGL) (using pipeline state objects and command buffers, multi threaded, etcetera)
Multi threaded rendering
Implement deferred rendering model
PBR shading model
Replace CMaterial with CMaterial and CMaterialParams (making material seperate from shape, materialparams is part of shape)
CMaterial refers to the shader setup, which is part of the driver pipeline state object
CMaterialParams are the per-shape material parameters, which consist of textures and uniform buffer objects
Replace CPU based MRM and skinning with GPU skinning and simple model-swap LOD
Implement optional 16-byte alignment model for vertex buffers (for faster access from vectorized sources) (only used for streaming buffers) (use this for particles)
Need a new and higher quality lightmapper with support for normals (exporting direction and spread in addition to just the light value)
Need a tool to auto generate LOD meshes (similar to Simplygon)
Revamp the landscape rendering using GPU tesselation. Add support for normal maps and fine roughness texture for very fine tesselation. Keep bezier patch model. Keep near/far model. Far model does not tesselate at all. May need to use sparse texture maps.
Physics (jumping)