Why Test Games

Games often ship with bugs or unfinished features. Developers can help minimize these bugs by adding proper testing.
Let's go over some use cases for testing and games and how it can be added in the Unity game engine.
Example GitHub repo with testing: github.com/nicholas-maltbie/O...
Chapters:
0:00 Intro
0:55 Why Test
2:13 Why Automate
3:43 Adding Tests in Unity
4:13 My Example from OpenKCC
5:15 Maybe Don’t Shoot Yourself in the Foot
5:58 When Appropriate to Skip Tests
6:46 Concluding Remarks
References:
[1] GlitchFish - Super Mario 64 - Skip Endless Stairs Glitch (Backwards Long Jump) - • Super Mario 64 - Skip ...
[2] Skelly Hell - Skyrim - Horse Mountain Climbing Glitch - • Skyrim - Horse Mountai...
[3] Ligiit - Corrupted Plague Incident Footage World Of Warcraft - • Corrupted Plague Incid...
[4] ManOfSeven - Minecraft Beta 1.0 Gameplay (no commentary) - • Minecraft Beta 1.0 Gam...
[5] People Make Games - Why Subnautica Owes Its Success to This Button - • Why Subnautica Owes It...
[6] GDC - Tech Toolbox: Subnautica's Feedback System - • Tech Toolbox: Subnauti...
#gamedev #unity

Пікірлер: 45

  • @Lev_Malygin
    @Lev_Malygin Жыл бұрын

    The Mario backwards staircase is more iconic than a bug

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    It’s a “feature”. Too bad Nintendo patched it out of later releases :’(

  • @RecoveryPlayz

    @RecoveryPlayz

    Жыл бұрын

    Thats why we look toward emulation

  • @folksyoxytocin

    @folksyoxytocin

    Жыл бұрын

    It's an iconic bug

  • @JamesTDG
    @JamesTDG Жыл бұрын

    I have a personal set of if/then statements when it comes to a bug: Is it an entertaining bug? If no, then try to patch it. If yes, then does it break the game too much? If no, then keep it. If yes, then does this bug require complex skill to achieve and feel rewarding to abuse? If no, then try to patch it. If yes, then does it break the balance of a game? If no, then keep it. If yes, then try to patch or at least nerf it. I live by these rules, and I shall die by them.

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    This is an amazing rule set! Exactly how a lot of "features" were added some games like Team Fortress and TF2 that are now modern staples like rocket jumping. Also makes me think of bunny hopping in older game engines like quake but they didn't necessarily have the means to patch bugs for some older games.

  • @aeea3306

    @aeea3306

    Жыл бұрын

    I love playing tea for two

  • @_LunarDragon

    @_LunarDragon

    Жыл бұрын

    I like this, so I hope you don’t mind me taking a screenshot to save as a reminder.

  • @Kelvoraax
    @Kelvoraax Жыл бұрын

    I had this in the background whilst playing Celeste to learn a little more, and oh my GOSH the mention of Celeste as an exception threw me for a loop, lol. Thanks for the content, and taking your time to teach us all a little something we may not know!

  • @niceEli
    @niceEli Жыл бұрын

    There is one thing you should add to openkcc and that is camera lerping. Basically make the camera position a empty gamemobject and make the camera always keep to it = smooth camera movement

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    Yes, I wrote a basic ~~keeping~~ _camera follow_ script already but it uses frames and delta time to lerp so it varies with frame rate a bit. I want to write an extension to work with CinemaMachine program from Unity to support a really customizable camera :) I couldn’t get some of the keeping to work well without the camera clipping through walls but I could extend the current script to include lerping in the target position to make it a bit more smooth!

  • @Raccoon5
    @Raccoon5 Жыл бұрын

    I can't justify putting in the amount of effort for automatic testing when I am developing "creative" ideas. Those tend to change so drastically that it would make all tests redundant all the time, and just waste time. But I do appreciate them in my job where we do more streamlined stuff and still we only stick to testing main C# classes. I just hope that new game developers, who have not even made a first project, are going to see this and immediately think you need to make tests. It could be a nice learning exercise, but I cannot justify this for smaller projects especially when you are new to this field. Also automated testing is never going to test all cases unless you spend 10x time in dev (at which point you could have just tested it manually and find these bugs anyway). But I do understand the value for yourself when you are developing mature package for others to use. People should know the context a bit more.

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    I love this insight, thanks for the thoughtful comment. I completely agree that most games and project don't need exhaustive testing and manual testing can work fine especially when you want to iterate quickly. However, thinking only complete or library projects require testing is missing some context. Every game unless it's just composited pre-made assets will have some degree of custom code. If you are using well known design patterns, you will have some boilerplate or structure code in your project. So, for example, if you have a game with tile maps you might need some custom pathfinding adjustments for different types of movement or graph traversal. While you won't need to test every part of this, you want to make sure your core features for pathfinding and UI interactions are tested because if they break the product may become unusable. So, while reaching for something like 100% code coverage is unreasonable for almost any project, automated testing of core features and designs is important to ensure product stability. I would have liked to talk about this more in the video but differentiating between core features and how automated testing works versus manual testing and how this is integrated into an agile development workflow is a much bigger topic than I could fit into a short video. Might but a fun future topic though! Unity also is capable of recording and playback input to turn a manual test into an automated test, but I haven't messed around with it as much.

  • @djm010108
    @djm010108 Жыл бұрын

    I like the new video clips!

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    Thanks!

  • @helloworlditsworld
    @helloworlditsworld Жыл бұрын

    0:58 this guy is playing with a left handed view model on the right side?

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    Hehe, didn’t notice that. Stock footage intensifies

  • @FredGreen182
    @FredGreen182 Жыл бұрын

    This was a great video!

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    Thanks, glad you enjoyed it!

  • @customyoutubename
    @customyoutubename Жыл бұрын

    You talked about the stair script, i also noticed that you used a position changing script to move the character, why not use velocity instead to make for more fluid movement and for the stairs just make the collision box a slope? (Im no game developer but its just an idea)

  • @wrathofainz
    @wrathofainz Жыл бұрын

    Once I was playing the first Assassin's Creed on PS3 and I jumped on a horse and immediately fell through the ground and died. Intangible horse for the lose.

  • @Math429
    @Math429 Жыл бұрын

    Awesome video. I've started writing tests in my own game last week. It's taking a long time but hopefully it's going to pay off.

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    Always hard to add tests to a project but once you have them there it’s much easier to maintain over time. Best of luck, you got this!

  • @tylerschenk4043
    @tylerschenk4043 Жыл бұрын

    I like these videos very listenable

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    Thanks!

  • @Vexcenot
    @Vexcenot Жыл бұрын

    2:47 he's joking. We don't have any friends

  • @Bloodlinedev
    @Bloodlinedev Жыл бұрын

    Pro tip from years of pain: A good, generic CC is a huge problem to solve. Like creating an AI package. Or a network library.

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    Yep, I completely agree. I’m 3 years in on this OpenKCC project and have a lot left to go! Part of why I’m making these videos to document and share my work so others can help provide feedback and reviews of the project.

  • @geko2867
    @geko2867 Жыл бұрын

    Na, if I've learnt one thing from AAA games of today, it's that you just let the modding community fix it!

  • @niceEli
    @niceEli Жыл бұрын

    What I do in my games is put a death trigger in the walls so if you managed to get in then your back at the latest checkpoint

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    That’s a good idea to prevent players clipping through walls :D

  • @FalconFetus8

    @FalconFetus8

    10 ай бұрын

    If they can clip through the wall, then what's stopping them from clipping through the death trigger?

  • @ethanwasme4307

    @ethanwasme4307

    5 ай бұрын

    ​@@FalconFetus8the same thing that usually stops them from going through collisions

  • @knoop7102
    @knoop7102 Жыл бұрын

    Bunny!!!!! 🥰🐇

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    His name is Clyde, he is very cute and loves blueberries!

  • @Eternal-pj8zh
    @Eternal-pj8zh Жыл бұрын

    Why don't you just give the stairs a sloped hitbox?

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    Why stairs are a pain is a whole video topic in itself, more stuff acts like stairs than just a set of stairs and a ramp can’t solve every edge case. But for most cases it does work fine. I’m planning on making a future video about the topic.

  • @porky1118
    @porky1118 Жыл бұрын

    2:50 "to avoid social embarrassment..." ...just get more self confident ;)

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    Thanks! Hope you have a good day too.

  • @jameslil6546
    @jameslil6546 Жыл бұрын

    Imean if you need this info you have no business in development.....

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    Haha, lots of projects lack sufficient automated testing but to end users if it’s done well it’s invisible.

  • @VoonNBuddies

    @VoonNBuddies

    Жыл бұрын

    Well it's a good thing someone made this video to give people this essential information then!

  • @NickMaltbie

    @NickMaltbie

    Жыл бұрын

    @@VoonNBuddies if only I would follow my own advice!

  • @ethanwasme4307

    @ethanwasme4307

    5 ай бұрын

    i remember when i had a few years under my belt and felt all elitist and gatekeepey 😂😂😂

  • @cosettezosel9716
    @cosettezosel9716 Жыл бұрын

    Promo sm 🤦

Келесі