Relating to this, I think anything is allowed, but you have to take into account the likelihood that someone can build on top of the enginge/process you are working with. For example, the likelihood of someone taking on your project if you make it OpenGL is much less than the likelihood someone will take on your project which is built in Unity. You dont want to be so obscure that your the only one who knows how to make/wants to make what your building