If it has to be 3D, Roblox is probably your best bet. There is a book Coding with Roblox Lua in 24 Hours: The Official Roblox Guide that is a good start. But for ages 9, it is going to be a steep learning curve.
If he is flexible, I would highly recommend starting with the Scratch programming language. You can make decent 2D games and there is a lot less cognitive overhead.
If he is flexible, I would highly recommend starting with the Scratch programming language. You can make decent 2D games and there is a lot less cognitive overhead.