Celestia 1.7.0 Development Thread
Posted: 02.11.2018, 20:19
Hi celestians,
Some time ago I decided to created another fork of Celestia because I don't see that Alexell's fork has any future.
Here're the reasons:
* Code quality. Alexell merges random patches from random people without any attempt to check their quality and even necessity. Sometimes it's so low then (pardon me please) better call it crap. Alexell's own code is also terrible. I can show examples if somebody wants proves.
* But the latter doesn't matter because he disappear since the 4th of August. And he's the only person with merge privileges so for 3 moths there is no activity in the main branch. We have 16 pull requests, some are useless or unfinished but 3 of them are important bugfixes, it's absolutely unacceptable to call yourself "a project lead" and ignore your duty.
* Random patches from random people is the only development model. If you want your project to succeed you must have a project vision at least midterm.
So that I started with original codebase, but I imported it properly so we can see original authors' names and emails, we have old branches alive (for 1.6.1 for example). Then I imported useful patches from Alexell's repository fixing them if need. Besides incorrect patches I did not import controversial changes (audio support, new data catalogs structure).
My midterm plans for user visible changes are:
* Modern font rendering. No more bitmap fonts, only TrueType! Support for RTL languages (hebrew, arab, persian). In progrerss.
* Not only Qt5 but other UI will be supported.
* Better star rendering. Help needed.
* Make interface more friendly to languages other than English. In progrerss.
* Plug-ins. We really should not put everything into the core. Such features like audio support or scripting languages should be implemented as plug-ins.
* Remove old rendering paths. 2018th is near its end, so why should we support ancient OpenGL 1 or ARB vertex programs? Even Radeon r300 cards manufactured 13 years ago support OpenGL 2.1. So let's remove anything but OpenGL 2.1. Done.
* Port Celestia to OpenGL ES 2.0 so it will run on low power hardware which doesn't have desktop GL (Rasberry PI & other ARM based HW).
* When OpenGL ES is ready port and we have enough human power and enthusiasm then we'll start porting for Android.
Future from a developer view:
* Modernize the codebase C++11. It's much better than previous standards. In progress.
* Remove deprecated OpenGL features (immediate mode, fixed pipeline). We should have only modern GLSL based rendering. In progress.
* Remove autotools (Done) and QMake. Add CMake instead. In progress.
* Build Celestia as a library + small applications with GUI. In progress.
The current state:
* Only OpenGL 2.1 based renderer.
* Old data directories (data, extras, extras-standard). Alexell's change was not accepted by everybody even on this forum. Let's discuss this topic and make a proper solution.
* No audio support, just dummy cel/celx functions. Because in Alexell's fork it's done incorrectly and audio support should be implemented as a plug-in. But if Pirogronian makes a good OpenAL based implementation I'll use it temporary until a have a decision on plug-in architecture.
* Bugfixes and polishing of Qt5 GUI.
* Finished transition to high quality vector math library Eigen started 10 years ago.
How to help.
If you're a developer then join an organization on GitHub. I have rather high code quality requirements but I will help newcomers. If you don't have coding skills there are a lot of areas where you can help: help localize user interface, update star catalogs and other databases, create new textures and models, test new builds.
I really need help with a new star texture to implement a better star rendering. I can code but I have no drawing skills. Please contact me I you want to help.
Some time ago I decided to created another fork of Celestia because I don't see that Alexell's fork has any future.
Here're the reasons:
* Code quality. Alexell merges random patches from random people without any attempt to check their quality and even necessity. Sometimes it's so low then (pardon me please) better call it crap. Alexell's own code is also terrible. I can show examples if somebody wants proves.
* But the latter doesn't matter because he disappear since the 4th of August. And he's the only person with merge privileges so for 3 moths there is no activity in the main branch. We have 16 pull requests, some are useless or unfinished but 3 of them are important bugfixes, it's absolutely unacceptable to call yourself "a project lead" and ignore your duty.
* Random patches from random people is the only development model. If you want your project to succeed you must have a project vision at least midterm.
So that I started with original codebase, but I imported it properly so we can see original authors' names and emails, we have old branches alive (for 1.6.1 for example). Then I imported useful patches from Alexell's repository fixing them if need. Besides incorrect patches I did not import controversial changes (audio support, new data catalogs structure).
My midterm plans for user visible changes are:
* Modern font rendering. No more bitmap fonts, only TrueType! Support for RTL languages (hebrew, arab, persian). In progrerss.
* Not only Qt5 but other UI will be supported.
* Better star rendering. Help needed.
* Make interface more friendly to languages other than English. In progrerss.
* Plug-ins. We really should not put everything into the core. Such features like audio support or scripting languages should be implemented as plug-ins.
* Remove old rendering paths. 2018th is near its end, so why should we support ancient OpenGL 1 or ARB vertex programs? Even Radeon r300 cards manufactured 13 years ago support OpenGL 2.1. So let's remove anything but OpenGL 2.1. Done.
* Port Celestia to OpenGL ES 2.0 so it will run on low power hardware which doesn't have desktop GL (Rasberry PI & other ARM based HW).
* When OpenGL ES is ready port and we have enough human power and enthusiasm then we'll start porting for Android.
Future from a developer view:
* Modernize the codebase C++11. It's much better than previous standards. In progress.
* Remove deprecated OpenGL features (immediate mode, fixed pipeline). We should have only modern GLSL based rendering. In progress.
* Remove autotools (Done) and QMake. Add CMake instead. In progress.
* Build Celestia as a library + small applications with GUI. In progress.
The current state:
* Only OpenGL 2.1 based renderer.
* Old data directories (data, extras, extras-standard). Alexell's change was not accepted by everybody even on this forum. Let's discuss this topic and make a proper solution.
* No audio support, just dummy cel/celx functions. Because in Alexell's fork it's done incorrectly and audio support should be implemented as a plug-in. But if Pirogronian makes a good OpenAL based implementation I'll use it temporary until a have a decision on plug-in architecture.
* Bugfixes and polishing of Qt5 GUI.
* Finished transition to high quality vector math library Eigen started 10 years ago.
How to help.
If you're a developer then join an organization on GitHub. I have rather high code quality requirements but I will help newcomers. If you don't have coding skills there are a lot of areas where you can help: help localize user interface, update star catalogs and other databases, create new textures and models, test new builds.
I really need help with a new star texture to implement a better star rendering. I can code but I have no drawing skills. Please contact me I you want to help.