Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
haveblue
Aug 15, 2005
Probation
Can't post for 57 minutes!
Toilet Rascal
We do actually have a process for writing bug-free code but it's slow, tedious, bureaucratic, and only really feasible for government contractors with lives on the line. It's totally incompatible with any other kind of development.

Adbot
ADBOT LOVES YOU

Cardiovorax
Jun 5, 2011

I mean, if you're a successful actress and you go out of the house in a skirt and without underwear, knowing that paparazzi are just waiting for opportunities like this and that it has happened many times before, then there's really nobody you can blame for it but yourself.
Writing actual code is pretty much the least important part of what goes into designing and planning out any major software projects, though. That only counts double for something like a video game, which has to take a lot of requirements into account that are lot harder satisfy than something as purely functional as performing well in single and highly specific use case.

zedprime
Jun 9, 2007

yospos

TooMuchAbstraction posted:

It's easy to forget that we still don't have a really reliable process for people of varying skill levels to build software with a predictable build quality and timeline (fast, good, cheap, pick one). Games exacerbate this problem because they usually get released at a specific time rather than when the developers are happy with the product. Net result: some nontrivial percentage of games are going to get released in a woefully un-ready state.
Bolded is every software developer project lol. Good effort estimation is nearly nonexistent so everything just gets slotted into a project schedule based on a SME doing estimates and you fit the requirements in as you can. At a certain point your requirements are a list of nice to haves to prioritize and you need good design and programmer leads to dynamically fit in what you should instead of going for what you could.

Quality is intrinsic to every step in that the designers need to propose systems that won't be unmanageable to maintain, the programmers need to take those systems and translate them into code that not only works but is maintainable, and QA needs to figure out tests that not only prove the individual line items but proves the interactions between them are doing what the designers thought they wanted instead of just what they specified. Failures along the way add up and exacerbate situations where the testers come back with a defect and everybody laughs at the infeasibility of working in a fix at that stage.

xthetenth
Dec 30, 2012

Mario wasn't sure if this Jeb guy was a good influence on Yoshi.

Software engineering is pretty fun and excellent because programs are so portable that if you weren't making what's effectively a prototype of something groundbreaking you'd just license it and start from there.

It also means that tech bros just don't loving understand that going from a prototype to a mass producible object is actually hard work.

LifeSunDeath
Jan 4, 2007

still gay rights and smoke weed every day
How does Star Citizen factor into all of this?

Slickdrac
Oct 5, 2007

Not allowed to have nice things

LifeSunDeath posted:

How does Star Citizen factor into all of this?

Can't have bad game code if you're not actually coding a game

Vincent Van Goatse
Nov 8, 2006

Enjoy every sandwich.

Smellrose

LifeSunDeath posted:

How does Star Citizen factor into all of this?

It's a glitch with a tiny amount of game in it.

rodbeard
Jul 21, 2005

Microsoft Windows has more than 100 times as many lines of code as the space shuttle. Engineering software is relatively simple because from a software perspective going into space is mostly just a lot of repeated calculations and device I/O, exactly what computers are designed to do. Video games are the result of somebody bastardizing a scientific device into pretending to play tennis. It's a lot more complex but it doesn't kill anyone if you screw up.

Solice Kirsk
Jun 1, 2004

.

rodbeard posted:

Microsoft Windows has more than 100 times as many lines of code as the space shuttle. Engineering software is relatively simple because from a software perspective going into space is mostly just a lot of repeated calculations and device I/O, exactly what computers are designed to do. Video games are the result of somebody bastardizing a scientific device into pretending to play tennis. It's a lot more complex but it doesn't kill anyone if you screw up.

Tell that to the dude that got killed over Madden.

Ariong
Jun 25, 2012

Get bashed, platonist!

This one requires a bit of preamble, but it’s quite good. Every Hearthstone expansion comes with some single player content. In the expansion The Witchwood, there was a single player campaign you could play through with four different heroes with unique hero powers. These powers are generally overpowered, but fine in the context of the singleplayer campaign. At the end of the campaign was a final boss where you started as one hero with three cards that would each transform you into one of the other heroes.

They just announced the latest expansion and made it available for preorder, and somehow accidentally made it so that people who preorder get one of those special final boss hero-transformation cards in their regular card collection. As in, where you can put it into your deck and use it against other players. Here is an imgur gallery demonstrating the card.. Don’t go and preorder now though, they already fixed it and took the card away from those who got it. You can see in the last picture how the card is still part of that deck’s recipe, but no longer in the player’s collection.

(This will probably only be interesting if you know how Hearthstone works) This specific hero is Darius Crowley. When you become him, he summons a permanent cannon to your side of the board. His hero power causes the cannon to deal 1 damage to the minion(s) opposite it, or the enemy hero if there are no minions opposite it. If the cannon kills a minion, the hero power refreshes. Honestly, probably not so powerful that he couldn’t be an actual card.

Rigged Death Trap
Feb 13, 2012

BEEP BEEP BEEP BEEP

haveblue posted:

We do actually have a process for writing bug-free code but it's slow, tedious, bureaucratic, and only really feasible for government contractors with lives on the line. It's totally incompatible with any other kind of development.

lol turns out people who have normal human working hours, a life outside of the job and a team large enough to handle the workload make quality code

WHO THE gently caress COULDVE GUESSED RIGHT

Cardiovorax
Jun 5, 2011

I mean, if you're a successful actress and you go out of the house in a skirt and without underwear, knowing that paparazzi are just waiting for opportunities like this and that it has happened many times before, then there's really nobody you can blame for it but yourself.
The part where they literally have a equally-sized team of people who do nothing but read through the programming department's code full-time and triple-check for anything that even looks like it might cause any problems down the road probably has more to do with it.

Triarii
Jun 14, 2003

Also a huge difference is that someone programming a rocket knows exactly what the program needs to do from the outset and can plan the whole project out before writing any code. When you're making a game, you don't know for sure whether a particular aspect of it is going to be fun until you've made it and gotten it into the hands of playtesters. Chances are, it'll need some changes at that point, or it just doesn't work and it needs to be removed, and the rest of the game reshaped around it. It's not as important to write code in a way that can never possibly produce errors as it is to write it such that it's easy to completely rework it next month when it turns out you need to change big chunks of the design.

I've worked with some people who want to see a plan for the whole project before they start any work, and they tend to not do very well in game development. Often they'll get a first-pass plan, and then when things inevitably need to change, they say "well that wasn't in the plan so the system doesn't support that" and they'll endlessly drag their heels on making actual changes.

Dabir
Nov 10, 2012

That's what prototyping stages are for.

RatHat
Dec 31, 2007

A tiny behatted rat👒🐀!

Triarii posted:

Also a huge difference is that someone programming a rocket knows exactly what the program needs to do from the outset and can plan the whole project out before writing any code. When you're making a game, you don't know for sure whether a particular aspect of it is going to be fun until you've made it and gotten it into the hands of playtesters. Chances are, it'll need some changes at that point, or it just doesn't work and it needs to be removed, and the rest of the game reshaped around it. It's not as important to write code in a way that can never possibly produce errors as it is to write it such that it's easy to completely rework it next month when it turns out you need to change big chunks of the design.

I've worked with some people who want to see a plan for the whole project before they start any work, and they tend to not do very well in game development. Often they'll get a first-pass plan, and then when things inevitably need to change, they say "well that wasn't in the plan so the system doesn't support that" and they'll endlessly drag their heels on making actual changes.

Also also the people riding the rocket are not actively trying to break it.

Triarii
Jun 14, 2003

Dabir posted:

That's what prototyping stages are for.

Man that would be nice but in my experience, publishers are running focus tests and asking for sweeping changes based on the results right up to like a month before launch.

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug

Cardiovorax posted:

And we're never going to, either. Software engineering on that scale is 50% art, 10% black magic and maybe 40% a matter of actual technological skill. You can't really formalize the process of hand-crafting an essentially unique product almost entirely from scratch every single time.

That's a tragically low percentage of black magic for any program at all, ever.

rodbeard posted:

Microsoft Windows has more than 100 times as many lines of code as the space shuttle. Engineering software is relatively simple because from a software perspective going into space is mostly just a lot of repeated calculations and device I/O, exactly what computers are designed to do. Video games are the result of somebody bastardizing a scientific device into pretending to play tennis. It's a lot more complex but it doesn't kill anyone if you screw up.

The biggest snag in games is that you have to keep to a frame rate that doesn't look choppy. You can do the number crunching in parallel in the background but parallel processing is its own bastard entirely. For stuff like going to space all you really need is for somebody to be able to just go "machine, I need this number" and for the machine to puke it out in a reasonable amount of time. What is "reasonable" varies a lot but on the space shuttle they can probably wait 20 seconds pretty much always. All that matters is that the right number comes out.

A major problem with any dev at all right now is that it's cheaper to just go "meh, hack it together and make it work" than it is to take the time and effort to actually do it properly. Software architecture is really really boring and takes time and planning to do properly. Far as I can tell the AAA games industry is openly hostile to that kind of thing as the shareholders demand cash. Granted the games industry also has a totally different dev cycle than a lot of software engineering; in traditional engineering you have companies that have been using the same software from the same company since 1978 because it loving works. A game's lifecycle is far, far shorter and will probably be totally abandoned in a few years. Games made 20 years ago that people still play are really the exception rather than the rule.

It also doesn't help that developers have a really bad tendency to bike shed.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

RatHat posted:

Also also the people riding the rocket are not actively trying to break it.

Reminds me of a (likely apocryphal) story I heard about a navy jet that got totaled because the pilot was sitting in the cockpit, on the grounded jet, and decided to see what would happen if he punched the "raise landing gear" button while on the ground. Turns out it raises the landing gear! He'd expected it to raise an error message instead. Whoops.

Cardiovorax
Jun 5, 2011

I mean, if you're a successful actress and you go out of the house in a skirt and without underwear, knowing that paparazzi are just waiting for opportunities like this and that it has happened many times before, then there's really nobody you can blame for it but yourself.

quote:

I've worked with some people who want to see a plan for the whole project before they start any work, and they tend to not do very well in game development. Often they'll get a first-pass plan, and then when things inevitably need to change, they say "well that wasn't in the plan so the system doesn't support that" and they'll endlessly drag their heels on making actual changes.
Yeah, that's the thing, really. People who build cars or houses or vacuum cleaners get to look at a design document that can actually show you every single part of it in advance and how to put it together into a predetermined shape. Any software project that reaches the point at which no single person can realistically read and have a full understanding of what every single line of code in it does anymore is pretty much made up as you go along. Software development is like a communal attempt to build a spaceship with a group of people who all work on a different part of it and none of who actually understand all of it, or have necessarily ever even seen it.

Except sometimes, someone also decides that they don't like this "steel" stuff and that they'd rather make all of their parts out of knurf instead, which they invented a week ago because unlike rocket scientists, programmers aren't constrained by petty limitations like having to make things out of physical substances that actually exist. It's kind of a miracle that this ends up producing something at all functional as often as it does.

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug
It's been going around for a while but this article is pretty much the most true thing ever written.

https://www.stilldrinking.org/programming-sucks

Triarii
Jun 14, 2003

Cardiovorax posted:

Software development is like a communal attempt to build a spaceship with a group of people who all work on a different part of it and none of who actually understand all of it, or have necessarily ever even seen it.

Heck, with games, it's like you don't even know that you're building a spaceship; you're just building something. Maybe this thing will go to space, or maybe drill for oil, or compose music for you, or make espresso. You'll figure that out as you go along and see what the thing's capable of.

Cardiovorax
Jun 5, 2011

I mean, if you're a successful actress and you go out of the house in a skirt and without underwear, knowing that paparazzi are just waiting for opportunities like this and that it has happened many times before, then there's really nobody you can blame for it but yourself.
In terms of sheer creative freedom, being a programmer is the next best thing to being god. Which really explains a lot about the state of this universe, when you think about it.

Farecoal
Oct 15, 2011

There he go

Cardiovorax posted:

The part where they literally have a equally-sized team of people who do nothing but read through the programming department's code full-time and triple-check for anything that even looks like it might cause any problems down the road probably has more to do with it.

oh yeah, whoops, alright back to exploitation everyone

Dabir
Nov 10, 2012

Triarii posted:

Man that would be nice but in my experience, publishers are running focus tests and asking for sweeping changes based on the results right up to like a month before launch.

Yes, the process being used in game development is bad. That's the point.

zedprime
Jun 9, 2007

yospos

Cardiovorax posted:

Yeah, that's the thing, really. People who build cars or houses or vacuum cleaners get to look at a design document that can actually show you every single part of it in advance and how to put it together into a predetermined shape. Any software project that reaches the point at which no single person can realistically read and have a full understanding of what every single line of code in it does anymore is pretty much made up as you go along. Software development is like a communal attempt to build a spaceship with a group of people who all work on a different part of it and none of who actually understand all of it, or have necessarily ever even seen it.

Except sometimes, someone also decides that they don't like this "steel" stuff and that they'd rather make all of their parts out of knurf instead, which they invented a week ago because unlike rocket scientists, programmers aren't constrained by petty limitations like having to make things out of physical substances that actually exist. It's kind of a miracle that this ends up producing something at all functional as often as it does.
The gulf between IT and manufacturing/building is more psychological in my experience. There's plenty of art and winging it in the physical world even with signed engineering design docs. The difference between a good scaffold builder and a bad one can mean the difference between taking a few hours or a few days to do the work it's enabling.

A PM of a 4 million dollar erection and a PM of a 4 million dollar software project are going to have very different agendas (but maybe they shouldn't). But the team leads are going to have very similar experiences. No one person will be familiar with every aspect of the erection. Like that scaffold building is going to be a line item in the bill to the PM. But how they go about it is very important to the super who can then relay to the team lead or super how things are going. A good plan and a good super mean they can point at the doc and say well we really need some scaffold like this, don't just build it straight up next to the junk. Coding doesn't work much different. A technical architect says hey how about we do XYZ by ABC and the programmers can be like yeah cool, we can do it but also maybe do D to better hook into E.

It goes back to being maintainable, whether it's a code base, a building plan, or the building.

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



zedprime posted:

4 million dollar erection

mods pls

But seriously yeah, it's shameful how low the standard of quality in most software development is. The worst thing is it pays to deliver lovely software, because that means you have a guaranteed support contract for years to come. There's been a ton of big public software orders -- public transport payments (Rejsekort), healthcare patient data (Sundhedsplatformen), internal tax systems (idk the names) -- that have just turned out to be poo poo, and the developers have made a killing anyway as have the public servants who made the deal, most of them even got bonuses.

At least we're starting to talk about putting harder requirements in the contracts now in the public sector.

Doc Hawkins
Jun 15, 2010

Dashing? But I'm not even moving!


zedprime posted:

The gulf between IT and manufacturing/building is more psychological in my experience. There's plenty of art and winging it in the physical world even with signed engineering design docs. The difference between a good scaffold builder and a bad one can mean the difference between taking a few hours or a few days to do the work it's enabling.

A PM of a 4 million dollar erection and a PM of a 4 million dollar software project are going to have very different agendas (but maybe they shouldn't). But the team leads are going to have very similar experiences. No one person will be familiar with every aspect of the erection. Like that scaffold building is going to be a line item in the bill to the PM. But how they go about it is very important to the super who can then relay to the team lead or super how things are going. A good plan and a good super mean they can point at the doc and say well we really need some scaffold like this, don't just build it straight up next to the junk. Coding doesn't work much different. A technical architect says hey how about we do XYZ by ABC and the programmers can be like yeah cool, we can do it but also maybe do D to better hook into E.

It goes back to being maintainable, whether it's a code base, a building plan, or the building.

It's also the same because the architect is superfluous when the workers are properly trained and organized.

Paging FactsAreUseless for a rant about the older kind of architect.

IShallRiseAgain
Sep 12, 2008

Well ain't that precious?

The thing about programming is that you also have to deal with users entering the wrong input. It'd be like if somebody constructing a building also had to worry about some people randomly choosing to shove forks into electrical outlets, trying to drive their car through the lobby and onto an elevator, or whatever other insane thing you'd never expect somebody to do.

SugarAddict
Oct 11, 2012

IShallRiseAgain posted:

The thing about programming is that you also have to deal with users entering the wrong input. It'd be like if somebody constructing a building also had to worry about some people randomly choosing to shove forks into electrical outlets, trying to drive their car through the lobby and onto an elevator, or whatever other insane thing you'd never expect somebody to do.

I see you've never visited the OSHA thread.

The Merkinman
Apr 22, 2007

I sell only quality merkins. What is a merkin you ask? Why, it's a wig for your genitals!

IShallRiseAgain posted:

The thing about programming is that you also have to deal with users entering the wrong input. It'd be like if somebody constructing a building also had to worry about some people randomly choosing to shove forks into electrical outlets, trying to drive their car through the lobby and onto an elevator, or whatever other insane thing you'd never expect somebody to do.
Dealing with people not in your field is terrible, but you're the expert.

Dabir
Nov 10, 2012

So Warframe recently improved its melee flow a bit by giving some travel to your melee slams. Jump, aim down within a relatively narrow cone below you, hit the melee button and you'll slam into the ground, and now if you're aiming away from yourself you can get a few meters travel distance, depending on the terrain and how high you are.

Or you can do this:
https://www.youtube.com/watch?v=6_HMBoXi1Yo

Quill
Jan 19, 2004
Not a glitch, working as intended.

Seriously though, this first part of the melee update is already a big step in the right direction.

Unperson_47
Oct 14, 2007



Can you still basically fly with Dual Zorens?

Gumbel2Gumbel
Apr 28, 2010

Coptering has not been a thing for a long time

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

Cardiovorax posted:

It's kind of a miracle that this ends up producing something at all functional as often as it does.

Which proves that software doesn't need need architecture or best practices. There is a shitload of software that mostly works ok and possibly even works better than whatever system it replaced. Mostly works ok meaning that people actually continue to use it in production. They might complain about it, but they keep using it.

As someone whose programming career has mostly been maintaining legacy code, it's part "holy poo poo software doesn't need to be this bad", part "nobody wants to improve anything because it works mostly ok and changing things might break something (also making changes costs money)." Also as a get-out-of-jail-free card, because people are so used to bad software, you can just go "computers, right? :v:"

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug

The Merkinman posted:

Dealing with people not in your field is terrible, but you're the expert.

As funny as that was it made me scream inside pretty much the entire time. I've had basically that conversation far too many times.

gimme the GOD DAMN candy
Jul 1, 2007
coptering is dead, but movement in everything but a straight line with no obstacles is much faster and more fluid.

Somfin
Oct 25, 2010

In my🦚 experience🛠️ the big things🌑 don't teach you anything🤷‍♀️.

Nap Ghost

Dabir posted:

Yeah but having empty slots just not count at all for power scaling instead of counting as 0 is beyond wrong and straight into incorrect.

It's complicated and depends how much impact the slot in question has. A player going in with no weapon would correctly be assessed as having a zero-level weapon.

Basically you shouldn't be using holistic measurements that assume all slots are of equal value, but if a character is missing a core part of gear and will be weaker because of it you're not wrong to drop their effective level.

FactsAreUseless posted:

How so? I played D2 a lot but as a kid, so I didn't ever dig deep into the mechanics.

Basically compare that and Borderlands 2.

In Diablo 2 a weapon that throws 8 damage out will hit the enemy with 8 incoming damage, and that'll be true in all areas. Later enemies mitigate it with armour but only if they have armour, and they'll mitigate all incoming damage the same way with that armour.

Borderlands 2 has the rule that a weapon's level alters how that weapon affects enemies. So a level 5 pistol that deals 8 damage will only ever actually hit an enemy of level 5 with 8 damage. A level 10 enemy will actually take less, while a level 1 enemy will take way more. The issue here is that this isn't driven by enemies having more or less armour, but by the level difference. A level 10 pistol that deals 8 damage will deal way more damage to a level 10 enemy than a level 1 pistol that deals 8 damage.

The latter is wildly unintuitive and means that fun items drop off in effectiveness way, way faster than they would if the scaling was correct.

Dabir
Nov 10, 2012

You're missing the point. In Anthem, the best way to maximise your power is to equip only the single most powerful item you have, and that happens to be the starting rifle.

E: If a slot counts for power scaling at all, it should count 0 when it's empty. Otherwise putting something in there brings your average down, making it pointless.

Dabir has a new favorite as of 08:59 on Mar 27, 2019

Adbot
ADBOT LOVES YOU

Zoig
Oct 31, 2010

Yeah, its more like, you have (45 + 40 + 37 + 30)/4 as your average power level. Removing the Item gives you (45 + 40 + 37)/3 which increases the average by a significant amount.

A friend explained to me that mostly its done this way because it is easier to program than doing it so that it calculates a empty slot properly. Perhaps its because you have to write a exception for when a slot is empty so you don't get divide by zero? I dunno.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply