Page 1 of 1

My next big programming project.

Posted: Tue Jul 14, 2009 6:07 pm
by BlackRider
I'm currently working on a little 3d Rubik's cube game as an intro to working with XNA, but I'm plotting something much bigger for my next programming venture. I know physics based games are one of the big current fads of the day, but I've been wanting to do something more engineering oriented long before the current physics craze. So I'm starting this thread as a way to organize my thoughts and gather some opinions.

My working title is: The Engineer's Playground, and it will be an engineering/physics based puzzle and problem solving game where the sandbox mode is just as fun as trying supplied challenges.

I intend to develop it in stages, starting with core functionality and adding more complexity to the physics simulation with each additional phase.

* Stage One
--------------------
Environment -
The player will spend much of his time in a machine shop. The shop will be broken down into design, manufacturing, and testing areas. The design area will be the computer lab/office area and walking up to a computer will take the player into the design suite. The manufacturing area will most likely be eye candy (unless someone wants a machine shop simulator), and will not likely be developed much until later stages. The testing area will be an empty space with access to everything needed to test contraptions (i.e. pressurized lines for testing pneumatic devices, electricity for electrical equipment, motors for anything that might be belt/chain or gear driven, etc etc etc). Outside the shop will be varying terrain where challenges will be available.

Design -
Stage One will require a basic design/assembly suite featuring a basic CAD system for creating individual parts. Parts from the CAD system would be available to combine into assemblies with a selection of basic joining methods (bolts, welds, etc.). And then maybe a paint shop to keep creations from getting boring.

Physics -
Initially there will be just a bare bones set of materials available. Most of them will be "magic" materials to keep the Stage One physics engine on the simple side. There will be a magic metal that has mass, is perfectly rigid, and is indestructible. (Yet somehow parts can still be cut from sheets, molded, and milled. :shock: ) Water will be available as a "fuel" but working out the dynamics beyond that might be beyond Stage One. Other fuels would be coal, diesel, and some sort of solid rocket fuel or gunpowder. There will also be belts and chains, and a few other basics to keep things interesting.
As for the physics engine, there will be basic Newtonian mechanics, enough thermodynamics for a steam engine, basic combustion, and enough fluid dynamics for a steam engine and simple pneumatic systems. (Think hydraulic arms, not torque converters.)

Is that too ambitious? ;)

I'll add more to this as I think of it. I've never actually thought out a project before I've started coding before....... everything's always just been hacking away at code.

Posted: Tue Jul 14, 2009 8:10 pm
by XMEN Gambit
I don't want to discourage you, but I think yes, it's too ambitious. That doesn't mean it has to be, though, or that I'm correct. :) And I may talk myself out of the opinion as I blather on. (BTW I love games like The Incredible Machine, so the basic idea's been done and can be successful.)

The draw for your idea seems to be in the a) puzzle and b) sandbox ability to play with the parts. Given that, the type of interface is less of a priority, however it MUST be simple enough not to get in the way of all the mad scient-- er, engineer ideas. Had you thought 2d or 3d? Maybe make some "storyboard" type sketches of what you expect to see?

One thought used by a lot of people is to re-use someone else's 3d engine. GarageGames' Torque comes to mind and it's $100 last I knew. Id has released source for some of the Quake engines, and you can find some others out there. You'll probably have an easier time if you start with one that has physics already included but in any case you'll have to do some serious tinkering under the hood to get all that you're looking for. Unless, that is, you cheat. In the same way that 3.14159 is often used as PI rather than the actual value of PI. So you might want to start out with approximations of the physics laws you're trying to simulate and refine them later.

So that's the two major thoughts I have right now. I'll be interested to follow your progress.

Minor thought on your indestructible material - start by making the object out of something else, then put it through a process (like anodizing?) to make it immutable. No worries on the cutting and shaping.

Posted: Wed Jul 15, 2009 11:05 am
by BlackRider
XMEN Gambit wrote:(BTW I love games like The Incredible Machine, so the basic idea's been done and can be successful.)
I loved The Incredible Machine, except this would be kind like "The Incredible Machine In 3d With the Ability to Make Parts".
XMEN Gambit wrote:Maybe make some "storyboard" type sketches of what you expect to see?
That's a good idea! I'll put some time into that this week.
XMEN Gambit wrote:One thought used by a lot of people is to re-use someone else's 3d engine.
Part of the draw for me is writing the engine. I'd scratch written very basic 3d game engines in the past. It was a lot of fun writing software that could render polygons, use a z-buffer for clipping, and make use of basic shading. I'd also written basic physics engines for 2d; making use of various collision detection methods, gravitational and spring forces, and monitoring system energy to keep the system from getting out of whack from errors in calculations.
XMEN Gambit wrote:Minor thought on your indestructible material - start by making the object out of something else, then put it through a process (like anodizing?) to make it immutable. No worries on the cutting and shaping.
Heh, that might be a good explanation for how it works. ;)

Posted: Wed Jul 15, 2009 7:48 pm
by XMEN Gambit
Well, given that input about stuff you've done before, my estimation of your success has shot up a good bit. Give it a shot and keep us in the loop. I hope we can provide more feedback for you to use.

Posted: Fri Jul 31, 2009 9:41 pm
by XMEN Gambit
Lookee what I saw today. Not exactly what you had in mind, but interesting nonetheless.

http://www.moddb.com/mods/research-and-development

Posted: Thu Aug 06, 2009 4:21 pm
by BlackRider
I'm putting this project on hold because it is too big with everything else I have on my plate. Good news is that I'm working on the details of a 2d economy-type RTS in the spirit of The Settlers or ANNO series.

I'll make another post about the RTS once I've made some "progress"... whatever that is.......

Posted: Fri Aug 21, 2009 3:05 pm
by BlackRider
Now I'm sounding like my indecisive old self, but I'm picking this project up again w/ Gambit's suggestion of doing it in 2d. It's a completely different vision, but same kind of mix of physics and engineering.

What made me want to come back to this project was that I came up with an idea on how to simulate gases. It's almost too simple... there has to be something wrong with it. It is simply to use a 2d array where each element represents a given volume of atmosphere. I haven't done any thinking on the physics behind a fluid... and it's been so long that I'll have to dig out some books to read... but I'm thinking I'll have to store pressure, density, and temperature for each element. Though if I have pressure and temperature, can't I calculated density? That whole PV=nRT thing from chem...... but now I'm starting to get a headache. :evil: But anyway, I'll have to do some reading on fluid mechanics and determine how my atmosphere will move from one grid location to the next due to pressure or temperature changes.

I've got a couple different ideas on the appearance of the game and I may have to do a few concept sketches to help me decide. The easy choice would be the stereotypical cartoony appearance for a 2d physics type game, but the one I'm leaning towards right now is to have the interface emulate CAD software (AutoCAD, Inventor, etc.)... maybe a subtle mix of both. Hopefully I can come up with something tonight or tomorrow.

My goal for tonight is to set up the project and get a start on a basic 2d rendering engine.