Nick Maltbie

Nick Maltbie

Full time software engineer and hobby game developer. Will be posting updates on fun hobby projects here.

How Multiplayer Games Work

How Multiplayer Games Work

Test Driven Development

Test Driven Development

Why Test Games

Why Test Games

Creating Billiards in Unity

Creating Billiards in Unity

The Factory - Dev Log Week 6

The Factory - Dev Log Week 6

Conveyer Belts Explained

Conveyer Belts Explained

Wipeout - Dev Log Week 4

Wipeout - Dev Log Week 4

Hex-A-Gone - Dev Log Week 3

Hex-A-Gone - Dev Log Week 3

Recolor Shader Showcase

Recolor Shader Showcase

Making a Long Jump

Making a Long Jump

Пікірлер

  • @dominobuilder100
    @dominobuilder10017 сағат бұрын

    I think you missed a very important point about udp. There is no guarantee that packets will arrive at all.

  • @zdspider6778
    @zdspider6778Күн бұрын

    0:49 Wait, so you write the test BEFORE writing the feature? 🤔

  • @RaulLopez-rq6wh
    @RaulLopez-rq6wh11 күн бұрын

    The mole video never came out

  • @Omnivoid22
    @Omnivoid2212 күн бұрын

    I wish you showed how to do all of this.

  • @barterjke
    @barterjke19 күн бұрын

    Not to diminish an educational/explorational part of the video, personally I think the achieved result doesn't look any good, it has a lot of Uncanny valley vibe. It explains why there are no 3d person platformer games with a realistic rigs. And why everyone who uses procedural animation are doing it for some silly cartoony games. And why most of the parkour games are 1st person. But the way, the problem with moving platform is usually resolved with setting a transform of the platform as a parent for the character, when he steps on it. It resolves some of the other problems with moving platforms, like boosting player up if he jumps off it. You can see that problem in Half-life 1, jumping in a elevator results in a shorter/longer jump depending on the direction in which the elevator is moving.

  • @NickMaltbie
    @NickMaltbie17 күн бұрын

    Hey, thanks for the reply. I would agree that some IK leads to uncanny interactions and this can be seen in any procedural animation if you look hard enough. My implementation is very basic and just an attempt to keep the character’s feet locked to the ground when they aren’t supposed to be moving. Guiding the knee joints helps smooth out this uncanny feeling and I could add better smoothing for how the feet are locked to the ground or released for the animation. I don’t think I’ve covered my moving platform implementation. I want to avoid parenting it directly to the transform to avoid some types of errors that would be very complex to explain. It’s a good topic for future video :)

  • @Patricebrouh
    @Patricebrouh22 күн бұрын

    Hi! In the vodeo, when Mario jumps, the camera doesn't follow him. Can you show me how to implement it? Thanks

  • @NickMaltbie
    @NickMaltbie17 күн бұрын

    It’s called vertical damping. Unity has a standard implementation of it in their cinemachine package. It’s used in lots of games to make camera motion smoother.

  • @Patricebrouh
    @Patricebrouh17 күн бұрын

    @@NickMaltbie Thank you

  • @watercat1248
    @watercat124827 күн бұрын

    I don't use ik for my game but I don't have the weapon hold animation isuouse that you mentioned 😅 Because in my character that hand animation and the leg animation it's different object taknly. My character it's robot so it makes sense that the hands it's indepeding and have 0 effect for the leges technically my player have wheel not leg's but important part that the hands are different entaty and have 0 effect for the walking animation. That is perfect for my fps game.

  • @NickMaltbie
    @NickMaltbie17 күн бұрын

    This is a common solution to split objects up into different components to be animated independently instead of using procedural animation and IK. This is also done for things like hair, capes, eyes, mouths, etc… good video for a future topic. Specifically the legs and feet often need manual adjustment to keep the player’s feet from clipping into the ground or walls.

  • @trexmtb4381
    @trexmtb4381Ай бұрын

    Hello everyone! I have an innovative concept for a P2P game that I'd like to discuss. Instead of relying on costly dedicated servers, I propose using a P2P architecture where players serve as servers, reducing server costs for developers. The core idea is to divide the game world into dynamic regions that load in real-time, eliminating the need for loading screens. When a player with a slower connection enters an outdated region, they can interact with other players in the same situation until their connection updates and loads the most recent version of the region. This would enable players to experience a persistent and evolving world where their actions impact everyone else, regardless of their internet connection speeds. Additionally, each player would have their own dynamic 'bubble' around them, determined by their internet speed or latency. This means that players with similar connections can interact dynamically. When players are together, their bubbles merge to create a larger bubble for the group of four, matching the connection limit. This is different from the game Final Fantasy Crystal Chronicles, where players move a magical chalice. The game could also feature small groups of four players, even if they have a larger list of friends, to encourage more intimate and strategic gameplay. There could be regions specifically designed for PvP, although the game would primarily focus on PvE content. I believe this approach could offer a unique and dynamic gaming experience, without the costs and limitations associated with dedicated servers. What do you think? Do you think it would be possible to implement something like this and create an intriguing story around this concept? My idea is inspired by the mechanics of Final Fantasy Crystal Chronicles but in a World of Warcraft style, with P2P limitations in mind.

  • @FaberLSH
    @FaberLSHАй бұрын

    Very good!

  • @NickMaltbie
    @NickMaltbie17 күн бұрын

    Thanks :)

  • @Omnivoid22
    @Omnivoid22Ай бұрын

    would have no Ik be the issue with my feet not staying in place on the ground in unity? even tho in the animation preveiw the feet stay on the ground and dont bob up and down during the animation?

  • @NickMaltbie
    @NickMaltbie17 күн бұрын

    Yes, ik is originally a concept from animation and it’s often used in games to lock a player’s feet onto the ground and not interrupt existing animations for skinned mesh renderers in Unity

  • @Omnivoid22
    @Omnivoid2217 күн бұрын

    @@NickMaltbie ok cool cuz i was wondering why tf it was doing that. Didnt now I had to add ik in unity itself. So i gues the rig ik has no effect on that and its just to move the mesh as needed but if i wanna keep em bound to the ground i have to add ik in unity?

  • @kdawg717
    @kdawg717Ай бұрын

    I don't understand I've download the project from Git and it has nothing to do with anything covered in this video. I'm confused.

  • @NickMaltbie
    @NickMaltbie15 күн бұрын

    See the humanoid FootIK class for details - nickmaltbie.com/OpenKCC/docs/api/nickmaltbie.OpenKCC.Animation.HumanoidFootIK.html It’s in the project, checkout the example scene and remember to download the LFS artifacts :)

  • @animaterob
    @animaterobАй бұрын

    Thanks for the video. Is this only for humanoid? What about creatures who use generic avatars?

  • @NickMaltbie
    @NickMaltbie15 күн бұрын

    The same principles would apply. Instead of setting humanoid foot IK targets you would need to setup custom ik targets and configure them in the unity animator rig. I haven’t done it before but I want to setup a bunny character controller in the future that would need IK targets for ears as well.

  • @rerere1569
    @rerere1569Ай бұрын

    Hey, it's been about 6 months, how is it going? Could you perhaps make a follow-up video on that?

  • @NickMaltbie
    @NickMaltbie15 күн бұрын

    Shhh, schedules don’t exist. I’ve been learning a lot about godot including basic project structure, gdscript, documentation, github automation for godot… lots of fun ideas but still working on porting the project to godot. You can see the github repo for the current progress here - github.com/nicholas-maltbie/Godot-OpenKCC It’s pretty much a 1:1 port of the project from Unity to godot but still working on adding a lot of features. I actually have been busy with getting married last month so haven’t had as much time.

  • @rerere1569
    @rerere156915 күн бұрын

    @@NickMaltbie that's awesome! thanks

  • @overratedprogrammer
    @overratedprogrammerАй бұрын

    It seems like everyone *says* that you have to use UDP for games because it's faster, but literally everyone and every game uses TCP.. so confusing

  • @NickMaltbie
    @NickMaltbie15 күн бұрын

    It’s usually a mix. Use tcp for things that need to be ordered and reliable like text communication, authentication, level data. But for quickly updating data where only the most recent info matters like position and velocity it’s much more faster to use UDP to avoid the extra steps in message passing.

  • @n00blamer
    @n00blamerАй бұрын

    Windows 10 added "Long Path" support but it's not enabled by default. I'd avoid such long filenames as moving the files across computers and storing them into compressed containers will be a can of worms.

  • @NickMaltbie
    @NickMaltbie15 күн бұрын

    Hehe. Yeah, weird that haven’t enabled it by default.

  • @devilsoffspring5519
    @devilsoffspring55192 ай бұрын

    For games that are in the first-person perspective, representing steps as a continuous ramp is just fine. No point in belaboring it. For third-person games, some reasonable animation is a good plan if you want to avoid cheeziness. That's it. Over and out.

  • @NickMaltbie
    @NickMaltbie15 күн бұрын

    Yep, limiting scope is always a good idea. As a learning exercise I think that was a good intro :) I need to cover floating capsules in the future as well.

  • @fleakuda
    @fleakuda2 ай бұрын

    Am I the only one that saw him draw the 3 axis as green: y-up, blue: x-right, and red: z-back and have their brain break for a minute because I am so used to seeing it from the rotated 90 degrees view of that???

  • @NickMaltbie
    @NickMaltbie15 күн бұрын

    Colors confusing :) all the visuals are rendered in Unity so I might make a set of demos so anyone can view the samples and see how they work in the Unity editor.

  • @user-kf2mm7rn2k
    @user-kf2mm7rn2k2 ай бұрын

    I want this multi player game 🎮, how much will it cost me

  • @NickMaltbie
    @NickMaltbie15 күн бұрын

    All my projects are open source and on github :)

  • @user-qr4jf4tv2x
    @user-qr4jf4tv2x2 ай бұрын

    i miss lan games without internet or split screen now even single player game is online

  • @NickMaltbie
    @NickMaltbie15 күн бұрын

    Such a fun time. I’d love to make a video on split screen games as well soon. Time is difficult however.

  • @Vordikk
    @Vordikk2 ай бұрын

    I don't see much of a problem because i'm walking downstairs exactly like in videogames.

  • @muhammadfaisalbaig8714
    @muhammadfaisalbaig87142 ай бұрын

    Explained very clearly. Loved it. Great work 👍

  • @NickMaltbie
    @NickMaltbie15 күн бұрын

    Thanks! :)

  • @Moondropmedia
    @Moondropmedia2 ай бұрын

    I was tryna make steps in ue5 and decided to make ramps cause I wasn’t dealing with the fact my character wouldn’t move up the steps no matter the angle

  • @Soulsphere001
    @Soulsphere0012 ай бұрын

    This reminds me of stuns in Grand Theft Auto and why they're possible because there's something about the physics of steps that makes it possible to jump incredibly high heights. Do you happen to know how that works? I'm guessing it has something to do with the way developers are trying to fix the stair problem, but they overcompensate and send the character high into the air.

  • @lanchanoinguyen2914
    @lanchanoinguyen29142 ай бұрын

    As an game engine programmer i see those type of approaches are really funny,maybe i'm more familar with low level math anyway.But it's still interesting as the developer can use limited premade tools to creatively construct new solutions.

  • @clonious
    @clonious2 ай бұрын

    In Apex Legends yesterday, I got stuck on the tiny lip of an open cargo container, as if my character couldn’t lift their foot 3 inches over the bottom of the container, got me killed.

  • @amplyfier
    @amplyfier2 ай бұрын

    The main problem is with the humanoids/animals, they are not walking at all, they move by floating, all you see it's just an animation, that's why it feels weird, because they don't climb up the stairs, they glide up, with his collision box and animation simulating they are climbing. The main reason i think they didn't make them able to walk instead of floating, it's because it will need an exagerate amount of memory to work, that's why games that have a lot of detail in things you can do with the world like minecraft look like minecraft, because even with this big cubes and 16bit pixelart, even the most powerfull computer struggle running it at it's maximum performance, or trying to explode a million tnt. For now we don't have powerfull enough computers to make a really realistic game, it's just imposible to make even with a multiserver, just try to think to even try to boot this on a personal computer, it's just insane. Maybe the quantum computers will made the necesary step to made it possible, but for now we only can wait.

  • @TETANUS.
    @TETANUS.2 ай бұрын

    "I'm not high enough" vs "I'm not high enough"

  • @steveblack720
    @steveblack7202 ай бұрын

    Isn't it better to have like a pinpoint in the character's "ass" or somewhere around there and then just somehow keep it above the ground and place the feet below him accordingly? That also allows you to make going up the stairs smooth

  • @RoamingAdhocrat
    @RoamingAdhocrat2 ай бұрын

    simply use elevators instead of stairs, and use the transit time to load the next section of the level

  • @JohnVanderbeck
    @JohnVanderbeck2 ай бұрын

    Stairs are such a pet peeve of mine in games. So often you just fly off stairs or are completely misaligned. It might as well be a ramp as stated. I was pleasantly shocked recently to see in the new Nightingale that when I RUN down stairs I don't go flying off them!

  • @rexonalttheantiperspirant5544
    @rexonalttheantiperspirant55442 ай бұрын

    clip em

  • @newklear2k
    @newklear2k2 ай бұрын

    THANK YOU. I'm autistic, and I've all but stopped playing games because this problem (amongst a few others) has been so frustrating to observe.

  • @WiseMistake
    @WiseMistake2 ай бұрын

    Not played ni no kuni? Best Stair movement I've seen

  • @halonothing1
    @halonothing12 ай бұрын

    We should just go back to what they did with the N64. Just have a ramp with stair textures on it. And hands that are just a block with a fingers texture. Even being new to 3D games, 10 years old, and knowing nothing, I still couldn't help but notice and even laugh at some of these quirks at the time of N64's popularity. To me, it just added to the charm of the system. Like the Genesis/Master system's sound chip and the dark, grating sounds it could generate.

  • @matheusreidopedaco
    @matheusreidopedaco2 ай бұрын

    Hi. Could you explain the reason for the bounces? In the simplified KCC, why do we need to limit the iterations of the while loop? In fact, why the loop at all? Thanks in advance!

  • @oddcraft18
    @oddcraft182 ай бұрын

    snapping is ugly, why not try the roblox method?

  • @ninalassig8708
    @ninalassig87082 ай бұрын

    I hid my steps under a ramp which is fine for my purpose. My problem is, the character just continues walking up the ramp even tho its not even there anymore. Has anyone an advice?

  • @katolson8802
    @katolson88022 ай бұрын

    I also noticed that in real life, sometimes my shoelace gets untied and then, once I notice it, I have to bend down and retie it. Yet I have NEVER seen this simple feature implemented in any game, ever. It’s totally unrealistic.

  • @chaosgirleva
    @chaosgirleva2 ай бұрын

    I started this video being like "Minecraft did it perfectly" and ended it being like "yeah thats how Minecraft did it" Obviously a lil simpler because Minecraft doesnt address foot placement much but

  • @Tomas.Malina
    @Tomas.Malina2 ай бұрын

    Level designer: let's add alternating tread stairs!

  • @theofficialchan
    @theofficialchan2 ай бұрын

    tldr; Stairs aren't bad in video games and this is just one of many solutions.

  • @dittilio
    @dittilio2 ай бұрын

    Is it possible to have each leg be a collision box/sprite, that detects and snaps according to these rules. But have the x-y distance offset to the main body be the "intent"? This way you can limit the IK calculations and also blend the snapping as a part of the leg movement so the body follows a more natural path. It even means you can have a skinny character walk on a ledge, while a fat character's belly blocks advancement. Creates a cool dynamic for character design without needing to manually configure boundaries on each player, the design does it intrinsically.

  • @LineOfThy
    @LineOfThy2 ай бұрын

    You should make a “How to Uninstall Unity” tutorial now

  • @mastergator9641
    @mastergator96412 ай бұрын

    LA Noire did it

  • @dameanvil
    @dameanvil2 ай бұрын

    00:00 🧗 Climbing is compared to yoga but with stairs being a simpler option. 02:19 🏞 Stair problems in video games arise due to challenges in character navigation, particularly around steps. 03:38 🛑 Developers often hide stair problems behind ramps or use inverse kinematics to mask issues. 06:45 🔄 Snapping down steps solves the problem of walking down smoothly but presents challenges for going up. 08:02 ⬆ Snapping up steps requires careful implementation to maintain smooth player movement. 10:28 ✨ The stair problem can be solved with proper attention to detail and resources, leading to better game experiences.

  • @kuaraba
    @kuaraba2 ай бұрын

    Interesting to see that stairs are also one of the hardest things to design in gaming. Because they are certainly one of the hardest thing to design in real life

  • @mrApelsin4ikGaming
    @mrApelsin4ikGaming2 ай бұрын

    minecraft invented it like 15 years ago

  • @beedeeuniko
    @beedeeuniko2 ай бұрын

    Transmission Control

  • @CarstenSvendsen
    @CarstenSvendsen3 ай бұрын

    How about just, programming the characters feet to actually walk on the stairs? That would look so much better. How is this not a thing yet? Lazy devs? Too hard basket?

  • @torres6023
    @torres60233 ай бұрын

    Banger shorts man