(Topic ID: 330971)

So you want to program pinball machines

By pinball_keefer

1 year ago


Topic Heartbeat

Topic Stats

You

Linked Games

No games have been linked to this topic.

    Topic Gallery

    View topic image gallery

    Performance (resized).png
    pasted_image (resized).png
    post (resized).png
    f558a5e7-e433-4618-9cae-b89fd70bdc57_text.gif
    EE352583-1300-491A-BE0C-454F9A4690E4.gif
    image (resized).jpg
    MV5BMTIxMTg4OTU0OF5BMl5BanBnXkFtZTYwMjUyMDE0._V1_ (resized).jpg
    pasted_image (resized).png
    DAE077A8-9B18-4E30-8051-6C2178BAC626 (resized).png
    what-year-is-it-robin-williams.gif
    Screenshot_20230211_203812_Reddit (resized).jpg
    04B6B8A8-DA01-4D90-A64D-F9DF14D00A7C (resized).jpeg
    There are 212 posts in this topic. You are on page 3 of 5.
    -1
    #101 1 year ago
    Quoted from Vitty:

    Can't find good C++ coders to save my life!

    If you recruit, try looking into Digipen. They only teach c++ and whip you pretty hard. 200/200 grads will know how to implement a linked list in c++. Can't tell you how many 4 year schools that offer computer science or computer science related degrees where people cannot explain or implement a linked list or what an abstract class is.

    #102 1 year ago

    I'd be into it if I was 10 years younger and about a thousand miles closer.

    But now I'm happy with my lower stressed engineering job. Way easier people to deal with than pinball fans

    #103 1 year ago
    Quoted from dpadam450:

    Can't tell you how many 4 year schools that offer computer science or computer science related degrees where people cannot explain or implement a linked list or what an abstract class is.

    Linked lists are kinda rare in the wild these days. I'm going to guess there's probably zero linked lists in the software of JJP or Stern. It used to be that what you could accomplish was 100% limited by the hardware you ran on. Now, I think the industry, and CS programs, focus on tools, implementation and practices over theory/analysis of algorithms. The fact that javascript went and took over everything; I mean there are no complex data structures like linked lists etc in JS. transforms, putting things over the wire, that's most software jobs. Shit even low power, inexpensive $35 raspberry pis can run .net and you don't have to manage your memory or anything like that.

    Abstract class, yeah that is first principles and a dev that couldn't give me a quick explanation would not make my team.

    #104 1 year ago

    Any chance you guys need this position as a remote, part time to help? I am fairly familiar with programming languages and have built my own pinball machine. Have done automation programming for power industry as well.

    I would never quit my full time job for it as the pay cut is way too large, but would love a part time job doing something I love.

    #105 1 year ago
    Quoted from Octomodz:

    Any chance you guys need this position as a remote,

    He's probably not reading the thread by the original post and 3 pages of unnecessary reading on his part. I'd email him and ask.

    Quoted from Richthofen:

    Linked lists are kinda rare in the wild these days.

    In the videogame and simulation world they are very present and something very aware. High performance machines do not run .net and JS. I agree if you are doing c++ GUI type stuff, but anything real-time related or things pushing future graphics and realistic rendering it's a must.

    #106 1 year ago
    Quoted from yancy:

    Same! Fresh out of school this would've been my dream job. One of the perks when I moved to the Chicago area in 2001 was being near the heart of pinball, little did I know the industry had just imploded. Anyway, if I didn't like my current job and wasn't two decades rusty on C++ and *nix, I'd be all over this. Great gig for the right person.

    One thing to keep in mind is when I started programming machines I ended up playing less pinball, outside of the whatever the current title I was working on. Even more so during lockdown when the game I was working on was in my house. One of the reasons I tried to get to the enterreium league is to play something else. Until I parted ways with American pinball most of machines at home were covered in dust. And no RazerX my playboy is not yet for sale, and you still have first dibs.

    #107 1 year ago
    Quoted from Richthofen:

    Linked lists are kinda rare in the wild these days. I'm going to guess there's probably zero linked lists in the software of JJP or Stern. It used to be that what you could accomplish was 100% limited by the hardware you ran on. Now, I think the industry, and CS programs, focus on tools, implementation and practices over theory/analysis of algorithms. The fact that javascript went and took over everything; I mean there are no complex data structures like linked lists etc in JS. transforms, putting things over the wire, that's most software jobs. Shit even low power, inexpensive $35 raspberry pis can run .net and you don't have to manage your memory or anything like that.
    Abstract class, yeah that is first principles and a dev that couldn't give me a quick explanation would not make my team.

    a linked list is a complex and non-existent data structure for an embedded application? huh...

    #108 1 year ago
    Quoted from PinballHelp:

    *give us the OPTION of disabling the upper flippers when they were not in use*. So anybody who wanted it the old way could keep it the old way. He flat out refused. This wasn't a major ask... it's a trivial thing to code. He was defiant and stubborn

    IIRC the ROM for TSPP has zero space left after all features were implemented. Rewriting to (attempt to) cram in this option is simply isn't worth the effort. Especially since only a very few vocal people were complaining about it. But you just keep on holding that grudge...

    #109 1 year ago

    Turning off the flippers to save on hardware seems like the sort of solution to a minor problem that adds a lot of unnecessary complexity. It's better for them to just flip because the one time they don't flip when they should, some players will rage stroke

    I've noticed that issue on Halloween/Ultraman. The main flippers get disabled while in the game store spending points and choosing a mode, but they don't always reenable when they should. So you just watch the ball drain after the lifter serves the ball back up... The sort of bug that would make you not want to play the game again. All to reduce the wear on the flippers by like 1%

    15
    #110 1 year ago
    Quoted from dpadam450:

    He's probably not reading the thread by the original post and 3 pages of unnecessary reading on his part. I'd email him and ask.

    I wouldn't say that, but I was gone this weekend. It was a pretty slow burn at first, but I appreciate the passion and discussion keeping it bumped for a good while.

    Quoted from TreyBo69:

    Turning off the flippers to save on hardware seems like the sort of solution to a minor problem that adds a lot of unnecessary complexity. It's better for them to just flip because the one time they don't flip when they should, some players will rage stroke

    This guy gets it.

    As for some other questions that stuck out...

    No, there is no remote option with this job. Too much collaboration and too many ideas spawn from hanging around together and beating on a game and getting those "hey, it would be cool if..." moments.

    "From" is an important word that thankfully at least a couple people picked up on.

    The linked list assertion is... odd. In CurrentGame, I just grep'd and there's at least 143 of them. smh

    As for not posting more in general, mostly I just don't have as much time to keep up with everything on pinside these days between family and work and everything else. Rest assured I still read quite a bit, listen to some podcasts, occasionally watch some streaming or VODs. And rest assured, my eyes get quite a workout from all the rolling they have to do.

    #111 1 year ago
    Quoted from Richthofen:

    Linked lists are kinda rare in the wild these days. I'm going to guess there's probably zero linked lists in the software of JJP or Stern. It used to be that what you could accomplish was 100% limited by the hardware you ran on. Now, I think the industry, and CS programs, focus on tools, implementation and practices over theory/analysis of algorithms. The fact that javascript went and took over everything; I mean there are no complex data structures like linked lists etc in JS. transforms, putting things over the wire, that's most software jobs. Shit even low power, inexpensive $35 raspberry pis can run .net and you don't have to manage your memory or anything like that.
    Abstract class, yeah that is first principles and a dev that couldn't give me a quick explanation would not make my team.

    My guess is that some of the legacy utilities of pinball programming were written in lower languages than C++, maybe C. I think Brian Eddy said he used to program in Assembler, must have been B/W Black Rose or Indy? (early '90s). I'd guess the next step was C, which required a lot of coded memory management. Probably the Stern software team still has to get in that utility code today for various reasons. JJP has not been around that long but I guess Keith might be saying they still program new code in lower languages using linked lists. Embedded code maybe?

    #112 1 year ago

    TIL: $80K is a good salary for developers and LinkedLists are everywhere.

    I've been a developer for 20 years. I only wrote LinkedList implementations in college. While I'm sure embedded systems might have need for them, I would never ding a kid coming out of college for not knowing how to implement one. (Especially since I'm pretty sure the c++ standard lib has a forward-list implementations these days.) He might go on to do React, or be a cloud architect, or do a million other things that don't require it. Software engineering has become such a big, diverse field of work. 25 years ago there were no devops guys and web dev was hacking perl scripts together and tossing them in your cgi-bin folder. 35 years ago games programmers were writing in 6502. Hell, I was a web dev for the first half of my career then did 10 years doing backend and mobile. I couldn't even come back to web now, because its changed so fundamentally. Anyways, I'd say 95% of developers today can't write a linked list implementation and don't know how to manage their own memory. But they can containerize their apps in docker, use modern package management and source control suites, and other things that IMHO are way more important to graduating engineers in most careers open to them.

    #113 1 year ago
    Quoted from Richthofen:

    TIL: $80K is a good salary for developers and LinkedLists are everywhere.
    I've been a developer for 20 years. I only wrote LinkedList implementations in college. While I'm sure embedded systems might have need for them, I would never ding a kid coming out of college for not knowing how to implement one. (Especially since I'm pretty sure the c++ standard lib has a forward-list implementations these days.) He might go on to do React, or be a cloud architect, or do a million other things that don't require it. Software engineering has become such a big, diverse field of work. 25 years ago there were no devops guys and web dev was hacking perl scripts together and tossing them in your cgi-bin folder. 35 years ago games programmers were writing in 6502. Hell, I was a web dev for the first half of my career then did 10 years doing backend and mobile. I couldn't even come back to web now, because its changed so fundamentally. Anyways, I'd say 95% of developers today can't write a linked list implementation and don't know how to manage their own memory. But they can containerize their apps in docker, use modern package management and source control suites, and other things that IMHO are way more important to graduating engineers in most careers open to them.

    Linked lists are non-contiguous memory, maybe structs containing memory address pointers to the next memory block I guess they could be described as. If I remember correctly, this creates long execution times if adding a memory block to a long linked list, as access is serial. I actually had to debug a Nestle plant system running our SCADA software as they were having production issues with operator network nodes timing out. So hard convincing them to let me install a debug build on their system, but finally they let me. In debugging it live on-site, with a Nestle guy looking over my shoulder, I found that for every SCADA alarm, it was being added into 7 different alarm linked lists, for various sorting criteria, taking too much time as they were generating tons of alarms as normal procedure and the nodes were timing out as a result, waiting for CPU time. I gave Nestle the ability to use a configuration file and disable the alarm lists they were not interested in, and that worked, they were using just 2. I delivered a release software patch, Nestle admins disabled the linked lists they did not need, Nestle production came back on line and babies got their formula without a hiccup. Very proud of what I did there. Our kernel code was all written in C, the rest in C++. Nestle offered me a job they were so happy about it. Maybe linked lists are safer than a general block of side by side memory regarding hacking if implementing them today? Is this how crypto works for block chain? Don't know anything about crypto.

    #114 1 year ago

    IMO it’s equally if not more important to know *when* to use a data storage/management method than just knowing how they work and how to write them.

    When I was in a SW role (MCU+DSP embedded and earlier FW engineer for bluetooth chipset), I’ve seen some glaring mis-application of linked lists for interprocessor message exchange that were a bitch to debug in a real time system and also performed poorly.

    Especially in embedded, KISS rules supreme.

    Please, dear SW developer/architect, only use linked lists if necessary, like if you want to sort items or insert/remove at random locations.

    #115 1 year ago
    Quoted from Richthofen:

    In the US we pay for a lot more things you don't. Our healthcare costs have a significant out of pocket component even with employer health insurance. Our public transit isn't great so we're driving everywhere. Our taxes are lower but our services are very expensive. We fund our own retirements and most jobs do not have pensions. The retirement component is really significant. If you have two adults working full time they should be maxing out their retirement contributions which in a 401K is $22,500 a year per person. We've chosen in the USA to make a lot of social services like retirement, transportation and infrastructure, healthcare, all that, is up to the individual. When you aren't paying $10k worth of healthcare and $20K worth of retirement and property taxes (in the UK the council tax is so ridiculously low compared to American property taxes)... it ends up being a wash at best. Hell, even filing your federal taxes is a cost we have to pay in the US (can be around $100), whereas in the UK anyone making less than $100K doesn't even have to file a return.

    Agree with parts of this, but after living in the UK for years and managing teams there for decades, US social and company sponsored benefits like SS, Medicare, 401k match, public sector pensions, etc are often better than the UK. The average standard of living in the US is just far higher. My data is about 5 years old and not for London, but we use to pay senior, non manager, IT and engineering professionals 50-80k pounds and were one of the best payers around.

    #116 1 year ago

    "Software engineering has become such a big, diverse field of work."

    You recognize the field of work is massive, yet you are making claims from the Javascript perspective. You cannot accomplish anything I've done for 20 years without understanding and being able to implement a linked list and yes on a daily basis. You are getting by as a different type of programmer. C++ engineers are mainly efficiency and real-time. I can't really open you to anything other than saying take my advice and take the advice of JJP guy. He has 142 linked lists. And NOBODY on the Unreal game engine (used by 1000+ game companies), or any other game company that uses C++ (all of them), is using the very slow C++ linked list implementation. We care about speed and don't use it.

    "Anyways, I'd say 95% of developers today can't write a linked list implementation and don't know how to manage their own memory."
    Right, those are bad developers or they are as you said web/java. Computer science data structures is 101 level class. If you don't know a linked list, you don't know a hash map and so many other things to accomplish the massive field of programming work. As someone else said embedded or real-time systems this stuff matters. About all I can say to maybe expand your understanding. I agree you might not need it in every line of programming work, but it matters in everything I've done and built.

    #117 1 year ago

    Yes, there is a huge difference between real-time developers and web development. I've spent most of my career doing either game development or flight simulator development (in C/C++ and/or assembler). In those environments, you are coding at a completely different level than Java.

    And memory-management in an embedded environment is usually critical.

    #118 1 year ago
    Quoted from mbeardsley:

    Yes, there is a huge difference between real-time developers and web development.

    Not knocking you Richthofen, but trying to give you perspective from the C++ side of our perspectives and this one. I agree with your point not all developers need the same toolset. I actually thought the game specific pinball code they have shouldn't necessarily need a linked list but I don't have the specs in front of me (maybe he was including tools code to link movie clips etc) but my latest job 3 years in was a 2 hr timed test to read in a text file that contained a list of cities and distances between them. The data contained roadways from one city to all other cities and their length. You had to traverse the fastest path from any given city to the next. You were not allowed to use c++ standard library. This is the type of test at every single game company. All very similar. They don't do that if on our end it's not important, so important you get only 2 hours to write a linkedlist from scratch and solve the algorithm. Of course Keith here said he wants a 3-5 year C++ guy. He's looking for a specific type of engineer (C++ skillset).

    #119 1 year ago
    Quoted from dpadam450:

    You had to traverse the fastest path from any given city to the next. You were not allowed to use c++ standard library. This is the type of test at every single game company. All very similar. They don't do that if on our end it's not important, so important you get only 2 hours to write a linkedlist from scratch and solve the algorithm. Of course Keith here said he wants a 3-5 year C++ guy. He's looking for a specific type of engineer (C++ skillset).

    This is a weird test imo. What does it prove? That someone has memorized a data structures text book? Do the game companies in question not have an internal, common implementation of their data structures that have been fully tested and approved for use?

    Allow them to use stl, or even pseudo code. The more important thing to measure is whether or not they can solve the problem, discuss their solution and the potential pitfalls. Unless the job is about writing data structure code that has 1000+ implementations available since the 80s.

    Sorry, pet peeve of mine. I just think a lot of tech interviews these days measure the wrong things, or measure things that in the real world you would just look up on the internet if you were unsure/needed a refresher.

    #120 1 year ago

    This is why I like civil engineering. In a job interview I can just say "look at that building over there... still standing..." instead of having to do college homework problems during an interview to demonstrate competency.

    #121 1 year ago
    Quoted from KozMckPinball:

    JJP has not been around that long but I guess Keith might be saying they still program new code in lower languages using linked lists. Embedded code maybe?

    Not really. If you only knew c/c++ you'd do fine here. In extremely rare cases we have used embedded asm, but that's for system-level stuff like context switching.

    Quoted from dpadam450:

    He has 142 linked lists. And NOBODY on the Unreal game engine (used by 1000+ game companies), or any other game company that uses C++ (all of them), is using the very slow C++ linked list implementation. We care about speed and don't use it.

    Haha, I was very anti-STL since the start of JJP. I've softened up on that as time has gone on, and it's allowed me to write some really abusive c++, but boy was it handy. I was pretty proud of my linked list implementation too, though I've never officially timed it.

    Quoted from paul_8788:

    Sorry, pet peeve of mine. I just think a lot of tech interviews these days measure the wrong things, or measure things that in the real world you would just look up on the internet if you were unsure/needed a refresher.

    FWIW, I've never given a code test. But (and this happened while I was at Play Mechanix), don't tell me you're an expert at c++ and then not be able to tell me what a v-table is.

    Oh and a pro-tip: Cover letters are a Good Thing. Even if you're not applying here, next time you apply somewhere, make sure you write one. I hate not getting them.

    #122 1 year ago
    Quoted from pinball_keefer:

    Not really. If you only knew c/c++ you'd do fine here. In extremely rare cases we have used embedded asm, but that's for system-level stuff like context switching.

    Haha, I was very anti-STL since the start of JJP. I've softened up on that as time has gone on, and it's allowed me to write some really abusive c++, but boy was it handy. I was pretty proud of my linked list implementation too, though I've never officially timed it.

    FWIW, I've never given a code test. But (and this happened while I was at Play Mechanix), don't tell me you're an expert at c++ and then not be able to tell me what a v-table is.
    Oh and a pro-tip: Cover letters are a Good Thing. Even if you're not applying here, next time you apply somewhere, make sure you write one. I hate not getting them.

    So true about tests. I’m in a different field, more design oriented, and there are design tests. It’s total BS because it’s contrived and products are not designed that way in real life so it doesn’t really tell much. Like you said, someone that knows their stuff can have a 10 minute conversation with an applicant and determine if they can do the job or not.

    #123 1 year ago

    "This is a weird test imo. What does it prove?"

    Speaking solely on what I know and all the people I graduated with and the many game companies I've worked for, it proves literally the most simplest programming knowledge to perform any task going forward. That's literally the first question just to see if you even are worth going another 50 questions further. I think about data and performance every day of my life. As you know see games hitting 120fps for 120hz monitors, you have to bee smart. You don't just use STL because "knowing things is only academic". I went to DigiPen (Nintendo university). I have worked for and direct/indirect ties to almost every major game company out there. I don't know what your background is, but if you have a geniune interest about c++ or why, you can PM me and I will gladly help you out. Real-time software has demands where memory changes often. Not sure your background, but I have taken tests from every big game company you can think of and that type of question is on there (Bungie, EA, Take-Two, Cryptic, Blizzard and on and on). Those companies will literally slip you a timed test to implement some kind of memory or data structure plus tons of other questions before they even look at your resume. It proves a lot, if you have interest as to why reach out.

    #124 1 year ago
    Quoted from pinball_keefer:

    I was pretty proud of my linked list implementation too, though I've never officially timed it.

    There is only one way to implement a linked-list anyway. Unless you are talking about managing the nodes via another memory management system without new/delete. I don't recall off the top of my head what STL does that is so much slower, but likely validating memory and by default uses new/delete. Not sure you can use placement new on the nodes or not.

    Furthermore on the Xbox/PS systems, you have to write your own version of new/delete because you have to manage your own memory how you would like to. The libraries and code some people are pointing to, had to be written by someone that understands and uses this memory. The XBox1 system I can tell you has 16MB of GDDR7 we will call it. 16MB! You have to be smart about managing it to get an extra 5 frames per second out of your videogame that renders explosions and nice pictures.

    #125 1 year ago
    Quoted from dpadam450:

    The XBox1 system I can tell you has 16MB of GDDR7 we will call it. 16MB! You have to be smart about managing it to get an extra 5 frames per second out of your videogame that renders explosions and nice pictures.

    16MB!, As Monty Python would say "We used to DREAM of living in a corridor."

    Try writing a 3D Star Trek game on the GameBoy with its 8K of ram...

    pasted_image (resized).pngpasted_image (resized).png
    #126 1 year ago

    Well, it's 16MB of a small chip that has extremely fastest on the planet RAM. The other GPU and system RAM is shared which you get 2-4GB, not 8,000 bytes But we had to put stuff in/out of the 16MB every frame that was rendered and you have to be smart about what compression and stuff you use on that data so you can fit as much as possible.

    #127 1 year ago
    Quoted from pinball_keefer:Not really. If you only knew c/c++ you'd do fine here. In extremely rare cases we have used embedded asm, but that's for system-level stuff like context switching.

    Haha, I was very anti-STL since the start of JJP. I've softened up on that as time has gone on, and it's allowed me to write some really abusive c++, but boy was it handy. I was pretty proud of my linked list implementation too, though I've never officially timed it.

    Has anyone figured out how to debug into an STL container? Or any reason to?

    #128 1 year ago
    Quoted from pinball_keefer:

    FWIW, I've never given a code test. But (and this happened while I was at Play Mechanix), don't tell me you're an expert at c++ and then not be able to tell me what a v-table is.

    Off the top of my head I'd describe it as a table of function pointers to perform the methods and property get and sets. COM wraps the v-table pointers, IDispatch, but you can call them directly through the IUnknown->Invoke method. IDispatch/OLE Automation. It's what I do for a living, SolidWorks CAD API. Good discussion thanks.

    #129 1 year ago

    "COM wraps the v-table pointers, IDispatch, but you can call them directly through the IUnknown->Invoke method"

    Sounds like a C# answer, a v-table is the first thing you said but not for or by the reasons you said (in C++).

    #130 1 year ago
    Quoted from dpadam450:

    Well, it's 16MB of a small chip that has extremely fastest on the planet RAM. The other GPU and system RAM is shared which you get 2-4GB, not 8,000 bytes But we had to put stuff in/out of the 16MB every frame that was rendered and you have to be smart about what compression and stuff you use on that data so you can fit as much as possible.

    Yeah, I did some XBOX1 dev too. I worked on most console systems from the original GameBoy through PS3. The last game I worked on was WALL-E for PS3. Since then I've been doing commercial and military simulation stuff.

    #131 1 year ago

    I left games for a military sim job a while back. The owner was a business man with no hard skills. He literally told me that their technology was better than GTA because it could render miles of area. This was their technology. Notice the nice flat trees in the background areas. And they used 3 of the best videocards at the time on every machine they sold. I was in an alternate reality. I quit 1 year on the date after my moving expenses clause was gone and back to games.

    #132 1 year ago
    Quoted from KozMckPinball:

    Has anyone figured out how to debug into an STL container? Or any reason to?

    If you are using a Microsoft debugger (Visual Studio, VSCode, WinDbg) that supports the natvis format, you can easily drill down into STL containers and lots of other non-language-native types, and you can add support for your own custom datatypes and containers. https://www.cppstories.com/2021/natvis-tutorial/

    #133 1 year ago
    Quoted from dpadam450:

    "This is a weird test imo. What does it prove?"

    Speaking solely on what I know and all the people I graduated with and the many game companies I've worked for, it proves literally the most simplest programming knowledge to perform any task going forward. That's literally the first question just to see if you even are worth going another 50 questions further. I think about data and performance every day of my life. As you know see games hitting 120fps for 120hz monitors, you have to bee smart. You don't just use STL because "knowing things is only academic". I went to DigiPen (Nintendo university). I have worked for and direct/indirect ties to almost every major game company out there. I don't know what your background is, but if you have a geniune interest about c++ or why, you can PM me and I will gladly help you out. Real-time software has demands where memory changes often. Not sure your background, but I have taken tests from every big game company you can think of and that type of question is on there (Bungie, EA, Take-Two, Cryptic, Blizzard and on and on). Those companies will literally slip you a timed test to implement some kind of memory or data structure plus tons of other questions before they even look at your resume. It proves a lot, if you have interest as to why reach out.

    Woah. Take'er easy big fella. As I said, it was "imo". The easier it is to Google an answer to a question the less useful I have found it as a way of measuring how good a software developer is. I've interviewed guys who could rattle that stuff off in their sleep and I wouldn't trust them to code their way out of a wet paper sack.

    I'll pass on the free lecture on C++ stuff, and I'll pass on the career dick measuring contest. Just for reference though, it is bigger than some, but probably smaller than others.

    #134 1 year ago
    Quoted from paul_8788:

    I've interviewed guys who could rattle that stuff off in their sleep and I wouldn't trust them to code their way out of a wet paper sack..

    Your perspective that it's a dick measuring. Just trying to spread info and sharing what I know and why I know it. I listed my credentials so you might undersatnd where it comes from. I'm not some random dummy. When you said linked list proves nothing I'm trying to help you understand a perspective you clearly are missing. Simple task: I want to hire you to design a minecraft like game. The map is 20,000 blocks by 20,000 blocks, and 10,000 height. That's 4 billion blocks. Explain what data structures you might use or come up with to store this data and allow it to be edited by a designer. Inserting 4 million blocks in a c++ STL linked list or a C# linked lists is going to take hours for 4 billion insertions. Linked lists are useless, stupid, prove nothing, are not answers. Just trying to explain to anyone that might read this why linked lists and data structures are important. Something as fundamental in daily use as a linked list in software development being written of as academic nonsense ..... if you don't want a different perspective or learn why we are all saying these things you are taught are important, then don't take the advice I guess.

    #135 1 year ago
    Quoted from paul_8788:

    Woah. Take'er easy big fella. As I said, it was "imo". The easier it is to Google an answer to a question the less useful I have found it as a way of measuring how good a software developer is. I've interviewed guys who could rattle that stuff off in their sleep and I wouldn't trust them to code their way out of a wet paper sack.
    I'll pass on the free lecture on C++ stuff, and I'll pass on the career dick measuring contest. Just for reference though, it is bigger than some, but probably smaller than others.

    I couldn't agree more. I've seen the way my company conducts interviews, and I'm not sure I could pass it myself after 15 years on the job. Yet, my company would be very unlikely to let me go. Why? Because of my work ethic and the fact that I get shit done, which are qualities that are a little harder to suss out in an interview.

    #136 1 year ago
    Quoted from floyd1977:

    Because of my work ethic and the fact that I get shit done, which are qualities that are a little harder to suss out in an interview.

    Whatever is working for you and you enjoy your employment by all means. There are different types of programming jobs with different needs. Different languages and job titles.

    #137 1 year ago
    Quoted from dpadam450:

    Whatever is working for you and you enjoy your employment by all means. There are different types of programming jobs with different needs. Different languages and job titles.

    I'm my case Senior Engineer, C++, low latency.

    #138 1 year ago

    "I'm my case Senior Engineer, C++, low latency."

    Low latency could be anything (input rendering etc). But you also think that being a c++ guy, low latency usually meaning performant code, that a linked list is not applicable in your job or what you would want a new hire to know how to implement?

    #139 1 year ago
    Quoted from dpadam450:

    "I'm my case Senior Engineer, C++, low latency."
    Low latency could be anything (input rendering etc). But you also think that being a c++ guy, low latency usually meaning performant code, that a linked list is not applicable in your job or what you would want a new hire to know how to implement?

    I don't even care about the linked list debate. I just felt it was a bit dismissive to say, "whatever is working for you", as if there are software jobs where actually getting stuff done and solving problems are not valued.

    I've worked with plenty of people who talk a good game and can pass an interview but in the end have very little output or lack the ability to solve a vexing production problem.

    #140 1 year ago
    Quoted from dpadam450:

    Your perspective that it's a dick measuring. Just trying to spread info and sharing what I know and why I know it. I listed my credentials so you might undersatnd where it comes from. I'm not some random dummy.

    Never said you were a random dummy, don't think anyone did. Rattling off your credentials feels a bit defensive, and I took your response to be condescending. Maybe that's me, and it made my comment non-constructive. I apologize.

    Quoted from dpadam450:

    Simple task: I want to hire you to design a minecraft like game. The map is 20,000 blocks by 20,000 blocks, and 10,000 height. That's 4 billion blocks. Explain what data structures you might use or come up with to store this data and allow it to be edited by a designer.

    That is a great question. It poses a real problem the developer might come across, gives them space to answer and explain why. "Build me a linked list" only answers has the developer memorized how to build a linked list. Which is why I feel it is useless.

    Quoted from dpadam450:

    Linked lists are useless, stupid, prove nothing, are not answers. Just trying to explain to anyone that might read this why linked lists and data structures are important. Something as fundamental in daily use as a linked list in software development being written of as academic nonsense ..... if you don't want a different perspective or learn why we are all saying these things you are taught are important, then don't take the advice I guess.

    Never said linked lists and data structures are useless, so not sure if you are responding to me at this point.

    Have a nice day.

    #141 1 year ago

    Yea my bad on the dismissive, I thought you were on the linked list = stupid train. And even those guys have a case, they just are seeing their industry only and what they know. I wouldn't expect a UI engineer need to know the best rendering techniques to render 20,000 aniamted people in a stadium.

    "I've worked with plenty of people who talk a good game and can pass an interview but in the end have very little output or lack the ability to solve a vexing production problem."

    For sure. It's the bare minimum to know how a linked list works as an entry in my industry specifically, so whether offensive or not, I was simply trying to enlighten people to epxand beyond the "no circumstances in software dev is a linked list important in the wild". I sadly cannot hire a programmer that doesn't know a linked list, because of tasks in the backlog, including memory dump crashes that I need solved.

    #142 1 year ago
    Quoted from dpadam450:

    Your perspective that it's a dick measuring.

    Preeeetty sure everyone still reading this sees the dick measuring.

    Anyways, more bumps for the job listing!

    #143 1 year ago

    "only answers has the developer memorized how to build a linked list."

    Knowing how that linked list is the first step to recognizing A) It doesnt work here, even if you build your own fastest linked list B) you need a custom data structure that C#/C++ don't offer that you have to build yourself, which is going to be pretty complex however you solve it.

    And yes, it's hard to say here is what I know and my background without people getting offended. Just the nature of internet conversation as opposed to in person.

    #144 1 year ago

    "Preeeetty sure everyone still reading this sees the dick measuring."

    I know. But hard not to. I'm here for positivity on Pinside. I spent 15 years on Gamedev.net answering tech questions relating to C++. Kids, college grads "Hey I got this idea to make a minecraft game but the maps would be 4 billion blocks, how do I maintain all this stuff, where do I start" Or people further along that hit roadblocks or have bugs. It's a different less opinionated community, and if you got 5 guys from 5 major game companies telling a kid "Hey what is a linked list useful for" or "Do I really need to know a linked list on this test", we will very nicely answer replies there.

    #145 1 year ago

    I wouldn't ordinarily "jump in" (Xbox 360 reference) but lurking (reading) reminds me of the time honored C/C++ argument.

    Is it:

    if (condition) {
    }

    Or:

    if (condition)
    {
    }

    So? Which is it?

    IMHO: Like many things in life, there is often no right or wrong. There is only what works for you. The biggest and most important thing (in my experience) is to listen to all arguments and try to understand all the viewpoints. A lot of "arguments" are often rooted in religious (metaphorically speaking - been doing it this way for many years and there's nothing better) or political (need to use a certain technology for business) reasons.

    When I last interviewed with a company (years ago) they ask me if I knew what a DAG is. So ... what's a DAG? More importantly, who cares?

    #146 1 year ago
    Quoted from dpadam450:

    Knowing how that linked list is the first step to recognizing A) It doesnt work here, even if you build your own fastest linked list B) you need a custom data structure that C#/C++ don't offer that you have to build yourself.

    Knowing that a linked list is not the correct data structure, and why, is the critical piece of information. You can know that, explain that, without having to build a custom linked list implementation in a test.

    I guess my point isn't going through, either because I am not explaining it well or you are choosing not to see it.

    However as Aurich pointed out, the whole discussion's only merit is bumping this thread. So..BUMP!

    #147 1 year ago
    Quoted from DumbAss:

    I wouldn't ordinarily "jump in" (Xbox 360 reference) but lurking (reading) reminds me of the time honored C/C++ argument.
    Is it:
    if (condition) {
    }
    Or:
    if (condition)
    {
    }
    So? Which is it?
    IMHO: Like many things in life, there is often no right or wrong. There is only what works for you. The biggest and most important thing (in my experience) is to listen to all arguments and try to understand all the viewpoints. A lot of "arguments" are often rooted in religious (metaphorically speaking - been doing it this way for many years and there's nothing better) or political (need to use a certain technology for business) reasons.
    When I last interviewed with a company (years ago) they ask me if I knew what a DAG is. So ... what's a DAG? More importantly, who cares?

    DAG

    MV5BMTIxMTg4OTU0OF5BMl5BanBnXkFtZTYwMjUyMDE0._V1_ (resized).jpgMV5BMTIxMTg4OTU0OF5BMl5BanBnXkFtZTYwMjUyMDE0._V1_ (resized).jpg
    #148 1 year ago
    Quoted from DumbAss:

    I wouldn't ordinarily "jump in" (Xbox 360 reference) but lurking (reading) reminds me of the time honored C/C++ argument.

    Is it:

    if (condition) {
    }

    Or:

    if (condition)
    {
    }

    So? Which is it?

    lol, yeah, or even more important: Tab characters or spaces for indentation? Can start a holy war.

    #149 1 year ago
    Quoted from paul_8788:

    Knowing that a linked list is not the correct data structure, and why, is the critical piece of information.

    Right but a raw linked list takes about 5 minutes to write. If you want to give an hour long timed programming test, I don't know what else you put on that test? Or just give no test? I'm still going to ask you what the difference between a linked list and vector is and the difference between them in person.

    #150 1 year ago

    This thread inspired me to try this out

    Quoted from mbeardsley:

    16MB!, As Monty Python would say "We used to DREAM of living in a corridor."
    Try writing a 3D Star Trek game on the GameBoy with its 8K of ram...[quoted image]

    image (resized).jpgimage (resized).jpg
    There are 212 posts in this topic. You are on page 3 of 5.

    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/so-you-want-to-program-pinball-machines/page/3 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.