Arkeus
Arcane
- Joined
- Oct 9, 2012
- Messages
- 1,406
Btw, do we have confirmation that Caedung's been scrapped?In before this code thing ends up being like the Pallegina voice acting
If so, that's really sad
Btw, do we have confirmation that Caedung's been scrapped?In before this code thing ends up being like the Pallegina voice acting
what im trying to figure out is whether the obsidian programmers know their code is a travesty and just don't care, or if they don't realise how bad it is
because personally, a 4,000-line class like CharacterStats.cs would get me fired
You could ask Adam Brennecke or we can summon Anthony Davis
Which I just did.
what im trying to figure out is whether the obsidian programmers know their code is a travesty and just don't care, or if they don't realise how bad it is
because personally, a 4,000-line class like CharacterStats.cs would get me fired
You could ask Adam Brennecke or we can summon Anthony Davis
Which I just did.
What's do you have a problem with, the line count, or the content?
I haven't seen the code - so I can't comment on it. How did you guys get it?
between this + the quality of the code, im beginning to wonder if the programmers at obsidian are stuck in an early-90s time loopI can't see shit on that pic with the quests listed, but if it is formatted the way I think it is, we have over 80 quests.
There's so much useless shit in the classes, it's like they don't delete stuff as they change their code :/
http://forums.obsidian.net/topic/68573-decompiling-the-beta/
Thanks, I skimmed those, but I'm not seeing the file and the particular issue that people are talking about recently in this thread. The question I was summoned for. It might be in there, but what I saw was mod stuff, inventory mod, ai structure, and some talk about c#.
Anything else?
i did originally link to a pastebin of CharacterStats.cs, then took it down. suffice it to say it's not pretty and the vast majority of it can't be blamed on compiler bloatIf any of the Obsidian programmers happen across this: how did CharacterStats.cs and StatusEffects.cs come about? I know some of it is bloat from the compiler, but both are north of 4,000 lines. Do all games look like this internally? How do you debug them?
http://forums.obsidian.net/topic/68573-decompiling-the-beta/
Thanks, I skimmed those, but I'm not seeing the file and the particular issue that people are talking about recently in this thread. The question I was summoned for. It might be in there, but what I saw was mod stuff, inventory mod, ai structure, and some talk about c#.
Anything else?
i did originally link to a pastebin of CharacterStats.cs, then took it down. suffice it to say it's not pretty and the vast majority of it can't be blamed on compiler bloatIf any of the Obsidian programmers happen across this: how did CharacterStats.cs and StatusEffects.cs come about? I know some of it is bloat from the compiler, but both are north of 4,000 lines. Do all games look like this internally? How do you debug them?
If I can't see it, I can't talk about it. I can talk in generalizations, but that won't convince anyone. I certainly wouldn't judge anything based on decompiled code.
Without seeing anything in particular, the thing I would keep in mind is that Designs change - the system doesn't always end up the same as you imagine or build.
If I can't see it, I can't talk about it. I can talk in generalizations, but that won't convince anyone. I certainly wouldn't judge anything based on decompiled code.
Without seeing anything in particular, the thing I would keep in mind is that Designs change - the system doesn't always end up the same as you imagine or build.
aight, for your eyes only:
http://pastebin.com/PgtgPDPC
decompiled C# is eminently readable. and while some of this is the compiler inlining things or unrolling loops, last i checked compilers don't habitually write classes like this:
this is a single class
Pretty Sure Anthony would mostly agree with this.. Curious about his opinion.. He is actually a game dev after all maybe the standards are different?
My Bullshit opinions:
Some code seems to be following a very strict concise pattern and some of it seems to be a little heavy on the in-lining.. Not sure how I feel about those Enums being shoved in the class namespace like that but honestly that class isn't that bad..
If you guys are actually guffawing at a 6000 line class.. I would argue you haven't worked on a large project and you have never had a strict deadline that was in jeopardy..
Upset about the patterns not being consistent? Your company must also have never hired contractors or new employees and never had a manager who was getting yelled at by another manager.. Oh and Unity doesn't exactly make things easier.
In a perfect world we want proper patterns and a consistent stack that is always modular and decoupled as much as possible.. The reality is.. Crunch times happen.. Requirements change and shit happens..
Anyone having trouble navigating that class is not a very strong developer.. Commented out code or code not being used in a BETA release that isn't even being deployed?! HOW DARE THEY! (I checked in code on Friday that many -redacted- customers are using right now.. There's tons of harmless code (mostly commented but not all) in that check in for future stories in our backlog that didn't make it in this sprint.. so what?)
Also if anyone is bitching about lack of code form or comments.. you do understand what decompilation does right? The fact that IL maintains class and method signatures should be praised.. you guys should check out some decompiled byteCode sometime..
Always glad to know that the answer is that I'm too dumb for it's smartness
Other than that, I don't know. It seems to handle both PC and NPC and monsters and anyone with stats equallty. Handles noise level and lore status, but not some core abilities, handles some damage but not other. Handles statics related to combat, some related to weapons, some to characters. Has methods just to calculate randoms, without any link to anything within the class or any variables in there either. Not saying it doesn't work, but in this day and age, aren't you supposed to, you know, base, derive, organize and whatnot?
Pretty Sure Anthony would mostly agree with this.. Curious about his opinion.. He is actually a game dev after all maybe the standards are different?
My Bullshit opinions:
Some code seems to be following a very strict concise pattern and some of it seems to be a little heavy on the in-lining.. Not sure how I feel about those Enums being shoved in the class namespace like that but honestly that class isn't that bad..
If you guys are actually guffawing at a 6000 line class.. I would argue you haven't worked on a large project and you have never had a strict deadline that was in jeopardy..
Upset about the patterns not being consistent? Your company must also have never hired contractors or new employees and never had a manager who was getting yelled at by another manager.. Oh and Unity doesn't exactly make things easier.
In a perfect world we want proper patterns and a consistent stack that is always modular and decoupled as much as possible.. The reality is.. Crunch times happen.. Requirements change and shit happens..
Anyone having trouble navigating that class is not a very strong developer.. Commented out code or code not being used in a BETA release that isn't even being deployed?! HOW DARE THEY! (I checked in code on Friday that many -redacted- customers are using right now.. There's tons of harmless code (mostly commented but not all) in that check in for future stories in our backlog that didn't make it in this sprint.. so what?)
Also if anyone is bitching about lack of code form or comments.. you do understand what decompilation does right? The fact that IL maintains class and method signatures should be praised.. you guys should check out some decompiled byteCode sometime..
This is definitely true.
You might have a senior do the TDD and the initial implementation - someone like Tim Cain, Steve Weatherly, or Dan Spitzely. Their implementation is great. They move off to the next system and then changes or modifications to the system sometimes fall to a junior. The code will get reviewed of course, but a lot of the time you look at the change and why it was made, and then you look at your deadline and say, "That'll do, pig."
You know sometimes that when you are doing this that you are accumulating "code debt". In a perfect world, you will pay that debt off and get the system as clean and lean as you want. That doesn't always happen - and in this particular case, I'm still not seeing anything that CharacterStats wouldn't need.
Obviously as you gain experience, you also code systems in such a way where they can be easily changed and adapted (hopefully). The price of that adaptability is leanness.
Story time.
I have OCD. No surprise, many engineers do.
A long time ago, when I first started out - working for Enron, Dow Chemical, Xerox, Netscape, etc. I was always deleting code and making sure whatever I checked in was as clean as clean could be. My OCD demanded it of me.
As time went on, I realized I was constantly going back and changing things BECAUSE.... designs and specifications change, even in the non-gaming industry (the gaming industry is about 100x worse due to the nature of the product). It took awhile, but I eventually trained myself to comment out code, if def out code, or just remove the call and let the compiler no-op it.
I still hate looking at it - it keeps me riled up. Then I remind myself, that if they decide to change Sprint, or Fireball,or whatever example, I'm ready.
I am probably the worst at programming in this discussion but I'll add my piece.
When I was looking at it I found some code that probably should have been deleted, there's code in there from the old armor system from early 2013 and there's old code on recovery time that's not used anymore, and there's old code on how they handle other things as well. Only reason I know this is because I know how the armor system works and I know how it used to work. I was snooping around to try and find the code that governed recovery time so I could see how to mod it but it's very confusing because there's a lot of stuff that isn't being used (well at least to me it looks like it isn't) so I haven't been able to find the exact methods in use yet. Same with applying minimum damage, there's code in there from the old armor system ... but the current way is supposed to be 10% of incoming damage (which I've tested and it works) but the old method that has 40% minimum and 50% crushing minimum is still there.