YourCity 3D

By Shamus Posted Friday Nov 23, 2012

Filed under: Notices 52 comments

A few people have sent along concerns about the YourCity 3D app, since it looks so much like my old procedural city project. Some people are worried that perhaps I’ve been ripped off.

Not to worry. The app does seem to be using my code, but it doesn’t matter because I gave the code away. Free to all, no restrictions. I haven’t had any contact with the person developing YourCity 3D, but I’m happy to see my code being used.

Thanks for the concern. Everything’s cool.

 


From The Archives:
 

52 thoughts on “YourCity 3D

  1. Anorak says:

    That’s very noble of you. Personally I’d be torn between feeling an immense amount of pleasure at the thought of someone thinking so much of it as to want to use it, and hopping mad that there’s no credit (and no money) in it for me.
    But you did release it without any kind of copyright on it at all, so it’s fair game. I do wonder how many people are buying it though. And if it turns into a massive money spinner will you start regretting it?

    EDIT: They do sort of credit you, “Inspired by PixelCity by Shamus Young.”

    I’ve also looked at their website: http://inhausegames.com/ It’s slightly embarrassing.

    1. Loonyyy says:

      Indeed. Shamus is a classy gent.

    2. lowlymarine says:

      It says on his Google Code site that Shamus released PixelCity under the GNU GPL v3. If this is the case, and if this app is in fact based on Shamus’s code, then what they’re doing here is technically a license violation regardless. GPL v3 requires them to provide their modified source, which they have not, given that their website is just a stock WordPress page. There are myriad other unmet requirements, too: no information about when the changes were made, no credit to the original author, no changelog, and no GPL notice. You can read all the requirements of GPL v3 here, with sections 5 and 6 being the relevant parts.

      That said, I really doubt Shamus is the kind of guy to go hunting these people down over GPL violations. :P

    3. MichaelG says:

      They still haven’t fixed the website! I emailed them about Pixel city and the site a month ago. This was the reply:

      Hi Michael,
      Thanks for the inquiry.

      I’ve credited Shamus Young on the Google Play page, and in the app itself. The YouTube video was uploaded mainly so it could be embedded on the Google Play so it doesn’t contain any information itself.

      However since you requested it, I will add it there too.

      The website is still in the process of being set up.

      Terry Hau

  2. Urs says:

    Funny, just yesterday I made this comment mentioning your Procedural City.

    “I do wonder how many people are buying it though.” Here’s one. And this makes it the first app I’ve ever bought. And, yeah, they credit you. I would feel nicer though, if you had just received my.. uhh… 1.0364 dollars.

    1. Steve C says:

      Urs since you bought it you should leave a review of the app that includes a link back to Shamus’ work. Some of the reviews include requests for features like a daylight city. Which ain’t gonna happen given the fundamentals of the program. Someone who’s bought it may be interested to see how it was developed if only to watch the really good youtube video. If only to get Shamus some page views and ad views would be a good thing.

      It’s a good thing that it’s now on smart phones as it’s something people will casually see running on other people’s phones. IE “Hey that’s cool. Tell me more about it.” But it has to be known that Shamus did it. Just in case there’s some future (paid) work that may go Shamus’ way.

        1. Steve C says:

          Maybe their anti-spam ate it? It’s not up there as I write this.

        2. psivamp says:

          I also threw up a review with a link back to the project page.

  3. Tuck says:

    Wow, was that really over 3 years ago? It doesn’t feel that long.

    It’s true they have added a number of features and changes and ported it to a different OS, but “inspired by” is still a bit of a stretch!

  4. Zak McKracken says:

    Speaking of procedural stuff:

    http://www.kickstarter.com/projects/1461411552/elite-dangerous

    I wondered why there’s no post about that here. Though your last one might go some way to explaining that.

    1. Phantom Hoover says:

      possibly because it’s a blatant cashgrab based on vague promises, not something actually worth discussing

      1. Book says:

        Yes because this video represents a blatant cashgrab based on vague promises. While this is indeed a basic engine simulation at the moment, you’re absolutely an overly self-entitled fool to believe that every game on kickstarter has to have a complete demo to show off when they launch.

        This is why some studios post projects on Kickstarter. So they don’t have to spend months of development time and resources for a demo to publishers, or even to the public, rushing a ridiculous preview to E3.

        The reason why nearly all of the major kickstarters have nothing to show at the beginning is because a company cannot devote enough development time and costs to produce pitch videos, otherwise they might lose money for nothing. They are a business, not a charity devoted to the artistic integrity of games. Game developers don’t like getting laid off because their kickstarter pitch video failed, especially when they could’ve worked on other projects which were less risky. Even the Double Fine game, which was a fair bet due to it coming from an active studio with recently released games by a famous name, had to bundle a documentary with the project because Tim Schafer believed people wouldn’t fund a game with 0 days of work done on it.

        You’re right that the game itself isn’t worth discussing now, but maybe in the future and if it gets funded. Braben and his studio have not proved themselves capable of producing this game yet. Possibly.

        I personally am more interested in Limit Theory due to the naive optimism of the single kid working on it. It’s going to be a long year of him figuring out if procedural generation is the holy grail of a single coder video game.

  5. Faguss says:

    I think when one shares he/she also has to be aware that content can be used for monetary purpose and just deal with it. I hope open-source will some day transcend idea of a market.

  6. Wolverine says:

    To take your code and sell it, even with your permission, seems really impolite when they don’t even send you an email…

    1. sab says:

      Heck, it just seems plain wrong to ask money for this.

      1. Urs says:

        Technically, what you pay for is the ability to have custom marquees on the buildings, custom billboards displaying your photos (stretched into an unrecognisable mess) and such. Without that, the app is free.

      2. Tizzy says:

        It seems plain wrong to charge money for this, but then again, isn’t this what the app markets mostly sell these days?

        As for “taking Shamus’s code”, give the devs a little more credit. As far as I know, Shamus’s code was very much windows based, so it’s more than just a copy-paste thing. Plus, they knew to add all these useless functionalities that are a must for such an app (personalization options for billboards and scrolling text).

        A courtesy thank you note to Shamus for the original idea would have note gone amiss on the other hand…

      3. Kian says:

        Also, they did go to the trouble of porting it to Android. That’s development time and that’s not free. They saw a cool idea that the owner didn’t care to develop further and gave it a new home.

        This wasn’t just a matter of lifting the code and sticking a price tag on it.

        1. psivamp says:

          Well, from my understanding, OpenGL ES is modeled after OpenGL 2.1, so that shouldn’t have been too hard and Android Java apps can call native C /C++ methods, so large portions of the code could have been left completely unchanged.

          It’s still a measurable amount of time and effort to do, I’m sure.

  7. Brandon says:

    I always thought that would make a really good screen saver type thing. Kind of neat that someone turned it into that.

    1. IronCore says:

      Shamus did release a screensaver version a long time ago. It was buggy though and released as is for people to check out and modify as they please. I used it myself for a while. I lack the programming knowledge to fix the bugs. So I stopped using it.

      1. Septyn says:

        The last version Shamus posted (1.11 or so) was mostly bug-free, but it hard-coded the random seed. That meant every version of the city and flight path was the same. I was waiting and hoping for a version that fixed that problem, but it never came. Le sigh….

  8. Steve C says:

    The app has a $.99 version and a free version. The paid for app does have billboards that include pictures on your phone. That’s a pretty cool feature I don’t think Shamus’ version had.

    But I’d really like to see the free version of the app give more credit to Shamus. Not for ego stroking reasons but because I’d like to see Shamus doing more procedural programming in the future and get paid for it.

    1. Bryan says:

      Well, uh, no, Shamus’s version didn’t have the ability to pull random pictures from your phone and dump them onto buildings.

      Mostly because Shamus’s version didn’t, you know, run on phones. :-P

      (Now, yeah, I know, it could have trawled the hard drive. But that starts to get pretty platform-specific, for one, and the original project did have a total-hour time limit on it, for two…)

  9. ACman says:

    Good guy Shamus Young. Disgustingly a good guy, Puts out code as open source. Doesn’t demand copywrite.

    What would Oracle think? Imagine if Shamus’s code was eventually bought by oracle? How would they demand license fees off it? Poor Oracle, What Shamus has done to them is shameful.

  10. MaxDZ8 says:

    I hope they’re going to send you a donation anyway. That would be very kind!

  11. JPH says:

    I love how the “developer’s website” is just an untouched default WordPress account. It even has the starting “Welcome to WordPress!” post that has yet to be removed.

    1. Steve C says:

      A link to that useless wordpress website, but no link back to Shamus’ stuff anywhere. Very ungrateful… on Thanksgiving. (And yes I know it’s been up longer than that.)

  12. Jjkaybomb says:

    It still feels kind’ve low of them. They didn’t seem to modify the code much, didn’t use it as a jumping-off point for a new idea. They just yanked it and used it as-is =(

    1. Zock says:

      They ported Windows-only C++ code to Android Java. If that’s not modifying it then I don’t know what is.

      1. Abnaxis says:

        Unless I remember incorrectly, there has been a (community written) Linux branch on Sourceforge from day one. Seeing as Android is pretty much just a mobile Linux distribution, I don’t think they had to do too much to port it.

        Not that that makes it wrong or anything, but let’s be clear–the only real addition they probably made was to add the scrolling text and the billboard pictures, if that.

        1. Bryan says:

          They also had to make it java. They *could* have simply recompiled the C++ for whatever CPU most Android devices are these days and called it through JNI (or whatever the Android native-code-interface is, if it’s not JNI; never really dug into that), but that would have tied them to a single CPU as well.

          (OTOH I’m not sure if that’s an issue or not. I’d expect it would be, given the large number of different phone manufacturers, but maybe they’re all using exactly the same ARM chip or something. x86 native code will *definitely* not work though.)

          Using JNI would have still involved a whole lot of debugging, too — if I remember the code correctly, it wasn’t that great with endianness or word-size issues. The Linux port I worked on (which was on either github or bitbucket) might have had a few fixes for this kind of thing in it, but I don’t know if they used that or not. (If they did, and they followed whatever license I used, then I have no problem with it either, to be clear.)

          The core issue is that the ARM CPU is almost *totally* different from x86. C helps a bit, but C also lets you bypass most of its already-extremely-thin “virtual machine” to go right after the hardware if you want, and a lot of this code did exactly that IIRC. All of that would have required at least a look and some thought, if not a bunch of changes, to get it to run right.

    2. Wedge says:

      That’s the beauty of open source code–Shamus wasn’t going to do something like this, and someone else was able to take what he did and build on it in a really cool way–seriously, porting something like that to Android is NOT trivial, but even if it was, we still get a really cool thing that we almost certainly wouldn’t have gotten if Shamus hadn’t decided to GPL it.

    3. Kyte says:

      I’d like to point out that porting from platform-specific Windows to Android Java pretty much means “look at the original algorithms, then redo it all in the new language”. You can’t copy anything, really.

  13. Atarlost says:

    If you suspect that someone is selling software that includes your GPL code you should probably contact the FSF.

    It’s possible that the act of porting eradicated your original code, but only if it was rewritten in a distinct language. Going from eg. C++ to Java probably isn’t sufficient to allow them to escape the GPL.

    I think the Stacker precedent means that algorithms need patent protection rather than copyright so rewriting in a different language family like python would let them escape your license.

    1. Bryan says:

      Was it GPL though? The source files don’t have the standard GPL preface comments in them. I don’t see any license note on the “release of v1 and source” page on this site either. The code.google.com link does claim it’s gplv3, but I don’t know if the various bitbucket/github forks came from there, or from another branch, so I don’t know if GPL (or which version… come to think of it, I think v3 is rather newer than the 2009 release of this code) applies to all of them, or just the stuff off code.google.com.

      (You’d think I’d have added a LICENSE or README file to my own port, with the license details. Sigh, no. I probably assumed “something open source”, GPL/BSD/CC or whatever, and didn’t ever verify.)

  14. BitFever says:

    Good guy Shamus. Gives away functional code for free to help others :)

  15. SKD says:

    I’m not a developer, but I like to think that if I were I would offer full credit to contributing code such as Shamus’s, and a portion of proceeds. I look at it as an ethical issue. Even if I did all the work of porting it to another system and adding to it, the original coder deserves credit and compensation for his work as well.

  16. BlackBloc says:

    I think Shamus should have at least put a GNU license or something on it so that whatever this guy did would also have to be open source if he wanted to reuse his open source code. But otherwise I have to say: he ported the code to Android, that’s already enough modification to make it a derived product and not simply a copy/paste job, and that app he made free. Then he added billboards and charged for that. Apart from the fact that I feel strongly that code derived from open source should remain open source, I can’t fault the guy for anything.

    1. Steve C says:

      I can fault the guy for insufficient documentation citing his sources. IE plagiarism. Plagiarism isn’t just saying “This is mine, nobody else’s.” Plagiarism can occur with full consent of the person being plagiarized. It also includes improperly citing sources. All things many college students are expelled for every year.

      Did he have permission? Absolutely.
      Did he add enough to call his work his own? Absolutely.
      Did he give some credit? Debatable. “Inspired by” is not credit. You can be inspired by Paris France write about cities.
      Had it had been an academic submission, did he give adequate credit not to be kicked out? Absolutely not.

      1. Bryan says:

        Plagiarism doesn’t get you sued (or prosecuted) though, while copyright violation does. Plagiarism is *not* illegal, only prohibited by universities.

        And this is explicitly not an academic (or research-paper) thing, so plagiarism rules aren’t even actually relevant.

        Some people apparently think doing this makes you look ungrateful, but I have to say I’m not one of them. Selling the stuff you’ve added onto a freely-available “platform” (and ignoring the fact that you ported most of the platform itself) is perfectly fine by me…

        1. Storm Kraken says:

          GPL violations *are* illegal though, and regardless of how ethical this work is, if it is a derivative of Shamus’s and no source code is provided, then it is illegal. Maybe someone ought to ask them for the source (and then compile it and rerelease it). Even the paid version’s source must be available under the GPL (but nothing restricts anyone from charging for it).

          On the other hand, without examining YourCity 3D too closely, maybe there’s a possibility that this app doesn’t use Shamus’s code. Shamus documented how he designed his program, and someone could have used similar algorithms without copying him. The fact that the app only says “inspired by” and isn’t an open source program makes me think this is possible.

          1. Bryan says:

            I’m still not convinced Shamus’s code was GPL. Only the assertion on the code.google.com site said that it was; his original post doesn’t, and *the code itself* doesn’t either.

  17. MelTorefas says:

    Is anyone else still having problems with the site loading horrendously slowly? I have not noticed a change at all since Shamus did whatever it was he did to the spam filters.

    1. Tvtim says:

      Yup, I get slow load times on the site whenever I visit.

      1. Lame Duck says:

        Yeah, the site’s still slow for me too.

  18. Falling says:

    Pixel City. Still my favourite screen saver.
    Has a Gotham City quality to it.

  19. mostlikelymaybe says:

    Speaking of procedurally generated stuff… I keep hearing about games on kickstarter going with this route. Sir, You are Being Hunted and some space game at least. I was curious about your thoughts on those!

  20. Terry Hau says:

    Hi everyone.
    I am the developer of YourCity 3D. I just wanted to clarify some things.

    I did indeed contact Shamus asking permission before I started. I think maybe he just didn’t recognize it was me because I didn’t release it under my real name. Either that or he forgot about it.

    I wrote everything from scratch in Java using the libGDX library.
    http://code.google.com/p/libgdx/
    I followed Shamus’ blog posts closely, and referenced his code when I got lost.

    It’s probably possible to directly port Shamus’ code, but I didn’t because:
    – I wanted to see if I could (it was a learning exercise)
    – Honestly, I’m not that comfortable with C++ and JNI. In fact, the only C++ I know are the parts that are similar to Java. It probably would have taken longer to port and be much more error prone, than if I wrote from scratch.
    – It’d be much more difficult to debug native code on Android (I assume, never actually tried it)
    – I wanted to add my own features. And working with code I wrote myself would make that a lot easier, compared to working with unfamiliar code. Apart from the extra customizations, I also implemented Quad tree culling and some other stuff I’ve forgotten.
    – I wanted to use OpenGL ES 2.0. Shaders instead of fixed fuctionality, VBO’s instead of vertex arrays.

    I was planning on donating money to Shamus, when I actually made some. So far, it hasn’t quite covered the costs. I had to spend money on: Google developer fee, domain and web hosting, paid to have the icon done (because an mspaint icon wouldn’t do) and I spent a bit on advertising.

    Yes the website is just a blank template. The only reason I set up the website is because Google requires you to have one to create a developer account, that’s all. I will eventually have a proper website, but right now as you can probably already tell, this whole thing is a one man show. I have no web design/graphics skills. All I can do is program, and my programming is average at best, which is why I was attracted to this idea as a starting point. It required none of the former skills. People have commented on the shitty website, and yes, I agree. But it will have to wait. I can’t afford to pay someone to do it. And right now I’m focusing on taking what I’ve learned from this, and releasing my next project (which won’t be a ripoff of Shamus’ work :)).

    Those that are leaving comments on Google Play linking to Shamus’ website, I’m not deleting the comments or something (I don’t think that’s even possible). It may be that you’re not allowed to put links in comments and they’re getting filtered.

    Thank you for your time.

    1. Shamus says:

      Thanks for clearing things up. You’re right that I don’t remember your specific email. I get emails from people asking if they can use things or ideas on a regular basis, and I usually give a boilerplate “Sure, good luck” answer.

      In any case, best of luck with your project. I know the various App Stores are a jungle and it’s hard to find an audience. Hope it turns out well for you!

Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun. Your email address will not be published. Required fields are marked*

You can enclose spoilers in <strike> tags like so:
<strike>Darth Vader is Luke's father!</strike>

You can make things italics like this:
Can you imagine having Darth Vader as your <i>father</i>?

You can make things bold like this:
I'm <b>very</b> glad Darth Vader isn't my father.

You can make links like this:
I'm reading about <a href="http://en.wikipedia.org/wiki/Darth_Vader">Darth Vader</a> on Wikipedia!

You can quote someone like this:
Darth Vader said <blockquote>Luke, I am your father.</blockquote>

Leave a Reply

Your email address will not be published.