Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. Algorithms
  4. WANTED: Programmer looking for an algorithmic challenge

WANTED: Programmer looking for an algorithmic challenge

Scheduled Pinned Locked Moved Algorithms
questionhtmlcomadobegame-dev
10 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • X Offline
    X Offline
    Xpnctoc
    wrote on last edited by
    #1

    I apologize in advance if this is the wrong forum for this post. It is definitely algorithm-related, though it may classify just as much as a personal RFP: I am looking for a programmer who is looking for an algorithmic challenge. While I am a business applications developer by day, my hobby/pet-project has been the development of a railroad simulator/"video game". (Check out this series of screen shots.) Most of my endeavor has been very successful. However, where I feel totally defeated is in programming of the brake systems, which deal with the flow of compressed air. I do not believe you need to be an expert in either brake systems or fluid dynamics. You just have to be good at solving algorithms. I can give you enough of a crash course to know what you need regarding trains. Regarding fluid dynamics, one has to remember this is a real-time video game. I don't want to waste lots of CPU power performing excessively accurate calculations. In fact, as long as the desired behavior is achieved, I don't really care how realistic the underlying algorithm is. "What is the 'desired behavior'," you ask? Take a look at this article, which describes in detail what I'm trying to simulate. If you have general questions about what I am asking, please post those publicly on this thread so others can read the responses. However, I have also enabled private responses to this message for those who would like to proceed with this and therefore need to take the discussion outside of this thread. As I said before, this is a pet project. It is not commercially funded. Therefore I do not have resources to pay -- at least not a lot. I might be able to contribute a little something for your time if you come up with the winning algorithm. But primarily you should only take this on if you're in it for the interesting challenge. Based on my experience, it's guaranteed to give you hours of hair-pulling frustration and nightmares in between. Thanks for reading.

    P L M 3 Replies Last reply
    0
    • X Xpnctoc

      I apologize in advance if this is the wrong forum for this post. It is definitely algorithm-related, though it may classify just as much as a personal RFP: I am looking for a programmer who is looking for an algorithmic challenge. While I am a business applications developer by day, my hobby/pet-project has been the development of a railroad simulator/"video game". (Check out this series of screen shots.) Most of my endeavor has been very successful. However, where I feel totally defeated is in programming of the brake systems, which deal with the flow of compressed air. I do not believe you need to be an expert in either brake systems or fluid dynamics. You just have to be good at solving algorithms. I can give you enough of a crash course to know what you need regarding trains. Regarding fluid dynamics, one has to remember this is a real-time video game. I don't want to waste lots of CPU power performing excessively accurate calculations. In fact, as long as the desired behavior is achieved, I don't really care how realistic the underlying algorithm is. "What is the 'desired behavior'," you ask? Take a look at this article, which describes in detail what I'm trying to simulate. If you have general questions about what I am asking, please post those publicly on this thread so others can read the responses. However, I have also enabled private responses to this message for those who would like to proceed with this and therefore need to take the discussion outside of this thread. As I said before, this is a pet project. It is not commercially funded. Therefore I do not have resources to pay -- at least not a lot. I might be able to contribute a little something for your time if you come up with the winning algorithm. But primarily you should only take this on if you're in it for the interesting challenge. Based on my experience, it's guaranteed to give you hours of hair-pulling frustration and nightmares in between. Thanks for reading.

      P Offline
      P Offline
      PIEBALDconsult
      wrote on last edited by
      #2

      Maybe these guys[^] know. Good luck! :-D

      1 Reply Last reply
      0
      • X Xpnctoc

        I apologize in advance if this is the wrong forum for this post. It is definitely algorithm-related, though it may classify just as much as a personal RFP: I am looking for a programmer who is looking for an algorithmic challenge. While I am a business applications developer by day, my hobby/pet-project has been the development of a railroad simulator/"video game". (Check out this series of screen shots.) Most of my endeavor has been very successful. However, where I feel totally defeated is in programming of the brake systems, which deal with the flow of compressed air. I do not believe you need to be an expert in either brake systems or fluid dynamics. You just have to be good at solving algorithms. I can give you enough of a crash course to know what you need regarding trains. Regarding fluid dynamics, one has to remember this is a real-time video game. I don't want to waste lots of CPU power performing excessively accurate calculations. In fact, as long as the desired behavior is achieved, I don't really care how realistic the underlying algorithm is. "What is the 'desired behavior'," you ask? Take a look at this article, which describes in detail what I'm trying to simulate. If you have general questions about what I am asking, please post those publicly on this thread so others can read the responses. However, I have also enabled private responses to this message for those who would like to proceed with this and therefore need to take the discussion outside of this thread. As I said before, this is a pet project. It is not commercially funded. Therefore I do not have resources to pay -- at least not a lot. I might be able to contribute a little something for your time if you come up with the winning algorithm. But primarily you should only take this on if you're in it for the interesting challenge. Based on my experience, it's guaranteed to give you hours of hair-pulling frustration and nightmares in between. Thanks for reading.

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #3

        Doesn't look much like a game to me. But Choo-Choo!, what are you using to develop the GUI? I'm in to massivly parallel SIMD, OpenCL development, and a but of Directcompute, but there is not much info on the topic yet. Let me look at the parper describing the problem and consult my prinston math book. ~brb

        "Make everything as simple as possible, but not simpler." -- Albert Einstein "It didn't matter to us whether people believed in us. We believed in ourselves. We had the courage to follow our own path." ~~Nvidia's Jen-Hsun Huang

        X 1 Reply Last reply
        0
        • L Lost User

          Doesn't look much like a game to me. But Choo-Choo!, what are you using to develop the GUI? I'm in to massivly parallel SIMD, OpenCL development, and a but of Directcompute, but there is not much info on the topic yet. Let me look at the parper describing the problem and consult my prinston math book. ~brb

          "Make everything as simple as possible, but not simpler." -- Albert Einstein "It didn't matter to us whether people believed in us. We believed in ourselves. We had the courage to follow our own path." ~~Nvidia's Jen-Hsun Huang

          X Offline
          X Offline
          Xpnctoc
          wrote on last edited by
          #4

          I have a hard time picking a term to define what this program is. It's not really a "simulation" because it isn't scientifically accurate or complex enough. It's not a "game" because there's no end objective. What probably isn't clear from the screen shots is that you start with a "Tron"-like grid. You model all the landscape yourself. You add the engines and train cars yourself. It's basically a model train layout without space limitations. You're only limited by your computer's specs. But I also come from a disciplined C++ training from before you could get gigs of RAM for pennies. My data structures squeeze the most out of every byte so you don't have to have the worlds greatest gaming computer to get a lot of capacity out of the software. It's very similar to "Trainz" by Auran Games. There are reasons that I went through the trouble to write my own program instead of just using my copy of "Trainz", but I'm not going to bore everyone with that explanation here.

          L 1 Reply Last reply
          0
          • X Xpnctoc

            I have a hard time picking a term to define what this program is. It's not really a "simulation" because it isn't scientifically accurate or complex enough. It's not a "game" because there's no end objective. What probably isn't clear from the screen shots is that you start with a "Tron"-like grid. You model all the landscape yourself. You add the engines and train cars yourself. It's basically a model train layout without space limitations. You're only limited by your computer's specs. But I also come from a disciplined C++ training from before you could get gigs of RAM for pennies. My data structures squeeze the most out of every byte so you don't have to have the worlds greatest gaming computer to get a lot of capacity out of the software. It's very similar to "Trainz" by Auran Games. There are reasons that I went through the trouble to write my own program instead of just using my copy of "Trainz", but I'm not going to bore everyone with that explanation here.

            L Offline
            L Offline
            Lost User
            wrote on last edited by
            #5

            It's really not an algorithm. It's linear algebra. You need to know the state of the charge in the brake in terms of PSI for n cars. Each car dissipates the correct amount of release to slow down the car, and then starts to recharge the reservoir. This can be event driven to start charging, you have to know the rate at which it recharges. The rest is a set of linear equations to find what the correct amount of release is for the set of cars in the system. There are some good videos at MIT for solving linear equations for computer programs, if you google lineal algebra and click on videos. I think it's a long set, but you should get the core fundamentals in the forest 3 lecture. ~PB

            "Make everything as simple as possible, but not simpler." -- Albert Einstein "It didn't matter to us whether people believed in us. We believed in ourselves. We had the courage to follow our own path." ~~Nvidia's Jen-Hsun Huang

            X 1 Reply Last reply
            0
            • L Lost User

              It's really not an algorithm. It's linear algebra. You need to know the state of the charge in the brake in terms of PSI for n cars. Each car dissipates the correct amount of release to slow down the car, and then starts to recharge the reservoir. This can be event driven to start charging, you have to know the rate at which it recharges. The rest is a set of linear equations to find what the correct amount of release is for the set of cars in the system. There are some good videos at MIT for solving linear equations for computer programs, if you google lineal algebra and click on videos. I think it's a long set, but you should get the core fundamentals in the forest 3 lecture. ~PB

              "Make everything as simple as possible, but not simpler." -- Albert Einstein "It didn't matter to us whether people believed in us. We believed in ourselves. We had the courage to follow our own path." ~~Nvidia's Jen-Hsun Huang

              X Offline
              X Offline
              Xpnctoc
              wrote on last edited by
              #6

              You make some good points. I do know the rates of release and recharge and have been able to successfully develop computations when the locomotive is the only control point. However, I run into problems adding to the process the conditions where by air can be released from or added to the main pipe at each individual car valve. There's also the issue of rapid set/release action. From the railroading standpoint it would not be correct to jostle the brake lever rapidly. However, good practice as a programmer is of course to try to anticipate all possible user input. I haven't been able to successfully track the creation and dissipation of pressure waves that would result from a rapid jostling of the brake lever. I'll look up the videos you mentioned. Having fought with this as much as I have, you may well be right that the source of my issues is lack of knowledge in the appropriate mathematics (and/or physics) rather than any inability to develop code.

              L 1 Reply Last reply
              0
              • X Xpnctoc

                You make some good points. I do know the rates of release and recharge and have been able to successfully develop computations when the locomotive is the only control point. However, I run into problems adding to the process the conditions where by air can be released from or added to the main pipe at each individual car valve. There's also the issue of rapid set/release action. From the railroading standpoint it would not be correct to jostle the brake lever rapidly. However, good practice as a programmer is of course to try to anticipate all possible user input. I haven't been able to successfully track the creation and dissipation of pressure waves that would result from a rapid jostling of the brake lever. I'll look up the videos you mentioned. Having fought with this as much as I have, you may well be right that the source of my issues is lack of knowledge in the appropriate mathematics (and/or physics) rather than any inability to develop code.

                L Offline
                L Offline
                Lost User
                wrote on last edited by
                #7

                You could implement the jostling of the break valve as an event driven interface on a linked list and use a generic func type to adjust the values in the list, the list would contain the ascending and descending pressure values. Once you find the right math....

                "Make everything as simple as possible, but not simpler." -- Albert Einstein "It didn't matter to us whether people believed in us. We believed in ourselves. We had the courage to follow our own path." ~~Nvidia's Jen-Hsun Huang

                X 1 Reply Last reply
                0
                • L Lost User

                  You could implement the jostling of the break valve as an event driven interface on a linked list and use a generic func type to adjust the values in the list, the list would contain the ascending and descending pressure values. Once you find the right math....

                  "Make everything as simple as possible, but not simpler." -- Albert Einstein "It didn't matter to us whether people believed in us. We believed in ourselves. We had the courage to follow our own path." ~~Nvidia's Jen-Hsun Huang

                  X Offline
                  X Offline
                  Xpnctoc
                  wrote on last edited by
                  #8

                  Easier said than done. That's pretty close to the concept I have been working with -- keeping a list of "pressure zones" (sub-divisions of the brake pipe according to how far air can travel in one computation cycle) and trying to do relative comparisons of pressure from zone to zone. But there are a lot of complications that present themselves once you really dig into it.

                  L 1 Reply Last reply
                  0
                  • X Xpnctoc

                    Easier said than done. That's pretty close to the concept I have been working with -- keeping a list of "pressure zones" (sub-divisions of the brake pipe according to how far air can travel in one computation cycle) and trying to do relative comparisons of pressure from zone to zone. But there are a lot of complications that present themselves once you really dig into it.

                    L Offline
                    L Offline
                    Luc Pattyn
                    wrote on last edited by
                    #9

                    FWIW: I did not read the article, but from your description it sounds like an "RC ladder network" (example[^] with each Y a capacitor (holding air), and each Z a resistor (preventing "air" to flow from one capacitor to the next). Such networks are pretty simple to simulate in the time-domain. I haven't done it recently, I did hundreds of those some decades ago. ADDED the ref to the book was mainly to the diagram; I am not suggesting one starts calculating transfer functions or Laplace transforms, a simple delta-V over delta-T simulation should do. /ADDED :)

                    Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles] Nil Volentibus Arduum

                    Please use <PRE> tags for code snippets, they preserve indentation, and improve readability.

                    modified on Sunday, July 25, 2010 6:27 PM

                    1 Reply Last reply
                    0
                    • X Xpnctoc

                      I apologize in advance if this is the wrong forum for this post. It is definitely algorithm-related, though it may classify just as much as a personal RFP: I am looking for a programmer who is looking for an algorithmic challenge. While I am a business applications developer by day, my hobby/pet-project has been the development of a railroad simulator/"video game". (Check out this series of screen shots.) Most of my endeavor has been very successful. However, where I feel totally defeated is in programming of the brake systems, which deal with the flow of compressed air. I do not believe you need to be an expert in either brake systems or fluid dynamics. You just have to be good at solving algorithms. I can give you enough of a crash course to know what you need regarding trains. Regarding fluid dynamics, one has to remember this is a real-time video game. I don't want to waste lots of CPU power performing excessively accurate calculations. In fact, as long as the desired behavior is achieved, I don't really care how realistic the underlying algorithm is. "What is the 'desired behavior'," you ask? Take a look at this article, which describes in detail what I'm trying to simulate. If you have general questions about what I am asking, please post those publicly on this thread so others can read the responses. However, I have also enabled private responses to this message for those who would like to proceed with this and therefore need to take the discussion outside of this thread. As I said before, this is a pet project. It is not commercially funded. Therefore I do not have resources to pay -- at least not a lot. I might be able to contribute a little something for your time if you come up with the winning algorithm. But primarily you should only take this on if you're in it for the interesting challenge. Based on my experience, it's guaranteed to give you hours of hair-pulling frustration and nightmares in between. Thanks for reading.

                      M Offline
                      M Offline
                      Member 4194593
                      wrote on last edited by
                      #10

                      I read the article, very interesting. I think I'll stick to my Allen 10 Wheeler. Dave.

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups