|
Post by stenodyon on Sept 3, 2017 1:37:53 GMT
Hello! I remembered Rogue Survivor existed while playing some Left 4 Dead, so I checked out the blog to see any news, and long story short, I forked the sources and made it build and run on Linux (Debian/*Ubuntu at least I think). Apart from there being no sound because of missing libraries, the game worked flawlessly on Xubuntu 14.04. Here is the github of the project: github.com/Stenodyon/Rogue-Survivor-LinuxThere are instructions to build and run the game but if you encounter any problem, send me a mail or open an issue. I am planning to write unit tests and refactor the code. Feel free to post issues and/or fork the project
|
|
MP
Member
Posts: 150
|
Post by MP on Sept 3, 2017 7:53:25 GMT
Nice work. What was involved in getting it across? Does it adapt MDX, GDI, or both?
|
|
|
Post by stenodyon on Sept 3, 2017 9:06:21 GMT
Thanks! I had to get rid of both sound managers and the DirectX game canvas because DirectX is not available on Linux and I did not bother trying to install SFML.Net (but I will bring back the SFML sound manager if I can get it to work, I just wanted to be able to compile and run before doing anything). To my pleasant surprise, GDI worked without any modifications. A goal far into the future would be to make a portable OpenGL game canvas that works on both Windows and Linux (and OSX too maybe).
The other main problem there was, was simply the filesystem paths containing \ instead of / so I added conditional compilation that turns \ into / when the LINUX symbol is defined. It is a bit sloppy to manually do that every time a path string is involved but I have plans to remedy that.
A small problem that took me a while to fix was the fact that the author relied on the output of the ToString() method on enums to load skills, but when several enums values share the same id, the specification does not guarantee which name will be used and on my machine it so happened that the names did not correspond to the ones in Skills.csv.
That's pretty much all I had to go through. I tested the game for an hour or so, no crashes, all features I could test quickly (like saving/loading and screenshots) worked.
|
|
MP
Member
Posts: 150
|
Post by MP on Sept 3, 2017 10:22:12 GMT
I recall that proper Linux (and Mac) support was a common request back in the day. It sounds like your talents and Mono have that one covered, so hopefully a few people find there way here to enjoy your efforts.
Any further plans once you've restructured the original code?
|
|
|
Post by stenodyon on Sept 3, 2017 13:23:29 GMT
I am still re-learning the game so I don't have a clear idea of all the tweaks and additions I'd like to make to the game, but I have a couple of things in mind:
- Build on the fortification system (pun intended). I love base-building and I would like to add some more possibilities like doors and windows, possibly containers and traps also. This will require some balancing because I feel like building fortifications is already pretty OP. - Add more variety to the map generation like alleys, parks, and non-rectangular buildings (if that's not already a thing). - Remove the district boundaries and make the city one big map. I'll have to check the architecture of the game for feasibility though. - If there is interest in the project, I'd like to add a modding API/plugin system.
Right now though I am battling with testing frameworks and I am starting to think I will have to roll my own, which will make things go a bit slower than planned.
|
|
MP
Member
Posts: 150
|
Post by MP on Sept 3, 2017 13:44:24 GMT
It might be worth having a chat to zaimoni about RS Revived, because I believe he's trying to do something similar re districts and might have already made headway.
I'm keen to see some more variety in the buildings too. I'm sure we can all agreed that RS was a bit bland in that regard.
There was certainly a healthy appetite for more modability in the RS heyday, so that's worth pursuing I reckon. It would be great to see RS get back to the attention it had circa 2011/2
|
|
|
Post by zaimoni on Sept 3, 2017 18:32:09 GMT
Right ... my main focus has been AI fixes, etc. I have done *very* little to the UI to date (the one change that might be of interest is augmenting the give commend to allow putting things in containers).
Note that district generation is entangled with the global RNG (unintentionally); any serious attempt to adjust it will have side effects that are measurable with seeded map generation [e.g., district types will wander on you, and sometimes building types within a district.] The actual positions of the buildings are immune.
|
|
|
Post by zaimoni on Sept 3, 2017 18:37:06 GMT
Thanks! I had to get rid of both sound managers and the DirectX game canvas because DirectX is not available on Linux and I did not bother trying to install SFML.Net (but I will bring back the SFML sound manager if I can get it to work, I just wanted to be able to compile and run before doing anything). To my pleasant surprise, GDI worked without any modifications. A goal far into the future would be to make a portable OpenGL game canvas that works on both Windows and Linux (and OSX too maybe). I had to ditch both DirectX 9 and SFML as well. I reintroduced sound by using the native C# sound support (and converting everything to *.wav).
|
|
|
Post by stenodyon on Sept 5, 2017 9:50:42 GMT
I think if I can clean the codebase enough, and if I make building the game straightforward and platform agnostic, there could be a renewed interest in the game. The only problem I'm facing is knowing if it can also build on Windows. I guess if I make it through and someone happens to try one day, then I'll know.
Regarding the global RNG, I was pretty afraid this was the case. I'm currently refactoring the map generation code and so far, everything seems alright but I think I barely scraped the surface. I refactored and simplified like 2,000 lines out of the 7,000.
For the sound, I thought about doing just that but I would like to avoid modifying the game resources as I have no idea if they're copyrighted by the author or not. I was thinking of using bindings I found for SDL2, this way I could introduce an SDL sound manager and an (hopefully portable) SDL game canvas.
Overall, I have been pretty confused by compiling C# and linking libraries, the only experience I had with it before was with Unity. I feel like the only proper way to develop in C# is to use Visual Studio or MonoDevelop but I don't use any of those and it feels like I'm really going against the grain.
|
|
|
Post by zaimoni on Sept 19, 2017 16:56:59 GMT
- Remove the district boundaries and make the city one big map. I'll have to check the architecture of the game for feasibility though. Visually mostly done in RS revived 0.10.0.0 unstable. The AI has not been compensated yet (ranged combat should Just Work, but pathing across the underlying districts is Not Yet a Thing). Note that there is a hard UI limitation: the minimap is not going much above 100x100 no matter how large the districts get.
|
|
|
Post by danvzare on Sept 20, 2017 12:29:21 GMT
Note that there is a hard UI limitation: the minimap is not going much above 100x100 no matter how large the districts get. Would it be possible to make the minimap follow you then? Or at the very least, change as you go between districts?
|
|
|
Post by zaimoni on Sept 20, 2017 22:43:12 GMT
Note that there is a hard UI limitation: the minimap is not going much above 100x100 no matter how large the districts get. Would it be possible to make the minimap follow you then? Or at the very least, change as you go between districts? Technically, yes. I don't have a clear visual what RS Revived 0.10.0.0 will need there, because it's not clear whether I want to start testing "huge" days as part of that release cycle. (Given the current savefile size issues the next release won't have such a build variant, but it is a very long-range goal to have a build option for 1 turn/4 seconds rather than 1 turn/2 minutes.) For typical districts, it "should" work to have the current district "centered", with the edges of surrounding districts also in the minimap.
|
|
MP
Member
Posts: 150
|
Post by MP on Oct 25, 2017 8:06:03 GMT
How goes the progress stenodyon?
|
|
|
Post by stenodyon on Nov 30, 2017 8:30:34 GMT
Sorry for the delay. I have been facing personal problems the last couple of months and haven't been able/wanted to work on the project. I kinda expected things to go sour, that's why I put the project on github, just in case, but I still have it in mind and I want to go through with it.
|
|
MP
Member
Posts: 150
|
Post by MP on Nov 30, 2017 10:00:05 GMT
No need to apologise, I was just curious if you'd made progress. I hope things turn around for you soon.
|
|