Slashdot Mirror


Ask Slashdot: How To Find Expertise For Amateur Game Development?

New submitter es330td writes "I'd like to write a program that takes the old cannon game to another level, but instead of the path being a simple parabolic arc, the projectile will move through a field of objects exerting gravitational attraction (or repulsion) and the player will have to adjust velocity and angle to find the path through the space between launch point and the target.In an ideal world, this would end up as one of these Flash based web playable games, as that would force me to fully flesh it out, debug and complete the app. I doubt this will ever be commercial, so hiring somebody doesn't make sense, and I wouldn't learn anything that way either. I have been programming for almost 20 years, but the bulk of my work has been in corporate programming, primarily web (Cold Fusion, ASP & C#.Net,) or VB6 and then C# Windows GUI interfaces to RDBMS. I have never written a graphics based game, nor have I ever written something using the physics this will require. Once upon a time, I could program in C but I think I would be much better off to work with someone rather than try to roll my own unless good books exist to flatten the learning curve. Any advice on how to proceed?"

31 of 188 comments (clear)

  1. Javascript by Vixe · · Score: 4, Informative

    If you learn javascript and make it a web-based type deal, you can use something like processing js [ http://processingjs.org/ ] to handle the graphics for you.

  2. Re:Moron by Anonymous Coward · · Score: 5, Insightful

    Er no they're not. I'm an expert amateur photographer. I do not make a living doing it, but I take works of art compared to professional wedding photographers.

  3. Rotation is the hardest stuff by mangu · · Score: 4, Informative

    Physics simulation of rotation is complicated because you are handling matrices and vectors. Google David Baraff for a good reference. Russell Smith's ODE is a good library for this.

  4. Too late! by togofspookware · · Score: 4, Informative

    Angry birds is already doing it.

    This is what someone called, uhm, 'emergent ideas', or something. You think of something new only to find out someone else announced the same project a week ago!

    --
    Duct tape, XML, democracy: Not doing the job? Use more.
    1. Re:Too late! by pjt33 · · Score: 5, Informative

      I did it three years ago as an entry for the Java4k Game Contest: Gravitational Fourks. And my inspiration was a game I played on the Acorn Archimedes in the early 90s.

    2. Re:Too late! by emj · · Score: 4, Interesting

      There is a slightly more "flashy" version called gravitee wars. Polished and stuff.

    3. Re:Too late! by artor3 · · Score: 4, Interesting

      It was done in Flash games long before Angry Birds decided to do it.

      I like to call it the iPod Effect -- people assume that whatever company gets rich with an idea must have been the one to invent it.

    4. Re:Too late! by fa2k · · Score: 2

      Kraków (ac. Cracovia, jid. Kroke, niem. Krakau, fr. Cracovie, ang. Cracow, hiszp. & w. Cracovia) – miasto na prawach powiatu w poudniowej Polsce, siedziba wadz województwa maopolskiego, drugie w kraju pod wzgldem liczby mieszkaców[1][4] i pod wzgldem powierzchni[1]. Pooone nad Wis, na obszarze Bramy Krakowskiej, Niecki Nidziaskiej i Pogórza Zachodniobeskidzkiego. Jest jednym z najstarszych miast Polski o ponadtysicletniej historii, z wieloma wartociowymi obiektami architektonicznymi. Dziaa w nim równie wiele instytucji i placówek kulturalnych gromadzcych bezcenne zabytki. Do 1795 r. Kraków by formalnie stolic Polski[5] a do 1611 r. siedzib wadców pastwa polskiego. W latach 1596–1795, czyli do III rozbioru Polski, jako stolica Rzeczypospolitej[6] funkcje stoeczne dzieli z Warszaw, która staa si miastem rezydencjalnym króla[7][8]. Obecnie jest stolic województwa maopolskiego, a take centralnym orodkiem metropolitalnym aglomeracji krakowskiej. W zapisach historycznych jest uznawany za gówne miasto historycznej Maopolski. Do historycznej funkcji Krakowa odnosi si jego pena nazwa[9] – Stoeczne Królewskie Miasto Kraków usankcjonowana prawnie przez Rad Ministrów jak i wczeniej przez naczelne wadze pastwowe II Rzeczypospolitej, które uyway tej nazwy w swoich aktach prawnych[10][11]. Równie nazwy skróconej tj.: st. król. miasto Kraków, st.kr. miasto Kraków albo sto. król. miasto Kraków. Niektóre z tych aktów prawnych obowizuj do dzisiaj[12][13]. Na arenie midzynarodowej Kraków postrzegany jest jako "duchowe i naukowe serce Polski"[14]. W Krakowie znajduj si gówne siedziby m.in. : Polskiej Akademii Umiejtnoci, Narodowego Centrum Nauki, Europejskiego Towarzystwa Chirurgicznego [15], Polskiego Towarzystwa Promieniowania Synchrotronowego[16], Krajowej Szkoy Sdownictwa i Prokuratury[17], dowództwa Wojsk Specjalnych RP[18], Polskiego Zwizku Narciarskiego[19]. Miasto posiada równie wiele placówek kulturalnych o znaczeniu i statusie narodowym m.in. Narodowy Stary Teatr, Muzeum Narodowe, Drukarnia Narodowa, Biblioteka Jagielloska, Instytut Ksiki[20]. Miasto peni funkcj centrum administracyjnego, kulturalnego, edukacyjnego, naukowego, gospodarczego, usugowego i turystycznego. Kraków jest drugim, po Warszawie, najwikszym w kraju rynkiem nowoczesnej powierzchni biurowej[21] a take jednym z kluczowych wzów drogowych i kolejowych w Polsce. W Balicach pod Krakowem znajduje si drugi co do wielkoci polski port lotniczy o znaczeniu midzynarodowym. Wedug raportu inwestycyjnego Konferencji ds. Handlu i Rozwoju ONZ (UNCTAD) z 2011 roku Kraków jest najlepszym miejscem na wiecie do lokowania centrów usug dla biznesu[22]. Pooenie[edytuj] Kraków jest pooony w poudniowej Polsce, w rodkowo-pónocnej czci województwa maopolskiego. Miasto ley nad Wis i na jego terenie znajduj si ujcia dopywów rzeki Wisy: Biauchy (dolny bieg Prdnika), Rudawy, Dubni, Drwiny Dugiej i Wilgi. Kraków znajduje si w miejscu zbiegu kilku krain geograficznych: Bramy Krakowskiej, Kotliny Owicimskiej, Kotliny Sandomierskiej, Pogórza Zachodniobeskidzkiego, Wyyny Krakowsko-Czstochowskiej. Pooenie Krakowa sprawia, e jest on baz dla wycieczek w polskie góry, czy wypadów do malowniczej Jury Krakowsko-Czstochowskiej. Z Krakowem ssiaduj gminy: Igoomia-Wawrzeczyce, Kocmyrzów-Luborzyca, Koniusza, Liszki, Michaowice, Mogilany, Niepoomice, Skawina, witniki Górne, Wieliczka, Wielka Wie, Zabierzów, Zielonki. Gminy te nale do dwóch powiatów ssiadujcych z Krakowem: powiat krakowski oraz powiat wielicki. Podzia administracyjny[edytuj] Information icon.svg Osobne artykuy: Podzia administracyjny Krakowa i ulice Krakowa. Dzielnice Krakowa Widok na rzek Wis oraz Most Dbnicki ze Wzgórza Wawelskiego

  5. Stackexchange by Letharion · · Score: 5, Informative

    http://gamedev.stackexchange.com/ is a great place to ask game development related questions.

    1. Re:Stackexchange by Anonymous Coward · · Score: 5, Informative

      I'm currently a student studying game programming, and http://www.gamedev.net/ has been a godsend. The forums are by far the best I've found. There is a Help Wanted section, and it varies in how serious or deadlined the projects are, so that could be a good place to find a potential partner.

      If you're familiar with C#, look into XNA. The framework is built in C#, it's free and its projects can be run on PC/XBOX Indie/Windows Phone. Other options would be Flash or the Unity engine (can run in browsers, scripted with C# or Javascript).

      I like your idea, could be a fun casual game.

    2. Re:Stackexchange by The+Optimizer · · Score: 4, Informative

      Mod parents up. I've been making games professionally for over 15 years, and I was going to mention both of those sites.

      My general advice, when asked, "How do I learn to make games" is to 1) Look around online as there are communities and resources all over, and 2) Just start making something, anything. Do it rather than talk about it. Start with something small - an early Atari 2600-class game project - and expand as you become comfortable and more knowledgeable and experienced.

  6. 20+ years? You're already an expert. by Anonymous Coward · · Score: 3, Informative

    You seem to be an expert programmer, so I'll just point you to the XNA library here [http://msdn.microsoft.com/en-us/library/bb198548.aspx] and let you figure it out from there.

  7. Oh, hi! I remember you... I think. by VortexCortex · · Score: 2

    In case you're not the same guy who posted this exact same idea already...
    >>>>/AGDG/
    is that way. You may be able to see if the person who posted similar game idea / implementation is still around.

    You can contract a freelance programmer to write it for you, then look at the source and gain understanding that way (ever played GORILLAS.BAS?).

    Alternatively, take a tutorial for getting graphics on the screen; Then moving the graphics; Then collision detection; Then apply gravity.
    Or, simply join a group of people in the modding scene for an established game engine -- ask the mod community how to proceed -- Port to flash when done.
    If you already know one language Learning ActionScript is as simple as learning the flash API and ECMAScript syntax...

  8. first small step... by Tastecicles · · Score: 3, Informative

    have a look at this.

    --
    Operation Guillotine is in effect.
  9. Well what is your purpose? by Weaselmancer · · Score: 4, Insightful

    First you say this:

    hiring somebody doesn't make sense, and I wouldn't learn anything that way either

    Ok. So you're looking at this as a learning experience. That's great. But then you say this:

    Once upon a time, I could program in C but I think I would be much better off to work with someone rather than try to roll my own

    So you're looking for someone to do this for you and not learn any coding.

    I think you need to consider why you want to get involved in this in the first place. If you want to learn game programming, that's great. Go do it. If you want to learn project management, that's good too, go do that. But first I think you have to figure out what your goal here actually is.

    I will tell you this though. Until you narrow down your scope and figure out exactly what you want, the dithering is sending up some flags. You have an idea, you say you're not interested in money, yet you want someone to write a game for you based on an idea you have, and you're not willing to pay anything to get it done. Jaded old programmers like me hear this kind of a thing and mentally translate it into "I want you to write a program for me so I can get rich from it without doing any of the actual work."

    --
    Weaselmancer
    rediculous.
  10. Re:Moron by alphatel · · Score: 4, Funny

    No this is totally undiscovered country. You need to hire 20 kids at $20 per hour and tell them to make the game. Have them work like two months, tell them it is okay to rip off other games. Brand your company Winga, or Singa or something unique. Copyright the game before it is done, sue everyone who tries to release anything which remotely resembles your game. Profit. Go Public. Profit more. Wait for Facebook IPO. Sell, sell, sell!

    --
    When the foot seeks the place of the head, the line is crossed. Know your place. Keep your place. Be a shoe.
  11. html5 by gr7 · · Score: 4, Informative

    Read about the canvas element. You should be able to write the whole thing in javascript. You should be able to get an extremely basic version up and running within a few hours. Just play around a bit in javascript and read about <canvas>. The physics is trivial - you store the x,y vx,vy value of everything that is moving (velocity x,y). You add vx to x every cycle through your loop. You adjust vy by gravity through every cycle. Also known as ay. And you also adjust vx,vy by every gravitational point nearby. You calculate the distance sqrt((x1-x2)^2+(y1-y2)^2 ) to each object and use gravity formula which is realted to 1/distance squared so you can get rid of that sqrt and make the code more efficient. Then find the portion of accel that is due to x and y. Anyway, it's just a few hours work. Just give it a shot - don't read any books - just find an html primer website that talks about <canvas>.

  12. Go For It by mugnyte · · Score: 4, Insightful

    Although truly "new" ideas are a rare breed - don't be deterred. Build this yourself using all your skills and use it as a lesson. If you use a group, it might be more fun but just don't sub-out the interesting parts. Learn about them.

    Start with the core and work outward
    - movement of an object in space
    - applying single-point and universal gravity
    - collision detection
    - concurrent animations
    - 2D crash physics
    - some graphics

    Then story out something to power some gameplay
    - characters / features
    - scoring
    - co-op/vs online ideas

    Of course, the core has been done - but really this is for you to learn the basics. Once you do this, someday you can go from an actually novel idea to a game in less time. Who knows, down the road you may have a really good idea. My best wishes go out to you to persevere!

  13. Physics, etc by Dan+East · · Score: 4, Informative

    Well, you can look at existing physics engines, like Box2D, but it won't do what you want by default. Games of the type you're talking about simulate motion in discrete steps - usually once per frame. However, you can also decouple your motion (physics) from the rendering, but you usually only need to do that for very precise physics simulations that need to be reproducible time after time (when you decouple physics then the physics engine can always run at some fixed time interval, like 1/60th of a second, which is how realistic physics engine like Box2D function best).

    Essentially you have a simulation going, in which each object has a position in floating point precision. Each frame you calculate the duration of the previous frame in milliseconds, then you move all your objects the appropriate amount over that discrete time step. So if your frame is 10 milliseconds, and an object has an X velocity of 1 unit per second, then you increment its X value .01 units. The next frame might take twice as long to render at 20 milliseconds (maybe you have more objects, or some other multitasking app used some CPU time) so you have to move your objects twice as far - .02 units. The math is very simple. Then after moving all the objects you render them into screen space.

    As for the attractors / repulsors, you also store a velocity value for each moving object. Then each frame you calculate the distance to each attractor / repulsor, and modify the velocity based on the strength of the attractor / repulsor attenuated by (divided by ) its distance from your object. You can make it as simple or complex as you'd like. You can factor in mass, use linear or exponential repulsive effects, etc. Now if you start getting into collision detection and resolution, then things can get very complex if you're dealing with objects more complex than circles or really, really fast moving objects. For example, say you have a bullet traveling really fast, and it is heading towards a thin barrier (wall). One frame the bullet could be on one side of the barrier, and the next frame it moved so far that it is on the other side. In other words, there wasn't a frame in which the bullet was exactly in contact with the barrier. Those things can get complex to simulate, and it gets even worse when both objects are moving at the same time.

    The key thing is grasping the concept of discrete time steps, and moving objects a variable distance each frame depending on how long the previous frame took to render. You can't just hardcode the game to run at, say, 1/60th a second, because if it is running on a slower device than you tested on, or if the device is multitasking and can't spend as much processing time on your app, then things will seem to run in slow motion and be herky-jerky. The other key thing is the idea that the positions of your objects do not (and should not) correspond directly to screen coordinates. Say your world is 100x100 units. Well, when you render it, you simply scale it so that the 100 is the width of the display (if you're using something like OpenGL to do your drawing, then you just set the matrix scale appropriately). So the "real" position of the objects, and all that simulation, occurs at some arbitrary coordinate system, and then is scaled appropriately when the objects are drawn.

    As for languages, personally I recommend C++ and use OpenGL ES for rendering. Then the vast majority of your code can be used on Android, iOS, Windows, Linux, OSX, etc, but is not conducive to web-based like Flash or Java.

    --
    Better known as 318230.
  14. Re:Moron by hawguy · · Score: 2

    I smell someone is going to rip this dude off...

    Game ideas are a dime a dozen. Think i had this same game idea 20 years ago... If he wants to control it. Learn to program and buy the art assets... Otherwise you usually make very little 'having an idea'...

    He's looking for an unpaid amateur to assist him with putting together a non-commercial app that won't be sold.

    Where is he going to get ripped off? No where did he say that he wanted to make money. Not everyone has profit as the end-goal of a project.

    Maybe if it turns out well he can make a few bucks from it before it's copied by one of the big game makers, but it doesn't sound like he expects to make any money off of it.

  15. Re:Moron by TheRaven64 · · Score: 4, Interesting

    I think that's the point of his Ask Slashdot - he has an idea for a game and he wants to play it. Asking a bunch of geeks how to implement it is the easiest way of getting something like this done. And he's right - it does sound fun, and I hope someone does implement it because I'd like to play it too.

    For what it's worth, I wrote an n-body-problem simulation / visualisation thing in JavaScript (for no serious reason, just because I wanted to play with the canvas tag and it makes pretty patterns) and it was pretty trivial. Add half a dozen lines of collision detection to that and there's your game, aside from the UI - most of the work will be in the graphics, and even then you could largely use circles and bezier paths...

    --
    I am TheRaven on Soylent News
  16. Re:20 Years? by hawguy · · Score: 2

    I'm sorry, but 20 years of coding experience and you have no knowledge on how to model the physics?
    I myself find this highly suspect; seeing as how I had to go through this simple process in the 4th month after learning how to code in Java.

    Really? You have at least 4 months of Java experience and you can't understand that not everyone has the same experience as you? He even said that experience includes coding GUI frontends to databases -- what part of this teaches him how to do 2D physics modeling? He may not even have formal computer science education, maybe he was a business analyst that took a few programming classes and moved over to development.

  17. Congratulations! by JohnnyBGod · · Score: 3, Insightful

    You're well on your way to recreating Slingshot!

    Anyhow, if you're looking at this as a learning experience, XNA seems to be the thing where you could put your skillset to work the fastest. Python also seems like a good choice, if you're willing to learn it. As for graphics/physics/whatever, there should be libraries to help you, and surely some other Slashdotter will drop a few names shortly.

  18. Re:20 Years? by Qzukk · · Score: 2

    I just interviewed a guy with 15 years of experience that couldn't tell me how a hash table works

    Yes, that guy is an idiot.

    The guy who asked? He's programmed database frontends for 20 years and you're berating him because he can't solve a simple multibody gravitational acceleration problem?

    Come back when you want to rant about how you had a Physics PhD who had 20 years of experience but couldn't explain orbital dynamics.

    --
    If I have been able to see further than others, it is because I bought a pair of binoculars.
  19. Use an existing engine... by rastoboy29 · · Score: 2

    Like Torque (my favorite, that I used in my own game (see sig)).  Or check out Ogre, which is coming along nicely.

    Finding help (for free OR pay!) is nearly impossible.  Most people just don't have the staying power.  I've had many people enthusastically tell me they want to partner with me on my game, and exactly zero lasted more than a few days.  Either that, or they just don't have anything to offer.

    I made my game by myself, and it's a full featured first person shooter.  You can make your cannon game.

  20. Re:Moron by Jarik+C-Bol · · Score: 4, Insightful

    had this idea? heck, it has been done. googled 'spaced penguins'. I played that like, 8 years ago, and it was old then. exact concept. gravity wells, target, projectile. was kinda fun for a while, and after i beat it once, I started trying to put the projectile in orbit around various gravity wells.

    --
    I've decided to Diversify my Holdings. I've divided my cash between my left and right pockets, instead of all in one.
  21. Freelance photographers are cool by mevets · · Score: 2

    There is lots to learn from them, they etched out a niche market that most freelance programmers can only dream of,
    Often, and at least early in their career, true photo-artists will 'don the fishnets' and do weddings or whatever to keep the food supply running. That doesn't lessen their art, Everybody that took a couple of bucks for some crappy code should stammer here and move on.

    Oh, yeah and 'imagine no religion; its easy if you try...'

  22. Re:20 Years? by narcc · · Score: 2

    I just interviewed a guy with 15 years of experience that couldn't tell me how a hash table works

    Cut him some slack. There hasn't exactly been much need for the average developer to implement their own hash table in the last 15 years. I certainly wouldn't expect the average developer to understand all the issues and complexities! Well, maybe a recent CS grad, but even then I wouldn't expect them to be prepared to discuss them in more than a trivial way.

    Though I am curious as to what exactly would have satisfied you in an interview? The only quick answers I could think of are pretty trivial -- anything more detailed and I'd likely spend the better part of the day answering that one question.

  23. Good books by Daniel+Phillips · · Score: 2

    Physics for Game Developers
    Physics for Game Programmers
    Essential Mathematics for Games and Interactive Applications, Second Edition: A Programmer's Guide [Hardcover]

    Nothing that Google can't find. Programming language: C++ because the vast majority of examples are coded in it, plus it's fast and light if you don't get too stupidly abstract. Java if you want to write for Android. This particular application will work fine with very basic Euler integration: add the forces, divide by the mass, poof you have acceleration, integrate for velocity, integrate again for position, and shazam, physics.

    --
    Have you got your LWN subscription yet?
  24. Re:Moron by cgenman · · Score: 2

    I actually made a version of this as an experiment in Unity. The trajectory of the projectile has such sensitive interdependence upon initial conditions (read, chaos), that it wasn't fun to play. Most people have problems with simple parabolas. The multiplicative effects of multiple gravity sources takes it outside the realm of the pleasurable.

    If he is going to do it 1: Keep the gravitational sources stable. Otherwise it's just a mess. 2: Give the player some control over the projectile after firing. Even slight amounts of control can make all of the difference.

  25. Re:Moron by backslashdot · · Score: 2

    Just because it has been done before doesn't mean it can't be done again with a new twist. Look at many of the popular games in the app store such as Angry Birds or Doodle Jump (PapiJump and Sonic Jump) .. they are remakes of existing games that nobody ever heard of (Angry Birds concept is from Crush the Castle, Doodle Jump concept is from the prior iPhone game PapiJump which in turn improved on Sonic Jump) .. the biggest difference being the graphics.