Please note that I don't update this web site anymore. You can visit my new personal blog at www.williamwilling.com.
Is Anyone Interested In The Trichromix Source Code?
Friday, June 10, 2005
I'm seriously considering releasing the Trichromix source code once I release the game. There is still a part of me that is scared of the possibility that someone will take the source code and release a Trichromix-clone, so I'm thinking of releasing the source code under a license that allows you to use it for personal and educational purposes only. I think that could be very valuable to hobbyist game programmers, but unfortunately it doesn't allow my fellow indie developers to use parts of my code.
To remedy that, I plan to release parts of the code under a less strict license, like I did with the code for render lists. Anyone can use this code verbatim in their commercial product. An added benefit is that it allows me to explain and clean up the code and that you won't have to sift through thousands of unrelated lines to figure out how something works.
If you have a specific game programming issue you'd like me to blog about, feel free to send me a request and we can explore it together. Just don't ask me how to write a full-featured 3D engine, because I just don't know that – yet ;-).
Back to blog index
Well, I'll admit that I'd be interested in seeing the source. In fact, since Trichomix doesn't work in Wine, it would be useful to have the source to port it to a different system, but would that mean that changes belong to you or would I be able to release the code port myself?
Render lists and common constructs that you don't mind others using can probably be put under the LGPL or BSD licenses.
As for game programming issues, I'm interested in how int main() looks in your code, as well as the those functions and classes that are directly involved with it. I've seen different code where main does a lot or main does very little. It is difficult to find tutorials or other info on how to write the game loop. It is either overly specific to a particular game or overly general ("the game loop handles input, updates the game world, and draws the graphics to the screen").
Friday, June 10, 2005 6:42 PM
Thanks for the feedback. I think I can write some useful things about the game loop.
The license I use for code constructs is based on the zlib license. I changed some words, but it's basically the same. It says that you can do whatever you want with the code, but if you distribute the source code, you must keep my name in there somewhere. If you distribute a binary based on the code, you don't need to credit me.
I haven't choosen a license yet for the Trichromix source code, but the way things look now it will probably be like this: you can port the code to Linux and the changes will belong to you, not to me. You won't have the right to distribute the changed source code, though, neither in binary nor in source code form. However, I'd be willing to discuss the matter in due time. We can probably figure something out.
Friday, June 10, 2005 9:47 PM
You can do exclusive licenses. So your public version of the code is licensed for personal use only, but if people want to have a commercial license (free or for a small fee, whatever you wish), they will need to contact you with a description of what they want to use the code for. Then you decide on an individual basis whether to grant them a commercial license or not. Of course, 1) a Trichromix clone is fairly trivial to program for an experienced developer even without your code; and 2) you would never find out if someone "stole" your code for their own game anyway.
Friday, June 10, 2005 10:18 PM
Doesn't the zlib license require you to keep the same copyright notice? I know the GPL does. The idea is that if you redistribute the code, you are legally obligated to keep the names of the authors so that no one thinks that the copyright belongs to someone else. I am not too familiar with zlib though.
mahlzeit: Actually, it is common for people to find that GPLed source code was being used in a proprietary product. Sometimes it is inadvertent and the code is either released under the GPL or removed. Sometimes the company/individuals try to insist that they aren't using GPLed code. If you look at the function signatures, however, you can tell whether something was used in someone's code.
Friday, June 10, 2005 10:59 PM
Oh, about zlib. What I am getting at is that if the license is basically the same, why make small changes? Why not use the zlib license?
The concern is that people think that there are too many licenses. Intel and other companies have customized own open source licenses that are really only different in whose name is in the notice. It creates confusion because if you use something that has insignificant differences and call it a different name, people now have to study your license before deciding if they can use it. If it is zlib, which is really common, then if they are already familiar with it, it is quicker for them to make the decision.
Friday, June 10, 2005 11:03 PM
Well, I maybe a wierdo but I'm not intressted in the source code at all. However, I am intressed in how the code structure is.
Just like GBGames said: "I'm interested in how int main() looks in your code, as well as the those functions and classes that are directly involved with it"
A simple method to release it is by using VS .NET "Build Comment Web Pages"
It still is unclear for a simpleton (n00b) and it doesn't release to much code (just comment and function definition) so no simple copy paste tricks. But for a real programmer it would be 10 maybe 20 minutes time to figure out the structure and design.
This way you can keep the source to yourself and make sure no one else goes away with it. Remember the internet is filled with scum ^_^
Wednesday, June 15, 2005 12:38 AM
I don't care about scum, I only care about honest people. :-) I will release the source code to my examples and it will be under the zlib license.
I'll discuss the code structure in my blog entries; the source code is just complementary to the discussion. You can ignore it if you want.
Using Visual Studio's comment web pages only works for .NET projects as far as I know.
I'll try to post the first article this week and we'll just see how it works out.
Wednesday, June 15, 2005 1:46 PM
No, it works for most projects. I tried it with my own application which most certainly does not have any .NET abbility (since my computer was not able to do those) and what do you known? (nothing?)
It did work.
Wednesday, June 15, 2005 9:24 PM
That's good to know. Thanks.
Thursday, June 16, 2005 11:59 AM
Tell me what you think
Since I'm not updating this site anymore, I disabled comments. You can visit me at my new site: www.williamwilling.com.