I’d like to start off by saying that as far as self-created projects go,
I’m new to game development. I’m a seriously hardcore gamer with
thousands of hours of game experience behind me and at the ripe old age
of 26 I’ve decided to see what I’m capable of in the world of game
development. I’ve been studying my eyes out in C#, XNA and Visual
Studio 2010 Express over the past month or so but I’m definitely still
in the “beginner” stage.
I’ve started this topic because I want some input from more experienced
developers/programmers on a few particular areas. The first and arguably
most important topic that concerns me is the creation of a game engine
that will facilitate the proper design of the game I have in mind. I’ll
give a brief description of what I need the game to be capable of and if
anyone needs me to be more specific, please ask.
The game is a 2D side scroller that focuses heavily on the creation and
destruction of objects in the game world. I require a fully dynamic
destruction system featuring a particle system and somewhat realistic
physics. ALMOST every object in the game will be made up of particles
that are connected to each other to form objects like trees, stones,
hills of dirt, structures, cities, etc. I imagine the particles to be
between 4x4 to 8x8 pixels in size PER particle. My goal is to create a
game engine in which each particle registers when damage is done to it
via a number of ways, then reacts accordingly. I envision a system where
each particle has an “HP” pool that varies in size depending on the
“quality” of the particle (dirt, wood, stone, etc.). As the particle
sustains certain amounts of damage, it goes through stages. The first
stage is a visual representation of damage in the form of cracks(fault
lines). The cracks somewhat randomly extend along the adjacent walls of
other nearby particles, beginning at the directly damaged particle, to
display the visual result. Particles that are adjacent to these cracks
will have inherited a portion of the damage done to the particle that
spawned the cracks. As damage continues to be dealt, cracks will
continue to propagate damage and extend in number, length and overall
Stage 2 of the particle’s destruction will occur when particles adjacent
to the cracks have sustained damage to the point of actual fracture or
separation from each other. At this point, particles that share these
cracks and have sustained heavy damage will literally separate from each
other resulting in an object or objects of varying sizes being
physically removed from the ORIGINAL object. Think of hitting a large
stone with a hammer enough times in real life. The stone is made of
“particles” per se, but before you start smashing the stone into little
particles, chances are some chunks will break off first. The same rules
apply in the game engine.
The final stage of particle destruction will occur when the particle
sustains damage that takes it below it’s HP value. At this point,
particles will begin to separate from each other on a PER particle
basis. IE: Like hitting the small stone chunks with a hammer and turning
it to “dust”. Any particle that sustains such heavy damage will break
off individually. I wish for objects made of multiple, connected
particles as well as individual particles to have physical properties
that allow them to interact with and even damage other particles they
come into contact with. Individual particles will despawn while
collections of particles (objects) will remain. I’m fairly confident
that an engine such as the one I have just described would allow for a
fairly dynamic (and cool looking) destruction system.
So here are my questions:
What sort of programming difficulty can I expect to come across while
creating such an engine?
What sort of programming experience and knowledge would someone need to
create such an engine?
Does this engine potentially go beyond what the standard PC is capable
of handling? IE: Would frame rates suffer to the point where the game
becomes unplayable, even if the engine was coded efficiently?
I suppose that’s about it for now.
If anyone is interested in knowing more about this game or even
participating in its development please let me know and I would be happy
to discuss it with you.
Please log in or register to post a reply.
This is pretty long question, but if you’re not experienced programmer
(or even not programmer at all) than you have two options. Either start
learning (it will take a LOT of time), or hire a programmer (this might
on the other hand take a LOT of money - as the project you want to
create is not as trivial as it seems).
Writing destructible environment with physics is hard, but not
impossible (making it 2D simplifies it by an order of magnitude). The
actual destruction is mostly done through voronoi fractures (they look
very very good). Making it real-time is also possible. Voronoi
fracturing is possible in realtime in 3D, so it is also possible to do
it in 2D (of course with huge speed gain). Plus today, you can compute
physics on GPU, you have # cores in CPU (four, six, …) - so
computational power is large enough (if engine is well written). I bet
you could (in case of good optimizations) make it run realtime on
notebooks like Core i3 + some RAM + some integrated intel gpu.