|
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.
|
# ? Mar 14, 2019 15:14 |
|
|
# ? May 14, 2024 04:46 |
|
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.
|
# ? Mar 14, 2019 15:46 |
|
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. 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.
|
# ? Mar 14, 2019 16:36 |
|
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.
|
# ? Mar 14, 2019 16:44 |
|
How does Star Citizen factor into all of this?
|
# ? Mar 14, 2019 16:56 |
|
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
|
# ? Mar 14, 2019 19:44 |
|
LifeSunDeath posted:How does Star Citizen factor into all of this? It's a glitch with a tiny amount of game in it.
|
# ? Mar 14, 2019 19:53 |
|
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.
|
# ? Mar 14, 2019 21:30 |
|
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.
|
# ? Mar 14, 2019 21:54 |
|
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.
|
# ? Mar 14, 2019 22:04 |
|
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
|
# ? Mar 14, 2019 22:04 |
|
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.
|
# ? Mar 14, 2019 22:48 |
|
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.
|
# ? Mar 14, 2019 23:14 |
|
That's what prototyping stages are for.
|
# ? Mar 14, 2019 23:20 |
|
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. Also also the people riding the rocket are not actively trying to break it.
|
# ? Mar 14, 2019 23:22 |
|
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.
|
# ? Mar 14, 2019 23:35 |
|
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.
|
# ? Mar 14, 2019 23:38 |
|
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.
|
# ? Mar 14, 2019 23:45 |
|
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. 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.
|
# ? Mar 15, 2019 00:30 |
|
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
|
# ? Mar 15, 2019 00:32 |
|
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.
|
# ? Mar 15, 2019 00:38 |
|
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.
|
# ? Mar 15, 2019 00:42 |
|
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
|
# ? Mar 15, 2019 00:54 |
|
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.
|
# ? Mar 15, 2019 02:11 |
|
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. 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.
|
# ? Mar 15, 2019 14:56 |
|
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.
|
# ? Mar 15, 2019 17:34 |
|
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. 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.
|
# ? Mar 15, 2019 18:24 |
|
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.
|
# ? Mar 16, 2019 09:13 |
|
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.
|
# ? Mar 16, 2019 09:43 |
|
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.
|
# ? Mar 16, 2019 17:02 |
|
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
|
# ? Mar 23, 2019 12:29 |
|
Not a glitch, working as intended. Seriously though, this first part of the melee update is already a big step in the right direction.
|
# ? Mar 23, 2019 18:01 |
|
Can you still basically fly with Dual Zorens?
|
# ? Mar 23, 2019 18:10 |
|
Coptering has not been a thing for a long time
|
# ? Mar 23, 2019 18:14 |
|
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? "
|
# ? Mar 23, 2019 23:23 |
|
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.
|
# ? Mar 23, 2019 23:35 |
|
coptering is dead, but movement in everything but a straight line with no obstacles is much faster and more fluid.
|
# ? Mar 23, 2019 23:36 |
|
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.
|
# ? Mar 24, 2019 20:57 |
|
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 |
# ? Mar 27, 2019 08:49 |
|
|
# ? May 14, 2024 04:46 |
|
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.
|
# ? Mar 27, 2019 15:41 |