Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 2 [3] 4 5

Author Topic: An LCS Remake  (Read 6393 times)

The Cheshire Cat

  • Bay Watcher
    • View Profile
Re: An LCS Remake
« Reply #30 on: September 25, 2018, 02:41:52 am »

Uploaded an OSX build to the itch page. Same disclaimer on this as with the Linux build - I can generate it but I don't have any way of testing it, so I have no way of knowing if it doesn't work unless someone tells me.
Logged
LCS Graphical Remake:

https://the-cheshire-cat.itch.io/lcs
Current progress: ~100%

Rolan7

  • Bay Watcher
  • [POSSESSED] [GUE'VESA]
    • View Profile
Re: An LCS Remake
« Reply #31 on: September 25, 2018, 08:31:00 am »

Posting to download as soon as I get home! This looks great!

IsaacG

  • Bay Watcher
  • Mad Engineer
    • View Profile
    • JJoseph on Deviantart
Re: An LCS Remake
« Reply #32 on: September 25, 2018, 09:47:30 am »

Well, for the most part yes, but bear in mind that I'm not really a better programmer than anyone else who worked on the original and a lot of this was learning as I went, so it's not really "well designed" even if it is more OO than the original. Like, you won't really deal with as much "spending 10 minutes to try to figure out where this variable is actually set/used" as you would in the old LCS code, but I haven't really broken up my classes as much as they could be and there's a lot of weird stuff I do that I don't think is very good C# practice.
And don't get me started on the while(true) loops, the nested for loops within switch statements, and the 2000 line method.

It's amazing you've managed to port it to Unity at all, let alone creating a new GUI.
I would like to do a bunch of refactoring to try to improve the usability of the code overall and to break up some of the "superclasses", but it's not as high a priority for me as just generally fixing bugs and making the player experience roughly match the original game.
The code is a beast.  There's a reason I've spent the last three years refactoring, and I'm not even done yet.
Logged
LCS 4.12.31 Custom NewGame, Edit Savefile!
Quote
Many people, meeting Aziraphale for the first time, formed three impressions: that he was English, that he was intelligent, and that he was gayer than a tree full of monkeys on nitrous oxide.
Constitution of the Confederate States
Article I Sec. 9 4
No bill of attainder, ex post facto law, or law denying or impairing the right of property in negro slaves shall be passed.

The Cheshire Cat

  • Bay Watcher
    • View Profile
Re: An LCS Remake
« Reply #33 on: October 01, 2018, 07:55:15 pm »

Well, for the most part yes, but bear in mind that I'm not really a better programmer than anyone else who worked on the original and a lot of this was learning as I went, so it's not really "well designed" even if it is more OO than the original. Like, you won't really deal with as much "spending 10 minutes to try to figure out where this variable is actually set/used" as you would in the old LCS code, but I haven't really broken up my classes as much as they could be and there's a lot of weird stuff I do that I don't think is very good C# practice.
And don't get me started on the while(true) loops, the nested for loops within switch statements, and the 2000 line method.

It's amazing you've managed to port it to Unity at all, let alone creating a new GUI.

Well bear in mind it's not a straight "port", it's a remake. I used the source code as a reference for how various mechanics were implemented so that the rolls and such being done would match up, but it's not a straight up "put everything from the original game into Unity" copy. So when it came down to something really confusing rather than just copying it over directly I tended to try to just determine the intention behind what was being done, and implemented it in a way that was simpler to me. Like the actual flow of say, a round of combat is basically the same as the original game, but the way it's being handled is different.
Logged
LCS Graphical Remake:

https://the-cheshire-cat.itch.io/lcs
Current progress: ~100%

R0

  • Escaped Lunatic
    • View Profile
Re: An LCS Remake
« Reply #34 on: October 07, 2018, 11:28:27 am »

Great project. I've come about two or three problems though playing the Linux build:
* Faces aren't generated, the only Portraits I've come across are the ones made of one part e.g. Monsters and Guard Dogs. The other ones are just grey boxes.
* When I try to cheat by exiting the game before going to the main screen after a failed escape or something similar, I sometimes can't load the savestate anymore (where is it stored btw.?), I'll just get a black screen with the games frame, which is somewhat frustrating.
* I don't see a way to promote seduced members, although I don't exactly remember if this was possible in older versions of LCS. It is very useful though and I'd like to have this feature.
Logged

The Cheshire Cat

  • Bay Watcher
    • View Profile
Re: An LCS Remake
« Reply #35 on: October 07, 2018, 02:23:33 pm »

Great project. I've come about two or three problems though playing the Linux build:
* Faces aren't generated, the only Portraits I've come across are the ones made of one part e.g. Monsters and Guard Dogs. The other ones are just grey boxes.
* When I try to cheat by exiting the game before going to the main screen after a failed escape or something similar, I sometimes can't load the savestate anymore (where is it stored btw.?), I'll just get a black screen with the games frame, which is somewhat frustrating.
* I don't see a way to promote seduced members, although I don't exactly remember if this was possible in older versions of LCS. It is very useful though and I'd like to have this feature.

Hmm, I'm not really sure why faces wouldn't be working in the Linux build - there may be some weirdness with how they're rendered that Linux specifically doesn't like. I wouldn't think it would work differently on Windows and Linux since it's all built in Unity functionality (which should be OS agnostic) but I am using it in kind of an awkward way. I don't really have a way to test Linux builds though so the only way this will really get addressed is if someone with a Linux machine can take a look at it and see what's going on.

Likewise, the blank screen is probably due to an issue with the save being corrupted. This doesn't happen on a "cheat" exit on Windows (I specifically set it up so it wouldn't be an issue - if people want to savescum I'm fine with that), but Linux may handle things differently than windows when a program is force-terminated. It might also have to do with WHEN you're quitting exactly - I made some changes to the autosave behaviour in the last build and there may be some issues if you quit out at particular times that I hadn't seen when I was testing it.

As for where it's saved - $XDG_CONFIG_HOME/unity3d/Lazy Dog Software/LCS (XDG_CONFIG_HOME defaults to ~/.config). This folder will also have a log file that can contain exception information that might be helpful to diagnose what's happening - can you trigger the black screen on a failed load, and then upload the Save.sav and output_log.txt from that folder somewhere so I can check them? Actually, the output_log.txt might also have some helpful information on the blank portrait issue too (if it's being caused by an exception), so a copy of one from after you see that happen would be helpful too. Bear in mind that Unity will overwrite this file every time you start the game up so you'd need to make copies of this file for each issue separately (i.e. enter the game, try to load the bad save file, get the black screen, quit, copy/rename the output_log.txt to somewhere else, enter the game again, start a new game and go until you see a grey box portrait, quit, then copy/rename the output_log.txt file again).

Right now you can't promote anyone manually - promotion will happen automatically if someone's current leader dies as long as THEIR leader has space to lead their new subordinates. If the person being promoted was seduced, they will only promote if they have more than 100 Juice (they will promote as a regular member though, so they still take up a recruitment slot on their new leader even though they didn't on their previous one). Otherwise, they aren't committed enough to the cause to want to continue after their lover is killed and they will just leave the LCS. This is all directly from the code I was referencing so if there was a version that used to allow you to manually promote seduced liberals, it was older than the one I based my code on. I may add manual promotion back in at some point but it would probably still not be allowed for seduced members unless they meet that 100 juice requirement.
Logged
LCS Graphical Remake:

https://the-cheshire-cat.itch.io/lcs
Current progress: ~100%

R0

  • Escaped Lunatic
    • View Profile
Re: An LCS Remake
« Reply #36 on: October 10, 2018, 08:14:11 am »

Okay, I needed some time due to technical issues, but here we go.
I couldn't find an output_log.txt, but a Player.log, so I'll upload these. While I started a new game for the save with the blank portraits, I couldn't trigger the save file corruption on it, so I uploaded a different, further progressed one for that.
https://files.catbox.moe/7ti4ys.zip
Logged

The Cheshire Cat

  • Bay Watcher
    • View Profile
Re: An LCS Remake
« Reply #37 on: October 10, 2018, 04:26:46 pm »

Hmm, the save and log file for the portrait issue look fine so I can't really tell what the problem is there. It may be some Linux specific thing. I'll look into some of the details on the methods I'm using to generate portraits to see if there are any system specific aspects to them that might be cause the problem.

The save corruption looks like it's due to the CEO entity not having saved correctly - there's a hanging reference to them in the Government entity but no matching entity to be referenced. Do you remember specifically what you'd done just before you quit out that might have caused that to happen? The CEO handling is a bit hacky so it's very likely there's some edge case that I've missed.

*edit* yeah looks like there's a LOT of edge cases I've missed. I'm looking at how persistent non-liberal entities are being handled and there are a ton of holes where they could be created in-game and registered to persistent handlers, but not persisted themselves, so the save game would be left with the same kinds of references to entities that don't exist as far as the game is concerned. It looks like the CEO is especially bad about this, because it is created as soon as you activate the special tile in the CEO house, but it's not actually saved unless you recruit them.
« Last Edit: October 10, 2018, 06:56:57 pm by The Cheshire Cat »
Logged
LCS Graphical Remake:

https://the-cheshire-cat.itch.io/lcs
Current progress: ~100%

The Cheshire Cat

  • Bay Watcher
    • View Profile
Re: An LCS Remake
« Reply #38 on: October 11, 2018, 09:03:43 pm »

I've uploaded a build with some fixes for these issues - see if the changes I've made resolved the portrait issues (I had some other people test the game on their Linux machines and they didn't get the same issue you did, so it might be a hardware thing. The changes I made should "simpler" for different GPUs to handle since I don't do anything with rendering to textures anymore).

If you want to fix the save that you had that'd stopped working, you can open it up in a text editor and find the line that says "<ceo>45446</ceo>" and replace it with "<ceo>null</ceo>". It should load fine after that and it'll just generate a new CEO the next time you activate the special tile.
Logged
LCS Graphical Remake:

https://the-cheshire-cat.itch.io/lcs
Current progress: ~100%

R0

  • Escaped Lunatic
    • View Profile
Re: An LCS Remake
« Reply #39 on: October 12, 2018, 07:05:24 pm »

Yeah, works now for me.
Another thing I noticed is, that trying to give your founder an alias while choosing his background that includes a,b,c,d or e will instantly pick the corresponding answer.
Logged

jhxmt

  • Bay Watcher
    • View Profile
Re: An LCS Remake
« Reply #40 on: October 13, 2018, 12:23:51 pm »

As someone who is just starting out learning Unity (I'm past the "Hello World" stage and into the top-down-shooter-controls-and-camera nightmare that traditionally comes next :P), I am so incredibly grateful to you for sharing it as a Unity project.  Just being able to look at a feature-complete game that I'm relatively familiar with (I've played many previous iterations of the LCS codebase) is going to be hugely helpful in getting my head around some of the ways-you-can-use-Unity concepts.

So, thank you.  And that's without even having played it yet.  ;)  Downloading now!
Logged
Quote from: beefsupreme
Try slaughtering a ton of animals, meat makes less decisions than animals.

Why Your Ramps Don't Work
How To Breach A Volcano Safely

The Cheshire Cat

  • Bay Watcher
    • View Profile
Re: An LCS Remake
« Reply #41 on: October 13, 2018, 01:11:23 pm »

As someone who is just starting out learning Unity (I'm past the "Hello World" stage and into the top-down-shooter-controls-and-camera nightmare that traditionally comes next :P), I am so incredibly grateful to you for sharing it as a Unity project.  Just being able to look at a feature-complete game that I'm relatively familiar with (I've played many previous iterations of the LCS codebase) is going to be hugely helpful in getting my head around some of the ways-you-can-use-Unity concepts.

So, thank you.  And that's without even having played it yet.  ;)  Downloading now!

I should probably warn you up front that this isn't a GREAT use of Unity. I ended up fighting it a lot and in retrospect I think it would have worked better had I made more use of the Unity interface rather than trying to handle everything in code. I guess it does serve as a demonstration of how you can do that (some Unity games are set up like this - as I understand it the Roguelike Caves of Qud is also designed this way), but it's not what I would recommend as an approach if you're planning to really get in to Unity.
Logged
LCS Graphical Remake:

https://the-cheshire-cat.itch.io/lcs
Current progress: ~100%

tykavanaugh

  • Bay Watcher
    • View Profile
Re: An LCS Remake
« Reply #42 on: October 22, 2018, 02:07:43 pm »

This is really awesome! Is the CCS and such implemented it? I haven't been able to get them active while testing.
Logged

The Cheshire Cat

  • Bay Watcher
    • View Profile
Re: An LCS Remake
« Reply #43 on: October 22, 2018, 08:18:55 pm »

They are implemented, but won't show up until public opinion shifts about 60% liberal.
Logged
LCS Graphical Remake:

https://the-cheshire-cat.itch.io/lcs
Current progress: ~100%

tykavanaugh

  • Bay Watcher
    • View Profile
Re: An LCS Remake
« Reply #44 on: October 28, 2018, 11:29:52 am »

Is there a way to make the election screens run faster?
Logged
Pages: 1 2 [3] 4 5