Technical Devlog: Implementing Audio into my Game Engine

Sdílet
Vložit
  • čas přidán 29. 09. 2023
  • Devlog video about "Homegrown", a casual farming game I'm creating using my own engine. In preparation for the UI overhaul I'm implementing the audio system into my game engine this week.
    Support the channel on Patreon and get access to the game & code for Homegrown, the city-builder, and Equilinox:
    / thinmatrix
    Play 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 • 266

  • @ThinMatrix
    @ThinMatrix  Před 8 měsíci +273

    This is a much more technical devlog than usual so if that's not your thing then this one might not be for you (and if it is your thing then yay, enjoy!)
    We'll be back to more visual features next time with the UI makeover.

    • @RubSomeDirtOnIt
      @RubSomeDirtOnIt Před 8 měsíci +7

      I love both! 😄

    • @Ferenc-Racz
      @Ferenc-Racz Před 8 měsíci +13

      I love this kind of content, which is a bit more technical. Congratulation for the huge amount of progress. :)

    • @deadpl55
      @deadpl55 Před 8 měsíci +1

      I'm learning game development and i like both or them but this type of content i like most

    • @user-ob5hj5vn8c
      @user-ob5hj5vn8c Před 8 měsíci +6

      I agree, this is the content I like the most actually! :)

    • @artymer5021
      @artymer5021 Před 8 měsíci +5

      I actually quite enjoy the more technical content. I find it not only interesting but also very inspiring. I am an aspiring game dev as well so these videos often fuel the muse haha

  • @jprice_
    @jprice_ Před 8 měsíci +858

    Everyone crying over unity while this mad lad just chills with his own engine. Absolute legend.

    • @Planko991
      @Planko991 Před 8 měsíci +46

      lmao, actually so smart from thinmatrix to do this looking at it retrospectively. Best unintended business decision

    • @faluhub
      @faluhub Před 8 měsíci +13

      You're saying this as if it's not actually a problem that unity's doing this.

    • @pedroduran8927
      @pedroduran8927 Před 8 měsíci +32

      1. Unity fixed pricing with a 2.5% revenue cap, becoming cheaper than unreal.
      2. Making an OWN engine consumes time, you have to be VERY GOOD at math / vector programming to just have some level of a simple camera rendering a cube.
      3. Even making an engine that returns an executable application is a real PAIN. now imagine trying to produce multi-platform game on an own engine 💀
      Engines costs money because they save time and resouces. You can always go godot but it has its sharp edges too.

    • @jprice_
      @jprice_ Před 8 měsíci

      @@pedroduran8927 Why even touch godot when king released their own engine for all to use? Both Unity and Godot have a smiliar issue - they are led by a buffoon.

    • @willcollins5121
      @willcollins5121 Před 8 měsíci

      @@pedroduran8927ehhh this is built on lwjgl cross-platform isn’t a huge issue here

  • @finalforeach
    @finalforeach Před 8 měsíci +260

    The procedural sound system you made solved a problem I wasn't even aware of! I suspect most game devs will run into that issue at some point. Glad to be following this series.

    • @Zonix_Official
      @Zonix_Official Před 8 měsíci +4

      I'd assume as a by product of this, when it comes to implementing Sound to your Minecraft Recreation that this will majorly help!
      Nice to see you also watching ThinMatrix, FinalForEach! :D

    • @finalforeach
      @finalforeach Před 8 měsíci +5

      @@Zonix_Official I stand on the shoulders of giants! ThinMatrix's videos is how I learned to make good looking water graphics after all.

  • @haydenap
    @haydenap Před 8 měsíci +124

    Man the procedural sound effect thing you did for variable interaction time is so cool. Great solution to that problem.

    • @lukasjost44
      @lukasjost44 Před 8 měsíci

      I think this is exactly how it works in Minecraft

  • @raphaelvinh
    @raphaelvinh Před 8 měsíci +82

    Can we talk about how good this transition at 1:26 is ? good work man !

    • @alejorag
      @alejorag Před 8 měsíci +1

      He does it a lot but everytime I see it I still marvel at it lol it just looks so clean

  • @jamesbaconreid
    @jamesbaconreid Před 8 měsíci +100

    Love the sounds! Especially the procedural ones - that's so cool!

  • @Joshimuz
    @Joshimuz Před 8 měsíci +19

    I appreciate the more technical videos! The procedural sound generation for the arbitrary length actions was super nice!

  • @szabados1980
    @szabados1980 Před 8 měsíci +2

    Actually I prefer this sort of devlog videos to where only the game play features are shown. 👍👍👍

  • @JustATempest
    @JustATempest Před 8 měsíci +29

    For building compound sounds, I would recommend using a builder pattern, as you're effectively building a track. You would create a compound sound with an add track method that takes a track, and returns 'this', allowing you to chain addTrack function calls, that way you don't have a block of variables defined in a row like at 12:35 with incrementing variable names like track0, 1 2 3. You've used the builder pattern with sound 2D builder I think it would work really well with compound sounds. If only to keep consistency of the code. It's still be a good idea. You're using the factory pattern, for the digging sound effect which is a good idea. When you combined with patterns, a new world opens up. Imagine a sound effect factory, that can create the sound effect you need, and using the builder pattern to configure the given sound effect as a compound sound.

  • @sirynka
    @sirynka Před 8 měsíci +27

    It'd be cool to change the pitch of the sound during the digging or water pouring process so the player would have an intuition on how long the action would take without even looking in the screen.

    • @ThinMatrix
      @ThinMatrix  Před 8 měsíci +15

      Nice idea!

    • @madmanmax120
      @madmanmax120 Před 8 měsíci +5

      @@ThinMatrix To add onto this, it'd be an awesome bit of polish to have, for instance when harvesting a section of crops, to have the "harvest" sound rise in pitch over subsequent harvests. So basically crop 1/5 will be the lowest pitch, 3/5 being in the middle, then 5/5 being the highest, scaling in pitch depending on the size of that particular group of crops.
      It builds a sense of rising accomplishment when you have an audio source do that, very similar in to how Minecraft does their sfx for breaking blocks. Or y'know, just implement it on a smaller scale and just do it for each individual plant. I think it'd fit right in with your farming game here!

    • @AgentM124
      @AgentM124 Před 8 měsíci +3

      And not everything has to follow this system, you could also increase the frequency at which sounds are played to give a sense of speedup.
      That way not every action sounds like a fire alarm.

  • @LifeOfMohammed
    @LifeOfMohammed Před 8 měsíci +47

    I love how far you have come with this and like I love how good the videos are getting with all the transitions and all looks so good! Have you got a goal in mind for releasing this game? I also love the out-of-monitor transition so much haha also pretty neat you are using ur own tutorials to remember stuff!

    • @ThinMatrix
      @ThinMatrix  Před 8 měsíci +24

      Thanks! I'm currently aiming for end of next year, but that might be a bit optimistic.

    • @LifeOfMohammed
      @LifeOfMohammed Před 8 měsíci

      @@ThinMatrix That is awesome to hear sadly I was abit to eager to try it out so its awesome you uploaded it on Patreon!

    • @Alex-fn7kj
      @Alex-fn7kj Před 2 měsíci

      End of next year ?!! But your game and his loop already is so polished, adding new content like plant and tool and farm upgrade okay, but if you leave yourself until end of next year it mean we haven't seen half of the systems and mechanics build implemented yet, right ? 👀

  • @justred2337
    @justred2337 Před 8 měsíci +8

    I love it how you carefully explain everything while also making a game using Java, most people just use Unity and C# to make basic stuff but you made your own engine! Would love to playtest someday, keep up the awesome work!

  • @RubSomeDirtOnIt
    @RubSomeDirtOnIt Před 8 měsíci +4

    Even though the city builder ended up being a bit more than you could chew at the current time, I think the value of that experience is really shining in Home Grown. You consistently use things from Equilinox and the city builder, or take lessons from things that you did for those games (either for what to do or what NOT to do). I definitely think the experience was invaluable.
    Really looking forward to Home Grown!

  • @msajidsarker
    @msajidsarker Před 8 měsíci +1

    You have a brilliant mind, and you are creating the most beautiful little garden simulator to cultivate peace.

  • @bonecircuit9123
    @bonecircuit9123 Před 8 měsíci +1

    you can break the song in stems, intro, chorus, bridge and outro and then randomly play the chorus and bridge a few times in variations and cap them off with intro and outro. additional chorus and bridge chunks add to the dynamics

  • @GetaVe
    @GetaVe Před 8 měsíci +1

    Elegant solution and it sounds like it works well. My main suggestion is less harsh sounds like metal and hard rock. And more soft crunchy sounds.

  • @FacemanArt
    @FacemanArt Před 8 měsíci

    Super cool devlog! Loved how you approached the procedural sfx. Keep up the great work!

  • @ccoodduu
    @ccoodduu Před 8 měsíci

    This devlog was so interesting and useful! It's amazing how much sound does to a game.

  • @robvp71
    @robvp71 Před 8 měsíci

    Super inspiring and the way you structure your work.. impressive!

  • @JoelFunk
    @JoelFunk Před 8 měsíci

    Brilliant work as always. The sounds add so much weight to the game interactions. Good job!❤

  • @Aquillyne
    @Aquillyne Před 8 měsíci +2

    Those procedural sounds are incredible! Bravo.

  • @SharkyGamess
    @SharkyGamess Před 8 měsíci +7

    It’s amazing what sound effects and music can do! Brings the game to life 😍 keep it up!

  • @clonkex
    @clonkex Před 8 měsíci +1

    I love the secateurs sound! So clean and calm.

  • @wiechciu0
    @wiechciu0 Před 8 měsíci +1

    That's impressive how well all of these parts work together. The procedural audio sounds really good, neat idea!

  • @EdwardVarner
    @EdwardVarner Před 7 měsíci

    Your solution to problems is always elegant and inspiring. I didn't expect to enjoy this style of video and I was sad when it ended. Well done!

  • @turnrp
    @turnrp Před 8 měsíci +10

    I love these devlogs

  • @AlexScotton-Illizian
    @AlexScotton-Illizian Před 8 měsíci +1

    Congratulations, this really adds a great layer and makes it so much more immersive. The way you've created the procedural sounds is genius and applicable for much more than an audio system.

  • @Skeffles
    @Skeffles Před 7 měsíci

    Brilliant to see how you are tackling sound. My last game had a bunch of issues with sound and I've struggled to find good videos explaining whats going on. This helped

  • @SvenGarson
    @SvenGarson Před 7 měsíci

    Oh yes - Great idea layering the sounds - Very satisfying to listen to

  • @kacper2246
    @kacper2246 Před 7 měsíci

    i always find it incredibly impressive and admirable when someone creates their own game engine for a game
    love how the game looks, keep it up!

  • @SylvsterNumski
    @SylvsterNumski Před 7 měsíci

    I just found your CZcams channel. It is great! I love the technical videos too. hope the game development stays smoothly. Keep up the good work!

  • @SaadTheGlad
    @SaadTheGlad Před 8 měsíci

    Dude this is literally perfect, I wanted a good way to implement audio into my game and while it's not gonna be as complex as yours I wanna get some inspiration for future titles. Keep it up!

  • @SpikeStudio
    @SpikeStudio Před 8 měsíci +1

    Audio is one of the most underrated parts of a game, so its cool to see a Devlog about it. Great audio will not be noticed, but bad audio is heard by everyone, it seems you got a great start!

  • @ramoncf7
    @ramoncf7 Před 8 měsíci +2

    Your OpenAL tutorials helped me to add sounds to my game, just for the effort and work it took you to create all those tutorials (and the OpenGL ones) I'm wishing you the best, you're an inspiration for all indie gamedevs! Thank you.

  • @lightludology9081
    @lightludology9081 Před 8 měsíci

    This is so inspirational! As a new viewer, I'm absolutely amazed!

  • @CurtisDoesADig
    @CurtisDoesADig Před 7 měsíci

    Dude, the procedural sound system is amazing! That was so awesome to see in action!

  • @ocleidyreve6361
    @ocleidyreve6361 Před 8 měsíci +2

    Uff Amazing video...technical videos also rocks and people like them. Thanks for taking some of our advices!!

  • @cameronstroebel3333
    @cameronstroebel3333 Před 8 měsíci +1

    Very interesting episode, I enjoyed the deep dive :)

  • @coffeefingies
    @coffeefingies Před 8 měsíci

    The way you implemented the compound sound effects is really clever, well done. Might have to borrow that idea in the future!

  • @possumkeys
    @possumkeys Před 8 měsíci

    Such an absolute chad! You are a really good programmer sir! Loved the sound thing. Loved it.

  • @marcruijs1039
    @marcruijs1039 Před 8 měsíci +4

    I'm currently working on making my own GUI library. Definitely taking some inspiration from this video 😬 Excited to see what you'll do with the UI!

  • @KuroOnehalf
    @KuroOnehalf Před 8 měsíci +1

    Surprisingly interesting dev log. Good stuff!

  • @KrAvE4KaRnAgE
    @KrAvE4KaRnAgE Před 8 měsíci +2

    As a bit of fun, you could try recording real-world sounds of you performing these tasks! Also, adding a start sound may also be value for certain actions. Such as the sound of a spade hitting the dirt. Loving this series so much, thank you for sharing!

  • @rigolus
    @rigolus Před 8 měsíci

    I very much enjoy those more technical devlogs, do not be afraid to make more like that! :)

  • @kylemason01
    @kylemason01 Před 8 měsíci

    Epic stuff bro! Keep up the amazing hard work!

  • @majicman24
    @majicman24 Před 8 měsíci

    The procedural sound system was such a cool solution, loving the videos!

  • @AustinCameron
    @AustinCameron Před 8 měsíci +1

    Watching this while writing my own AudioController for an audio book app.

  • @feathorix8778
    @feathorix8778 Před 8 měsíci

    I am quite new to your channel and I just realized that you do not "only" develop a cozy farming game, but that you use a self-made engine, too! That's so cool, much respect! 🙂 Seems like a big benefit in the current situation, hehe.
    I really like the idea of the compound sounds, they give a nice polish to the general sound design and make the tasks feel less repetitive.
    As another comment already mentioned, it could be nice to be able to hear the progress of a task, e.g. by raising the pitch after each tile.
    Very nice devlog! :)

  • @doma3058
    @doma3058 Před 8 měsíci +1

    Hey man, I really appreciate you and your videos. I used to dream of being a game developer when I was younger, and your videos were my obsession. That was probably around 2015-16 when i was 11-13 years old! Now I am in college for Cybersecurity and am so happy to start watching your content again! Thanks for sticking around man and I am real proud to see how far you have gotten. :)

  • @Kwanzol
    @Kwanzol Před 8 měsíci

    really liked this video :) the end result sounds great!

  • @lucavogels
    @lucavogels Před 7 měsíci

    Wow! The sound generator idea for the tools was really smart! 😱

  • @hippylp2306
    @hippylp2306 Před 8 měsíci

    Hey, really like your videos and the games you produce :) I also really enjoy the details you add to your videos like playing the music in the background the way your are describing it in the code :)

  • @MrOmega-cz9yo
    @MrOmega-cz9yo Před 8 měsíci

    I like the information presented and the game is looking good!

  • @OnlyTheVerse
    @OnlyTheVerse Před 8 měsíci

    I'll watch your every single video at least until you finish a city building game, you have my word!

  • @pixboi
    @pixboi Před 8 měsíci

    Dude your home is so peaceful and clean, always admiring that in these videos :D

  • @marco6ocram
    @marco6ocram Před 8 měsíci

    The procedural sound effects really give a lot of life to the game. Really really good implementation :D

  • @ianbryant
    @ianbryant Před 8 měsíci +3

    The procedural sounds are beast my dude.

  • @Draconicrose
    @Draconicrose Před 8 měsíci +1

    This is a really cool solution to the sound repetition and definitely adds juice to the game. I am thinking that as the player progresses so will the soundscape of the gameplay loop, which is neat.

  • @TheHanutaXD
    @TheHanutaXD Před 8 měsíci +1

    I love the idea of the CompoundSound. Very neat :)

  • @natgazer
    @natgazer Před 8 měsíci

    You inspire me so much! Despite I'm more towards meat and stuff, I'm loving your game development!

  • @KingofUshankas
    @KingofUshankas Před 7 měsíci

    love the content thinmatrix!!!

  • @tobias-edwards
    @tobias-edwards Před 8 měsíci

    Really enjoyed the insight!

  • @LasseRafnDk
    @LasseRafnDk Před 8 měsíci

    Procedural sound (including the click sound) is such a nice QOL thing, makes the game feel so polished.

  • @_stephenhubbard
    @_stephenhubbard Před 8 měsíci +1

    1:25 dat transition though

  • @gernivisser593
    @gernivisser593 Před 8 měsíci

    I love these more technical videos !!

  • @thehen101
    @thehen101 Před 8 měsíci +2

    you should add a retry to creating the openal context(s), sometimes it seemed to fail for me for no reason when the CPU was under high load, but worked when retried

  • @Pruemedia
    @Pruemedia Před 8 měsíci

    Super impressive work! Keep going! :)

  • @j3ns
    @j3ns Před 7 měsíci

    I love these technical devlogs 😀 but I also enjoy the other ones 😊

  • @HobokerDev
    @HobokerDev Před 8 měsíci

    Gotta say, even those placeholder samples don't sound half bad! Looking forward to the next devlog as usual!

  • @seb-astian-design
    @seb-astian-design Před 8 měsíci +4

    Love the procedurally generated sounds! Cool way to create it! Have u thought about raising the pitch when u dig a hole? Idk it just felt would make the pop more satisfying.

  • @epiphanyatnight8732
    @epiphanyatnight8732 Před 8 měsíci

    Would love to see a video on how you manage this project. Loved your Trello board, so simple and functional.

  • @360McCarthy
    @360McCarthy Před 8 měsíci +4

    Can I just say how much I love these more technical videos! I was curious also @ThinMatrix what Java version and lwjgl version are you building the game using?

  • @Genesis8934
    @Genesis8934 Před 8 měsíci +1

    Random clicks sound cool; equally cool might be a step the pitch (up to a limit) in ascending or descending order. ;)

  • @rcookie5128
    @rcookie5128 Před 7 měsíci

    1:25 This transition was unreal!

  • @JohnDoe-bo5yk
    @JohnDoe-bo5yk Před 8 měsíci +1

    Ohh.. making your own engine.. thought this was just a game devlog.. now I might have to go back to your first

  • @isaacgreen9495
    @isaacgreen9495 Před 8 měsíci

    That shovel sounds great!

  • @studyASMRcoffee
    @studyASMRcoffee Před 8 měsíci

    Wow, please talk more about the engine. Would love to hear more about it.

  • @heandog6481
    @heandog6481 Před 8 měsíci +1

    Don’t know the exact style you’re going for, but I feel like the game could be more relaxing with a less realistic style of sfx. I’m thinking more in the realm of mini motorways where it’s calming little blips and bloops that make the game somewhat relaxing and satisfying. Anyways, the more technical devlog was awesome and I really enjoyed this episode and the way you showcased and explained parts of your thought process and code!

  • @tenminutetokyo2643
    @tenminutetokyo2643 Před 8 měsíci

    That is nuts!

  • @GamesBySaul
    @GamesBySaul Před 7 měsíci

    Great work as always! Sounds 100% make a game feel more alive, its why i like to do audio passes every now and then to get them sorted.
    The proc gen audio you have is so cool! Definitely something I want to try out at some point my self!
    Also curious, for the click sounds, you have 5 different variations, would randomising pitch not do the same? I can see it still sounding maybe too similar so maybe variations makes more sense

  • @PultsMoizer
    @PultsMoizer Před 8 měsíci +2

    Bro had the audacity to use Audacity.
    Great Video my man, really enjoying to see such a progress in more than a month!

  • @rajakaz4075
    @rajakaz4075 Před 8 měsíci

    Cool! Keep it going! I'm big fan! ☺

  • @mrcingo
    @mrcingo Před 7 měsíci

    the fact that the sun is literally kissing you while you're coding is incredible

  • @Jadushnew
    @Jadushnew Před 8 měsíci +2

    For me the hardest part is to decide what needs to be in a new class and separating different ideas to different files.

  • @adrianozuna875
    @adrianozuna875 Před 8 měsíci

    Man i just want to say, I'm still addicted to equilinox, it's such a good game. I have so many high hopes for this latest project

  • @YossDev
    @YossDev Před 8 měsíci

    very cool!

  • @mikejox
    @mikejox Před 8 měsíci

    great video keep it up

  • @the-pink-hacker
    @the-pink-hacker Před 8 měsíci +1

    1:47 "OpenAL library" => open audio library library.

  • @kyaniteschmidt7658
    @kyaniteschmidt7658 Před 8 měsíci

    1:27 very smooth!

  • @DevelopAnEngine
    @DevelopAnEngine Před 8 měsíci

    it's going well 🌱

  • @MunzirSuliman
    @MunzirSuliman Před 8 měsíci

    would great if you share how you're using Trello to manage the planning and development. Thanks again for the great content and beautiful game , all of the best.

  • @therhodesy
    @therhodesy Před 8 měsíci

    Those compound sounds are fantastic... love your approach.
    I'd love to see you mention something about your testing in this project, I assume you're unit testing alot of this? ....

  • @Hessrs
    @Hessrs Před 8 měsíci +1

    One suggestion (that you may have already done but it's hard to tell) is if you click to perform an action such as digging/planting, if you don't let go of the click but move the tile to another valid tile, that the action still performs so the user doesn't have to click each individual tile. I think this would be something that people probably won't notice if it exists but definitely would notice if it was missing. Love the technical video though!

    • @ThinMatrix
      @ThinMatrix  Před 8 měsíci +2

      Thanks! And that's already how the tools work :)

  • @artembordiuh2802
    @artembordiuh2802 Před 8 měsíci

    The sound system and sounds are great, most of them in my opinion are production-ready (unless of course a different feel is intended for the game). The only suggestion is the UI click sound, it's a bit loud and intrusive, and some of the sounds are spatially shifted when using earphones

  • @jamesmoylan
    @jamesmoylan Před 8 měsíci

    Later on I would love it if you could add a shop were you can buy items for maybe a house that you could buy or upgrade

  • @wokarol
    @wokarol Před 8 měsíci

    Hey, that looks amazing. However, I am curious why go for a fully custom solution instead of utilising some middleware like FMOD or Wwise?

  • @Hector-Site
    @Hector-Site Před 8 měsíci +1

    Maybe this question was asked many times before, but why Java ? Are you using some kind of GraalVM to build a native executable to make distribution and execution easier ? And the performance better ?

  • @eidnoxon
    @eidnoxon Před 8 měsíci +2

    Hey dude! Love your content

    • @ThinMatrix
      @ThinMatrix  Před 8 měsíci +4

      Thanks! And yeah, I'll do that during the upcoming UI updates :)

  • @kiki-drawer2669
    @kiki-drawer2669 Před 8 měsíci

    Awesome ^^

  • @LordFers
    @LordFers Před 8 měsíci

    Nice!!!