User Tag List

Page 1 of 2 12 LastLast
Results 1 to 10 of 16

Thread: A small dev ramble

  1. #1
    Dev Team ThePiachu's Avatar
    Join Date
    Dec 2018
    Posts
    31
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    A small dev ramble

    During the townhall today someone asked about us removing the legacy SS13 code from our server. It's a really interesting topic for talking about dev things, so I figured I'd cover this topic a bit further.

    So recently, I went through our code and removed old Baycode races. If you're wondering what impact this had on any actual game, two things changed. First, the Predator ship lost one display item that was a race-specific helmet. Second was very indicative of why we need to clean up the code. See, Predators were unable to wear normal gloves. Their race was specifically blacklisted, probably because they have long nails or something. Okay, fair enough, but there was something else out there deep in the code. See, you were able to take wirecutters and clip the fingers off the gloves to allow Predators to wear those gloves again like some sort of biker aliens or something. So you had a mechanic to directly counter another mechanic that would only impact our Preds. Now take that and remember that all Preds spawn with Clan Bracers and you see how pointless all of that code was to us.

    This is the sort of silliness we don't need in our code. I'm fairly confident nobody ran into being unable to put on gloves as a Pred in year+. Same with alien races and their specific gear, minus that one wooden knife thing on LV - that's interesting enough on its own that it was spared the purge.

    Now, why are we removing the old code? To simplify things for ourselves and make future developments easier. Smaller code is easier to check and to change. The less rules you have to worry about the better. We used to have the character's species defined in their DNA, then again in their species datum, and a species string variable, and again as part of their data structure. This redundancy is not needed and putting the same info in 4 places makes it harder to debug if something goes wrong. Same with simplifying code for races that will never appear in our game - we don't care that bird people get drunk more easily, that code is meaningless to ungas vs benos.

    So it comes down to this - the less legacy code we have, the easier it will be to develop for this game. You are saving time having to comb through ancient files and make patches to some old bay station map you'll never see in rotation. More over, the less code we have, hopefully the better the game will run overall. We are hitting limits on performance during peak months, we need to trim the fat to keep up with all the ungas that want to play the game at the same time!

    But don't worry, I don't think we'll be removing everything. Personally, I have this approach for what I want to keep or remove:

    - If it's something that can be part of the "human universe", it should stay. Clowns exist in our world, there is no reason to remove clowns.
    - If it's something thematic or useful in events, it should stay. SCP Statue has been used a few times in events and it's interesting in small doses, it should stay.
    - If it's something that wouldn't fit the style of our game or events, it should be removed. Moth people would take away from the human-centric theme of the game, cloning goes against the gameplay constraints we put on the game, those should go.
    - If it's something that is redundant or overcomplicates our game, it should be simplified or removed. Currently every mob has DNA, that DNA can undergo mutations and there are entire mechanics about influencing those traits and how they affect the game, but most of our mechanics don't use any of that, so it's a dead feature that should be simplified and removed.
    - If it has negative effect on game performance, it should be simplified or removed. This is the reason we don't have atmospherics in our game - we could simulate air moving on 3 Z-levels and cap out at 100 people, or we could remove all that mess and support 200+ people instead. Most people would rather see 200 unga PVP than accurately track farts...

    So this is the general idea of why we are removing some old code and what you can expect going forward, or at least my personal view of it.

    TLDR:
    - We have a lot of old code nobody is using in our game
    - Less code means it will be easier to develop new code and bugfix old code
    - Less code means it will be easier to make our game run faster
    - We don't want to remove any fun stuff, just the things that were never used or won't change the final game too much

  2. #2
    Whitelisted Predator Survivor's Avatar
    Join Date
    Dec 2018
    Posts
    298
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    sounds good to me

  3. #3
    Senior Member Vampmare's Avatar
    Join Date
    Dec 2018
    Posts
    170
    Mentioned
    3 Post(s)
    Tagged
    1 Thread(s)
    Sounds logical.

  4. #4
    Dev Team
    Join Date
    Dec 2018
    Posts
    146
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Most impactful legacy code is the process scheduler.

  5. #5
    Senior Member
    Join Date
    Dec 2018
    Posts
    216
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    There is also 2 things not mentioned here.

    1. Legacy code can indirectly affect performance.
    Things can be initialized even though we do not use them. Like all humans have their species in their code. There could be a check that checks if a tajaran is trying to put on human armor. That check will run everytime someone puts on armor and is not needed. This would not matter a lot though. But we also removed a controller that was not needed and still initialized/processing. It runs its code every 50 ticks. There is just no reason to have that running.

    2. It also affects development.
    Small things like compile times but also bigger things. Dream maker has changed how some of their stuff works in the past.

  6. #6
    Primordial Member
    Join Date
    Dec 2018
    Posts
    1,092
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    I didnt know anyone was against removing old crappy code. Either way ignore them and remove the old crappy code.

  7. #7
    Member
    Join Date
    Dec 2018
    Posts
    41
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'm all for cleaning up the code but please do not get overzealous with this. It's the neat little things a lot to the depth and charm of SS13 and SS13 based servers. Sure there are a lot of mechanics that you do not use 99% of the time, but that 1% of the time where you are creative enough to use them are what makes the game so memorable. This game shines best the odd time when small features allow the player to MacGyver their way out of a tight spot. Otherwise it's just another top down shooter with a community that likes to RP.

  8. #8
    Senior Member Steelpoint's Avatar
    Join Date
    Dec 2018
    Posts
    285
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    The surprise is more this needs to be stated, I think you'll struggle to find anyone who will disagree with cutting out legacy code, especially when it literally does not occur as a concept in game.

    Cloning isn't invented for another few hundred years in universe, so I think we can safely not worry about old cloning code.

  9. #9
    Member
    Join Date
    Dec 2018
    Posts
    30
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Purging garbo code just means less conflicts when you add usable stuff. I'd say go for it and damn the torpedoes.

  10. #10
    Whitelisted Predator
    Join Date
    Dec 2018
    Posts
    748
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    So DNA/Genetic has been removed all together? I was hoping it would be kept in to be used at some point by research in the future R&D rework.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •