but I don't want people copying all of my source code and claiming it as their own work ...
Do you mean technically lying about it — not giving you any attribution? Most licenses require attribution, but it can be buried in a long file listing all open-source libraries that went into it. 🙈
But what if I make a "new" derivative work that does almost nothing beyond calling your code? And I give it a new name, present it on Steam as a game I designed, but it's actually 99% your assets, default behaviors etc.? 👿
Most FOSS licenses allow all that as long "click here to see list of open source libraries used" is attributed somewhere, but the end-user impression can be quite misleading...
- The D--K license mentioned in Solomon's answer is interesting in trying to make a distinction — "Don't just copy this and change the name" ; "Selling the unmodified original with no work done what-so-ever" — though I doubt it's enforcable [IANAL]
The deeper problem is FOSS normally views such re-packaging as a feature! If you write a 10,000 lines library and I write a 3-line command-line tool invoking the library, that's fine (and a proof of friendly API design).
And if you want to limit that, there is tension with your other goal:
I also don't want to have rights to works made with my game engine and want them exclusively to the ones who made the works.
Perhaps you could make a distinction based on the type of derived work? Engine vs. game?
- For example, consider the GCC Runtime Library Exception.
GCC the compiler itself has GPL license, which has quite strong copyleft requirements; however they added special exception so when I do [my source]->GCC->[my binary], I can license the resulting binary however I wish, despite GCC injecting small portions of itself into it. (with some tricky guards against abuse e.g. "my source" can't overlap with GCC's source code)