Validation Extension method performance
public static Validatable&lt;T&gt; ThrowIf&lt;T&gt;(this T argument)
{
    return new Validatable&lt;T&gt;(ref argument);
}



This of course is creating a lot of objects. You could speed this a little bit up by making Validatable a struct but still, it'll be slower then the normal check. Convenience comes often with some kind of a performance hit. 




  I was going to use it my game engine


You'd better not. Make it fast, not convenient.

There is one more thing about validating arguments. The only thing you need to validate is user input or something that you cannot predict like configurations. Internally most methods usually work without argument checking because it's nearly impossible to pass invalid values. Use Debug.Assert for this purpose during development to be absolutely sure if you want. It'll be removed in the release version so that it doesn't slow the application down.