Using GCC Engine In Demos

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Using GCC Engine In Demos

      From other threads (ie this post) I've gathered that I need to put the block comments at the start of each GCC file in each file that contains code from the engine. Is there anything else that should be done to use the engine in my personal demo's? Is it ok to even be using the engine for demo's or will that be frowned on in interviews?
    • If I'm understanding your questions correctly

      1 - "How does one legally use the GCC source code"
      Per the link you provided above, if you copy any of the source code you must include the GCC header at the top of each file and distribute following the rules of the Creative Commons license

      2 - "I'm applying for jobs (presumably game dev positions) and want to demonstrate my knowledge using demos constructed using the GCC engine. Will this impress people or make them think I'm incompetent and have to copy code?"

      As a professional programmer, I've had several interviews and held 2 professional jobs, one of which was at a major games studio. I suspect showing how you've modified the GCC Engine would be a plus. Remember, no mater where you are hired, game or non-game programming, you'll probably never build something from scratch, you'll work on something that has already been in development for sometime. The ability to join a project, read code, understand the code, and modify the code is an important skill for any programmer.
    • Good answer - let me add just a bit more.

      If you've changed the source code and decide to upload it somewhere public, it is important that you place a comment just below the typical header that reads something like:

      // THIS CODE IS MODIFIED
      //
      // This code modified from the the v4.0 publishing by {Insert Your Name Here}, and is available under the same license.

      Also, when you use material in your demo or interview that wasn't created by you, it is extremely important that you call out which is your original work, which work you've modified from the original, and which work was obtained from a 3rd party. Do that right up front - it helps set everyone's expectations.
      Mr.Mike
      Author, Programmer, Brewer, Patriot
    • I understand you must include the following information in each source file as well as a copy of the GNU Lesser GPL v3 license document:


      // (c) Copyright 2012 Michael L. McShaffry and David Graham
      //
      // This program is free software; you can redistribute it and/or
      // modify it under the terms of the GNU Lesser GPL v3
      // as published by the Free Software Foundation.
      //
      // This program is distributed in the hope that it will be useful,
      // but WITHOUT ANY WARRANTY; without even the implied warranty of
      // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
      // gnu.org/licenses/lgpl-3.0.txt for more details.
      //
      // You should have received a copy of the GNU Lesser GPL v3
      // along with this program; if not, write to the Free Software
      // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


      However, what about copyrighting your own code? I realize if I modify any of the code from the book it must also be released under the same license and that makes total sense. But what about my own original code that is not part of the book code? I know you can copyright your own original work but what about work that is modified from another source, such as the code from the book?

      I just want to ensure I do everything right. Quite frankly, I'm the type of person who promotes learning so I would want to release something of my own under the same license used in the book anyway. But after doing a bit of reading I found that anything not part of the LGPL code can be kept closed-source but this isn't the case with modified LGPL code.

      Oh the fun. Where's a lawyer when I need one? LOL
    • You've got the right idea - although you should be cautious about releasing code with mixed licenses - users of the code can say that you buried copyrighted code in what appeared to be an open source system, which would likely weaken any case you brought for copyright infringement.
      Mr.Mike
      Author, Programmer, Brewer, Patriot
    • I wanted to add something important that I feel should be addressed. The LPGL v3 license included with the source code for the fourth edition book allows the code to be modified and redistributed following the terms of the license. However, what about copyrighting your own derived work?

      After reading tons of articles on Google for over an hour my findings indicated you must get permission to create derivative work, which I believe is the case under the LGPL v3 license. It is also my understanding that you can obtain a copyright for that derivative work as long as it is substantially different from the original. See this document for more details.

      Also, say I created a separate .cpp file which had completely original code, it's my understanding that I own the copyright on all that code since it's not modified from any code released under LGPL v3. But in that case if it's part of the LGPL v3 program or library then my new code must be released under the same license.

      Furthermore, if I am creating a proprietary program which is completely original but uses LGPL v3 code such as a library, I reserve the rights for that program and don't require to release it under the LGPL v3 license. The only way that would be possible is to link the propriety code to the LGPL v3 library (dynamically, I believe). I would only have to release the source for the LGPL v3 portion but could keep my proprietary portion closed-source.

      Would anyone care to confirm my research as true or false? Perhaps I'm beating a dead horse here but I like be as thorough as possible. I don't like grey areas of uncertainty - that is unless I'm having a beer, of course. Then I forget all about it. ;)

      I've mentioned before that I'm the type of person who likes to share. I think it's important in a learning environment to share your work so others can learn from it. But I wanted to touch on some subjects to satisfy my curiosity and anyone else's who may be reading this.
    • You are correct in your research - and unfortunately you've also found that the problem of distinguishing original work from derived work can be problematic and certainly up for interpretation.

      When creating original works - one of the best things to help you is a source code repository where you can document in detail the beginnings of the work and each change you've made to it over time. It doesn't guarantee immunity from a litigious opposition, but it certainly is fuel for your defense.
      Mr.Mike
      Author, Programmer, Brewer, Patriot