MP
Member
Posts: 150
|
Post by MP on Mar 16, 2023 9:23:48 GMT
fyi the previous version has been retired. v2.11.0.1 is now the current version of RS:SA.
|
|
|
Post by chemical on Apr 23, 2023 12:12:19 GMT
Liking the look of this, is there an official discord link I can follow?
|
|
|
Post by zaimoni on Apr 23, 2023 14:10:00 GMT
Yes. I went ahead and redid the invite link post in Off-Topic, to make it clear that the sub-Discord is still "current".
|
|
|
Post by chemical on Apr 24, 2023 15:53:26 GMT
Thanks Zaimoni,
Loving the game so far, really like the expansion of world decay and addition of "Those guys" (were they in the original?)
Hoping this will continue to get updates, I'd like to help although I've literally no experience with code.
|
|
MP
Member
Posts: 150
|
Post by MP on Apr 25, 2023 12:18:46 GMT
Thanks, chemical. Glad you're enjoying it.
|
|
|
Post by chemical on Apr 27, 2023 18:20:55 GMT
Are you still updating this or is it considered finished?
|
|
MP
Member
Posts: 150
|
Post by MP on Apr 28, 2023 3:42:56 GMT
I still consider it to be in development. At the very least there are some non-gameplay stuff I want to do, such as AI optimisation and upgrading the graphics API.
I put a lot of work into the game over the Dec-Feb period, so I'm taking a break for the moment. In the meantime I'll certainly still be putting out bugfixes if anyone comes across any.
|
|
MP
Member
Posts: 150
|
Post by MP on Jul 23, 2023 21:52:24 GMT
I've uploaded v2.11.0.2 It's a small bugfix to prevent crashes when in darkness in certain edge cases. The previous version will remain available for a while, pending any issues with the new one.
|
|
|
Post by laleksic on Aug 19, 2023 0:47:32 GMT
Hi! I've been playing around with the source code, and made a branch with all Windows specific stuff (GDI, DirectX, WinForms) removed and replaced with SFML. It compiles and runs on Linux just fine for short gameplay sessions, though I haven't tried a longer game yet. No reason why it wouldn't work on macs as well, but I don't have one to test. It is of course much more performant and simpler than running with Wine. I also made a few more changes, such as porting to .NET 6, cleaning up the build system and integrating RSConfig functionality into the in-game options menu, but no gameplay changes. It's based on v2.11.0.2. More info, screenshots, source code and pre-built executables for 64 bit Windows 7 and Linux here: github.com/laleksic/StillAlive/tree/cross_platformDo get back to me if you're interested in integrating this . Cheers, Luka
|
|
MP
Member
Posts: 150
|
Post by MP on Aug 20, 2023 3:31:08 GMT
Holy cow, that is awesome! A Linux build and the transition from MDX to SFML were the two big wishlist goals that I had for RS:SA but could never find the time required to tackle them. This is huge. Well done Luka! I'm so hyped. I can't wait to try out both versions tonight. I'll let you know how it goes
|
|
|
Post by laleksic on Aug 20, 2023 8:00:18 GMT
Thank you ! I have a lot of free time on my hands. I did most stuff in two days plus a sleepless night between, shacked up and chain smoking to maintain sanity, much like a survivor. It may show in the code and commit quality, but I can clean up anything necessary. You can also reach me on Discord to let me know how it works for you. I just joined the Fan Discord.
|
|
MP
Member
Posts: 150
|
Post by MP on Aug 22, 2023 18:36:22 GMT
The Windows build runs really well. I don't know how much of that is the switch to SFML and how much from the upgrade to .NET 6, but whatever the case it's much smoother. It also seems to have fixed the bug where not having an audio output device on the system would lead to frequent hangs, as SFML-audio had no handler for such a condition. It was a known issue, which I guess they fixed somewhere between v2.4 and 2.5.1 Amazing work, Luka. Getting rid of MDX not only makes the game run better, it gets rid of those ancient redistributables and the (*cough cough*) questionable licensing situation. That pretty much ticks all the boxes in regards to the outstanding items I wanted to tackle for the Windows version. The only downside I noticed was the video being squished by vertical borders (4:3?) is a bit of shame. hopefully there's a way to make the old stretched mode possible, at least as an option for those that prefer it. I know some won't mind, although I prefer it expanded to full screen width myself. However, having not played with SFML for graphics, I don't know the technicalities of achieving that. Unfortunately, I didn't have any luck when it came to the Linux build. On Debian XFCE it doesn't even get past the config creation step. It dies the moment it tries to display the game window, when it's loading the very first image. 9205: binding file /lib/x86_64-linux-gnu/libstdc++.so.6 [0] to /lib/x86_64-linux-gnu/libstdc++.so.6 [0]: normal symbol `__cxa_free_exception' [CXXABI_1.3] Unhandled exception. 9205: 9205: file=/home/mark/Downloads/publish/Microsoft.DiaSymReader.Native.amd64.dll [0]; dynamically loaded by /home/mark/Downloads/publish/libcoreclr.so [0] 9205: 9205: file=/home/mark/Downloads/publish/Microsoft.DiaSymReader.Native.amd64.dll [0]; dynamically loaded by /home/mark/Downloads/publish/libcoreclr.so [0] 9205: symbol=SystemNative_FStat; lookup in file=/home/mark/Downloads/publish/libSystem.Native.so [0] 9205: binding file /home/mark/Downloads/publish/libSystem.Native.so [0] to /home/mark/Downloads/publish/libSystem.Native.so [0]: normal symbol `SystemNative_FStat' 9205: symbol=SystemNative_SysConf; lookup in file=/home/mark/Downloads/publish/libSystem.Native.so [0] 9205: binding file /home/mark/Downloads/publish/libSystem.Native.so [0] to /home/mark/Downloads/publish/libSystem.Native.so [0]: normal symbol `SystemNative_SysConf' 9205: symbol=SystemNative_MMap; lookup in file=/home/mark/Downloads/publish/libSystem.Native.so [0] 9205: binding file /home/mark/Downloads/publish/libSystem.Native.so [0] to /home/mark/Downloads/publish/libSystem.Native.so [0]: normal symbol `SystemNative_MMap' 9205: symbol=SystemNative_MAdvise; lookup in file=/home/mark/Downloads/publish/libSystem.Native.so [0] 9205: binding file /home/mark/Downloads/publish/libSystem.Native.so [0] to /home/mark/Downloads/publish/libSystem.Native.so [0]: normal symbol `SystemNative_MAdvise' SFML.LoadingFailedException: Failed to load image from file ./Resources/Images/icon.png at SFML.Graphics.Image..ctor(String filename) at djack.RogueSurvivor.RogueUI..ctor() in /home/laleksic/git/StillAlive/Rogue Survivor Still Alive/RogueUI.cs:line 107 at djack.RogueSurvivor.Program.Main() in /home/laleksic/git/StillAlive/Rogue Survivor Still Alive/Program.cs:line 23 Aborted On my Manjaro KDE, without any SFML/CSFML system libs and using just those supplied with the release build gets the furthest. It launches RS, creates the config in the user profile, and I can see it loading the resources until it crashes at the loading music phase, erroring on 'csfml-audio'. Here's the LD_DEBUG=libs output: 2449446: find library=libFLAC.so.8 [0]; searching 2449446: search path=/home/mark/Downloads/RSSA/publish (RUNPATH from file /home/mark/Downloads/RSSA/publish/libcsfml-window.so) 2449446: trying file=/home/mark/Downloads/RSSA/publish/libFLAC.so.8 2449446: search cache=/etc/ld.so.cache 2449446: search path=/usr/lib (system search path) 2449446: trying file=/usr/lib/libFLAC.so.8 2449446: 2449446: find library=libcsfml-audio.so [0]; searching 2449446: search cache=/etc/ld.so.cache 2449446: search path=/usr/lib (system search path) 2449446: trying file=/usr/lib/libcsfml-audio.so 2449446: 2449446: find library=csfml-audio [0]; searching 2449446: search cache=/etc/ld.so.cache 2449446: search path=/usr/lib (system search path) 2449446: trying file=/usr/lib/csfml-audio 2449446: 2449446: find library=libcsfml-audio [0]; searching 2449446: search cache=/etc/ld.so.cache 2449446: search path=/usr/lib (system search path) 2449446: trying file=/usr/lib/libcsfml-audio 2449446: 41 init sound : failed to load music file Resources/Music/RS - Army.ogg exception System.DllNotFoundException: Unable to load shared library 'csfml-audio' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libcsfml-audio: cannot open shared object file: No such file or directory at SFML.Audio.Music.sfMusic_createFromFile(String Filename) at SFML.Audio.Music..ctor(String filename) at djack.RogueSurvivor.Engine.SFMLMusicManager.Load(String musicname, String filename) in /home/laleksic/git/StillAlive/Rogue Survivor Still Alive/Engine/SFMLMusicManager.cs:line 63. Aborted (core dumped) Using just the system libs crashes out on 'cfsml-window': Unhandled exception. System.DllNotFoundException: Unable to load shared library 'csfml-window' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libcsfml-window: cannot open shared object file: No such file or directory Neither of these are dev boxes. They aren't running dev tools like Mono, VS, dotnet, nuget or anything like that, they're just plain workstations, so to speak. All manner of messing around with combinations of files and links in /usr/lib and the app paths (including mixes sources and targeting with LD_LIBRARY_PATH). I confirmed the integrity of each of the files, and I even went and compiled a bunch of different SFML/CSFML versions myself. It could be that one or more of the prerequisites on my systems don't match the expected version or filename. I know the first time I tried on my Debian machine it didn't work because RS expected a slightly newer version of glibc than Bullseye is on, so I bit the bullet and upgraded to Bookworm. I've not got any dev experience on Linux as yet, so I'm already at the extent of my very limited knowledge. If I can find the time at some stage I'll have to set up a dev environment and try to compile it myself. Spare time is hard to come by for me at the moment. If I can get a free moment I'll try it in a Fedora VM and maybe a few others.
Still, it's awesome to know that it runs on Linux. That's been top of my wishlist for years now, so it's really cool to see it achieved. Well done, Luka. Thank you for your hard work. I feel like this makes RS:SA ready for the 'beta' tag.
|
|
|
Post by zaimoni on Aug 22, 2023 19:47:12 GMT
Note that RS Revived profiles as 12% of CPU in the GDI function that draws images to screen. Switching away from GDI to "anything" should be a fairly easy win.
|
|
|
Post by laleksic on Aug 23, 2023 0:31:14 GMT
Thanks! That really means a lot! This game has given me lots of fun, and I'm glad I can contribute. Seriously I have no idea how this isn't as popular as Cataclysm. Re aspect ratio: No biggie, I can add it as an option to the menu for players who prefer it that way (Aspect Ratio: Preserve or Stretch). I would love if the preserve option stays, since I strongly prefer it that way and I imagine I'm not alone. In fact I made it work like that intentionally because it didn't cross my mind anyone would prefer it stretched. Re linux: I've initially gotten such file loading errors when first trying out Linux, due to Linux being case sensitive and the case of the file names (for image/music resources) in the code not matching the actual file names, as well as a difference in path separators (slash vs backslash). I renamed files and changed path separators, and it works on my Linux laptop, but I didn't test it on any other Linux machine. Can't think why a particular file path would be a problem on one distro, but not on another, but it's not the weirdest thing I've ever seen . I'll take a look in the next few days- Here's hoping that a few simple renames will fix it. It shouldn't have anything to do with your system, the package is supposed to be self-contained, so no need for Mono, SFML or anything like that to be installed, with the possible exception of a recent glibc. P.S. I've also been looking into replacing BinaryFormatter with a 3rd party binary serializer, for two reasons: speed (there are binary serializers that advertise an order of magnitude better performance- see BinaryPack and HyperSerializer), and future-proofing (BinaryFormatter is obsoleted and planned to be removed from future versions of .NET). No luck yet, since they aren't just a drop in replacement and require changes to the serializable classes.
|
|
MP
Member
Posts: 150
|
Post by MP on Aug 23, 2023 3:55:11 GMT
Ooh yes please, an option to set the aspect ratio would be awesome. You've single-handedly completed the list of all the things that I really wanted to see happen but resigned myself to never finding the time for. MDX gone, NET upgrade, RSconfig gone, Linux version, audio bug fixed. A big thank you again. It's been a very nice surprise for me. If you don't have any objections, I'm going to change the first post of this thread to point to your GitHub repo. Yours is definitely the definitive version of RS:SA
|
|