Madrigal Games
Madrigal Games
  • 148
  • 96 926
Integrating REAPER into a custom game audio system
Let's have a look at the new REAPER integration in the Timbre audio system. Read more in the development blog at www.madrigalgames.com/
Make the most of REAPER as a sound design tool: www.asoundeffect.com/reaper-for-sound-design/
Переглядів: 332

Відео

Traction Point - Solo indie dev making a game and wearing all the hats
Переглядів 5712 місяці тому
Traction Point - Solo indie dev making a game and wearing all the hats
Even better car driving game AI!
Переглядів 5122 місяці тому
Even better car driving game AI!
Car Driving Game AI - Status Update
Переглядів 1,5 тис.3 місяці тому
Car Driving Game AI - Status Update
Various tricks for rendering Indirect Lighting in Traction Point
Переглядів 5845 місяців тому
Various tricks for rendering Indirect Lighting in Traction Point
Shell textured grass rendering in Traction Point
Переглядів 1,3 тис.5 місяців тому
Shell textured grass rendering in Traction Point
Traction Point - Gripper vehicle demo
Переглядів 4396 місяців тому
Traction Point - Gripper vehicle demo
transmission032 - comptime zig is awesome!
Переглядів 6667 місяців тому
transmission032 - comptime zig is awesome!
Making a Video Codec and Player for a game engine, from scratch
Переглядів 7298 місяців тому
Making a Video Codec and Player for a game engine, from scratch
transmission031 - messing around with node-based particles
Переглядів 2628 місяців тому
transmission031 - messing around with node-based particles
Making a video recorder for a game engine, from scratch
Переглядів 1 тис.8 місяців тому
Making a video recorder for a game engine, from scratch
The name of the game: Traction Point
Переглядів 3799 місяців тому
The name of the game: Traction Point
transmission030 - creating a military/police radio effect
Переглядів 21010 місяців тому
transmission030 - creating a military/police radio effect
transmission029 - adding a new audio filter to Timbre
Переглядів 10810 місяців тому
transmission029 - adding a new audio filter to Timbre
transmission028 - bits & bobs
Переглядів 11910 місяців тому
transmission028 - bits & bobs
transmission027 - driving AI system in Zig - part 4/4
Переглядів 13511 місяців тому
transmission027 - driving AI system in Zig - part 4/4
transmission026 - driving AI system in Zig - part 3
Переглядів 8311 місяців тому
transmission026 - driving AI system in Zig - part 3
transmission025 - driving AI system in Zig - part 2
Переглядів 9111 місяців тому
transmission025 - driving AI system in Zig - part 2
transmission024 - driving AI system in Zig - part 1
Переглядів 15111 місяців тому
transmission024 - driving AI system in Zig - part 1
transmission023 - demo work checklist
Переглядів 8911 місяців тому
transmission023 - demo work checklist
transmission022 - porting the tire track component from C++ to Zig
Переглядів 332Рік тому
transmission022 - porting the tire track component from C to Zig
transmission021 - creating a mission through visual scripting
Переглядів 130Рік тому
transmission021 - creating a mission through visual scripting
transmission020 - introducing Nemo!
Переглядів 174Рік тому
transmission020 - introducing Nemo!
intermission002 - level status update + plans for the future
Переглядів 159Рік тому
intermission002 - level status update plans for the future
transmission019 - riding the monorail - part 2
Переглядів 120Рік тому
transmission019 - riding the monorail - part 2
Level & Asset Speed Design
Переглядів 359Рік тому
Level & Asset Speed Design
transmission018 - riding the monorail - part 1
Переглядів 103Рік тому
transmission018 - riding the monorail - part 1
transmission017b - how tired can a person be?
Переглядів 181Рік тому
transmission017b - how tired can a person be?
transmission017 - creating a minigame
Переглядів 130Рік тому
transmission017 - creating a minigame
transmission016 - AngelScript & Zig
Переглядів 242Рік тому
transmission016 - AngelScript & Zig

КОМЕНТАРІ

  • @alternatingf42
    @alternatingf42 4 дні тому

    Your channel is evidence that UA-cam success is in large luck, this video is crazy high quality

  • @MadrigalGames
    @MadrigalGames 4 дні тому

    If you are wondering what in the name of Baby Bejeezus is going on here, this is from a recent gamedev stream. I threw a bunch of exploding barrels in a hole and set them on fire. This is running on a self-made game engine. Check out the full stream here: ua-cam.com/users/livex6lL5B58Lvw

  • @sametaylak2698
    @sametaylak2698 5 днів тому

    You have the greatest solo indie dev content on UA-cam history. Keep going!

    • @MadrigalGames
      @MadrigalGames 5 днів тому

      That's the plan! But thanks, much appreciated!

  • @HobokerDev
    @HobokerDev 11 днів тому

    extension says .cpp but ^ for a pointer? what is this cursed abomination?

    • @MadrigalGames
      @MadrigalGames 11 днів тому

      Those aren't pointers. They are .NET handles, for interop with the editor app which is written in C#. Looky here: en.wikipedia.org/wiki/C%2B%2B/CLI

  • @abhijitleihaorambam3763
    @abhijitleihaorambam3763 16 днів тому

    Really cool man, never thought of integrating reaper into game engine.

  • @gostan2718
    @gostan2718 22 дні тому

    Why choose zig?

    • @MadrigalGames
      @MadrigalGames 22 дні тому

      Personal preference. Zig is low-level and powerful, but modern and comfortable to work with. I like it a lot!

  • @gustav.olsson
    @gustav.olsson 23 дні тому

    Looks (and sounds) great!!

  • @mostrealtutu
    @mostrealtutu 24 дні тому

    I missed the live stream, and just watched the replay :) Again, everything you touch turns out cool and the mother vehicle at the end is just great, especially the suspension business is <3 Have a nice weekend!

  • @AgnesVincent-w8r
    @AgnesVincent-w8r Місяць тому

    Michale Ferry

  • @fr0zi
    @fr0zi Місяць тому

    Such stupidity in C++ doesn't even shock me anymore...

  • @taodive2848
    @taodive2848 Місяць тому

    You don't look like you've been using it for twenty years

  • @syirogane
    @syirogane Місяць тому

    Even at 1000 fps, a 64-bit frame counter will last for about 584 million years.

  • @Waffle4569
    @Waffle4569 Місяць тому

    wtf

  • @georgeallen7487
    @georgeallen7487 Місяць тому

    This is a very clear video. I have never really gotten into graphics engineering but I feel like I have the tools to make a decision. Thank you!

  • @butcher
    @butcher 2 місяці тому

    Your own engine?! Omg, it's crazy :D

  • @MaximilianoMendivilMorales
    @MaximilianoMendivilMorales 2 місяці тому

    Thank you for such a gift!

  • @Mormert
    @Mormert 2 місяці тому

    Best solo indie dev on UA-cam, no joke!! So valuable livestreams!

  • @yds6268
    @yds6268 2 місяці тому

    Is that a cybertruck? It does seem to fit into a low-poly game xD

  • @voltflake
    @voltflake 2 місяці тому

    Your videos unfortunately aren't so popular but your project and work are awesome! I would love to play this game someday. And about entertainment, if you're serious about UA-cam channel maybe try doing shorter, much more consolidated videos. Something similar to what Sebastian Lague does.

    • @nathanfranck5822
      @nathanfranck5822 2 місяці тому

      Making videos takes work --- bro made a full game engine, making all the fancy animations to model a concept to newbies takes a lot of extra effort he could direct to just building a cool game --- Lague just makes videos, it's a different objective

    • @MadrigalGames
      @MadrigalGames 2 місяці тому

      I have the utmost respect for Lague and what he does, but it's safe to say our focus is quite different. He makes very cool bite-sized projects exploring a certain concept, and then makes highly polished and entertaining videos about them. I "just" build a game and make occasional videos about the process. But my game project is much larger, and takes up most of my time if I ever want to finish it. Sometimes I put more effort into my videos such as the two parts on video playback in Basis (ua-cam.com/video/zBhhckL5Q4k/v-deo.html and ua-cam.com/video/cgFCS9t41vU/v-deo.html) but they take a long time to make. In the end, my "product" is the game, not the videos.

    • @voltflake
      @voltflake 2 місяці тому

      Yeah, that's why i added "if you're serious about UA-cam" part, I didn't know your priorities.

  • @nickphilomath
    @nickphilomath 2 місяці тому

    better than most games' ais

  • @117iwhbyd7
    @117iwhbyd7 2 місяці тому

    @Madrigal, I can't believe how good these AI vehicle mechanics are. The pathfinding at 9:58 is unlike anything I have ever seen. I tried to implement my own AI vehicle pathfinding system a while back in Unreal, but it was a disaster. Is there any design approach that you would recommend when approaching an issue like this? Are there any resources that you could point me in the direction of? I would love to know more!

    • @MadrigalGames
      @MadrigalGames 2 місяці тому

      Thank you! Yeah, it's coming together quite nicely. Honestly, most of this is stuff I have come up with myself, as I wasn't able to find much info on suitable vehicle AI online either. I basically started small and tried to identify issues with the approach, and then tried to solve them one after another. That's why the driving AI has a bunch of sub-systems, many of which tackle one particular issue or case, as you might be able to see in the code section at the end of the video. Is there anything in particular you struggled with? I don't know how Unreal expects/wants you to set things up, but describing the whole system is obviously too large of a thing to do in a YT comment. Maybe I could dedicate a video going through the AI code, if there is enough interest. I've also toyed with the idea of open-sourcing parts of the game code, and AI could be one such part. Obviously it wouldn't build without the rest of the code and engine, but it might be of interest to other people as a reference. Finally, I know that Mercuna (mercuna.com/ground-navigation/) has some middleware which is supposed to handle driving AI quite well, in UE5.

  • @physbuzz
    @physbuzz 2 місяці тому

    Nice! Thank you for showing the code snippets too, I'm currently writing some AI for a (very tiny) hobby project and it's a good reminder to not overcomplicate things / that simple state machines are perfectly fine.

    • @MadrigalGames
      @MadrigalGames 2 місяці тому

      Absolutely! The older I get the less I feel the need to write "clever" code, favoring dead-simple stuff instead. Many times it ends up being more performant too...

  • @chiefcloudyeye0489
    @chiefcloudyeye0489 2 місяці тому

    is it intentional that the prediction doesn't actually line up with where it would go if it continued at the same turning radius? I could see where it would be as having it offset like that makes for earlier detection of obstacles

    • @MadrigalGames
      @MadrigalGames 2 місяці тому

      Yeah, this is comes from the local offset applied to the predictor, and it's especially noticeable with the Mother vehicle. You can see the offsets in the AI profile JSON data at around 11:30, at the bottom, where the mother vehicle pushes the detection forward and backward. If you don't offset it at all it lines up with the transform of the vehicle, but then most of the points will be inside the vehicle and of no real use. On the other hand, predicting far into the future tends to be unreliable. I've toyed with the idea of offsetting left/right or perhaps rotating the predictor based on steering value or angular velocity, but we'll see if that is necessary.

    • @chiefcloudyeye0489
      @chiefcloudyeye0489 2 місяці тому

      @@MadrigalGames why not keep your current offset system but do your prediction after the offset instead of before? right now you have a predicted path of what seems to be the center but offset to the front, what if you instead had a predicted path of the offset position? immediate problems / differences would be that the points could become significantly further apart when large vehicles are turning, and the predicted path would be more accurate to the real path than it is currently, which the looseness of your current system may be helping the pathfinding as it rejects dangerous paths faster by overshooting turns

    • @MadrigalGames
      @MadrigalGames 2 місяці тому

      Your initial comment got me thinking. What I might want to do is have a set of offsets, per AI profile, eg. center, left and right, specified in local space. These would represent the front/back bumper of the vehicle essentially. Then I would predict without any offset and apply those offsets to the predicted transforms. A potential problem is that every predicted transform would have to make 3 nav mesh queries instead of one, but that might be okay. I probably need to test that out. Thanks for the tips!

    • @chiefcloudyeye0489
      @chiefcloudyeye0489 2 місяці тому

      @@MadrigalGames unrelatedly you should consider making a discord server or something similar for discussion of the game

    • @MadrigalGames
      @MadrigalGames 2 місяці тому

      Yeah, the plan is to set up a Discord server when the demo release gets closer.

  • @StevenHokins
    @StevenHokins 2 місяці тому

    Looks really good, thank you for video update

  • @mostrealtutu
    @mostrealtutu 2 місяці тому

    welcome back <3

  • @fg786
    @fg786 3 місяці тому

    Can we use this for yt videos that do server side demo replay for games? In the yt videoplayer you have the replay controls. Somebody do that...

  • @WisKy64VT
    @WisKy64VT 3 місяці тому

    This game is looking super cool! Enjoy your vacation!

  • @WisKy64VT
    @WisKy64VT 3 місяці тому

    This game looks super cool already tell us more! <333

  • @TheRomanianCrow
    @TheRomanianCrow 3 місяці тому

    What's the project about?

    • @MadrigalGames
      @MadrigalGames 3 місяці тому

      It's about driving, exploration, puzzle-solving and generally messing around :)

    • @TheRomanianCrow
      @TheRomanianCrow 3 місяці тому

      @@MadrigalGames uuuh

  • @Veeq7
    @Veeq7 3 місяці тому

    Awesome! Could probably call @TypeOf on the dereferenced self pointer instead of passing Self type? Also another question, how do you plan to distinguish between owning pointers and non-owning pointers, I suppose using exclusion list?

    • @MadrigalGames
      @MadrigalGames 3 місяці тому

      Probably could use @TypeOf() in a few places yeah, but I find it makes some interfaces easier to use if they take a comptime T parameter, and an instance (or pointer) of T, rather than taking an anytype. Often, in the case of anytype I have to look at the implementation to see what I was thinking at the time. Personal preference, I know... And yeah, the exclusion list is for things you don't want it to poke at.

    • @Veeq7
      @Veeq7 3 місяці тому

      @@MadrigalGames Was more so thinking it can reduce potential for user error, but maybe the compiler would catch it anyways. Not very familiar with zig. Cool to see you stuck with it though, I only recently realized how cool it is. Same for some of cpp..

  • @FINXainarskrastins
    @FINXainarskrastins 3 місяці тому

    Idea for final goal concept. Explore -> fuel management->find more cars ->puzzles made by the terrain->Easter egg collectibles as cosmetics->co-op fun like races or challenges->vs mode where the world is mirrored and its like a capture the flag/king of the hill thing->back to strategy concepts like commanding ai cars to go on missions->rescue a car by figuring out how to get to it and how to get it back->standing on buttons to keep gates open->frustration noises when the ai can't reach a place. Idk a lot of ideas.

  • @HobokerDev
    @HobokerDev 3 місяці тому

    Is this navmesh recast or something else?

  • @nickphilomath
    @nickphilomath 3 місяці тому

    Mama got stuck >-<

  • @Jdgo95
    @Jdgo95 3 місяці тому

    Hello Sebastian, Nice video! I was wondering, does the NavMesh drive the vehicle or is it the physics simulation? How much resolution does the tessellation have on the NavMesh? Did you bake the NavMesh? Do you have a granny crane for those situations 24:00 ? (Your project is superb, I'm interested in knowing more about the topic of networks in general. If you use any Zig socket libraries?)

    • @MadrigalGames
      @MadrigalGames 3 місяці тому

      Hi Juan, thanks! Let's see if I can answer all of your questions in order. The NavMesh doesn't take any initiative over any gameplay event or system. It just sits there and answer questions like "Can a car drive here?" or "What is the path from here to there?". The physics system also doesn't technically drive the vehicle. It just simulates how the vehicle moves when certain inputs are applied, such as accelerating, braking and steering. The vehicle is driven by giving these inputs to the physics system, and it works the same whether the driver is a human player or an AI agent. The physics system doesn't know or care which one it is. That's what makes this so tricky to implement an AI for, because I do not (yet at least) "cheat" by teleporting the car around. Instead, I calculate what the inputs need to be to get the car from point A to B. Regarding the tesselation resolution, it depends on what you means by "resolution". I use Recast and Detour for building and querying the NavMesh respectively, and Recast has a bunch of settings you need to give it when building the NavMesh (so yes I build, or "bake", the NavMesh in the level editor). I can list the settings here but I don't think that's what you were asking for. If you'd like me to go into more detail, I can do that. Not sure what you mean by "granny crane". I do have a bunch of ideas on how to tackle the issue you refer to. One such idea is limiting the AIs ability to make reverse-turns in tight spaces. Instead, they would switch into a sort of "reverse mode" where they follow the driveline normally, but with all the inputs flipped, to make the vehicle back out of the tight space until it reaches a larger area where there is more space to make reverse-turns. I might have to make a follow-up video when the Mother vehicle knows how to get out of that area :) For the network transport I use ENet: github.com/lsalzman/enet. It's buried pretty deep in the game engine and I have my own RPC and propagation layers built on top of it so I rarely have to interact with it directly. However, as it is a C-library, you should be able to use it directly from Zig.

  • @MadrigalGames
    @MadrigalGames 3 місяці тому

    Apparently, I didn't route the game audio correctly :( Oh well, next time! I ended up not doing a lot with audio in the stream after all, so you didn't miss out on anything really anyway.

  • @MeowMeowRanger
    @MeowMeowRanger 3 місяці тому

    This gorgeous man didn't even leave a patreon link! A living saint !

  • @apphacker
    @apphacker 3 місяці тому

    Really impressive, thank you for sharing. I learn a lot from your videos

  • @nickphilomath
    @nickphilomath 4 місяці тому

    will it be multiplayer as well?

    • @MadrigalGames
      @MadrigalGames 4 місяці тому

      We'll see. The engine based around a client-server model which handles some of the heavy lifting of multiplayer support, but actual multiplayer gameplay isn't really a priority right now. A co-op campaign + messing around in multiplayer in the sandbox mode would be pretty sweet to have :)

  • @nickphilomath
    @nickphilomath 4 місяці тому

    what library do you use for physics stuff, or is it your own code as well?

    • @MadrigalGames
      @MadrigalGames 4 місяці тому

      I use and have used a bunch of different ones. The engine technically supports multiple different ones since the physics backend is loaded as a plugin. However, the most capable of these backends is PhysX and it is what Traction Point uses at the moment.

  • @nickphilomath
    @nickphilomath 4 місяці тому

    cant wait to try :)

  • @Veptis
    @Veptis 4 місяці тому

    I am working on a python library to run webgl shaders. And I somehow chose to do so with wgpu-py, which are python bindings for wgpu-native and it's quite the learning experience

  • @MadrigalGames
    @MadrigalGames 4 місяці тому

    I edited out a section at the end where I accidentally hit my microphone, but unfortunately that seems to disable the chat replay. Oh well...

  • @bridgeboo3031
    @bridgeboo3031 5 місяців тому

    i can hear the finnish accent trying to escape🤭

  • @nickphilomath
    @nickphilomath 5 місяців тому

    can we try the game, looks cool

  • @kittycata2002
    @kittycata2002 5 місяців тому

    Did you make the entire editor as well? 👀

  • @simp-
    @simp- 5 місяців тому

    About intra-frames you could mention about destinction between I-frames and IDR-frames, but strangely I feel like people don't talk about it and how they "clean slate" of decoder - they start and close GOP etc.

  • @daveyhu
    @daveyhu 5 місяців тому

    Why won't simple shadow projection darken the grass to a suitable level? If it's a quirk of your shell grass system, you could automate what you're doing manually ("value painting" as you called it) and project the shadows onto your value painting texture offline.

    • @MadrigalGames
      @MadrigalGames 5 місяців тому

      The realtime shadows (eg. sun shadows) work with the grass, which you can see at around 23:38. The discrepancy comes from adding lightmapping (which is alleviated by the grass painting) and SSAO (which is alleviated by the SDF stuff) to the mix. And yes, like I mentioned in the video, I'd like to automate the painting to a certain degree, with the option to go in and touch it up later if want to.