News for hackers. Stuff that matters.
Re:3D.City – Game built with three.js and sea3d by bhouston on Friday November 28, 2014 @08:56AM (#8670921)
Beautiful work with Three.js. But the simulation work is also really impressive -- and a lot of work.

Simulation code here:

http://lo-th.github.io/3d.city/build/city.3d.js

Background worker (neat idea) that handles all user input and costly events, to keep the 3D animations consistently fast:

http://lo-th.github.io/3d.city/js/worker.city.js

Re:3D.City – Game built with three.js and sea3d by graememcc on Friday November 28, 2014 @11:39AM (#8671390)
> The simulation work is also really impressive -- and a lot of work.

The simulation is from my own micropolisJS (http://micropolisjs.graememcc.co.uk and https://github.com/graememcc/micropolisJS) just stripped of the GPL License headers and attribution.

micropolisJS in turn is a port of Micropolis, the open-source release of Sim City 1989 for One Laptop Per Child.

Edit: edited the link. You'd think I should get links to my own site correct!

Re:3D.City – Game built with three.js and sea3d by bhouston on Friday November 28, 2014 @11:50AM (#8671426)
You should mark up his repository, either add an issue or whatnot, noting that the code is missing your GPL license.
Re:3D.City – Game built with three.js and sea3d by judk on Friday November 28, 2014 @11:47AM (#8671418)
Is that compliant with your license?
Re:3D.City – Game built with three.js and sea3d by PythonicAlpha on Friday November 28, 2014 @12:12PM (#8671487)
I think, when he is the author, than he can decide which licence to use. There are many examples (like MySQL) where double licensing is used. The original author can decide, which licence he finds appropriate.
Re:3D.City – Game built with three.js and sea3d by jvilk on Friday November 28, 2014 @01:42PM (#8671745)
The author of micropolisJS is not the author of 3D City. In this case, 3D City needs to be licensed under the GPL, and I believe 3D City needs to include the copyright details for the original port.

In addition, micropolisJS has additional terms added to the GPL [0], which are clearly linked to from the top of every source file in micropolisJS [1], which need to be distributed with 3D City.

[0] http://micropolisjs.graememcc.co.uk/LICENSE

[1] https://github.com/graememcc/micropolisJS/blob/master/js/Blo...

Re:3D.City – Game built with three.js and sea3d by DonHopkins on Friday November 28, 2014 @06:15PM (#8672487)
They're all derived from the original source code of SimCity from Maxis, that I ported to Unix for DUX Software starting in 1991 (see http://art.net/~hopkins/Don/hyperlook/SimCity.README and http://art.net/~hopkins/Don/simcity/simcity-announcement.htm... ), and which was donated by EA to the OLPC project under a modified version of the GPL V3 license, with the condition that the name "SimCity" only be used for versions of the game that have been reviewed and approved by EA QA:

https://code.google.com/p/micropolis/wiki/License

This is from section 2.1 of contract between EA and OLPC:

http://donhopkins.com/home/micropolis/olpc-ea-contract.pdf

2.1 Modification. EA hereby grants to OLPC a non-exclusive, non-transferable, non-sub licensable, non-assignable, revocable right and license to modify the Original SimCity as provided by EA for the sole purpose of producing a version of the Original SimCity for distribution on laptops provided through the OLPC Program pursuant to the specifications set forth in Exhibit A ("OLPC SimCity"). All right, title and interest in OLPC SimCity and any interim modifications shall belong solely to EA. OLPC SimCity, and any subsequent versions, will not be distributed by OLPC unless the software meets the requirements set forth in Exhibit A. For the avoidance of doubt, nothing contained in this Agreement shall be deemed to limit or restrict EA’s right to use, modify, sell, distribute or license the Original SimCity in any other manner as EA so desires.

EXHIBIT A  Territory: Worldwide

Original SimCity Code: Title: SimCity (published in or about 1990)

Format: Unix Platform

Deliverable Items: EA will deliver to OLPC the following materials on or shortly after the Effective Date:

1. Source code for the Unix port version of the Original SimCity.

2. Any EA Documentation that EA deems necessary.

General Software Requirements: OLPC agrees that the OLPC SimCity will not be approved by EA for distribution under Section 2.2 of this Agreement, until the OLPC SimCity meets the following general software requirements:

1. EA’s QA team is unable to crash the game in sixteen (16) man-hours of play-time.

2. EA’s QA team is unable to find images/language that is deemed inappropriate to achieve an “E” rating by the ESRB standard.

3. No use of any EA Trademarks that would reflect negatively upon the established reputation of EA.

4. Add copyright/license information to each source file to reflect the proper licensing. Specific Software Requirements: OLPC agrees that the OLPC SimCity will not be approved by EA for distribution under Section 2.2 of this Agreement, until the OLPC SimCity meets the following specific software requirements

1. The Air Crash Disaster is removed from the game.

2. EA approved splash screen is shown before the start of the game.

3. Simplify the Main Menu with EA provided GUI elements.

4. All text in the game must be legible.

5. Game audio must work.

6. Remove all attempted multi-player features.

7. SimCity Should be properly integrated to the XO’s GUI

8. Code for the EA approved splash screen is not included in the source code to be distributed with the OLPC SimCity executable.

Re:3D.City – Game built with three.js and sea3d by keehun on Friday November 28, 2014 @07:05PM (#8672604)
I found your 2D version much easier and more fun to play. Wasted about an hour outright whereas I was over with 3D City in 5 minutes, approximately.
Re:3D.City – Game built with three.js and sea3d by PythonicAlpha on Friday November 28, 2014 @03:27PM (#8672054)
If he is not the same author, then you are right. One statement from an other poster suggested, that he is.

The original author would have the right to add new alternative license conditions as he wishes to.

Maybe the author of 3D City should say something about it.

Edit: Now I saw, what you mean. MicropolisJS seems to be an alteration of the GPL'ed Micropolis of an other author. And the owner of MicropolisJS stripped the GPL license from it to use it in the other project (btw. why?). I am no lawyer, but it really looks to me as a violation of the GPL, at least without permission of the first author.

Re:3D.City – Game built with three.js and sea3d by bhouston on Friday November 28, 2014 @03:39PM (#8672082)
The author of MicropolisJS is not the author of the ThreeJS SimCity clone that is the top of this HW story.
Re:3D.City – Game built with three.js and sea3d by DonHopkins on Friday November 28, 2014 @06:53PM (#8672578)
It's not a clone, it's derived from the original SimCity source code, which EA licensed under GPL V3 with the added condition that it should not be called "SimCity" without EA's approval. So it's important that all versions of the code include that license and the required provisions.

http://donhopkins.com/home/micropolis/olpc-ea-contract.pdf

https://code.google.com/p/micropolis/wiki/License

2.1 Modification. EA hereby grants to OLPC a non-exclusive, non-transferable, non-sub licensable, non-assignable, revocable right and license to modify the Original SimCity as provided by EA for the sole purpose of producing a version of the Original SimCity for distribution on laptops provided through the OLPC Program pursuant to the specifications set forth in Exhibit A ("OLPC SimCity"). All right, title and interest in OLPC SimCity and any interim modifications shall belong solely to EA. OLPC SimCity, and any subsequent versions, will not be distributed by OLPC unless the software meets the requirements set forth in Exhibit A. For the avoidance of doubt, nothing contained in this Agreement shall be deemed to limit or restrict EA’s right to use, modify, sell, distribute or license the Original SimCity in any other manner as EA so desires.

And on a completely unrelated topic:

Q: How do you know there's an elephant hiding under your bed?

A: Your face is pressed up against the ceiling!

[deleted]
Re:3D.City – Game built with three.js and sea3d by graememcc on Friday November 28, 2014 @04:59PM (#8672283)
I'm the author of micropolisJS. No. I did not strip the GPL license. I am not the "culprit" as you put it above.

Look at my Github repo: the LICENSE/COPYING files contain the GPL, and it's mentioned in every other file. The correct license has been in place since my initial commit in 2013.

I was pointing out that 3D.City, the version linked up top, essentially lifted the simulation code straight from micropolisJS. It is the copy/adaptation of my code in 3D.City that had the GPL License stripped.

Re:3D.City – Game built with three.js and sea3d by PythonicAlpha on Friday November 28, 2014 @08:27PM (#8672758)
Sorry, I totally misinterpreted your statement. Deleted some wrong answers here, where possible. But I was unable to react directly, because the system did not let me.
Re:3D.City – Game built with three.js and sea3d by synchronise on Friday November 28, 2014 @09:23PM (#8672870)
Would you have any recourse if he went the other way, and made his code AGPLv3?

You would be unable to use that code unless you moved the entire whole work over to the AGPLv3 license, would you be prepared to do that in order to integrate forked changes?

Re:3D.City – Game built with three.js and sea3d by __david__ on Saturday November 29, 2014 @12:02AM (#8673123)
I'm not sure I understand your question. You can't just take other people's code and change the license willy nilly. Often you can incorporate code with different licenses, but only if the licenses are compatible.
Re:3D.City – Game built with three.js and sea3d by synchronise on Saturday November 29, 2014 @01:04AM (#8673210)
Well the author could always append AGPLv3 licenses to all of his original code. The parts that he integrated from MicropolisJS would still remain licensed under the GPLv3, but the greater work and resulting binaries would be licensed under the AGPLv3.
Re:3D.City – Game built with three.js and sea3d by __david__ on Saturday November 29, 2014 @06:14AM (#8673557)
True, they could do that. Your original comment said "recourse", as if it would be bad to take GPL code and integrate it into a AGPL project. Which is also part of the reason I don't understand your question—Why would one need any recourse when someone else is abiding by the terms of a license?
Re:3D.City – Game built with three.js and sea3d by zem on Saturday November 29, 2014 @06:28AM (#8673566)
note that the point of the gpl is not to let the person you forked from reintegrate your forked changes; it's to ensure that no derivative of your work ever locks the end user out. agplv3 is perfectly consistent with that.
Re:3D.City – Game built with three.js and sea3d by DanBC on Friday November 28, 2014 @05:08PM (#8672311)
You're misreading that comment. It does not say what you think it says. What it says is "I wrote MicropolisJS. Someone else took that code and stripped out the licencing headers, and that version is used in 3D.City".

Mocropolis is released under GPL. MicropolisJS is released under GPL. Someone took some code from MicropolisJS and removed the header, and that code is used in 3D.City. The person who removed the licencing headers is not the author of micropolisJS.

Re:3D.City – Game built with three.js and sea3d by the_mitsuhiko on Friday November 28, 2014 @12:03PM (#8671465)
It's his own work. He does not be to be compliant with anything.
Re:3D.City – Game built with three.js and sea3d by bhouston on Friday November 28, 2014 @12:15PM (#8671499)
It isn't his own work apparently, he copied the simulation and removed the GPL license statement.
Re:3D.City – Game built with three.js and sea3d by edvinbesic on Friday November 28, 2014 @12:49PM (#8671603)
It is his own work apparently.

`The simulation is from my own micropolisJS (http://micropolisjs.graememcc.co.uk and https://github.com/graememcc/micropolisJS) just stripped of the GPL License headers and attribution.`

Re:3D.City – Game built with three.js and sea3d by stickydink on Friday November 28, 2014 @01:42PM (#8671744)
It's not the same guy. He does give credit in the README, but still wrongfully stripped out the license information.

https://github.com/lo-th/3d.city/blob/gh-pages/README.md

"Start with the excelent port of Micropolis by graememcc"

Re:3D.City – Game built with three.js and sea3d by PythonicAlpha on Friday November 28, 2014 @04:27PM (#8672220)
It is not necessary, that it is the same guy. When graememcc adds a new license to his own work, than he can do it and an other person can use this license with agreement of the first author.

UPDATE: As much I see now, it seems that graememcc did not consent in using his work with altered license. So it is a violation.

Re:3D.City – Game built with three.js and sea3d by DanBC on Friday November 28, 2014 @04:34PM (#8672229)
There are three pieces of software. Each software was written by one person.

Micropolis is gpl'd.

MicropolisJS is a version of that, and is also correctly licensed.

3DCity - the submission here - is written by someone else. This person stripped the gpl headers and re-used some code without correctly licensing that code.

[deleted]
Re:3D.City – Game built with three.js and sea3d by DanBC on Friday November 28, 2014 @05:00PM (#8672291)
No! The author of MicropolisJS did not strip the licence. You are mis-reading that post.
Re:3D.City – Game built with three.js and sea3d by joshu on Saturday November 29, 2014 @02:14AM (#8673307)
lo-th is not graememcc.
Re:3D.City – Game built with three.js and sea3d by geographomics on Saturday November 29, 2014 @10:24AM (#8673937)
All the source code is available, and the previous work is cited, so how is this a violation of the license?
Re:3D.City – Game built with three.js and sea3d by anamexis on Friday November 28, 2014 @01:04PM (#8671653)
That is not the same person as the one who made the 3D.CITY game.
Re:3D.City – Game built with three.js and sea3d by judk on Friday November 28, 2014 @10:17PM (#8672963)
My phone is too small -- how many pixels do I need in order for your mJS to render?
Re:3D.City – Game built with three.js and sea3d by utternnonsense on Sunday November 30, 2014 @12:15PM (#8677312)
looks like lo-th updated the license for you :)
Re:3D.City – Game built with three.js and sea3d by willvarfar on Friday November 28, 2014 @09:14AM (#8670961)
Very neat!

There are small details like laying out roads and making power lines go over them etc that are super-fiddly too.

I know this because I played around with my own simcity for a while, first in true 3D (making curvy roads look nice is damn difficult) and then a 2D grid.

Here's a screenshot I was particularly proud of - the effort to get to that point was more than it looks! http://media.tumblr.com/c9b51ca1eb2b3e89eb8d5af0f560ec34/tum...

More on my algos http://williamedwardscoder.tumblr.com/post/49797579721/willc...

I was going to procedurally produce the buildings using a variation on Eisenscript https://sites.google.com/site/williamedwardscoder/home/exten... with variables in the script based on things like price, distance to other zones, scores etc

I look at the files you link and think "yeah!". I put my city simulation into a Web Worker and the UI in the browser thread though.

Re:3D.City – Game built with three.js and sea3d by Keloran on Friday November 28, 2014 @11:16AM (#8671312)
the whole repo, much easier

https://github.com/lo-th/3d.city

Re:3D.City – Game built with three.js and sea3d by agentultra on Friday November 28, 2014 @09:48AM (#8671056)
The worker code is interesting. Looks like a single observer that watches everything and dispatches to methods on a global state object. One would expect one observer per subject. Is there some implementation detail in web workers that makes this design more efficient than registering an observer per event?
Re:3D.City – Game built with three.js and sea3d by jastanton on Friday November 28, 2014 @11:22AM (#8671333)
For clarity, by user input it handles the callback of the map being clicked to delegate which tool it's going to use and to update the budget etc... I was excited at first to see all the event handlers setup in a thread that wasn't the UI thread because event handlers are expensive but that doesn't appear to be the case. AFAIK webworkers are fairly isolated so something like setting up event handlers would not be possible.