How could I word the license to give people more leeway while still preserving that intention?
How could I word the license to give people more leeway while still preserving that intention?
If you actually want your code to be open source, you should use one of the common licenses like the GPL or BSD license; this makes life easier both for you and people who would use your code. Since these licenses are common, people know exactly how they work and are willing to trust them. A custom license like yours seems much riskier to use: for example, how is "competes with" defined?
You can license the code and the artistic assets separately. This is what Id does with its old Quake engines. This way the code is still open source in the strictest sense of the word, but somebody couldn't just resell your game as-is.
You can license the assets under one of the Creative Commons licenses. These have well-defined and well-understood terms that you can mix and match to find something that suits your needs.
Assets licensed with CC (use the one that requires permission)
Code licensed with real Open Source (example: MIT license)
Nothing really stops me from making my own clone of your game, changing only the assets to be my own, other than it's prohibitively time-consuming (i.e. expensive) for me to do so.
If you release the code -- with any license on it at all -- and someone takes it, uses it, creates a similar game, and then changes the code in a sufficiently significant way to be able to claim that it's not "yours" anymore ... what recourse would you have?
Cloning of interface and operation (but not artwork) is widely held to be legal, but in general all successful clones are clean room clones.