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
The Mario backwards staircase is more iconic than a bug
@NickMaltbie
Жыл бұрын
It’s a “feature”. Too bad Nintendo patched it out of later releases :’(
@RecoveryPlayz
Жыл бұрын
Thats why we look toward emulation
@folksyoxytocin
Жыл бұрын
It's an iconic bug
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
Жыл бұрын
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
Жыл бұрын
I love playing tea for two
@_LunarDragon
Жыл бұрын
I like this, so I hope you don’t mind me taking a screenshot to save as a reminder.
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!
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
Жыл бұрын
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!
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
Жыл бұрын
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.
I like the new video clips!
@NickMaltbie
Жыл бұрын
Thanks!
0:58 this guy is playing with a left handed view model on the right side?
@NickMaltbie
Жыл бұрын
Hehe, didn’t notice that. Stock footage intensifies
This was a great video!
@NickMaltbie
Жыл бұрын
Thanks, glad you enjoyed it!
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)
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.
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
Жыл бұрын
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!
I like these videos very listenable
@NickMaltbie
Жыл бұрын
Thanks!
2:47 he's joking. We don't have any friends
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
Жыл бұрын
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.
Na, if I've learnt one thing from AAA games of today, it's that you just let the modding community fix it!
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
Жыл бұрын
That’s a good idea to prevent players clipping through walls :D
@FalconFetus8
10 ай бұрын
If they can clip through the wall, then what's stopping them from clipping through the death trigger?
@ethanwasme4307
5 ай бұрын
@@FalconFetus8the same thing that usually stops them from going through collisions
Bunny!!!!! 🥰🐇
@NickMaltbie
Жыл бұрын
His name is Clyde, he is very cute and loves blueberries!
Why don't you just give the stairs a sloped hitbox?
@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.
2:50 "to avoid social embarrassment..." ...just get more self confident ;)
@NickMaltbie
Жыл бұрын
Thanks! Hope you have a good day too.
Imean if you need this info you have no business in development.....
@NickMaltbie
Жыл бұрын
Haha, lots of projects lack sufficient automated testing but to end users if it’s done well it’s invisible.
@VoonNBuddies
Жыл бұрын
Well it's a good thing someone made this video to give people this essential information then!
@NickMaltbie
Жыл бұрын
@@VoonNBuddies if only I would follow my own advice!
@ethanwasme4307
5 ай бұрын
i remember when i had a few years under my belt and felt all elitist and gatekeepey 😂😂😂
Promo sm 🤦