What you said has absolutely nothing to do with TDD. What you described is just automated test, which is a good thing.
TDD means you write a failing test case first before you write the actual function. You don't need TDD to "run a unit test to test a function in a fraction of a second".
TDD is only good when the spec is unambiguously defined (either in your mind, or written by a product designer). For example if you need a function that tests whether two AABBs are overlapped, TDD is perfect. But in game development, sometimes the spec is just "write a water shader that looks good enough", and "good enough" is not unambiguously defined. Therefore TDD is bad in this case.
I don’t know about this… If a game designer can articulate fun and what it means in the game, a test can assert the side effects of the system align with the game designer’s expectations.
Like really? 80% of tests I read are crap anyway. Just crap written to pass the test coverage detection.
For basic CRUD and simple business logic I see TDD work. But for example most projects I work on I have no clue what or no clue how to do it. I just write code, play around get new ideas and build upon that. It changes so frequent and is so exploratory that I can not be bothered writing any tests.
Once I "get it" I write some tests. Mostly I understand also what will need tests and what not. Personally I think this if fine.
Online everyone is writing the ideal situation. I know what to deliver, I know how to do it and this is the perfect way to do it. Mostly it is I have taken loads of assumption and figuring it out as I go. Fuck it needs to be done don't have time to "optimize" it to look perfect.
Maybe I'm just not a good developer. But I shipped enough value in my lifetime to know I'm good enough ;)
Sounds like you've found what is effective in your own workflows. Thanks for sharing your experiences! I think this is the most important point: whatever needs to happen for you and those who relate to your philosophy to deliver value is good. Don’t feel obligated to listen to my insanity.
IMO I suspect we as an industry haven’t spent enough time considering the role of automated tests in video game software. I worry that it’s been written off for so long that it’s a self fulfilling prophecy. Since there isn’t tons of time spent thinking about testing whenever anyone attempts it they run into issues. When seeking help they are told tests are a waste of time. They do waste time because the “what is effective” patterns are still being discovered for as complex of software as games.
Maybe I am actually just not a good developer… But I really think there is something worth exploring.
Yes, you absolutely want to run the entire game to test a function because if it does not work in the context of the game then it's wrong, regardless of what the spec or the tests say.
Do you really want to have to update a test every time you want the jump button to have more or less force, when tuning your platforming mechanics?