(Topic ID: 233457)

Code Completion- interesting concept

By Bublehead

5 years ago


Topic Heartbeat

Topic Stats

  • 13 posts
  • 7 Pinsiders participating
  • Latest reply 5 years ago by RCA1
  • No one calls this topic a favorite

You

Linked Games

No games have been linked to this topic.

    Topic poll

    “What is your definition for “completed code”? Pick one.”

    • No apparent or decernable bugs 6 votes
      18%
    • Its an ambigous statement that really is too subjective to qualify 7 votes
      21%
    • Its just a feeling you get when you play it, like you know man? 8 votes
      24%
    • It meets all the design requirements as tested against the Requirements Matrix 4 votes
      12%
    • Because the original software engineer said “It’s complete” 7 votes
      21%
    • Because the Management said “It’s complete” 0 votes
    • Because Pinside says “It’s NOT complete” 1 vote
      3%

    (Multiple choice - 33 votes by 29 Pinsiders)

    -5
    #1 5 years ago

    TL;DR
    Ok as a coder working for a large National bank, and as a programmer since 1977, this phrase- “code complete” and it’s cousin- “get the code completed”, are a concept that is lost on me. Ok, I can hear the keyboards clicking right now as you start gearing up to mansplain it to me so let me be a little more forthcoming...

    How do people on here and others throughout the hobby keep using this phrase and not know that it makes them sound, well, a little foolish to a actual programmer? Has everyone suddenly become real time OS coders lately without me knowing it, or just how do people “know” when the code is complete? Is it because the software guy at the manufacturer said “I am still working on the code,” or does everyone just know when a game is finished, all the bugs are gone, and it plays like, what?, every other pinball machine you have ever played? That can’t be right either, because all pinball machines play a bit different due to rules and hardware.

    So I guess what I am after here is if you are playing lets say the new Munsters machine, and you get all the way to the ultimate wizard mode, finish it and complete the last mode it has to offer and its back to the beginning again for rinse and repeat time, is this where you make your decision that the code is complete and finished? Or just what does finished code and game play actually mean?

    And I am asking for people’s real thoughts on this, this is not a troll or a bait.

    So what are peoples benchmarks of “completed code”?

    #2 5 years ago

    When you see an insert/mode or menu choice with no gameplay functionality like Are You A God in GB, then it's apparently incomplete.

    #3 5 years ago

    for me it's "no apparent bugs" and also "I know it when I play it."

    I think when you own a game from beta like I did with XMLE and STLE that you can see the bugs in total from jump and see as some are fixed and some are not, I see the code from when it was poor and incomplete and see it as it get updated. But those games still had problems (to me). ST had bugs, XM has something not quite great in the whole code (it didn't feel cohesive).

    After that I could not keep those two pins in the face of better (to me) coded games like Tspp, Woz, SM, TWD etc.

    Not saying ST or XM are bad but just imo life's too short to put up with some things you don't like and when you can get something that shoots just as good with better code.

    For example STLE has a ball save kick back and also a behind the flipper shot (a very important shot). On both there was a chance I could pass the switch but still pass the kick back and drain. The code should be programmed to know and give me a virtual ball save. I've seen it on other pins it's not complicated to figure that the kick back missed. But for whatever reason Stern would not fix it. Also sometimes the behind the flipper shots would not register and I would have made a very important shot and it would not recognize it. Now the ball gets into the shooter lane and the only way for this to happen is to make the behind the flipper shot yet the code does not recognize this and give credit for the shot and so (to me) thats a bug.

    I am not saying SM or Tspp are innocent of bugs but when I play them, they are not apparent to me and so they don't bug me.

    Another thing to me is when a code fits together it just feels right. Some games maybe XM and ST stand out, they just feel sometimes like a double handful of modes that are thrown into the code but maybe the overall structure doesn't make them feel authentic in the way that for example LotR with just as many modes but the structure feels right in LotR while in XM or ST they are close but not quite there yet.

    #4 5 years ago

    Ok, so gameplay not matching artwork/inserts is one tell tale, and by that logic, rule cards, game flyers, and pre-production or post production press releases all could contribute to a sense of incompletion.

    @rai, thanks. So watching the machine make errors you think could be caught with code, or that you have seen other code address, ok this makes sense from a player standpoint.

    TL;DR
    But as a coder, the truth table to handle errant balls that get missed or shots that are made but not registered are some of the most infuriating code to write and debug. A code base can only handle so many “what if” situations during game play modes, and sometimes the state of the machine gets confused when illogical switch hits enter the game control loop. Lets say like you get switch B being made before switch A, but switch B is only exposed to ball interaction if switch A is made, so when the B before A comes into the game loop logic, it may disregard or handle differntly (in this case) the B hit because A is not been made yet, however the reason this happened in the first place is an airball jumped over the drop bank and hit the target located behind it while the drop bank “down” switch was not made (or the “up” switch is made). You may recognize this as “Dirty Pool” in AFM, which is the code branch we see when this actually occurs during the game.

    #5 5 years ago
    Quoted from Bublehead:

    A code base can only handle so many “what if” situations during game play modes

    Hmm. Error handling should not be limited, why would you think so? Because the development time is limited? The code base certainly is not adversely limited by processing power or memory in this day and age. Probably why we all like Lyman coded machines, he is thorough and follows through with code updates.

    #6 5 years ago

    Error handling can get complex realy quickly, and actually, in real time programming, you do not have the luxury of having all the time in the world to try and figure out what physically is happening on the table while looking at a simple switch matrix and with no real time info on ball location, direction, speed, etc... Lyman is a great coder, he does a lot of error checking and a lot of state sensing, but there is another factor at work here, how much error checking is required in an amusement device? We are not talking life or death cercumstances when it comes to pin coding, so I would expect some shortcuts to be taken. But then again, KozMckPinball , this may just be your definition of “code complete”, in that ALL errors are handled, no matter how often they may occur or wether they can be detected by the player or not, so a viable and defendable position on being “code complete” but not sure it is economically obtainable by a single coder within a reasonable delivery timeframe. And it is also why some code updates take forever IMO.

    #7 5 years ago
    Quoted from Bublehead:

    Error handling can get complex realy quickly, and actually, in real time programming, you do not have the luxury of having all the time in the world to try and figure out what physically is happening on the table while looking at a simple switch matrix and with no real time info on ball location, direction, speed, etc... Lyman is a great coder, he does a lot of error checking and a lot of state sensing, but there is another factor at work here, how much error checking is required in an amusement device? We are not talking life or death cercumstances when it comes to pin coding, so I would expect some shortcuts to be taken. But then again, kozmckpinball , this may just be your definition of “code complete”, in that ALL errors are handled, no matter how often they may occur or wether they can be detected by the player or not, so a viable and defendable position on being “code complete” but not sure it is economically obtainable by a single coder within a reasonable delivery timeframe. And it is also why some code updates take forever IMO.

    I think it's more to your point to consider that the rules are so complex these days, not life or death as you say but why make the rules so intricate? Is there time for that and the contingencies that have to be considered to make the rules complete and balanced? Air balls hitting a switch out of turn might be less intense to consider than the rulesets. I think at this point, Stern and other pin manufacturers have code "engines" reused for common hardware interfacing from machine to machine. Drivers, lighting, sound, roll over switches etc. For example, if a ruleset is exploitable, it gets old quickly. Why follow the long winded story line to get points when you can just bang a multiplier and circumvent the other mode requirements for example? Rulesets can make or break machine sales, and machine sales ARE life and death to the pin manufacturers.

    #8 5 years ago

    Games will always have bugs. I think it comes down to all the features being there. Whether that's from what's shown in the game or what was promised initially. I'd also say the coder is generally trustable. If they say they've done all they planned and there's no obvious stuff missing, that's complete.
    If the manufacturer says there's another update coming then it's of course not complete.

    #9 5 years ago

    Maybe your are getting wrapped around the axle on the term Code Complete. Maybe the correct term is/should be Feature Complete. Like KozMckPinball said, if all the features are there, then I'd consider the game Feature Complete. There may well be bugs, but at least I get a full featured game that I was promised and paid for.

    #10 5 years ago
    Quoted from KozMckPinball:

    When you see an insert/mode or menu choice with no gameplay functionality like Are You A God in GB, then it's apparently incomplete.

    I don't now if the Acdc crowd with agree with the one.

    The code is done when they put the shit in they meant to, and fix most major bugs.
    Met was done before this last code drop.
    Acdc is done because the designers say the unused insert feature wasn't good enough to put in the game.

    #11 5 years ago
    Quoted from Lamprey:

    Maybe your are getting wrapped around the axle on the term Code Complete

    Not so much that but why people throw the term around like there is a magical way of “knowing” when code is “complete” which as a programmer, for us, code is never “complete” because there is always some facet of it that you know you could code better if given enough time and resources. We like terms like rev level 0 or 1.0 or 0.95 or 2.01, all very open ended. You only ever get to “Final Revision” when the money runs out and the project is closed. It would be interesting to see a time priority breakdown sheet from Stern’s coders... latest released game 25%, latest unreleased game 74%, all previously released games 1%... or what ever their mix is right now. (These numbers given here are for comedic purpose, not a dig...)

    #12 5 years ago
    Quoted from Bublehead:

    Not so much that but why people throw the term around like there is a magical way of “knowing” when code is “complete” which as a programmer, for us, code is never “complete” because there is always some facet of it that you know you could code better if given enough time and resources. We like terms like rev level 0 or 1.0 or 0.95 or 2.01, all very open ended. You only ever get to “Final Revision” when the money runs out and the project is closed. It would be interesting to see a time priority breakdown sheet from Stern’s coders... latest released game 25%, latest unreleased game 74%, all previously released games 1%... or what ever their mix is right now. (These numbers given here are for comedic purpose, not a dig...)

    Lots of us on Pinside are also software programmers, there's a lot of informed opinions here.

    Reply

    Wanna join the discussion? Please sign in to reply to this topic.

    Hey there! Welcome to Pinside!

    Donate to Pinside

    Great to see you're enjoying Pinside! Did you know Pinside is able to run without any 3rd-party banners or ads, thanks to the support from our visitors? Please consider a donation to Pinside and get anext to your username to show for it! Or better yet, subscribe to Pinside+!


    This page was printed from https://pinside.com/pinball/forum/topic/code-completion-interesting-concept?hl=phat_jay and we tried optimising it for printing. Some page elements may have been deliberately hidden.

    Scan the QR code on the left to jump to the URL this document was printed from.