Ask Slashdot: How To Find Expertise For Amateur Game Development? 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?"
Javascript (Score:4, Informative)
Re: (Score:2)
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: (Score:2)
Flash and Unity are also good choices. Unity supports C#, Javascript, or several others natively. Flash's Actionscript is an offshoot of Javascript, albeit an odd one. The physics themselves involved in gravity simulations are very, very simple to model. If only one body is moving (and to work as a game, only one body should be moving), just have the projectile iterate over all of the objects in the gravity list every update. Velocity += ( Distance * Mass * Scalar ) ^2
However, he should realize that no
Re: (Score:2)
Actually, Velocity += Scalar * MassOfOtherObject / Distance^2.
Re: (Score:2)
Whoops! Thanks. That will teach me to write off-the-cuff equations while pulling an all nighter.
Re: (Score:2)
He's not learning to program. He's learning graphics. He's been a professional developer in the business space for years. He probably already knows Javascript well, so it isn't a stretch to add some canvas usage.
If the Original Poster is in Austin, ACC has some classes taught be people in the industry. I was in the same boat you are in, so I took several of them and enjoyed them. I still bring home a paycheck from C# and SQL Server, but I dabble in games for fun. You might want to look at XNA since yo
Re: (Score:2)
Sure, 'cos you can use C# to do a client-side in-browser game, that's gonna work really well...oh hang on...
Use the tool to fit the problem and learn how to use your tools. Just because most JS code is nasty doesn't mean you have to write nasty JS.
Rotation is the hardest stuff (Score:5, Informative)
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.
Too late! (Score:5, Informative)
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! (Score:5, Informative)
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: (Score:2)
Re:Too late! (Score:5, Interesting)
There is a slightly more "flashy" version called gravitee wars [kongregate.com]. Polished and stuff.
Re: (Score:2)
Well, there's a limit to how much polish anyone can pack into 4 kilobytes.
Re: (Score:3)
Re: (Score:2)
Re: (Score:2)
On the Amiga in 1987 it was called Gravity Wars. Still it is a cool idea.
Re: (Score:2)
I recall the two players being blue and orange, the planets being grey, and the collision detecting being checked at the end of every timestamp, so a bullet could make a hole in the middle of a planet, and if you fired more on the same path you'd get a series of disjoint holes. That was one element I chose not to replicate.
Re:Too late! (Score:5, 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.
Re: (Score:2)
Re: (Score:2)
The oldest version I've played [hpcalc.org] was on the HP48 calculators, and I think even that was a port off of some older platform.
Re: (Score:2)
So that is what the Antikythera Mechanism [wikipedia.org] was used for!
Stackexchange (Score:5, Informative)
Re:Stackexchange (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.
Re:Stackexchange (Score:5, 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.
Re: (Score:2)
Start with something small - an early Atari 2600-class game project
Just don't write an actual Atari 2600 game. It's fun and challenging, but ridiculously difficult.
20+ years? You're already an expert. (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.
Find the open source implementation? (Score:1)
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 (Score:2, Insightful)
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: (Score:2, Insightful)
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: (Score:2, Insightful)
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: (Score:2)
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
Re: (Score:2)
No, you misunderstood. "he doesn't want to have to figure out how to program it" is very wrong:
"I'd like to write a program..." ... [I would be forced] to fully flesh it out, debug and complete the app"
"...In an ideal world,
"...hiring somebody doesn't make sense, and I wouldn't learn anything that way either"
"...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"
He wants a somewhat experienced partner who might be willing to answer questions and guide him through the process of making a game. Perhaps this person might develop side-by-side with him if the project is large enough. He clearly wants to learn how to do this, he's just not sure about the best way to start. He's suggested that an experienced partner is a good way to go, and if he can find one it probably is. Mos
Re: (Score:1)
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
Re: (Score:2)
Judging from the question, I doubt the fellow has a strong mathematics background. OpenGL may not be the best choice for him.
This poor guy has been writing CRUD apps for the last 20 years; how much linear algebra do you expect him to remember?
Re: (Score:2)
How many programmers ever learned linear algebra in the first place, especially if they graduated decades ago (if they even went to college)? It's not like you need to understand linear algebra to call a library rotation routine though. Theoretically at least, I prefer quaternion rotations, which aren't even primarily based on linear algebra--just because quaternions are cuter than matrices (though I'm a pure math person).
check this (Score:1)
Oh, hi! I remember you... I think. (Score:3)
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...
Re: (Score:2)
I haven't seen that file in years and years. Thanks for the post :)
first small step... (Score:4, Informative)
have a look at this [newtondynamics.com].
Re: (Score:2)
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 parti
Well what is your purpose? (Score:5, 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."
Re: (Score:2)
Game development is a large field. There are many platforms, physics is hard for most people, especially without a good background in math, getting art/sound/music can be hard--there are plenty of reasons to want a mentor-like person when just starting out.
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."
Why? There's no evidence I can find to support that interpretation, and there's a mound of evidence against it. Why would he list his coding background and invite suggestions for books to "flatten the learning curve"--to make the post more convincing? Tha
html5 (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>.
Go For It (Score:5, 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!
There's no need for a book (Score:2)
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
Physics, etc (Score:5, 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.
Just do it! (Urgh i sound like nike ad) (Score:1)
You can do this (Score:2)
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
Game Coding in C#? Use Unity (Score:2)
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! (Score:4, Insightful)
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.
So you want free help from an expert blah blah (Score:1)
Since when do they post craigslist ads on the front page of slashdot?
Do it in python (Score:2)
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 (Score:2)
Use an existing engine... (Score:3)
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.
How I did tetris from scratch (Score:2)
If you can code C, you can code AS3(Flash) (Score:2)
2d graphics is dead easy (Score:2)
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,
Re: (Score:2)
Gravitee wars, mentioned elsewhere in this thread was the game I was thinking of.
you don't need physics (Score:2)
repeat:
xpos += xvel
ypos += yvel
xaccel += xforce
yaccel += yforce
xdist = planetx-bodyx
ydist = planety-bodyy
mass2 = bodymass
xforce = g*mass1*mass2 / xdist*xdist
yforce = g*mass1*mass2 / ydist*ydist
----
if you have more than one object, do a loop through the 'force = ' stuff and use += to aggregate it.
oops (Score:2)
mass2 = planetmass
mass1 = bodymass
but you do need numerical analysis and physics (Score:2)
Because that's a pretty bad way of integrating equations of motion.
It's what I learned high school---when I actually started doing physics for real I found it was junk.
At least use 2-nd order Runge-Kutta, you'll also need a variable time step.
For a game it doesn't matter likely, but even RK won't actually preserve things like energy, momentum and the 3rd invariant in 2-body mechanics which I've forgotten now.
Re: (Score:2)
quote: xforce = g*mass1*mass2 / xdist*xdist
assuming you meant to write parentheses (xdist*xdist), if the particle coordinates are (0,0) and (0,1), then xforce would become infinite. you'd need something like
xforce = g*mass1*mass2*xdist / pow(xdist*xdist+ydist*ydist, 1.5)
Angry Birds Space (Score:2)
i apologize, it looks like the original monster app has already cannibalized your idea space:
http://www.youtube.com/watch?v=lxI1L1RiSJQ [youtube.com]
Angry Birds on the ISS
(then following through to your idea of alternative gravitational fields)
This game idea has been done (Score:2)
Just FYI. There was an online, multiplayer artillery game in space, where the players sat on planets and had to shoot each other by using the planets' gravities to manuever the shells. I even remember it having little callbacks to Scorched Earth (e.g. the death messages, "Remember the Alamo!"). It was pretty damn entertaining, I just can't remember the name.
XNA (Score:2)
I don't understand (Score:2)
Use Unity 3D (Score:2)
I don't work for Unity 3D, so this is not a shill. Unity 3D is an awesome tool, well worth the $400 investment. I've never seen a game development tool flatten the learning curve better.
engine (Score:2)
Get an engine. I personally use Unity 3D, and there's a free version of that available.
In this day and age, only the insane and the bleeding-edge write everything from scratch.
Good books (Score:3)
Physics for Game Developers [oreilly.com]
Physics for Game Programmers [amazon.com]
Essential Mathematics for Games and Interactive Applications, Second Edition: A Programmer's Guide [Hardcover] [amazon.com]
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.
Flash / AS Development is pure and serious fun! (Score:2)
I'm a thouroughbreed Flash/ActionScript developer currently bemoaning the slow demise of Flash and diving into other technologies as a replacement - which, on a sidenote, are *all* a *big* step backwards in terms of development workflow and deployment for end-user applikations. Even something like Qt wether with some neat PL like Python or just the pure C++ feels like going back 20 years in time. Thus I have to say the following:
If you want to do this project for yourself and your close friends, for fun and
Sounds like exactly what you want is: (Score:2)
I have no experience with them, but it sounds like they're thinking along the same lines that you are - a matchmaking service for game developers.
As a programmer this makes me mad (Score:2)
These bozos seem genuinely hurt that I don't want to make them a pile of cash. The only time I have collaborated on an app the other half brought a huge non programming resour
www.love2d.org (Score:2)
Go there. Read the tutorials. Ask in the forums.
You are welcome.
Code on open source projects (Score:2)
You could contribute to Ogre, Crystal Space, Blender Game Engine, or Erlicht. Or physics frameworks such as Bullet; or if AI is your interest - Recast and Detour. Or sound openal. If you are interested in the 'tool' side - then write importers/exporters for Blender; add tools that make rigging; skinning; modeling; texturing; animating; etc easier. You might also try writing importers/exporters for non opensource projects - ie Maya, 3DSMax, XSI, ZBrush - one taskthat would benefit blender users and build
Re:Moron (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.
Freelance photographers are cool (Score:3)
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...'
Re: (Score:2)
Looks like someone doesn't know the definition of the word "amateur".
(Hint: it's not the person who wrote the headline)
Re: (Score:2)
Re:Moron (Score:5, Funny)
Re: (Score:3)
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 (Score:5, 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...
Re:Moron (Score:5, Insightful)
Re: (Score:3)
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.
Re: (Score:2)
Warheads
http://www.youtube.com/watch?v=Vu3jzhwK60A [youtube.com]
That's the game I was looking for. It was awesome. That video is terrible and doesn't do it justice. It was basically a 'modern' Scorched Earth, in space.
Re: (Score:3)
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.
Re: (Score:2, Informative)
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: (Score:2, Insightful)
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: (Score:2)
Hash tables are a funny example, because I'd naively expect no matter what you were working on, you'd be familiar with some basic data structures after that many years. Physics, not so.
But then, I suppose different developers do have different experiences. I'm curious what those programmers you know tend to work on.
Re: (Score:3)
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: (Score:2)
I wasn't berating him. I was simply saying, it's not surprising.
And i wouldn't say that guy who couldn't tell me what a hashtable does, was an idiot. I just wouldn't call him a Software Engineer.
Re: (Score:2)
Well start talking to an experienced C# coder about hashtables and they'll reply by talking about dictionaries.
Maybe the confusion was on the other side of the desk?
Re: (Score:2)
1. He was a java dev.
2. That doesn't change the question at all. It's the same damn thing.
Re: (Score:3)
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 -- anyt
Re: (Score:2)
Re: (Score:2)
I honestly have no idea how you would know how to use a hashtable if you didn't understand how they work.
It should be really easy. You know, because they're ridiculously easy to use; which is why you find them used wildly inappropriately so often.
Knowing when it's best to use one in place of another structure is an entirely different story which can depend on the specific implementation.
That would be a much better interview question, IMHO.
Unless you're doing really basic "programming", you're going to have to know how to use a hashtable or key/value storage.
Knowing how to use a hash table is entirely different than knowing how it works or how to make one.
He should be able to come up with some answer involving "hashing", "keys", and "buckets".
If all you care about is the developer being able to use one, I have no ide
Re: (Score:2)
A hashtable is an important data structure that is used everywhere. I think you should have a basic understanding of such a common structure. What would have satisfied me is a basic explanation of the process that get and put go through. 45 minutes and i'm basically looking for answers to 2 questions, how a hash map works and an implementation of atoi. Asking that of a Senior Software Engineer should not be problematic.
Re: (Score:3)
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.
Better game ideas ... (Score:2)
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?
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?
Re: (Score:2)
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.
Re: (Score:2)
What??? Game Programmers are NOT secretive at all. We share virtually everything! I'm sitting right now at the tail end of GDC where we spent a week of doing nothing but sharing. Where did you get that notion?