Programming Particle Effects in my Game Engine

Sdílet
Vložit
  • čas přidán 1. 11. 2022
  • Devlog video about "Homegrown", a casual farming game I'm creating using my own engine. This time I'm implementing particle effects into the game!
    Support the channel on Patreon and get access to the code for this game, the city-builder, and Equilinox:
    / thinmatrix
    My previous game "Equilinox":
    store.steampowered.com/app/85...
    You can follow the progress of the game on my social media:
    Twitter: / thinmatrix
    Instagram: / thinmatrix
    Facebook: / thinmatrix
    Trello: trello.com/b/W3zkIJTM/farm
    Email: thinmatrix@gmail.com
    Background music by Jamal Green:
    open.spotify.com/artist/50jTM...
    Outro music by Dannek Studio:
    / dannekstudio
    #devlog #Homegrown
  • Hry

Komentáře • 406

  • @ThinMatrix
    @ThinMatrix  Před rokem +361

    Sorry it's been a while since the last upload! I was on holiday at the start of October and then had an annoying cold for a week or so, so progress was a little slower than usual last month. Back on track now though!

  • @10produz90
    @10produz90 Před rokem +288

    Those 3D particles look awesome. The game feels much more "alive" with them

  • @dukereg
    @dukereg Před rokem +174

    One bit of feedback about the placeholder digging effects when clearing the grass (as someone who has been doing it for real this morning 😄): when you take a green lawn and dig it up, you're usually lifting chunks of grass/soil held together by grass roots, which comes apart in chunks. It has relatively moist (dark& heavy) soil crumbling down off of it. It's full of worms and gives an impression of fertility and richness and life. Dry-looking dust effects billowing upwards give an impression of dead, infertile dirt that clashes with the green grass and probably with the mood of the game. Just my 2¢.

    • @Selrisitai
      @Selrisitai Před 9 měsíci +1

      I'm surprised that this didn't get a response, at least a heart, as it's one of the most lucid and meaningful responses.

  • @KestrelQ
    @KestrelQ Před rokem +3

    The leaf on Rufus' face as he looked at the camera melted my heart

  • @kurtisbradley5724
    @kurtisbradley5724 Před rokem +26

    Honestly, I'm just mezmerized by the beautiful morph shots at 5:55 and 10:27

  • @RobertjrPlays
    @RobertjrPlays Před rokem +110

    Really nice work on the particle system, especially the cleanliness of the new code! Only thing I would suggest is for harvesting plants, you should have an animation of the plant being pulled up instead of particles that make it look like its being ruined/trashed.

    • @ThinMatrix
      @ThinMatrix  Před rokem +54

      Thanks! And yess, I definitely agree. I'm not really sure how I'll do that with the wheat, but I was planning on doing that for plants like the carrots and turnips.

    • @RobertjrPlays
      @RobertjrPlays Před rokem +3

      Awesome, thank you so much for the response!

    • @OKayD3N
      @OKayD3N Před rokem +1

      @@RobertjrPlays you’re welcome

  • @heavyhand27
    @heavyhand27 Před rokem +87

    The particles are looking amazing and really satisfying too. Can't wait to hear the sound effects to go along with them! I'm already imagining them each time you show the particles off in the video :))

  • @garytheblobfishdev
    @garytheblobfishdev Před rokem +53

    ThinMatrix, I want to say thank you for your content. The content you produce now gives me and others tonnes of insipiration for programming and your old OpenGL tutorials gave us a foundation for doing so. I know that I still have a lot to learn and hopefully I will get there someday making games to a similar standard to what your games are made at. Thank you!

  • @marcruijs1039
    @marcruijs1039 Před rokem +9

    Holy cow did I ever underestimate the usefulness of particle systems. I never felt like they added much, so I never bothered with them. But seeing yours now, man, that’s a whole new level of immersion. Well done mate!

  • @jackdavenport5011
    @jackdavenport5011 Před rokem +2

    Seeing a glimpse of Socuwan again after all this time was very cool :)

  • @mathewmccloskey8242
    @mathewmccloskey8242 Před rokem +2

    Rare Socuwan mention! I started watching during its development

  • @At-M
    @At-M Před rokem +2

    Just a quick idea for later, add the ability to set specific amounts of particles, regarding to the performance setting people choose.
    For example: If you have a good pc and set "particles" to high, it has 100% of the particles, medium has 50% and low something like 15% or so.
    I've had a few games just bog down on FPS when the amount of 3d particles is not correctly scaled with performance settings

  • @smjonas8616
    @smjonas8616 Před rokem +24

    To make the code for the different particle components even nicer, you could use the builder pattern so you can simply chain the different effects :D

    • @leoingson
      @leoingson Před rokem +2

      That's exactly what he does? He takes a collection of (component)classes, and calls all their update() methods one after another.

    • @sky01james28
      @sky01james28 Před rokem +5

      @@leoingson I think they mean “make the addComponent method return the instance instead of void” but it really doesn’t make a difference when the components are read from a file anyway

  • @Keatosis_Quohotos
    @Keatosis_Quohotos Před rokem +3

    I love how these videos are one part Dev log, one part lifestyle vlog, with really high production values across both

  • @ffdetonados
    @ffdetonados Před rokem

    I love the dust hiding the floor and also the mesh update; also, just make every vfx 3D, they look like they are part of the world, and it's so nice watching them react to the environment...

  • @megahombre24
    @megahombre24 Před rokem +2

    I hope BusfahrerWalter is doing allright, I miss him.
    Awesome video once again, so interesting and chill, I can't get anough of it, keep up the great work.

  • @GabrielAguiarProd
    @GabrielAguiarProd Před rokem

    Nice touch with the particle effects, they really add an extra layer of vividity to your game. Awesome content as always 👍

  • @erc0re526
    @erc0re526 Před rokem +4

    I love that you're making your own stuff, in Eclipse, Java, tools you know, tools that everyone online would tell you not to use because "they aren't performant" (bullshit), "old" (not true) and "not a game engine" etc. You don't let anything of the sort stop you, and you're making a beautiful game! Also those particles look cool. It's part of the polish people love to see in a game, I think

  • @kozan7493
    @kozan7493 Před rokem

    That was an impressive pepper. With the name of "Homegrown" I'm guessing there will be a restaurant "frontend" with some kind of cooking in the game eventually? That would be a fun gameplay loop.
    Grow veggies > store in the kitchen > cook from what you have > serve guests
    It would just be your character to start, but you'd have to hire staff to cater to your garden, man the grills, serve guests, etc.

  • @cocccix
    @cocccix Před rokem

    Omg this game looks so beautiful now. I was no expecting the particle effects to be so useful.

  • @MrVook
    @MrVook Před rokem

    I'm sure it has been mentioned, but i LOVE the fact that this game is called "Homegrown" - its about growing plants at home, in an engine that was "homegrown". You're a genius, awesome video

  • @leoingson
    @leoingson Před rokem

    Great example for component based architectur! The common descriptions are so uselessly abstract - in reality it is pretty simple, and makes a lot of sense.

  • @edsilver
    @edsilver Před rokem +6

    Your description of your component implementation makes me so excited to code something! Would love a video or two on the overall class structure of the game; would be invaluable. Otherwise, thanks for these calming videos, the farming game looks better everyday :)

  • @wcrb15
    @wcrb15 Před rokem

    The 3D particles look so freaking good!! It's not something I would have guessed would have made much difference, but boy do they look better than flat 2D ones.

  • @manfrombritain6816
    @manfrombritain6816 Před rokem +1

    how is it possible to have your life this well put together. i feel like i would go insane with this much order

  • @mryeezy9162
    @mryeezy9162 Před rokem

    Man, Rufus is a cool guy. Loved when he had a leaf on his face. 10/10 video.

  • @henningKO
    @henningKO Před rokem

    I didn't know what was missing before but, yes: Just a little bit of "juice"! Looks great, especially the dust cloud bits.

  • @morris4622
    @morris4622 Před rokem +8

    beautiful work, u never fail to impress us.

  • @JohnSheppard92WasTakenThxYT

    Nice system! I think you could improve it even further by implementing a way to randomize parameters within a given range. What you have basicly done here is creating a fairly simple way to make prefabs for your particle effects with the files you create for them. If you wanted to, at a later time, add some variation to an effect, it could mean you having to create multiple versions of it and choosing one of those versions each time you play the effect. If you instead implement some sort of way to put ranges for the parameters instead of hard numbers, you could make every particle effect just a little bit different. For example having the number of particles chosen at random between 50 and 100 instead of a fixed 75. You'd still have a great amount of control over all your effects but they would feel different each time without you actually having to create different versions of them. Maybe you already have added something similar to this though, since I do see some properties with "average" in their name. Hope it helps anyways :)

    • @ThinMatrix
      @ThinMatrix  Před rokem +15

      Thanks, and yes, I do already have support for that with most of the settings such as size, speed, life length etc. Most components have an average value and standard deviation value which I use to create some randomness. I haven't done it yet for the particle count though - I'll do that!

  • @deyama2012
    @deyama2012 Před rokem +1

    Dust particles and especially wheat harvesting particles are amazing. Seed planting ones are nice too.

  • @TwoTeaTee
    @TwoTeaTee Před rokem

    It's a privilege to learn few design principles along the vlog.

  • @Grimille
    @Grimille Před rokem

    Glad to see the shadow moving along with the wind as we discussed in your last video ! Great work !

  • @mia_bobia_
    @mia_bobia_ Před rokem

    I really enjoy how you structured the particle class with component objects. Blowing my mind a little I can't wait to try out that style of OOP :)

  • @StarContract
    @StarContract Před rokem +1

    I would suggest adding the ability to render text as a particle effect.
    Example of use: when you harvest corn, an additional particle effect will render "+2 corn" moving up the screen and fading away.

    • @ThinMatrix
      @ThinMatrix  Před rokem +1

      Yeah I agree, something like that would definitely be good. Thanks!

  • @ramoncf7
    @ramoncf7 Před rokem

    The particle effects look great and really help making the world feel alive.
    Thank you for your work, your OpenGL tutorials have helped me a lot and I can only wish you the best for this game.

  • @JN-hs5xl
    @JN-hs5xl Před rokem +3

    I love that you are making your game in Java. If you were to ask on any forum people would tell you Java is a terrible choice and you should use C++ instead (or Rust nowadays would probably be recommended). But Java is fun to use, IDEs work amazingly well, the performance is good.

  • @fmvlee
    @fmvlee Před rokem +4

    The particles look great and I like that each action has some sort of effect whether that be a small effect with planting seeds or a big effect when watering, they all give the user feedback. Thanks for explaining the component system you are using, it makes sense to create it that way and I can think of many use cases for that pattern having seen it here.

  • @IslamAudioStation
    @IslamAudioStation Před rokem

    The particles made the game so much better.

  • @JC-jz6rx
    @JC-jz6rx Před rokem

    5:56 -5:57
    I see what you did there, getting slick with the editing skills on that transition I see. Thank you for the update on the project

  • @kylemason01
    @kylemason01 Před rokem

    So impressed by how far this is coming on. Loving the new effects!

  • @timbelion3765
    @timbelion3765 Před rokem +3

    Mixture of 2d and 3d particles looks amazing!

  • @rubixkyoob2
    @rubixkyoob2 Před rokem +2

    Your devlogs always make me feel so cozy :D
    Awesome work on the particle system! It's always inspiring to watch your progress on this project.

  • @monochroma3803
    @monochroma3803 Před rokem

    i gotta say i really like how particle effects look now! very satisfying to watch... Good luck on your further development! 🔥

  • @localvoidlander8093
    @localvoidlander8093 Před rokem

    I'm so glad I found your channel so many years ago. you're a huge inspiration and I can't wait to play your next game!

  • @MattKander
    @MattKander Před rokem

    Loved the little Halloween pumpkin!

  • @leemclafferty5622
    @leemclafferty5622 Před rokem +1

    I love all the plants at your set-up. I wish I had a nice big window like that. Keep up the awesome work!

  • @otoS97
    @otoS97 Před rokem +3

    Amazing addition to the game. They look so smooth and fit the style perfectly. Love it!

  • @rstar0000
    @rstar0000 Před rokem

    These look very good! Great job on the implementation and looking forward to playing this game

  • @embergamedev
    @embergamedev Před rokem

    Always love these videos. Keep it up! Your code is looking so clean. Always brightens my day to see a new vid posted by one of my favorite game devs.

  • @cineblazer
    @cineblazer Před rokem

    I can't express how much seratonin these devlogs bring me.

  • @ThePandaKingFTW
    @ThePandaKingFTW Před rokem

    In every single one of your videos, the thing I am most jealous about is your ability to just casually make good meals lmao. I feel like its a struggle just to make a bowl of cereal

  • @KuroSamaMG
    @KuroSamaMG Před rokem +1

    Amazing work as always!

  • @Joern290
    @Joern290 Před rokem +1

    Love the 3d particle effects! They make the game look so lively 😊

  • @KipashCreates
    @KipashCreates Před rokem

    It's lovely and funny to see how your decisions remind me of how Unity have their CPU based particle system implemented as well❤love your game-dev-vlogs, keep it up :)

  • @nitricswight
    @nitricswight Před rokem +1

    This series inspired me to finally get my head down with OpenGL and my own engine for a game. Particle systems is something I'll be getting to soon as well!

  • @Sandrogo_
    @Sandrogo_ Před rokem

    You releasing a new video makes me so happy. Keep up the great work!

  • @joeyc.7845
    @joeyc.7845 Před rokem

    To make the particle system match the plant, add a component where you pass the mesh of the plant. The particle system can then uses the mesh and material color to generate the particles.

  • @ocleidyreve6361
    @ocleidyreve6361 Před rokem

    Amazing as always!!

  • @phirenz
    @phirenz Před rokem

    When you first said you implemented support for 3D particles, I was doubting their potential usefulness.
    But the results really speak for themselves. It's a bit of an understatement to say they fit the art style... They almost redefine the art style into something new.

  • @hypercharge26
    @hypercharge26 Před rokem

    The new art style very much suits the particle system! Also I feel your devlogs are really unique. Waiting for the next one! :)

  • @Atomic67G
    @Atomic67G Před rokem

    I think these dev vlogs are wonderful.
    You have a very fluid, professional flow to your videos.
    Once everyone is able to play the game , people who have followed your vlogs will have a whole new respect for the amount of work that goes into the game.
    Every time we do a task in the game we will remember that we saw it being created.
    Enjoyed the update 😊👍

  • @vrojak7636
    @vrojak7636 Před rokem +2

    Damn the spooky paprika is genius, I'll make some myself this week 🤤

  • @syntheticfox_
    @syntheticfox_ Před rokem +1

    I dig the particle effects, nice work. Slight suggestion / personal opinion: I feel like the watering plants particle effect is a bit too much all at once. maybe some type of swooshing of water back and forth like from one corner to another or from a few points might look nice. kinda how it would look as if you were actually watering an area of plants.

  • @MhiranPatel
    @MhiranPatel Před rokem

    Great progress!

  • @ezeveritta6871
    @ezeveritta6871 Před rokem

    I loved the transitions between screen and video. good video, you always inspire me

  • @kipcrossing
    @kipcrossing Před rokem

    Love your work!
    I also love the style of your videos; I get inspired by you.

  • @tropicallion9662
    @tropicallion9662 Před rokem

    The game looks amazing! I cannot wait to see what else u do! Also can’t wait to buy the game when it is released always wanted a game like this

  • @erenozdemir9247
    @erenozdemir9247 Před rokem

    Great job mate! I loved the harvesting effect especially.

  • @ashleyedwards9523
    @ashleyedwards9523 Před rokem

    All of your videos bring me os much peace! Another great update, the 3D particles are looking really cool! Can't wait to see what's to come

  • @thegabman
    @thegabman Před rokem

    Such a huge improvement in immersion. Love the 3D particles! ❤

  • @platinpalladium
    @platinpalladium Před rokem

    Very nicely done. I especially like the watering effect!

  • @lukehibbert3000
    @lukehibbert3000 Před rokem

    upload notification from you make my day, i love seeing all these systems come together to make this game a lot more beautiful.

  • @qv8686
    @qv8686 Před rokem

    Wow! The game looks fantastic!

  • @eboatwright_
    @eboatwright_ Před rokem +1

    Looks awesome! The game is coming along well :)

  • @HaeriStudios
    @HaeriStudios Před rokem +1

    Particles look very juicy!
    I think it would be also cool to have a 3d animation of the item when it is being used. Spawn it out of thin air, play a playful animation and have it disappear again. Would be a lot of work but in a game dedicated to gardening, this could make the fundamental interactions much more satisfying.

    • @ThinMatrix
      @ThinMatrix  Před rokem +2

      That is something I've been considering! It would mean though that I have to make a 3D model and animation(s) for every new tool that I add, and I'm planning on adding quite a lot of tools, so that is putting me off doing it a little bit. But I'll keep considering it!

    • @HaeriStudios
      @HaeriStudios Před rokem

      @@ThinMatrix this could also help justify the time it takes for an action to complete. Say for example a small and cheap watering can would play a much longer animation to water the same area compared to a big and expensive one. But yeah, for sure it would be a lot of work.
      By the way, thank you for all the great tutorials you have done. I managed to make a small game engine for my bachelor thesis with the help of your and theBennyBox's tutorials :D

  • @ashersaipe
    @ashersaipe Před rokem

    Wow this is really cool. The particles look great! Nice video

  • @nokkturnaldev
    @nokkturnaldev Před rokem +1

    This looks great. The new art style screams "fluffy, bouncy animations" to me. The dust particles are great, definitely not too much. Hell, you could even go one step further and make the ground 'bounce' when you do it. Like my old art director used to say, 'Sometimes less is more, but often more is more'.

  • @casualdutchman
    @casualdutchman Před rokem +7

    Very nice particles. Awesome implementations. Maybe you could add a leaf color to crops and then use that color when the leafExplode particles are emitted. Could save you on making a ton of different systems

    • @Wuskus
      @Wuskus Před rokem

      I was going to suggest the same thing!

  • @GAE260688
    @GAE260688 Před rokem

    Those effects look really really good! I also really like the art style 😊

  • @FirstCrimson
    @FirstCrimson Před rokem

    Right when I was trying to look for new game dev videos to watch, a new ThinMatrix upload pops up.

  • @bunpasi
    @bunpasi Před rokem

    What a phenomenal video!

  • @Nadeloehr1990
    @Nadeloehr1990 Před rokem

    Dude, the particles look AMAZING!!!!

  • @zambodev
    @zambodev Před rokem

    For the refilling effect you could make the bucket go down in the well and make in come up when the refilling is done

  • @Rijads
    @Rijads Před rokem +2

    Its fine, whenever u get to mate, quality content is what matters.

  • @linkrider2302
    @linkrider2302 Před rokem

    I love the particle system, good job ❤

  • @LookiePookie
    @LookiePookie Před rokem

    hey man ! your doing some really great stuff. so excited to buy this. good things come slow, so take your time! loved the video

  • @kipporah
    @kipporah Před rokem

    I like that your farming game is a point and click game

  • @ChristinaCreatesGames

    3d particles look so much more alive! I never stopped to think about 2d vs 3d with particles, but I'll have to give them a try for sure somehow.

  • @BarneyCodes
    @BarneyCodes Před rokem

    Great video as always! You've given me a lot of things to think about for the particles in my own game. I've been doing the monolith particle update like you were doing in equilinox, but I'm really keen to try out the component method!

  • @tuni7264
    @tuni7264 Před rokem

    nice job ! keep up the good work

  • @midkaa
    @midkaa Před rokem

    Omg, the particles looks so cool and the editing program is something that would be really usefu 👍l. Youre also so inspirational ❤️

  • @itay7884
    @itay7884 Před rokem

    looks awesome very nice

  • @AtGigis
    @AtGigis Před rokem

    Your life seems so peaceful. Your garden in real life is beautiful by the way!

  • @helsontaveras7961
    @helsontaveras7961 Před rokem +1

    Hot reloading for your engine (will make you massively more productive, and should be a video!)
    1. Store your config files for your game engine in JSON file (or YML, doesn't really matter)
    2. In your game engine, instantiate your systems by reading from the config files
    3. When your game starts, run a file watcher to detect changes in your config files
    4. If a change is detected, iterate through your systems and re-read from the config files / refresh their state. If there's a difference, update the system attributes and/or component attributes.
    5. it should render the next frame according to your new data/configurations if you are using ECS framework.

    • @ThinMatrix
      @ThinMatrix  Před rokem +1

      Thanks, that sounds good, I'll give it a try!

  • @hugoenzo2444
    @hugoenzo2444 Před rokem

    Been waiting for a Thin Matrix video for sooo long, Missed you fam

  • @matmateus
    @matmateus Před rokem

    for all those years that i've been watching these devlogs, the cooking part is one of my favorites. definitely wasn't expecting the halloween edition! (also, carefully taking notes 📝)

  • @ApocalypeX
    @ApocalypeX Před rokem +1

    Looks great. You should add hot reloading (using file watching apis) of the particle files so you can edit the file and see the changes in the game immediately, would save on iteration time without having to build an editor.

    • @ThinMatrix
      @ThinMatrix  Před rokem

      That does seem like a pretty good solution. Definitely easier than making an entire editing app. I'll give it a try!

  • @MrOmega-cz9yo
    @MrOmega-cz9yo Před rokem

    I'm envious of your coding and cooking skills! 😜

  • @ZProle
    @ZProle Před rokem

    Wow, this is really shaping up :)

  • @andrewgallimore9521
    @andrewgallimore9521 Před rokem +3

    You should have the water bucket inside the well drop down as you are filling your watering can, it would just add more movement to the game. Even if it doesn't make sense that water is splashing from the well or that it is filling up without the bucket coming back up until after you release your mouse. It would hopefully be a small amount of eye candy & flourish to the game. Amazing work so far!

    • @sky01james28
      @sky01james28 Před rokem +1

      What happens if the user stops holding mouse down before the animation is complete? Might look funny

    • @andrewgallimore9521
      @andrewgallimore9521 Před rokem

      Your right, it would have to be some programed animation that can adjust to the users actions rather than pre-baked animation that just runs. So that it would lower withing 0.5 sec of clicking, and raise for 0.5 sec as soon as the user finishes clicking. It would look a little funny if you thought about how it would actually be getting you the water, so it would be more movement for movements sake in this case. :D