Celestia 1.7.0 Development Thread
- Anthony_B_Russo10
- Moderator
- Posts: 672
- Joined: 03.07.2018
- Age: 21
- With us: 6 years 4 months
- Location: Tallahassee, Florida, US
Yay another developer!
Anthony B. Russo, I like Pluto. Mod of the Celestia subreddit: https://www.reddit.com/r/Celestiasoftware/
I have over 40 computers, trying to list them here would be a pain.
Responsible for the NEO catalog: https://celestiaproject.space/forum/viewtopic.php?f=23&t=22203
And mod of the Discord server.
I have over 40 computers, trying to list them here would be a pain.
Responsible for the NEO catalog: https://celestiaproject.space/forum/viewtopic.php?f=23&t=22203
And mod of the Discord server.
- Lafuente_Astronomy
- Moderator
- Posts: 726
- Joined: 04.08.2018
- Age: 26
- With us: 6 years 3 months
- Location: Cebu City, Cebu Province, Philippines
- Contact:
Nathan Moschkin
I'm glad that you're willing to help. And yes, take your time in helping the devs improve Celestia. Any time you spend is precious
I'm glad that you're willing to help. And yes, take your time in helping the devs improve Celestia. Any time you spend is precious
Official Administrator of the Celestia Discord Server.
Invite: https://discordapp.com/invite/WEWDcJh
If you don't have a Discord account, register here: https://discordapp.com/register
Have a blessed day.
Invite: https://discordapp.com/invite/WEWDcJh
If you don't have a Discord account, register here: https://discordapp.com/register
Have a blessed day.
-
Topic authoronetwothree
- Site Admin
- Posts: 706
- Joined: 22.09.2018
- With us: 6 years 2 months
nmoschkin wrote:I had no idea that the development of this wonderful program had been stalled for so many years. I was just reading through the thread, and it seems it's been challenging.
This is a long and sad story.
nmoschkin wrote:I am a C/C++/C# developer with a few decades of experience ... mostly I work in C#, now, but I think I can still remember C++ ...
I'm not a programmer, and joined Celestia development with nearly zero C++ knowledge
nmoschkin wrote:although, full disclosure, nearly all of that development has been on the Windows side.
That's, actually, great! We look for windows maintainer(s) for a long time without big success.
nmoschkin wrote:I really like this program, and I'll help in any way I feel I can, although my time is limited.
You are welcome! Even if you are able just to keep native windows frontend in sync with Qt-based one it will be great.
Regarding some technical points:
We use C++11 standard and will migrate to newer standards when all OSes we support are able to compile it (actually now we can bump it to C++14). We use GitHub with usual github-workflow to propose patches and discuss development.
onetwothree wrote:We use C++11 standard and will migrate to newer standards when all OSes we support are able to compile it (actually now we can bump it to C++14). We use GitHub with usual github-workflow to propose patches and discuss development.
Can I get the GitHub link? I will request to join your development group. Then, I will attempt to build it.
Is the 1.7.0 fork in a specific branch I should be looking at, and do you have a "to do" list for the Windows build?
Also ... what about the data? There's been some very interesting developments in astronomy, in recent years, including the Juno flyby of Pluto... When do you guys plan to update the data sets?
-
Topic authoronetwothree
- Site Admin
- Posts: 706
- Joined: 22.09.2018
- With us: 6 years 2 months
nmoschkin wrote:Can I get the GitHub link? I will request to join your development group. Then, I will attempt to build it.
https://github.com/CelestiaProject/Celestia
Check INSTALL for build instructions.
nmoschkin wrote:Is the 1.7.0 fork in a specific branch I should be looking at, and do you have a "to do" list for the Windows build?
1.7 is in master. 1.6.2 is in 1.6.x branch.
For 1.7 you can check https://github.com/CelestiaProject/Celestia/projects/2.
Both 1.6.2 and 1.7 require to fix or workaround the following problem: on HiDPI displays users have to enable "Disable display scaling on high DPI setting" in the lnk file. That's a problem #1. Other issues to do: https://github.com/CelestiaProject/Celestia/issues/11 and add https://github.com/CelestiaProject/Celestia/issues/459 (here qt and gtk are done, windows frontend should be updated as well). We also need proper DLL for GNU gettext & GNU iconv built using MSVC2015 as versions provided by vcpkg have bugs.
nmoschkin wrote:Also ... what about the data? There's been some very interesting developments in astronomy, in recent years, including the Juno flyby of Pluto... When do you guys plan to update the data sets?
We rely on the community here Askaniy updated several textures but now he is busy with his main project Celestia Origin. FarGetNik is making textured update but his changes are not integrated yet.
Okay.
I just downloaded and installed most of the libraries and got the master branch and I cracked open the Win32 code.
Gracious this code is ancient. Good old fashioned Win-32 API platform calls, WndProc, message pumps.
Most modern Windows apps use a C#/WPF/XAML graphical design... but I can see how it would be a big chore to reimplement all of these windows in .NET and then reference all the rest of the Celestia, which is all built in C++...
Sigh. I guess you can't modernize everything. I'm sure there's plenty of programs, out that, that still use this approach.
Added after 54 minutes 4 seconds:
Yeah, I get those satellites confused. LOL. My apologies.
I just downloaded and installed most of the libraries and got the master branch and I cracked open the Win32 code.
Gracious this code is ancient. Good old fashioned Win-32 API platform calls, WndProc, message pumps.
Most modern Windows apps use a C#/WPF/XAML graphical design... but I can see how it would be a big chore to reimplement all of these windows in .NET and then reference all the rest of the Celestia, which is all built in C++...
Sigh. I guess you can't modernize everything. I'm sure there's plenty of programs, out that, that still use this approach.
Added after 54 minutes 4 seconds:
Right...and New Horizons was the Jupiter Polar Orbiter...
Yeah, I get those satellites confused. LOL. My apologies.
- Anthony_B_Russo10
- Moderator
- Posts: 672
- Joined: 03.07.2018
- Age: 21
- With us: 6 years 4 months
- Location: Tallahassee, Florida, US
Well the Windows version of 1.6.1 still works on Windows 2000 and the MacOS X version still works on 10.3 Panther.
Anthony B. Russo, I like Pluto. Mod of the Celestia subreddit: https://www.reddit.com/r/Celestiasoftware/
I have over 40 computers, trying to list them here would be a pain.
Responsible for the NEO catalog: https://celestiaproject.space/forum/viewtopic.php?f=23&t=22203
And mod of the Discord server.
I have over 40 computers, trying to list them here would be a pain.
Responsible for the NEO catalog: https://celestiaproject.space/forum/viewtopic.php?f=23&t=22203
And mod of the Discord server.
-
- Developer
- Posts: 274
- Joined: 29.01.2009
- Age: 29
- With us: 15 years 9 months
- Location: Suzhou, China
Welcome aboard!
There can never be too many front end implementation as long as one wants to do it.
Overall there’s the CelestiaCore class which exposes all the interfaces you need to manipulate control, rendering etc. so if one wants to do it in another language or for another platform, I guess you need to wrap it and provide corresponding UI to make these calls to the CelestiaCore object
nmoschkin wrote:Most modern Windows apps use a C#/WPF/XAML graphical design... but I can see how it would be a big chore to reimplement all of these windows in .NET and then reference all the rest of the Celestia, which is all built in C++...
There can never be too many front end implementation as long as one wants to do it.
Overall there’s the CelestiaCore class which exposes all the interfaces you need to manipulate control, rendering etc. so if one wants to do it in another language or for another platform, I guess you need to wrap it and provide corresponding UI to make these calls to the CelestiaCore object
Well... I can't even get past the Splash screen because it is going into an infinite recursion when iterating the extra's directory.
luascript.cpp, lines 175 and 176...
it goes into an infinite loop.
and I can trace it to a file called filesystem...
#pragma message("The contents of <filesystem> are only available with C++17 or later.")
Which is problematic ... #if _HAS_CXX17 is not returning true... soooooo ... that's bad.
I thought VC supported almost all of C++ 17 ... :-/
luascript.cpp, lines 175 and 176...
it goes into an infinite loop.
and I can trace it to a file called filesystem...
#pragma message("The contents of <filesystem> are only available with C++17 or later.")
Which is problematic ... #if _HAS_CXX17 is not returning true... soooooo ... that's bad.
I thought VC supported almost all of C++ 17 ... :-/
@nmoschkin
I am glad to see more people getting involved.
My platform is windows, I have trouble with Linux so I avoid it.
I do my own fork where I keep everything static linked because I have a personal preference of avoiding DLLs to the greatest extent possible.
I do the same with other open source stuff I use as well.
I currently use VS2015 pro on a very customized W7_x64 system, VS2017/19 break my desktop, and I also cannot afford them.
I am hoping to update my static linked release before the first of the year, if work allows that is.
Make sure you use SDK 8.1 or later as target.
You will also need to check for filesystem stuff, and adjust it to use std::experimental::filesystem instead.
Good luck.
Janus.
I am glad to see more people getting involved.
My platform is windows, I have trouble with Linux so I avoid it.
I do my own fork where I keep everything static linked because I have a personal preference of avoiding DLLs to the greatest extent possible.
I do the same with other open source stuff I use as well.
I currently use VS2015 pro on a very customized W7_x64 system, VS2017/19 break my desktop, and I also cannot afford them.
I am hoping to update my static linked release before the first of the year, if work allows that is.
Make sure you use SDK 8.1 or later as target.
You will also need to check for filesystem stuff, and adjust it to use std::experimental::filesystem instead.
Good luck.
Janus.
Yeah. I see that it is very difficult to compile with the latest standards. I keep getting syntax errors... I'm going to clean CMake and clean out the code, and start from square one.
Added after 8 minutes 15 seconds:
Yes, I've noticed that this is a big problem.
FileSystem functions WILL NOT work without C++ 17, but this entire program WILL NOT compile with any C++ version greater than 14.
Added after 29 minutes 30 seconds:
That is to say, the Lua script initialization function is not working.
Added after 2 seconds:
That is to say, the Lua script initialization function is not working.
Added after 8 minutes 15 seconds:
Yes, I've noticed that this is a big problem.
FileSystem functions WILL NOT work without C++ 17, but this entire program WILL NOT compile with any C++ version greater than 14.
Added after 29 minutes 30 seconds:
That is to say, the Lua script initialization function is not working.
Added after 2 seconds:
That is to say, the Lua script initialization function is not working.
-
- Developer
- Posts: 274
- Joined: 29.01.2009
- Age: 29
- With us: 15 years 9 months
- Location: Suzhou, China
nmoschkin wrote:FileSystem functions WILL NOT work without C++ 17, but this entire program WILL NOT compile with any C++ version greater than 14.
You can disable the use of c++ filesystem by forcing on using the compatible file system implementation (celestia::filesystem) in celcompat/filesystem.h. Although you shouldn’t need to modify it since cmake should have checked if it’s available and added appropriate macros to use the correct filesystem implementation while generating the project
The problem is I'm using the Celestia compat filesystem (Because native C++ file system functions don't support the kind of code that's been executed) ... so, I can get nowhere. I get passed Lua, then it spins for ever loading stars, and all because the iteration never ends ... so like, filesystem is problem.
If I switch to C++ 17, I get all kinds of syntax errors ... if I stay at C++ 14, I have to use the compat filesystem ... and it no workie.
Added after 19 minutes 12 seconds:
Yep. This build 1.7.0 is not playing nicely with Windows (it's not playing at all.)
Added after 6 minutes 35 seconds:
fs::recursive_directory_iterator(dir) is broken ... and the thing will just not move forward. Also... the Windows native version of this application looks DRASTICALLY different than the current Celestia 1.6.1 that I have installed.
If I switch to C++ 17, I get all kinds of syntax errors ... if I stay at C++ 14, I have to use the compat filesystem ... and it no workie.
Added after 19 minutes 12 seconds:
Yep. This build 1.7.0 is not playing nicely with Windows (it's not playing at all.)
Added after 6 minutes 35 seconds:
fs::recursive_directory_iterator(dir) is broken ... and the thing will just not move forward. Also... the Windows native version of this application looks DRASTICALLY different than the current Celestia 1.6.1 that I have installed.
-
Topic authoronetwothree
- Site Admin
- Posts: 706
- Joined: 22.09.2018
- With us: 6 years 2 months
nmoschkin wrote:I have successfully built the entire thing only to find out that path::empty() is broken.
configFileName = L"" but size is being returned as 1 because it's counting the null terminator.
Interesting. Sounds like a MSVC bug. This code:
Code: Select all
#ifdef _WIN32
fs::path p = L"";
std::cout << p.empty() << '\n';
#endif
outputs 1 when compiled with MingW64.
I tested it with GCC and MingW64, sounds like another MSVC issue.nmoschkin wrote:fs::recursive_directory_iterator(dir) is broken
Added after 3 hours 37 minutes:
btw, with this pr https://github.com/CelestiaProject/Celestia/pull/539/files Celestia is buildable in C++17 mode
Okay. That's good to know that I'm not going crazy or doing something wrong, on my end.
I will attempt to compile with C++ 17 and see if the problem persists. If it does, I will being looking for a work-around.
Sorry for the delay in replying. It was a national holiday in my country, and I had other obligations.
I will attempt to compile with C++ 17 and see if the problem persists. If it does, I will being looking for a work-around.
Sorry for the delay in replying. It was a national holiday in my country, and I had other obligations.
- cartrite
- Posts: 1978
- Joined: 15.09.2005
- With us: 19 years 2 months
- Location: Pocono Mountains, Pennsylvania, USA Greate Grandfother from Irshava, Zakarpattia Oblast Ukraine
I was able to compile and run the latest master for win32 and didn't have any problems with the build or running the program. It is using a virtual machine thpugh. Vmware running windows 7. It's using msvc 2017.
cartrite
cartrite
VivoBook_ASUSLaptop X712JA_S712JA Intel(R) UHD Graphics 8gb ram. Intel(R) Core(TM) i5-1035G1 CPU @ 1.00GHz, 1190 Mhz, 4 Core(s), 8 Logical Processor(s) 8 GB ram. Running on Windows 11 and OpenSuse 15.4