Month: February 2019

Gamerverse

I have more things to say about Spider-Man for the PS4!

I saw an ad the other day for a comic book adaptation of the game. It had a logo that said "Marvel Gamerverse".

Now, I assume this is just an umbrella label that Marvel is going to stick all its game-related comics under, and doesn't actually imply that there are going to be other games that take place in the same universe as Spider-Man (aside from the inevitable sequel, of course).

But it got me thinking: what's Spider-Man 2 going to look like, and what would it look like if there were other, non-Spider-Man games in the same series?

My first question is, what's Spider-Man 2's map going to look like? The best thing about the first game is swinging around a fairly realistic version of Manhattan. It's not perfect, of course, and it gets less accurate the farther you get from midtown, but as somebody who's only been to New York once I was impressed by the verisimilitude. "Oh, that's Radio City Music Hall; that means Rockefeller Center is over this way."

How to expand on that? Should Spider-Man 2 include some of the outer boroughs? I'm not sure there's quite as much demand for swinging around Brooklyn and Queens, but I could dig it.

Otherwise, or in addition, they could also expand Manhattan, work on making it even more accurate than it already is. I suppose there'd be some cognitive dissonance there -- wait, this is supposed to be the same location as the first game; why is the map so different? -- but, ultimately, it's video games and you suspend your disbelief.

Alternately, the new game could take a cue from the upcoming Spider-Man: Far from Home and put Spidey down in some other city. But given the dangling plot threads left at the end of the previous game, I don't expect that to happen; I expect the sequel will still be based in New York.

Another thought I had: what other superheroes would function in a game like this?

The most obvious answer is Daredevil. He's another street-level Marvel superhero who gets around by leaping across rooftops. He'd be a natural fit, and the game could also find a way to work some compelling courtroom drama into the out-of-costume sequences. Plus, some creative design choices could do some really cool shit with DD's heightened senses. (One of the most memorable moments in Spider-Man was when I heard a voice over my shoulder and it startled me. You wouldn't be able to make a Daredevil game that required the player to have a surround sound system or play the game with headphones, but you could certainly design the sound so that it would benefit from those things, where available.)

But you know who I'd really like to see in a Spider-Man-esque game? Black Panther.

BP is another character with a relatively modest super-power set, who can run up buildings and leap across rooftops. He'd be perfect. And as cool as Manhattan is in Spider-Man, a game set in Wakanda would provide an opportunity for more creative city design. Where Spider-Man benefits from a realistic recreation of a real-life city (with some Marvel Comics embellishments like Avengers Tower and the Sanctum Sanctorum), game designers would have the freedom to design Birnin Zana however they want (much like Gotham City in the Arkham games). Picture a Golden City as big and detailed as Spider-Man's Manhattan -- yeah, that's a game I want to play.

Original Character Do Not Steal

I posted the other day about how much I loved Spider-Man: Into the Spider-Verse. But it wasn't the only Spider-Man adaptation that I've thoroughly enjoyed over the past couple of months. You know what else is great? Spider-Man for the PlayStation 4.

But you know, as much as I loved it, it's got its weaknesses, and there's one in particular I'm thinking of; a weakness it shares with the Batman: Arkham series whose formula it copies.

And that weakness is this: Batman and Spider-Man have two of the best rogues galleries in comics. So why do you spend so much of the game beating up on generic thugs?

The generic enemies in the Arkham series fall along the lines of "thug", "thug in clown mask", "thug in Two-Face mask", that kind of thing. What's the difference between a Joker thug and a Two-Face thug? Not a hell of a lot.

Spider-Man does a little bit better. It's got its share of generic thugs, but the Demons and the Sable mercs are more memorable, and they have their own weapons and attack patterns that the other mobs don't share.

But I'd still like to see a little more color among the low-level enemies in the game. I'm not saying get rid of the street thugs entirely; Batman and Spider-Man are street-level heroes, and fighting ordinary thugs is definitely in their wheelhouse. But maybe increase the ratio of colorful costumed supervillains to generic muggers.

And here's my thought: they should copy the Nemesis system from Middle-Earth: Shadow of Mordor/Shadow of War.

I'm not saying copy it entirely. Like I said, Spider-Man's already got a fantastic stable of villains; he doesn't need a game built around pursuing new ones created at random.

But what I'm thinking is, those sidequests where you fight through a warehouse full of Kingpin thugs or whatever? Put some kind of randomized supervillain sub-boss at the end of those.

I'm also picturing the late, lamented MMORPG City of Heroes as a template. CoH let you choose a basis for your powers -- technological gadgets, scientific experimentation, genetic mutation, the usual superhero origin stuff -- and a power set related to that. It also had an extremely versatile character creation tool.

So I'm thinking, populate a Spider-Man game with minor supervillains whose names, costumes, powers, and origin stories are randomly pieced together from a set of stock supervillain tropes.

Silas Skinner was a lab assistant at Oscorp, until a lab accident caused his skin to begin growing out of control. When Mr. Negative offered him a chance at revenge on Norman Osborn, he joined the Demons. With the help of stolen unstable-molecule tech, he is now able to control his skin-stretching power, and runs the Upper-West Side as Epidermis Rex!

Dawn Dwyer was a ticket-taker at the Central Park Zoo, until she was badly injured in a stampede caused by Kraven the Hunter. In exchange for her loyalty, Wilson Fisk outfitted her with a mechanical suit that compensates for her injuries and grants her enhanced strength and speed. Now, she leads an animal-themed gang of enforcers as Bear Dawn!

Pointagar Stickagon is an Inhuman who owns a pointy stick. He terrorizes Midtown as Pointy Stick!

Fauxpen Source

Back in December, Bryan Cantrill wrote a pretty good article titled Open source confronts its midlife crisis. He discusses a particular problem that's started cropping up over the past year or so: companies deciding that free software/open source licenses are unfair, and modifying them so that they're no longer free/open-source.

It's the same old problem we've been seeing since the start of the Free Software movement: how can you make a profit giving your software away for free? How can you stay in business if somebody else can just take your software and resell it without giving you a cut?

There's a growing trend toward answering that question with "Change the license so they can't do that."

One particular example is the inaccurately-named Commons Clause, which is a clause you can attach to some other license; here it is in its entirety:

"Commons Clause" License Condition v1.0

The Software is provided to you by the Licensor under the License, as defined below, subject to the following condition.

Without limiting other conditions in the License, the grant of rights under the License will not include, and the License does not grant to you, the right to Sell the Software.

For purposes of the foregoing, “Sell” means practicing any or all of the rights granted to you under the License to provide to third parties, for a fee or other consideration (including without limitation fees for hosting or consulting/ support services related to the Software), a product or service whose value derives, entirely or substantially, from the functionality of the Software. Any license notice or attribution required by the License must also include this Commons Clause License Condition notice.

The Free Software Foundation has added the Commons Clause to its license list under "Nonfree Software Licenses". In its update notes, the FSF explained the move:

We added the Commons Clause to our list of nonfree licenses. Not a stand-alone license in and of itself, it is meant to be added to an existing free license to prevent using the work commercially, rendering the work nonfree. It's particularly nasty given that the name, and the fact that it is attached to pre-existing free licenses, may make it seem as if the work is still free software.

Cantrill called out other nonfree licenses too, including Confluent's Community License. Confluent's Jay Kreps objected:

We actually aren’t trying to "co-opt" the community or open source terminology. We tried really hard both in the license and in the blog post to be honest and upfront. Whether you like Confluent's license or not, you have to agree it is exceptionally permissive and the software has a pretty great community of users. How do you describe a license that lets you run, modify, fork, and redistribute the code and do virtually anything other than offer a competing SaaS offering of the product?

I describe it as "Not open source."

"Open source" is not a generic term. It doesn't just mean that you can look at a program's source code. It's a term of art, subject to the Open Source Definition. And the definition includes section 6:

6. No Discrimination Against Fields of Endeavor

The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

I'm not a lawyer, but I'm pretty sure "a competing SaaS offering" counts as a field of endeavor.

Bruce Perens, who wrote the OSD, explains more in a blog post titled When Licenses Discriminate. It's a relatively short post, so I'm going to quote it in its entirety:

A long time ago, well-meaning people at the University of California, Berkeley created a license for their SPICE electronic simulation software that prohibited use by the Police of South Africa. This was, of course, during Apartheid.

Years later, Apartheid ended. The Police of South Africa now included Blacks and Whites with the same duties and powers. And they were still prohibited from using Berkeley SPICE. Getting the University of California to change the license, so that the software could be carried in Debian as "Free Software", was impossible at the time.

I took this example (among others) and wrote into the Open Source Definition (then the Debian Free Software Guidelines) that licenses could not discriminate against persons or groups, or against fields of endeavor.

This implements a major principle of Free Software. Freedom means Freedom for Everyone, not Freedom For People I Approve Of. Even when those folks abuse the freedom of others.

Someone recently created a license that discriminates against companies that have contracts with the U.S. Immigration and Customs Enforcement (ICE), a division of the Department of Homeland Security. Ironically, this is called "Moral Programming" or "Moral Licensing". I have to object to it on moral grounds.

I don't approve of the recent conduct of ICE under the direction of Donald Trump and his gang. Far, far from it. I am happy to say so, to participate in protests, and most importantly, I will not vote Republican in upcoming elections.

But if you insist on denying them the right to run your software in your license, please be careful not to call it Open Source or Free Software. Because your license will not comply with the Open Source Definition or the Four Freedoms of the Free Software Foundation. Which protect Freedom for everyone.

There's another license that's been getting some attention lately: MongoDB's Server Side Public License. It's based on the GNU Affero General Public License (which in turn is based on the GNU General Public License), but it makes a significant change. Here's Section 13 of the Affero GPL:

13. Remote Network Interaction; Use with the GNU General Public License.

Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.

Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License.

Here's the modified version in the SSPL:

13. Offering the Program as a Service.

If you make the functionality of the Program or a modified version available to third parties as a service, you must make the Service Source Code available via network download to everyone at no charge, under the terms of this License. Making the functionality of the Program or modified version available to third parties as a service includes, without limitation, enabling third parties to interact with the functionality of the Program or modified version remotely through a computer network, offering a service the value of which entirely or primarily derives from the value of the Program or modified version, or offering a service that accomplishes for users the primary purpose of the Program or modified version.

"Service Source Code" means the Corresponding Source for the Program or the modified version, and the Corresponding Source for all programs that you use to make the Program or modified version available as a service, including, without limitation, management software, user interfaces, application program interfaces, automation software, monitoring software, backup software, storage software and hosting software, all such that a user could run an instance of the service using the Service Source Code you make available.

That's some pretty dry legalese, but if you've made it this far, I suppose you're interested in reading about technical differences in free software licenses. So here goes:

If you take a program that's licensed under the Affero GPL, modify it, and make that modified version available to run over a network, you have to license your modified version under the Affero GPL.

Whereas under the SSPL, if you use MongoDB as part of a service package you offer to third parties, you have to release the entire package under the SSPL.

While MongoDB is couching this in the language of the GPL and copyleft, its goal seems more inline with the Commons Clause. It doesn't actually expect anyone to use MongoDB as part of a package and then release the entire software stack under the SSPL; it expects the terms of the SSPL to be so onerous that companies just pay MongoDB to license the software without the SSPL.

What's the point of all this?

It gets back to that earlier question: how do you make money on software you give away for free?

One of the traditional answers to that question has been that you charge for support. That was the idea behind MongoDB: they'd give the software away for free, but charge for support.

That may have been a viable business strategy a decade ago, but the market has changed. More and more companies are choosing not to run their own servers on-site, but instead to use Amazon Web Services. And that disrupts the traditional "pay for service" model -- because now companies are using MongoDB, and they're paying for service, but they're not paying MongoDB for service, they're paying Amazon for it.

Clearly the bean-counters at MongoDB saw this as a problem, and so they wrote a license that they hoped would force Amazon to pay them to continue using their software.

It didn't work. Amazon responded by creating a competing database format called DocumentDB. As soon as Amazon announced the project, MongoDB's stock dropped nearly 15 points. Whoops.

Meanwhile, neither the Free Software Foundation nor the Open Source Initiative has reached an official verdict yet on whether the SSPL is a free/open-source license, but it's under review, and Bruce Perens has his doubts.

First of all, he notes that it almost certainly violates the FSF's copyright on the AGPL; just because it's a license that allows redistribution of modified versions of software doesn't mean that it allows redistribution of modified versions of the text of the license.

The issue of the license text being infringing of FSF's copyright needs to be addressed. I doubt FSF is going to give permission for this use of their text. There is a possible 17 USC 102(b) argument, but most sources (Nimmer, Adams) disagree, and I don't know of any case law. This might require a full rewrite, and IMO OSI would face a risk of being a contributory infringer simply by hosting a copy of the current text on their site. The legal ambiguity of that might be sufficient reason for rejection.

And in the same post, he suggests it might violate sections 6 and 9 of the OSD. I've already quoted #6; here's the text of #9:

9. License Must Not Restrict Other Software

The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software.

And here's what Perens has to say about the SSPL:

I am most concerned with the second paragraph of section 13, and its conflict with OSD #9 and #6. The definition of how those pieces are coupled needs to be tighter. Management software, backup software, etc. may be used as part of the offering of a service, but they don't create a derivative work, nor are they combined into the same program. So, we get a restriction on works that are simply aggregated together (#9) or a restriction on use of the program if the data is backed up using a non-Open-Source backup program (#6).

In a later post, and with deep apologies, Perens backs off the Section 9 claims and states that the SSPL violates the spirit of Section 9, but not the letter.

The OSD terms were not written for software-as-a-service. OSD #9 very clearly states

The license must not place restrictions on other software that is *distributed* along with the licensed software. For example, the license must not insist that all other programs *distributed on the same medium* must be open-source software.

Since software-as-a-service software is not distributed, OSD #9 doesn't apply. Sorry. The document was written for another time and I could not predict today's conditions.

Regardless, even if it doesn't violate #9, it would nonetheless appear to violate #6. At any rate, Red Hat and its community version, Fedora, think so; they've rejected the SSPL and will be removing MongoDB from their software repositories. The Debian maintainers don't even think a strict analysis of the Debian Free Software Guidelines is necessary; it clearly violates the spirit of the DFSG, and that's good enough for exclusion from Debian.

Here's the thing: a change in license can kill a project. XFree86 was a much more essential package than MongoDB, and its owners made a much more minor change to its license. But that was enough to completely destroy the project. A previous version, with the old license, was forked as X.Org, and within a matter of months every Linux and BSD release had switched.

MongoDB is well along that path. The company has since introduced SSPL v2 in the hopes that it will prove more acceptable than v1, but MongoDB itself is still published under v1.

Maybe v2 will prove more acceptable. Maybe MongoDB won't end up like XFree86 and it'll end up like, say, KDE instead -- a project which initially used a nonfree license but then switched to a free license and continues to be widely used. Those are MongoDB's options: make your license acceptable to the free/open-source community, or fade into irrelevance as everybody switches to a fork. Time will tell which path MongoDB ultimately takes -- and what impact that has on the rest of this new crop of projects trying to pass off proprietary licenses as free ones.

Does Whatever a Spider-Pig Does

I finally got around to seeing Spider-Man: Into the Spider-Verse.

...actually, I saw it like a month ago, and that's when I wrote this post. But then I got some kind of flu or something and I'm only now just getting around to posting it. But hey, now it's timely, because it is now Academy Award winner for Best Animated Feature Spider-Man: Into the Spider-Verse. Anyway:

I finally got around to seeing Spider-Man: Into the Spider-Verse. And it blew me away.

Mothra on Brontoforumus described it as the best comic-book movie he'd ever seen. When I read that comment, I assumed he meant the best movie based on a comic. Now that I've seen it, I'm thinking he must have meant the movie that best translated the medium of comics onto the screen.

I'm inclined to agree. It does some really cool shit with comic-style layouts (like the new DuckTales opening titles, if they were two hours long). Where movies like Persepolis and Sin City are straight off the page, Spider-Verse adapts the page itself. In a funny way, I think the movie makes a good defense of Ang Lee's Hulk -- because you can watch Spider-Verse and see that this is what Lee was trying to do with those splitscreen tricks. He couldn't quite stick the landing, but I've always thought it was a fascinating approach -- and Spider-Verse takes those ideas and makes them work.

Plus, after 35 years of "Biff! Pow! Comics aren't just for kids anymore!" headlines, it's nice to see a movie that's finally unselfconscious enough to put sound effects up on the screen.

And the plot -- somehow, a movie that's packed with heroes, villains, and parallel dimensions manages to feel lean and tight. I think part of that is that the script (by Phil Lord and Rodney Rothman) knows who to focus on (Miles > Peter > Gwen > the rest; Kingpin > Prowler > Doc Ock > the rest). It also trusts the audience: not only do Lord and Rothman trust that they don't need to explain who Doc Ock is; they trust that the very idea of a bunch of different versions of Spider-Man from parallel universes is a fit premise for a kids' movie.

They're right.

I took my seven-year-old nephew to see it. He didn't have any problem understanding the many-worlds premise. Granted, it's not the first time he's seen a superhero multiverse; both the 2003 and 2012 versions of the Teenage Mutant Ninja Turtles teamed up with the 1987 versions at one time or another. But the point is, this is a kids' movie that treats kids like they're smart.