×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

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

timothy posted more than 2 years ago | from the learning-experience dept.

Programming 188

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?"

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

188 comments

Moron (-1, Flamebait)

sexconker (1179573) | more than 2 years ago | (#39307735)

Expertise? Amateur?
(Oxy)moron.

Re:Moron (-1)

Anonymous Coward | more than 2 years ago | (#39307771)

Sex? Conker?
Is that a game?

Re:Moron (-1)

Anonymous Coward | more than 2 years ago | (#39308029)

Sex? Conker? Is that a game?

yeah it's a game yo mama plays with every niggerdick she can stuff down her throat.

if my niggerdick is in her asshole and another niggerdick is in her cunt and we kinda feel them touchin together thru the membrane of skin .. i mean thats not gay or anything is it?

Re:Moron (-1)

Anonymous Coward | more than 2 years ago | (#39308967)

It's not gay unless the balls touch.

Re:Moron (5, Insightful)

Anonymous Coward | more than 2 years ago | (#39307773)

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.

Re:Moron (1)

Anonymous Coward | more than 2 years ago | (#39308665)

That's like, your opinion, man. Most amateur photographers I know think very high of their pictures of cute puppies, kitten or kids too.

Re:Moron (0)

Anonymous Coward | more than 2 years ago | (#39307783)

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'...

Re:Moron (4, Funny)

alphatel (1450715) | more than 2 years ago | (#39307937)

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!

Re:Moron (2)

hawguy (1600213) | more than 2 years ago | (#39308099)

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.

Re:Moron (4, Interesting)

TheRaven64 (641858) | more than 2 years ago | (#39308107)

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...

Re:Moron (4, Insightful)

Jarik C-Bol (894741) | more than 2 years ago | (#39308559)

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.

Re:Moron (0)

Anonymous Coward | more than 2 years ago | (#39308681)

Warheads
http://www.youtube.com/watch?v=Vu3jzhwK60A

Re:Moron (-1)

Anonymous Coward | more than 2 years ago | (#39307871)

jo_ham AKA bonch is an Apple shill and a pillow biting faggot.

Re:Moron (1)

artor3 (1344997) | more than 2 years ago | (#39308199)

Looks like someone doesn't know the definition of the word "amateur".

(Hint: it's not the person who wrote the headline)

Re:Moron (1)

Nidi62 (1525137) | more than 2 years ago | (#39308405)

Amateur does not necessarily mean inexperienced. Amateur just means non-professional. An amateur can still have plenty of experience, possibly even more than a professional.

Re:Moron (-1)

Anonymous Coward | more than 2 years ago | (#39308411)

Amateur means one is not professional, i.e. one does not get paid. Stop being a stuck up twat and think instead of just flinging ad hominems. An amateur can have incredibly high levels of expertise and a professional can have incredible low levels. Grow the fuck up and stop wasting bandwidth, not to mention air.

Javascript (4, Informative)

Vixe (1846608) | more than 2 years ago | (#39307753)

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

Re:Javascript (1)

Rinikusu (28164) | more than 2 years ago | (#39307903)

Add to that Box2D as a physics engine, and you'd be half-way there. I'm partial to the impactjs + box2D stack, myself, but impact isn't free.

Re:Javascript (0)

Anonymous Coward | more than 2 years ago | (#39307991)

He doesn't even need that, what he is explaining is stupid easy, he can do it in canvas without any helper libraries and he'll learn more doing it at the bare bones level anyway.

To es330td the game you are talking about has been done before, but that's no reason not to try.

Specifically there is one worms like flash game involving guys standing on planets shooting at each other and the planets effect the flight paths of the projectiles.

Re:Javascript (0)

NoSleepDemon (1521253) | more than 2 years ago | (#39308969)

Javascript is a HORRIBLE language to learn programming in, especially for games. You're much better off using Unity3D OP, they have a ton of useful tutorials and demos to help you along the way.

20 Years? (-1, Offtopic)

Anonymous Coward | more than 2 years ago | (#39307759)

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.

Re:20 Years? (1, Informative)

gangien (151940) | more than 2 years ago | (#39307851)

Haven't interviewed a few people with 'decades of experience', that is not surprising. I just interviewed a guy with 15 years of experience that couldn't tell me how a hash table works. But he certainly new a lot of buzzwords.

Re:20 Years? (1, Insightful)

Sir_Sri (199544) | more than 2 years ago | (#39308097)

It really depends what they've been doing. I know lots of programmers who've been doing nothing related to physics or hashtables.

As with everything though, his answer is in a book. Really any half decent book on games will give him the info he needs.

Re:20 Years? (2)

Qzukk (229616) | more than 2 years ago | (#39308427)

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.

Re:20 Years? (-1)

Anonymous Coward | more than 2 years ago | (#39307881)

Can someone please mod this into oblivion?  It's "Ask" /., not "I'm smarter than you" time.  Asshole.

Re:20 Years? (2)

hawguy (1600213) | more than 2 years ago | (#39308145)

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.

Re:20 Years? (0)

NoSleepDemon (1521253) | more than 2 years ago | (#39308985)

Also, learning to code and javascript in the same sentence make his post even more suspect! Finally, physics is anything but simple, so many ways to optimise your calculations, so many variables you could take into account if you wanted to. But I digress, 4 months of JS is enough for anyone!

Rotation is the hardest stuff (4, Informative)

mangu (126918) | more than 2 years ago | (#39307777)

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

Re:Rotation is the hardest stuff (0)

Anonymous Coward | more than 2 years ago | (#39307951)

Geometry rotation isn't hard, you just copypaste a few short functions that give you the proper matrices, if you aren't already using a library that implements those (any semi-decent graphics and physics library will contain or use general-purpose vector and matrix objects you can use for other calculations)

Too late! (4, Informative)

togofspookware (464119) | more than 2 years ago | (#39307785)

Angry birds is already doing it [angrybirds.com] .

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!

Re:Too late! (5, Informative)

pjt33 (739471) | more than 2 years ago | (#39307887)

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

Re:Too late! (1)

togofspookware (464119) | more than 2 years ago | (#39307949)

Sweet, it's scorched earth with spherical gravitational fields! I'm having a good time putting things into orbit, but the only way I've managed to hit the target so far is plowing through the planet in the middle...

Re:Too late! (0)

Anonymous Coward | more than 2 years ago | (#39308089)

I hit the other ship on the first try, pure luck.

Re:Too late! (4, Interesting)

artor3 (1344997) | more than 2 years ago | (#39308219)

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.

Stackexchange (5, Informative)

Letharion (1052990) | more than 2 years ago | (#39307817)

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

Re:Stackexchange (5, Informative)

Anonymous Coward | more than 2 years ago | (#39307915)

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.

Re:Stackexchange (4, Informative)

The Optimizer (14168) | more than 2 years ago | (#39308223)

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.

20+ years? You're already an expert. (3, Informative)

Anonymous Coward | more than 2 years ago | (#39307829)

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.

Find the open source implementation? (1)

Anonymous Coward | more than 2 years ago | (#39307839)

A friend of mine wrote something that sounds very similar to what you're talking about as a ruby app. It's open source (available at http://rubyforge.org/projects/planetsgame/), so you could start by looking at what he's got and tweaking, rather than trying to build from the ground up.

Just do it yourself (1, Insightful)

woodhouse (625329) | more than 2 years ago | (#39307841)

Unless you're providing some kind of financial incentive, I'm not sure why anyone would want to do it for you. But fortunately, what you're describing is doesn't sound particularly difficult. If you want to learn from the experience, you should really just do it yourself. You could put something together in C/OpenGL pretty quickly (there are lots of tutorials on the web for getting up and running with OpenGL).

Re:Just do it yourself (1, Insightful)

Dahamma (304068) | more than 2 years ago | (#39307967)

The whole post doesn't make any sense. He wants to make a simple non-commercial game for the purpose of learning, but he doesn't want to have to figure out how to program it and would like to find someone who already knows how to do it to write it for him. Wha?!

Re:Just do it yourself (1, Insightful)

hawguy (1600213) | more than 2 years ago | (#39308171)

The whole post doesn't make any sense. He wants to make a simple non-commercial game for the purpose of learning, but he doesn't want to have to figure out how to program it and would like to find someone who already knows how to do it to write it for him. Wha?!

I don't think he's looking for someone to write it for him, he's looking for someone to guide him and point him in the right direction so he doesn't spin his wheels doing something one way that's going to lead him to a dead end. Maybe he'd learn more by doing it all on his own. Or maybe he'd learn bad habits that are hard to correct later.

Re:Just do it yourself (1)

Dahamma (304068) | more than 2 years ago | (#39308333)

If that's true I guess there is a reason he can't find anyone to do this for him... who would want to handhold someone to teach them the basics required to develop a simplistic game concept as a learning exercise without being paid anything??

I suppose that's the answer he needs to hear: you won't find a expert game developer to "partner" with you on this, so do what most other hobbyist game programmers do - try to figure it out for yourself, and when you can't then ask questions on any of the many developer forums available for that purpose. I guess many of us here probably started our hobbyist game development careers as kids (back when rec.games.programmer was the height of game development discussion) so figuring it out yourself was the only real option...

Re:Just do it yourself (0)

gman003 (1693318) | more than 2 years ago | (#39308263)

Or C/SDL (for 2D stuff, OpenGL is often overkill).

Actually, given his C# background, XNA may make more sense. It's essentially C#.NET with extra gaming-oriented libraries and optimization. Runs natively on Windows XP+, the Xbox360, and one of the Windows Phone types, and there's probably a Mono-based project to make it run on non-MS systems.

Like any Microsoft environment, it's heavily documented and aimed at novices and amateurs. I've never used it much myself (I prefer C++/SDL or C++/OpenGL, myself), but I think it sounds like what the OP needs.

Corona SDK (0)

Anonymous Coward | more than 2 years ago | (#39307845)

I know you said you don't want to make anything commercial, but the price is just to good to pass up; it compiles with a ton of devices as the target, and you develop using Lua. It has a great community.

Then, if you want, you could release it for free in the various app stores, or charge a dollar and use that to fund development of an HTML version of the game based on your (functional) prototype.

Oh, hi! I remember you... I think. (2)

VortexCortex (1117377) | more than 2 years ago | (#39307885)

In case you're not the same guy who posted this exact same idea already...
>>>>/AGDG/ [spiderchan.com]
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 [microsoft.com] ?).

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...

first small step... (3, Informative)

Tastecicles (1153671) | more than 2 years ago | (#39307899)

have a look at this [newtondynamics.com] .

Re:first small step... (1)

Tastecicles (1153671) | more than 2 years ago | (#39308023)

I know, I know, bad form...

One of the first complex programs I wrote in GWBASIC (my first serious(!) adventure in programming) was a Newtonian orbital model (I didn't actually write it from scratch, I took a simple program I found in a magazine that demonstrated the inner solar system as a realtime simulation and replaced the individual chunks of code for each body with a unified algorithm and called each body n). Basically it took n massive particles and calculated their interactions with every other particle, and plotted the resultant path each took. For n<=5 particles on a 486DX/33 it ran fine (over 50fps), but when I ramped up the number of particles the calculations tended to slow and the plot exponentially so. By the time I hit 1000 particles I was lucky to get a retrace every hour.

This I think is where you're going to hit a problem. The more particles you have, the slower it's going to run. Unfortunately if you want a realistic physics model you'll have to calculate the interactions of every particle with every other, even if the resultant vector adjustment for each interaction is insignificant for your purposes because it *will* become significant in later frames.

Re:first small step... (0)

Anonymous Coward | more than 2 years ago | (#39308509)

For large simulations, you can get a huge speedup with little loss in accuracy by approximating longer-distance interactions. For example, overlay a grid on your universe. In each grid cell, calculate the total mass inside. For each particle, do the exact physics with nearby particles (e.g. within N cells) and for farther cells, treat the entire cell as one point.

Maybe a better question to ask is... (0)

Anonymous Coward | more than 2 years ago | (#39307913)

What FOS game engine would you use to write a simple 3D (maybe a MMORPG) physics based version of cannon ball? I don't really want to do my own research of things like: torque, unity or unreal on that google website thingie. I really am too lazy to think for my self so I thought I'd ask here.
-OP

PS I don't want to go to the library and look at books like: Beginning OpenGL Game Programming by Dave Astle, or Windows game programming for dummies by André LaMothe

Well what is your purpose? (4, Insightful)

Weaselmancer (533834) | more than 2 years ago | (#39307921)

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."

Re:Well what is your purpose? (0)

Anonymous Coward | more than 2 years ago | (#39308073)

I think he/she might have meant that they were looking for somewhat of a mentor or a guiding hand in the process.

Re:Well what is your purpose? (0)

Anonymous Coward | more than 2 years ago | (#39308265)

I recall reading, in a hardcopy "computer" magazine long ago, a very good (pseudo)quote : "Never work with an idea man." The premise being, that if someone is unable to contribute meaningfully to the grunt work of a coding project, then they probably don't belong on the project. No offense, you sound like someone with a bit of general coding experience, but probably fall closer to the "idea" side of the project.
It sounds like you would be better off hiring someone to do the code. How much time do you think you would invest, bringing yourself up to speed, to do this yourself? What is your time worth? Would that expense be better off sunk into an experienced coder capable of fast-tracking the project? You might be able to pay them enough to get the project started, set up on Sourceforge, and if the donations start coming in, keep the coder(s) coming back to hone the code.
The digital world could use more benevolent patrons - hire a band to release a free song, hire some actors to motion-track record a CC short, hire a writer to make a CC screenplay out of something from Project Gutenberg, pay a coder to get an open-source game started. Lots of things to do, if you have a bit of money instead of the necessary skillz.

html5 (4, Informative)

gr7 (933549) | more than 2 years ago | (#39307945)

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>.

Go For It (4, Insightful)

mugnyte (203225) | more than 2 years ago | (#39307971)

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!

There's no need for a book (1)

nsxdavid (254126) | more than 2 years ago | (#39308007)

Seriously.... a book?

Just Google what you want to know.

If you've done C#, then look at XNA. It lets you do game stuff in C#. You know how to program, now just pick up things you don't know to build on that toolbox. On sites like http://create.msdn.com/ [msdn.com] you can find all the information you need, and better yet, full functioning examples projects to pick apart and learn from.

Why back in my day there was no Google machine. Much less any book son the subject. Now there is so much information out there, for free, you have no excuse to not just trip over it even if you take 10 seconds to look for it.

That's a tough sell, mate. (0)

Anonymous Coward | more than 2 years ago | (#39308013)

Think about this from the point of view of the putative person who is writing a video game for the sole purpose of tutoring you on how it works:

You'd like to write a program.

But you don't want to flesh out, debug, or complete the app.

So you don't want to write a program, you want someone else to do it.

But you don't want to hire someone; also hiring someone would mean you wouldn't learn anything.

But since the learning curve is too steep, you don't want to roll your own.

So you want someone to work with, not pay, to do the implementation of the idea, with no commercial prospects, and to learn something but not too much about how it works?

My advice would be to untangle your requirements, and if it's the implementation that interests you, just start climbing up the learning curve and see how far you get before you hit "diminishing returns". (There's nothing wrong with a half-finished project that you learn from.)

Physics for Flash Games, Animation, and Simulation (0)

Anonymous Coward | more than 2 years ago | (#39308027)

"Physics for Flash Games, Animation, and Simulations" by Dev Ramtal and Adrian Dobre should be enough to get you going if Flash is okay with you. If not, go with "Physics for Game Developers", published by O'Reilly and Associates.

As for getting somebody to write it for you for a price you're willing to pay, forget it. It's trivial enough that you should be able to do it yourself.

Unity3d (0)

Anonymous Coward | more than 2 years ago | (#39308035)

It has everything you need, you can write scripts in c# and it's free. 3.5 will even export to flash.

there are lots of amateur game-making tools (0)

Anonymous Coward | more than 2 years ago | (#39308061)

And most of them have communities of similar amateurs willing to chip in on projects like this.

I like Stencyl, personally. A lot of what you're describing would not be terribly difficult to do in it.
http://stencyl.com/

Physics, etc (4, Informative)

Dan East (318230) | more than 2 years ago | (#39308091)

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.

Pay for it. (0)

Anonymous Coward | more than 2 years ago | (#39308111)

Next?

No, seriously, the point of amateur is that it's amateur. Is this like one of those Craigslist ads 'Do work X for me and when it makes a gazillion, I'll pay you!'

Just do it! (Urgh i sound like nike ad) (2)

WombleGoneBad (2591287) | more than 2 years ago | (#39308121)

You see posts like this quite a lot. "I have this idea for a game, now i just need someone to help me write it" This is getting things backwards. Concepts are cheap, execution is everything. You are a programmer, bite the bullet and get your hands dirty. In the 'programming for fun' market noone wants to write *your* game because they are busy writing *their* game. You will only attract external talent if you already have something concrete and valuable that they will want to be a part of. First thing is to pick a platform (sounds like you fancy it as a web app, so html5 or flash), then all you have to do is take it one step at a time, 'how do i get it to draw something' , then 'how can i get it to move', learning the tools and techniques as you go, and then keep going, refactoring as you find better ways of doing things.

wtflolbbq (0)

Anonymous Coward | more than 2 years ago | (#39308125)

worst story, ever. btw, i got this idea for a game where people run around and shoot each other, like wolfenstein but better....halp?

Better game ideas ... (1)

Barbara, not Barbie (721478) | more than 2 years ago | (#39308331)

worst story, ever. btw, i got this idea for a game where people run around and shoot each other, like wolfenstein but better....halp?

I got this idea for a game where people run around and shoot people who submit stories like this one, like duke nukem but better ... halp?

... soon to be followed by ...

I got this idea for a game where people run around and run and shoot the editors who post stories like this one, like left 4 dead 2 but better ... halp?

You can do this (1)

Fencepost (107992) | more than 2 years ago | (#39308135)

As at least one other person has suggested, do this in Javascript. Processing power shouldn't be an issue - consider a "swarm" or "hive" screensaver running on a 386 with a tiny fraction of the power of a modern PC.

You have two separate areas to work on, three if you actually want it to look good (graphic design is its own thing): the physics/calculations, the animation, and making the animation not look like crap. For the animation/graphics, HTML5's Canvas may be your friend but I don't have the experience with it to say for sure.

For the physics side, you can either dig into some matrix algebra as someone mentioned (my time doing that is 20+ years old, can't help you much) or just code a routine to calculate the effect of a force (gravity of one of your objects) at a given point in space. Something like GetVectorInfluence(ObstacleMass, ObstaclePosition, PelletPosition) returning (acceleration, angle). At each stepping point you'll call that routine once for each obstacle, then sum the resulting vectors to determine where the point is going. You can start with one and shift to the other later if it turns out to be more efficient. Start out by doing that, working with an arbitrary space and recording the position of the moving item at each tick. Then graph out your results and see if you get the kind of lines you expect. I don't know if there's any reason to bother with excluding distant points from your calculations unless your total number of objects is huge - you may find that the math to include/exclude is more processor intensive than just doing the calculation and getting a near-zero result for distant objects.

I can't help much with the graphics, but it's basically doing a real-time chart instead of logging positions and rendering it later.

The graphic design may be as much headache as everything else, but as I tell people "As a graphic designer, I'm a great programmer." There is frequently little overlap in these skillsets.

commercial game engine (0)

Anonymous Coward | more than 2 years ago | (#39308225)

I would just license a commercial game engine write a few functions for adjusting whatever physics you want and be done:
http://www.garagegames.com/products/torque-2d

IMO the hardest part of these off the cuff projects is the art necessary

-jordan

Might work for you (0)

Anonymous Coward | more than 2 years ago | (#39308241)

Have a look at StencylWorks, it uses the Box2D physics engine.

http://stencyl.com [stencyl.com]

Game Coding in C#? Use Unity (1)

Frizzled (123910) | more than 2 years ago | (#39308269)

Unity 3D lets you write in C# (or Javascript) then port to PC, Mac, WebGL, iPhone, Android -and, if rumors are to be believed, soon Windows phone.

Free to try, not too pricey for the full version either. They have some demos to get you started, there are also a few books to help you dive deeper.

http://unity3d.com/ [unity3d.com]

Congratulations! (3, Insightful)

JohnnyBGod (1088549) | more than 2 years ago | (#39308273)

You're well on your way to recreating Slingshot [wikispot.org] !

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.

Work for free? (0)

Anonymous Coward | more than 2 years ago | (#39308275)

Basically it sounds like the person putting forward the question wants someone to write a game for them for free. Why would anyone want to do that? People who can would probably rather work on their own projects. The only thing I can think of would be to contact local universities or community colleges which offer programming courses and offer to work with the professors to offer a bonus credit or a co-op opportunity. Maybe some kid will offer to do the project in exchange for a bonus credit or a letter of recommendation.

Otherwise if you want something done and you're not willing to do it yourself, be prepared to pay for it.

Bone Up! (0)

Anonymous Coward | more than 2 years ago | (#39308295)

#1: Prepare to hit the books for a while and make lots of small modular examples
#2: check out this book http://www.amazon.com/Physics-Game-Developers-David-Bourg/dp/0596000065

two suggestions (real ones, not rude comments) (0)

Anonymous Coward | more than 2 years ago | (#39308303)

First, I'd suggest you pick your tool. Do some research. Flash AS is really easy to learn. Javascript is easy to learn, just figure out how to set up a canvas. If you want to do it in 3d, I'd suggest trying Unity3d because it uses javascript and is fairly easy, but when I was playing with it I didn't know how to do complicated things. (still don't)

Second, if you go with flash, I really enjoyed Foundation Actionscript Animation and Advanced Actionscript 3.0 both by Keith Peters. I felt like I learned something with his books.

Extra comment that I'm sure everyone else has made: the internet is a great place to look it up. And, for animation you need some math, the Peters books will walk you through most of it.

Scorched Planets (0)

Anonymous Coward | more than 2 years ago | (#39308329)

http://www.scorchedplanets.com
That one sounds like similar to the idea you had

How to find expertise (0)

Anonymous Coward | more than 2 years ago | (#39308377)

Place an ad with a job agency for a paid position (most won't charge unless you choose one of their candidates to fill the position). When the candidates come, mention that you aren't actually a company and are wondering if they will work with you for free. As programmers are a dime-a-dozen, none will have real job prospects anyway, so most will accept.

Do it in python (1)

dr_leviathan (653441) | more than 2 years ago | (#39308517)

This game would be pretty easy to do with Python and would be a good project to use as an excuse to learn some Python.. Either use pyglet (openGL wrapper) or pygame (SDL wrapper) modules. You can probably find some open domain 2D game examples that you could tear apart to do what you want.

I did something like this for a first year project (1)

SJrX (703334) | more than 2 years ago | (#39308527)

I did something like this for a first year project, it involved charged particles which obeys a similar inverse square as gravity does for determining position. You basically had a fixed set of charges, that users could toggle to be between {-8,-4,-2,-1,0,1,2,4,8} * K, then you'd hit start and you'd try to get the puck to go to the goal (It was very much based on this: http://phet.colorado.edu/en/simulation/electric-hockey [colorado.edu] ). It involved basically looking at F_x (the force applied in the x direction, from every other point). F_y (the force applied in the y direction, from every other point). When you sum these up you get an instantaneous picture of the scene, that is you know it's position, and you know the forces acting upon it. Then I believe I used a technique called Runge-Kutta which gets me a prediction, of where it would be in a small time slice, (say 1/20th of a second), so I moved the particle there and repeat (This was all done in Java AWT I believe). All in all it was fairly straight forward, and gave the user the experience I think you are looking for.

Try checking out Unity 3D or UDK (0)

Anonymous Coward | more than 2 years ago | (#39308531)

Try checking out Unity 3D or the Unreal Development Kit (UDK) since it sounds like your game would benefit from being 3D. There's a great community and resource library for both programs.

Use an existing engine... (2)

rastoboy29 (807168) | more than 2 years ago | (#39308551)

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.

Reinvent the wheel (1)

BenoitRen (998927) | more than 2 years ago | (#39308609)

Unfortunately, game programmers are very secretive of their craft and won't help you much, if at all. I'm trying to develop a game myself but I'm mostly on my own.

  • Books are either for beginners or professionals. Anything in-between isn't discussed. It doesn't help that most of these books are "learn C++" or "learn DirectX/OpenGL" books in disguise.
  • Asking intermediate level questions on message boards will get you answers like "It depends." and "Try a couple things and see what works."
  • Googling information will net you a lot of tutorials that are either about really basic stuff or very advanced 3D techniques.

Now, I'm not saying that others should do everything for me. What I'm saying is I'd like to see how other programmers have solved certain problems, learn from them, and then make my own implementation. I know there are source code repositories for open-source games out there, but they're an exercise in frustration because there's no documentation of any kind for these complex beasts. Some repositories don't even have indentation while browsing them.

So, yeah, we're all stuck reinventing the wheel. What a waste of time.

Re:Reinvent the wheel (1)

Surt (22457) | more than 2 years ago | (#39309043)

I wouldn't say most of us are all that secretive. It's more of a case that stuff is so customized and specific to the game that generalizing to anyone else's problem represents a substantial challenge.

Unity (1)

degeneratemonkey (1405019) | more than 2 years ago | (#39308631)

Unity3D is a game engine and authoring tool. It's pretty awesome, and a lot of people (including my company) use it commercially. Its approach to modeling a game world is sensible enough to be easy for an amateur game developer to pick up on the new and relevant concepts without being overwhelmed by technical details. At the same time the framework is robust enough that an expert developer can take it very far.

The vast majority of its features are available in the free (as in beer) version (unity3d.com). The pro license ($1500) nets a few additional features, including the ability to build something for commercial deployment not branded by Unity Technologies.

It sounds like you have plenty of C# experience; this is great. Unity is built on top of a customized Mono implementation and all development can be done in the C# language. The authoring tool can generate standalone Windows and OS X executables, as well as web players (using a widely available Unity browser plugin), Flash, iOS, Android, and (some day) HTML5.

I can't stress enough how highly I recommend Unity as a starting point. You can ease your way into understanding all of the technical nuances of game development. While the documentation is a little lacking in quality (that's not to say it's terrible either), there is a great open community built around Unity, and of course there's always #unity3d on Freenode.

Sorry if this reads like an advertisement, but I am a very happy user who prior to Unity did all of my game development in C++ on engines built from scratch. It's a great free tool, great for learning, and great for (eventual) low-cost commercial development if you ever go down that route. Cheers and good luck!

Re:Unity (1)

degeneratemonkey (1405019) | more than 2 years ago | (#39308649)

As an addendum, I should note that specifically it's built on top of Mono 2, and currently supports C# 3.0 and lower. This means you get LINQ and other niceties of 3.0, but you don't get the latest and greatest language features like dynamic types or co/contravariance.

Re:Unity (0)

Anonymous Coward | more than 2 years ago | (#39308871)

I would like to second this!

I use Unity all the time, and it's great.

In addition, until April 8th, they're giving the Android and iOS basic versions away for free.

Weak troll (-1)

Anonymous Coward | more than 2 years ago | (#39308647)

Summary: "I have 20 years of programming experience yet think all games must be written in C. I also have no idea what a library is so I need someone to write a physics system thing AND I don't want to do that because the physics required for such a thing is beyond mere mortal web programmers."

If this isn't a troll I don't know what is.

Easy start here (0)

Anonymous Coward | more than 2 years ago | (#39308651)

Hi,
    I'm in the same boat as you, and this is what I have to say about the subject.

      You want 2D? you can do easy with libsdl.org, which is free and gpl. (Which can compile on -->almost-- anything) (Go for OpenGl even for your 2d game to gain tons of FPS and kewl effects)
      Wanna physics in your 2D game? Go grab Box2D!
      You want easy 3D? You can go grab an engine like Unity or Ogre (You can even use your C# with MOgre for playing with models and all)

and have fun :)

How I did tetris from scratch (1)

MickLinux (579158) | more than 2 years ago | (#39308761)

When I had a brand new PS2/30 with two floppy drives and (gasp!) MCGA, I wanted to write a game, and settled on a new arcade game I had seen: tetris. To get the game fleshed out, I first did it all in text, and then wrote a graphics front end. As the OP indicated, there was no money in it, but it was educational. But basically my advice is to ignore the graphics until everything else is done.

Replica Audemars Piguet (-1, Offtopic)

sufufang (2592161) | more than 2 years ago | (#39308937)

The professional world watches imitation watches website, the widest range of replica watches online shop, where you can learn about watches prices imitation watches sales network Swiss Rolex Watches [watchesreplicastore.com] and Replica Tag Heuer [watchesreplicastore.com] to buy imitation watches latest products, and introduce the latest imitationThe watches range in price.

If you can code C, you can code AS3(Flash) (1)

GoodNewsJimDotCom (2244874) | more than 2 years ago | (#39308971)

I converted one of my c games straight to Flash in one week of learning the language. The syntax is almost identical! On top of this, AS3 graphic handling is waaaaay better than C/C++. I recommend picking up Flash, get Flashbuilder 4.6 from Adobe, well worth the money imo if you know C.

Flash without money... (0)

Anonymous Coward | more than 2 years ago | (#39309055)

OP should look at: http://flixel.org/

Everything you need to write Flash games with free tools.

2d graphics is dead easy (1)

Surt (22457) | more than 2 years ago | (#39309017)

Find a book on 2d graphics and start learning. It's really, really trivial. Almost nothing required beyond the ability to add and subtract.

3d is a quantum leap more difficult, requiring matrix algebra and calculus, so I'd stay away from it unless you really want to do some studying.

So learn what a sprite is, get one appearing on screen, start manipulating it according to the physics equations you look up, and see how it behaves.

I'll also warn you that you aren't likely to find someone to build your game, the way you want. At best, you might find someone to collaborate with, but you won't get exactly what you want unless you are leading the process, and able to change the direction by implementing it yourself when your partner starts to depart. The world is full of people with game ideas, including pretty much 100% of those who would be candidates to build your game, and they'd typically rather work on their own idea.

Also, i've seen the game you describe on armor games. It had squads on planets shooting at each other with a variety of weapons and the planets had varying gravity impacting the path of projectiles.
It was pretty well done, so you might want to check it out. I'd find it for you but the search on that site is pretty useless.

Points (1)

Lp34dr (2592199) | more than 2 years ago | (#39309057)

keys for those game are really picture, image how disappointed when those kids got angry bird but it is not Ultra High Definition Retina tweaked.
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...