Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411275 Posts in 69323 Topics- by 58380 Members - Latest Member: bob1029

March 28, 2024, 05:42:01 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsDestructoPod - High action trench flying demolition extravaganza
Pages: [1] 2 3 ... 5
Print
Author Topic: DestructoPod - High action trench flying demolition extravaganza  (Read 11875 times)
popawheelie
Level 0
***


View Profile
« on: July 05, 2015, 10:05:52 AM »







DestructoPod is a third person trench flying game.

Abducted by aliens, you are forced to fly a pod through a trench course inside the DestructoDome arena. Giant aliens watch (and sometimes get involved) in your flight around the course. Your pod's speed will slowly increase during the game making obstacle avoidance more difficult. However, the pod can be run into the sandy ground to slow it down. Sentinels try to destroy you, and collapsing structures will try to crush you, and aliens may occasionally toss a building at you.


LEVELS:

DestructoPod is designed to create procedurally generated levels that increase in difficulty. However, Ill be designing the first ones by hand in order to experiment with different layouts.

Level difficulty is determined by:

- Pod Speed
- Course curviness, shallowness and narrowness
- The number and type of attack sentinels
- Crumbling structures designed to crush the pod
- Mines
- Alien intervention


WIN/LOSE

With the exception of the sandy ground, any impact will affect pod health. When health goes to zero, pod will blow up. Complete the course and move on to next level. Once all levels are completed you are returned safely home to earth.


WEAPONS:

The pod has four weapons:

- Cannon
- Grenade launcher
- Rocket launcher
- Bombs

The pod has an unlimited number of cannon balls. Launcher and nuke ammo must be picked up along the course by flying over ammo boxes.


GAME DEVELOPMENT

Initially the aliens were ghosts you lassoed, but I felt the game play wasn't very interesting. I like fast paced arcade style action and so DestructoPod was born. I than merged everything in the ghost wrangling game in to this.

Third party software used includes: Maya, Filter Forge, TimelineFX, and Wwise audio.

This game is also a test for a new destruction engine Id like to release to other game developers to use.


MOAB DESTRUCTION ENGINE

DestructoPod is my first game developed using a new destruction engine called MOAB.

While the engine has most of the basic functionality needed for the game, it is primarily focused on destruction. Ideally it should be connected to a more full featured game engine such as Unity or Unreal. But before that happens, I felt it was important to go through a full game development cycle in order to make sure the engine components are capable of being utilized in a production environment.

Because computer performance varies, performance is adjustable. Fracturing resolution is modifiable in order to meet processing restrictions. Destruction load factor is also a big concern. That is how many destructible assets can be loaded at one time. I'm trying to keep that number around five. Of course asset size has a lot of influence over this as well.

Destructible asset creation is probably the most complex part of the system. These assets are typically far more difficult to produce because they require so much additional information (IE rigid body rigging, internals modeling etc) I'm working on tools to simplify the process as much as possible. I welcome any input on desirable work flow.

The engine is written in C++ and uses multi-threading to handle most of the destruction calculations. I opted not to use the GPU for this primarily because it seems most people do not want to give up GPU power for physics calculations.

Ill try to keep this blog as up to date as I can. Thanks for following along.

Cheers,
Helmar
 Beer!


Latest development test video:






https://www.youtube.com/watch?v=XaF8wVxxUbA

https://www.youtube.com/watch?v=5mpjATKfT2I

https://www.youtube.com/watch?v=sTvc7Z8KEwQ

https://www.youtube.com/watch?v=yOq-PVUN3mE





« Last Edit: June 01, 2019, 07:31:52 AM by popawheelie » Logged

Patomkin
Level 0
***



View Profile WWW
« Reply #1 on: July 05, 2015, 01:29:33 PM »

Correct me if I'm wrong, but while I chase the ghost I can demolish whole house to the ground? Shocked Will I see the house owners faces, while I walk away as a "Hero"? Evil

So far it looks cool and sound funny! And I hope my PC can handle such destruction Smiley
Logged

Cunnah
Level 1
*



View Profile
« Reply #2 on: July 05, 2015, 03:08:28 PM »

Looks good! Be warned however I am all too familiar with having cool toys and no game. hopefully you are thinking about the destruction within game-play terms (it looks like you do Wink ).

Personally I would drop the home wrecker name I think it would pay into the joke when players realize they get paid even after the destruction (as you said everyone like blowing things up!).

Good luck to you I will follow closely!
Logged
popawheelie
Level 0
***


View Profile
« Reply #3 on: July 05, 2015, 04:12:28 PM »

Correct me if I'm wrong, but while I chase the ghost I can demolish whole house to the ground? Shocked Will I see the house owners faces, while I walk away as a "Hero"? Evil

So far it looks cool and sound funny! And I hope my PC can handle such destruction Smiley

Exactly right! And seeing the owner's reaction? What a great idea to end a level. It would be comical.

Thanks,

H
Logged

popawheelie
Level 0
***


View Profile
« Reply #4 on: July 05, 2015, 04:15:59 PM »

Looks good! Be warned however I am all too familiar with having cool toys and no game. hopefully you are thinking about the destruction within game-play terms (it looks like you do Wink ).

Personally I would drop the home wrecker name I think it would pay into the joke when players realize they get paid even after the destruction (as you said everyone like blowing things up!).

Good luck to you I will follow closely!

You speak the truth. Really don't want the destruction to be just another f/x. How and when you destroy something should matter.

Im not sold on the “Home Wrecker” title either. Initially had thought “Ghost Wrangler” would make the best name, but than was talked out of it.

Thanks,

H
Logged

COOLIO5676
Level 0
**


View Profile
« Reply #5 on: July 05, 2015, 05:05:24 PM »

that is some of the hottest looking destructibility i've ever seen  Beer!. what specs did you need to run it in its current state?
Logged
popawheelie
Level 0
***


View Profile
« Reply #6 on: July 05, 2015, 06:19:23 PM »

that is some of the hottest looking destructibility i've ever seen  Beer!. what specs did you need to run it in its current state?

Thanks.  Beer!

All development and testing takes place on my old Dell laptop (~4 yrs) It's running Win7 and using VS-2012. It has:

Intel i7-2860QM @ 2.5GHz
8 GB RAM
Nvidia Quadro 1000M

Thanks again.
H

Logged

Eniimal
Level 0
***



View Profile WWW
« Reply #7 on: July 06, 2015, 02:47:15 AM »

Will we try to chase the phantoms from the inside or from the outside of the houses?
It would be awesome to try to catch a ghost and to inadvertently destroy everything in the house from the inside.

PS : This game looks cool Smiley
Logged

popawheelie
Level 0
***


View Profile
« Reply #8 on: July 06, 2015, 05:33:36 AM »

Will we try to chase the phantoms from the inside or from the outside of the houses?
It would be awesome to try to catch a ghost and to inadvertently destroy everything in the house from the inside.

PS : This game looks cool Smiley

Actually both. In some cases you'll need to break in to the house to get to hiding ghosts. In other cases they'll be just floating in the yard. Ghosts will destroy things as well. Don't be surprised to see a home's roof get ripped off and tossed at you.

Thanks.
H
Logged

popawheelie
Level 0
***


View Profile
« Reply #9 on: July 06, 2015, 05:59:14 AM »

DevLog 2015-7-6

Working on the plasma lasso these days. It's a particle spring system. I'm working on a full write up on it and will post it soon.

In the meantime, here's a little bit of background:

This project consists of two main programs. The Maya world builder, and the MOAB game engine.

Maya World Builder:

I use Maya as the world builder. In my case it made a lot of sense. I have tons of Maya code already written from previous work and so I could piggy back on it. I'm not the best Maya driver, but can find my way around. Why learn something new?

Within Maya, all the game nodes eventually converge to a main node. The main node than writes out the scene file. The game engine reads the file and plays the game. Within Maya I can either run the game from the timeline which is great for debugging or switch to an interactive mode. The game wont shade using opengl in Maya and uses opengl wire frame instead. Maya has some classes to run opengl shaders, but it looked way too complicated to implement. With Maya you must pick your fights. Instead I have it output dynamic Maya meshes. These are extremely useful for checking geometry, textures, normals etc. Plus you can than run it straight through Maya’s renderers for super high quality shots.


MOAB Game Engine:

SDL2 is used for the front end. So far its worked good. Haven’t tried porting it yet though. Eventually will want to port to Linux, SteamOS and Apple.

Bullet is used for the rigid body solver. I've had great luck with it. Having it open source has been very valuable. Initially I was using PhysX, but was forced to drop it.

OpenGL is used of course. No desire to figure out Direct3D.

Development takes place on an older Dell laptop (~4 yrs) I figure testing and optimizing on an older slower machine allows for a nice performance bounce when running on faster machines. Running Win7 and using VS-2012.

Initially development took place on the iphone. This project required a lot of experimentation, and with Apple constantly changing the OS, I decided to move to the PC. No longer have to worry about everything breaking on Apple's whim.

Take it easy.

H

Logged

popawheelie
Level 0
***


View Profile
« Reply #10 on: July 08, 2015, 06:49:41 AM »

DevLog 2015-7-8

With the plasma lasso, I was looking for something that could be emitted at different speeds and have a laziness to it. Sort of like a garden hose. More powerful lassos would take longer to emit, while weaker lassos are much quicker.

The plasma lasso consists of a spring particle system with an anchor line. Particles are emitted from the lasso gun. As they are emitted, they are connected via springs. Each particle has 5 spring connections. The first two rope springs connect the particle to each neighbor particle. This keeps the particles equal distant from each other. The second two bend springs connect the particle to it's neighbor's neighbor particle. This keeps the lasso from bending too much, or looping around itself. The last spring is an anchor spring that connects to the aim line. The aim line is drawn from the gun to the target.






Springs are touchy bastards, so I set up some controls that let me play with spring strength and dampening.




Making the springs stronger helps with aiming, but loses fluidness. Make springs too weak, and suddenly its becomes a lot harder to aim. Particle emission speed also influences how quickly you can hit a target.

For the game, I'm debating if the lasso should slowly lose power over time or as it's energy gets depleted or how it's used. This would force the player to find ways of recharging the lasso during play.

Take it easy.

H
« Last Edit: May 05, 2019, 06:03:30 AM by popawheelie » Logged

jctwood
Level 10
*****



View Profile WWW
« Reply #11 on: July 08, 2015, 07:46:42 AM »

So is the house a simple mesh or is it constructed from voxels?
Logged

popawheelie
Level 0
***


View Profile
« Reply #12 on: July 08, 2015, 06:02:24 PM »

So is the house a simple mesh or is it constructed from voxels?

It is composed of dynamic meshes.
Logged

popawheelie
Level 0
***


View Profile
« Reply #13 on: July 12, 2015, 06:40:00 PM »

DevLog 2015-7-12

Have you ever had one of those days where you wake up convinced you've got a great plan, spend the whole day coding it up, running down complicated bugs, just to realize at the end of the day, that this was completely the wrong direction and every thing you just wrote is total garbage? Had two of those in a row. Big problem when working in a vacuum.

This is the third try at drawing the lasso. The process starts with taking all the lasso particles and creating opengl points. Normals and tangents are computed for each point of the lasso. Animated Perlin noise is that run down the lasso offsetting each point along their normal and tangent. This should give the illusion of flow. The points are than converted to screen space. Multiple opengl points are created between each pair of points to create a continuous line. The points are sent to the shader and rendered.





Lasso sprite. The alpha channel uses a radial gradient for opacity:



When using depth, I get missing segments for some reason.
 


Any feedback would be greatly appreciated. Stare at something too long, and you realize you have no idea. Thanks.

I'm going for beer.
Cheers.

H
« Last Edit: May 05, 2019, 06:03:58 AM by popawheelie » Logged

Rolkus
Level 0
**


View Profile WWW
« Reply #14 on: July 12, 2015, 06:44:13 PM »

That's awesome.

Looks like some really strong urine!
Logged

@rolkus

Crockets!
Break and Enter
Eniimal
Level 0
***



View Profile WWW
« Reply #15 on: July 13, 2015, 12:09:40 AM »

That gif was cool Smiley

Is there something you dont like with this lasso ?
Logged

popawheelie
Level 0
***


View Profile
« Reply #16 on: July 13, 2015, 07:12:59 AM »

That gif was cool Smiley

Is there something you dont like with this lasso ?

I have a few friends in the f/x industry. Their reaction to just about everything I do is absolute horror. I think the lasso is coming along nicely, and looks ok. But in the back of my head I'm thinking, "Well does it really look ok? Or am I fooling myself?"

Thanks.
H
Logged

popawheelie
Level 0
***


View Profile
« Reply #17 on: July 17, 2015, 05:49:19 PM »

DevLog 2015-7-17

Actual time is always twice your original estimate, doubled.

I've been working on an asset reset system. Once an asset is destroyed you should be able to regenerate it without disrupting the frame rate. This turned out to be a much bigger pain in the ass than anticipated. Destructible assets have lots of moving parts, with pools of memory to move around, all of it shared with other assets. Spreading the reset over 5 frames was necessary to smooth the process a bit. There's some flexibility in frame loads that still can be tweaked, but the delay is noticeable. Adding a few more frames may help.







One of the biggest problems was dealing with the solver. Bullet does not like having things deleted while running multi-threaded. Standard memory house keeping would not work here. Some where internally bullet still keeps handles on removed objects. Not deleting them and only disabling them in the solver fixed the problem. Perhaps Bullet uses a lazy delete system?

Also, spent some time keeping the software from becoming bloatware. Lots of dead code, unused abstractions, “What the hell were you thinking?” crap.

Really looking forward to finally start creating some levels. Getting tired of the Bodie church.

I think it's beer thirty some where.
Have a good one.

H
« Last Edit: May 05, 2019, 06:04:35 AM by popawheelie » Logged

popawheelie
Level 0
***


View Profile
« Reply #18 on: July 30, 2015, 07:29:56 AM »

DevLog 2015-7-30

Hello, been off the grid for awhile. Needed to take a step back and get some clarity.

Been working on trying to get the lasso to behave. As you can see it's all over the place:



There are two things Im trying to achieve. First, when firing the lasso, Id like a nice fluid response. Second, when the lasso captures an object, Id like the lasso to become more directional making it easier for the player to move or toss objects with precision. These two traits seem to juxtapose one another.

I'm starting to think that the lasso spring system might be overly complicated. The looping part of the lasso is pretty messed up as well.

Take it easy.
H
« Last Edit: May 05, 2019, 06:04:47 AM by popawheelie » Logged

popawheelie
Level 0
***


View Profile
« Reply #19 on: August 02, 2015, 04:02:01 PM »

DevLog 2015-8-2

Hello, hope everyone is having a great weekend.

While springs are great for all sorts of things, they are one hell of a pain to dial in right. Start adding mass and things get even more complicated. Can be a maddening process, but I think the springs are starting to behave:



Fixed the missing lasso sections by simply sorting all the lasso sprites by depth. Was hoping to avoid this. I figured that because the lasso draw is started closest to the camera, they would naturally be sorted close enough. This of course did not work at all when it came to looping.

Swapped out the lasso targeting system. I was using a ray cast from the camera to the far clip plane. This made aiming problematic because it doesn't take in to account how close an object is to the camera. You could point directly at an object and miss it completely. Now I use a world space map that gets computed during the rendering phase. Aiming is now super easy.

The lasso is something that I really need to play test a lot. Simply changing the spring values can make the lasso a lot harder to use.  Need to find that sweet spot between fluidness and control.

Take it easy.

H
« Last Edit: May 05, 2019, 06:04:58 AM by popawheelie » Logged

Pages: [1] 2 3 ... 5
Print
Jump to:  

Theme orange-lt created by panic