Jump to content
  • Advertisement
sKRATOSphere

[HELP] explosions in Videos Games

Recommended Posts

Hello again guys, I wanted to ask, what is the best way to create a realistic explosion for video games? What are the step to follow and the software to use? I know it's a pretty big question but at this point I cannot find any good tutorial except for creating one using asset packs and I don't want that. I want to create it by myself from scratch. Currently I am using After Effects (which I am still a novice with), then assembling particles in Unity and I don't like the output that I am receiving.

Share this post


Link to post
Share on other sites
Advertisement

I created explosions mostly for 2D games, but I might have a few suggestions for you.

Use some sort of fire sprites for the actual explosion. Define an area where your fire sprites shall be emitted. When creating the explosion, burst a few particles with the fire sprite inside the area. Depending of the game, the area should be 2D or 3D.

Use a mix of smoke particles with fire particles which are pretty much flying straight away from the explosion.

Play with the lighting. Explosions are pretty bright, so you could set a light source where the explosion is.

Use as much particles as possible (even for the fire). 

Last but not least: Use references. Check out a few games with great explosions, learn how they are built up, try to copy them. Even try copying more than one explosion.

Hope it will help you with your work. :)

Cheers,
Lukas

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Advertisement
  • Advertisement
  • Popular Tags

  • Similar Content

    • By Gregory Aaron Martin
      I'm writing a sprawling fantasy series. I've written shorter stories in the world I'm creating. I want to turn one of those short stories into a game. It can be 2D. It's about dragons. There's a story arc below that shows a starting point and an ending point. Details will be given if there's anyone interested. I'm a storyteller but I don't have much knowledge on game development.
       
      Synopsis: A young man with a very special gift returns to his mountainous home to find it invaded by a cult. The community he's been a part of his whole life has been cut off by the king to ensure the cult's influence remains limited as it's very influential. This cult believes the dragon they follow and worship rests in the mountains and with the king pulling his soldiers out, the cult can begin its dig underground. The young man learns that the last individual with the same special gift who held a coveted seat on the council was killed by the cult during the cult's takeover of the village community. The young man, like others with the same special ability as him, vied for the seat on the council but he was turned away either for his own safety or because of council secrets. The cult has its own members with this same special ability and they're very intimidating. The community is oppressed for months. Tired of this oppression and feeling abandoned by his king, the young man sets out with a few new comrades to battle this cult, putting on display his own talent with this special gift.They make it their mission to sabotage the cult's dig into the mountains in hopes the cult doesn't awaken their dragon. They also make it their mission to defeat the cult members who posses the special ability. They are successful with this and he is appointed to the coveted seat on the council. 
       
      Thanks
    • By cozzie
      Hi guys,
      I've been struggling to create a function to draw an arrow with 2 lines making up the arrowhead.
      The challenge is that I somehow can't get the rotation right.
      I've pasted the code below and an image of the result.
      Findings so far, when I replace the 3x3 part of the transform matrix to identity, I get the same visual result.
      Also when I switch colums A and C in the matrix, this specific arrow looks good (with is pointing in the positive X direction).
      Any input would be appreciated.
      bool CDebugDraw::AddArrow(const CR_VECTOR3 &pPos1, const CR_VECTOR3 &pPos2, const CR_VECTOR3 &pColor, const bool pDepthEnabled, const bool pPersistent, const uint64_t pLifeTime) { if(!AddLine(pPos1, pPos2, pColor, pDepthEnabled, pPersistent, pLifeTime)) return false; /* p1 ------- X / | \ | / | \ | / | \ | p2 -----|-----p3 | Z | | | | p0 */ CR_VECTOR3 arrowDir = pPos2 - pPos1; arrowDir.Normalize(); // model space CR_VECTOR3 p1 = CR_VECTOR3(0.0f, 0.0f, 0.0f); CR_VECTOR3 p2 = CR_VECTOR3(0.2f, 0.0f, -0.2f); CR_VECTOR3 p3 = CR_VECTOR3(-0.2f, 0.0f, -0.2f); // transformation: translate and rotate CR_VECTOR3 transl = pPos2; CR_VECTOR3 colA = arrowDir; CR_VECTOR3 tVec; if(colA.x != 0 && colA.z != 0) tVec = CR_VECTOR3(0.0f, 1.0f, 0.0); else tVec = CR_VECTOR3(0.0f, 0.0f, 1.0f); CR_VECTOR3 colB = CMathHelper::CrossVec3(colA, tVec); CR_VECTOR3 colC = CMathHelper::CrossVec3(colB, colA); CR_MATRIX4X4 transform; transform.m11 = colA.x; transform.m12 = colB.x; transform.m13 = colC.x; transform.m14 = 0.0f; transform.m21 = colA.y; transform.m22 = colB.y; transform.m23 = colC.y; transform.m24 = 0.0f; transform.m31 = colA.z; transform.m32 = colB.z; transform.m33 = colC.z; transform.m34 = 0.0f; transform.m41 = transl.x; transform.m42 = transl.y; transform.m43 = transl.z; transform.m44 = 1.0f; // transform = CMathHelper::ComposeWorldMatrix(transform, CR_VECTOR3(1.0f), CR_VECTOR3(0.0f, 90.0f, 0.0f), pPos2); // transform to worldspace p1 = CMathHelper::TransformVec3Coord(p1, transform); p2 = CMathHelper::TransformVec3Coord(p2, transform); p3 = CMathHelper::TransformVec3Coord(p3, transform); if(!AddLine(p1, p2, CR_VECTOR3(1.0f, 0.0f, 0.0f), pDepthEnabled, pPersistent, pLifeTime)) return false; if(!AddLine(p1, p3, CR_VECTOR3(1.0f, 0.0f, 0.0f), pDepthEnabled, pPersistent, pLifeTime)) return false; if(!AddCross(p2, 0.02f, CR_VECTOR3(0.0f, 0.0f, 1.0f), pDepthEnabled, pPersistent, pLifeTime)) return false; if(!AddCross(p3, 0.02f, CR_VECTOR3(0.0f, 0.0f, 1.0f), pDepthEnabled, pPersistent, pLifeTime)) return false; return true; } Incorrect result:

      Aimed/ correct result (independent of arrow direction):

    • By Alexander_Vovk
      Hello Guys!
      Please share your experience, where is it better to find sales manager  specialists for indie team of 6 + people(remotely)?
      Maybe someone has a good experience of cooperation with finding projects through sale managers(USA and Canada)?
      Thank you
      Best Regards
      Alex Vovk
      Co-Founder of Sixteen Squares
      Alexander_Vovk@outlook.com
       
    • By RoKabium Games
      Been a bit quiet recently, but we've been busy bug fixing and tweaking things... Now we have lots more 'Particle effects' in the game, specifically here the Flamethrower and Enemy attacks!
    • By JoshuaFraser
      Hi and thanks for reading, I have an issue with this reactive crosshair script, everything works fine until I start changing the offset. Give the script a go and you will see what I mean, when I do SetOffset(0f); it doesnt always set back to the origional state, if anyone can spot a fix I'd be super appreciative!
      using System.Collections; using System.Collections.Generic; using UnityEngine; public class ReactiveCrosshair : MonoBehaviour { [SerializeField] GameObject c_limb_prefab; private float center_offset = 0f; private float current_offset = 0f; private float max_offset = .5f; private int number_of_limbs = 4; private float limb_length = .05f; private float limb_width = .005f; private List<GameObject> c_limbs = new List<GameObject>(); public void SetupCrosshair(){ for (int i = 0; i < number_of_limbs; i++) { GameObject line_go = (GameObject)Instantiate (c_limb_prefab); line_go.transform.SetParent (this.transform); Vector3 limb_pos = new Vector3 (0f,0f,0f); //line_go.transform.position = limb_pos; line_go.transform.localPosition = limb_pos; LineRenderer line = line_go.GetComponent<LineRenderer>(); line.startWidth = limb_width; line.positionCount = 2; line.SetPosition (0, line_go.transform.localPosition + new Vector3(center_offset, 0f, 0f)); line.SetPosition (1, line_go.transform.localPosition + new Vector3(center_offset + limb_length, 0f, 0f)); line.useWorldSpace = false; c_limbs.Add(line_go.gameObject); } if (c_limbs != null) { OrientLimbs (); SetOffset (0f); } } public void OrientLimbs(){ for (int i = 0; i < c_limbs.Count; i++) { float rotation_step = 360f / (float)c_limbs.Count; c_limbs [i].transform.RotateAround (c_limbs[i].transform.position, c_limbs[i].transform.forward, 90f + (rotation_step * (float)i)); } } public void SetOffset(float _current_spread){ float offset = Mathf.Lerp (0f, max_offset, _current_spread); for (int i = 0; i < number_of_limbs; i++) { if (offset > current_offset) { Vector3 pos = c_limbs [i].transform.position + (c_limbs [i].transform.TransformDirection (Vector3.right) * offset); c_limbs [i].transform.position = pos; } if (offset < current_offset) { Vector3 pos = c_limbs [i].transform.position - (c_limbs [i].transform.TransformDirection (Vector3.right) * offset); c_limbs [i].transform.position = pos; } } Debug.Log ("SetOffset() offset: " + offset.ToString () + " _current_spread: " + _current_spread.ToString() + " localPos: " + c_limbs[1].transform.localPosition); current_offset = offset; } }  
    • By Erik Nivala
      So, as the title says i am trying to figure out a good way sync all that information with other players in Unity. My problem is that i can't come up with a good solution since i am used to creating classes for everything e.g. attachments are its own class and then the weapon would save a reference to that attachment. But since you can't send custom classes over [Command] & [ClientRPC] i am a little stuck. A solution for this would be giving each attachment for a slot a unique ID and then passing the ID to other player but i feel like that is very error prone if other ppl add a new attachment or the IDs get mixed up.
      Is there a "standard" way that this is usually done that i am missing?
      I am fairly new to programming so any help is appreciated!
    • By Paul Bto
      State of the search
      I'm not looking / I'm still looking
       
      Description
      It is a third person game where you join more players to fight against bosses in the PvE style of the mmorpg, looking for online companions to help you defeat your enemy, where everyone does their respective work, such as tank, dps or heal, in groups of 5 or 10 players.
      The difference with other mmorpg is that here, since there is no open world, you will not have to go through it doing hundreds of missions and using many hours to get to the content that really interests you, which, in the case of PvE, are the dungeons and raids.
       
      Objectives of the project
      For this project we will first make a demo that will only be the boss of a 5 player dungeon.
      The first phase of this project is to release a video gameplay for crowdfunding (kickstarter maybe), so we will focus more on the visual, which could be falsified if the mechanics do not work. If the crowdfunding gives green light would be the game, which if in turn would work would be updated in the future with more dungeons and bands. The ideal would be to make a playable demo.
       
      Compensation
      If this game generates benefits outside crowdfunding, the profits will be distributed depending on the work and disbursement of each one.
       
      Technology
      Unreal. If you want to learn how to use this software with the project, you can.
       
      Required profiles
      - At the moment 2 Programmers (if has multiplayer knowledge in Unreal better).
       
      - 1 2D Artist to make the interface design and some concepts. You are going to try make interfaces like this:

      It would be ideal if you can devote at least 7 hours by week.
      It is a plus if you have experience with high level PvE content in some mmorpg.
       
      Team structure
      Pablo. Environment artist.
      Diego. Character artist.
       
      Web
      Waiting until the equipment is assembled.
       
      Contact
      pablo.barreto.jimenez@gmail.com
       
      Additional Information
      I have the GDD, it depends on the work but, I think the demo could be done in 6 months.
      Here I leave some images of what I did of the project in Unity, where basically I have been testing (The project will be done in Unreal):



       
      Desired feedback
      If you think you can give me some advice about the project, feel free to give your opinion.
       
    • By MintyLyton
      I'm looking for any team / people that need a programmer for their project. I'm looking to expand my portfolio which you can see Here. I'm more experienced with Unity but I can spend the time to learn new Engines if that's your preference. I have worked on Unreal Engine 4 before but I might take some time to re-learn it, if the project requires it. Feel free to DM here or use the contact info on my website. 
  • Advertisement
  • Popular Now

  • Forum Statistics

    • Total Topics
      631400
    • Total Posts
      2999860
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!