PlayN 1.1 release

228 views
Skip to first unread message

Michael Bayne

unread,
Feb 13, 2012, 6:13:28 PM2/13/12
to pl...@googlegroups.com
I'm pleased to announce the release of PlayN 1.1, which includes
exciting new features, two new backends (HTML Canvas and iOS), and a
smattering of tasty bug fixes.

The release artifacts have been pushed up to Maven Central and are
available for your dependency enjoyment:

http://repo2.maven.org/maven2/com/googlecode/playn/

Release notes are available for this (and a few previous) releases here:

http://code.google.com/p/playn/wiki/ReleaseNotes

The release notes contain a few notes on changes that will be required
in your code due to obsolescence and evolution.

To update your game to use PlayN 1.1, simply update the playn.version
property in your top-level pom.xml file:

<playn.version>1.1</playn.version>

That concludes our announcement. We return you to your regularly
scheduled kick-ass game creating.

-- m...@samskivert.com

Michael Bayne

unread,
Feb 13, 2012, 6:17:42 PM2/13/12
to pl...@googlegroups.com
On Mon, Feb 13, 2012 at 3:13 PM, Michael Bayne <m...@samskivert.com> wrote:
> Release notes are available for this (and a few previous) releases here:
>
>  http://code.google.com/p/playn/wiki/ReleaseNotes

As part of this release, I have also published Javadocs for PlayN here:

http://docs.playn.googlecode.com/git-history/v1.1/javadoc/index.html

Relevant parts of the release notes link to the appropriate Javadocs.

Let us take this Javadoc release as inspiration to clean up the giant
mountain of blank or TODO javadoc comments that pervade the codebase.

-- m...@samskivert.com

Matt Mastracci

unread,
Feb 13, 2012, 6:21:49 PM2/13/12
to pl...@googlegroups.com
Thanks for all the hard release wrangling work, Michael!

+1 on working towards more sane Javadocs.

Matt Mastracci
Twitter@mmastrac
Bloggrack.com

Philip Rogers

unread,
Feb 13, 2012, 6:22:45 PM2/13/12
to pl...@googlegroups.com
This is so awesome, thank you Michael!

Joel Webber

unread,
Feb 14, 2012, 8:55:40 AM2/14/12
to pl...@googlegroups.com
Great stuff (checked it out, and it works a charm for me). Now I just need to lend a hand cleaning up those TODOs, especially since I wrote half of them :-/

Duk

unread,
Feb 14, 2012, 4:01:28 PM2/14/12
to PlayN
I can not download version 1.1 of playN, when I type
mvn archetype: generate-DarchetypeGroupId = com.googlecode.playn-
DarchetypeArtifactId = playn-archetype-DarchetypeVersion = 1.1
it downloads the PlayN version 1.0.1! only with the projects, android,
html, java

On Feb 14, 11:55 am, Joel Webber <j...@google.com> wrote:
> Great stuff (checked it out, and it works a charm for me). Now I just need
> to lend a hand cleaning up those TODOs, especially since I wrote half of
> them :-/
>
> On Mon Feb 13 18:22:45 GMT-500 2012, Philip Rogers <p...@google.com> wrote:
>
>
>
>
>
>
>
> > This is so awesome, thank you Michael!
>
> > On Mon, Feb 13, 2012 at 6:21 PM, Matt Mastracci <matt...@mastracci.com>wrote:
>
> > On 2012-02-13, at 4:17 PM, Michael Bayne wrote:
>
> > On Mon, Feb 13, 2012 at 3:13 PM, Michael Bayne <m...@samskivert.com> wrote:
>
> > Release notes are available for this (and a few previous) releases here:
>
> >  http://code.google.com/p/playn/wiki/ReleaseNotes
>
> > As part of this release, I have also published Javadocs for PlayN here:
>
> >  http://docs.playn.googlecode.com/git-history/v1.1/javadoc/index.html
>
> > Relevant parts of the release notes link to the appropriate Javadocs.
>
> > Let us take this Javadoc release as inspiration to clean up the giant
> > mountain of blank or TODO javadoc comments that pervade the codebase.
>
> > -- m...@samskivert.com
>
> > Thanks for all the hard release wrangling work, Michael!
>
> > +1 on working towards more sane Javadocs.
>
> >  *Matt Mastracci*
> > matt...@mastracci.com
> > *Twitter*: @mmastrac <http://twitter.com/mmastrac>
> > *Blog*: grack.com

Michael Bayne

unread,
Feb 14, 2012, 4:36:48 PM2/14/12
to pl...@googlegroups.com
On Tue, Feb 14, 2012 at 1:01 PM, Duk <rick...@gmail.com> wrote:
> I can not download version 1.1 of playN, when I type
> mvn archetype: generate-DarchetypeGroupId = com.googlecode.playn-
> DarchetypeArtifactId = playn-archetype-DarchetypeVersion = 1.1
> it downloads the PlayN version 1.0.1! only with the projects, android,
> html, java

Unfortunately, the Maven Central archetype database is only updated
every Sunday:

https://docs.sonatype.org/display/Repository/Central+Repository+FAQ

If you want to use the 1.1 archetype between now and then, you have to
do the following:

git clone https://code.google.com/p/playn/
cd playn
git checkout playn-1.1
mvn clean install
git checkout master

Then you can run:

mvn archetype:generate -DarchetypeCatalog=local \
-DarchetypeGroupId=com.googlecode.playn \
-DarchetypeArtifactId=playn-archetype \
-DarchetypeVersion=1.1

and it will use the archetype installed into your local Maven repository.

-- m...@samskivert.com

Duk

unread,
Feb 14, 2012, 5:07:43 PM2/14/12
to pl...@googlegroups.com
Even doing so did not work ....


[INFO] Reactor Summary:
[INFO]
[INFO] PlayN Project ..................................... SUCCESS [0.559s]
[INFO] PlayN Core ........................................ SUCCESS [3.840s]
[INFO] Java PlayN ........................................ SUCCESS [2.504s]
[INFO] PlayN Android ..................................... SUCCESS [1.629s]
[INFO] Archetype PlayN Project ........................... SUCCESS [0.884s]
[INFO] PlayN Metaproject Benchmark ....................... SUCCESS [0.027s]
[INFO] PlayN Core Benchmarks ............................. SUCCESS [0.578s]
[INFO] PlayN WebGL ....................................... SUCCESS [0.988s]
[INFO] PlayN HTML ........................................ SUCCESS [19.573s]
[INFO] PlayN Benchmark HTML .............................. SUCCESS [2.045s]
[INFO] PlayN Flash ....................................... SUCCESS [0.903s]
[INFO] PlayN JBox2D ...................................... SUCCESS [1.433s]
[INFO] PlayN iOS ......................................... SUCCESS [0.804s]
[INFO] PlayN Payments .................................... SUCCESS [0.034s]
[INFO] Core PlayN Payments ............................... SUCCESS [0.402s]
[INFO] PlayN HTML payments ............................... SUCCESS [0.426s]
[INFO] Server PlayN payments ............................. SUCCESS [0.626s]
[INFO] PlayN Server ...................................... SUCCESS [0.774s]
[INFO] Tests PlayN Metaproject ........................... SUCCESS [0.016s]
[INFO] Tests PlayN Core .................................. SUCCESS [0.561s]
[INFO] Tests PlayN Java .................................. SUCCESS [0.400s]
[INFO] Tests PlayN HTML .................................. SUCCESS [26.097s]
[INFO] Tests Android PlayN ............................... SUCCESS [15.547s]
[INFO] ----------------------------------------------- -------------------------
[INFO] BUILD SUCCESS
[INFO] ----------------------------------------------- -------------------------
[INFO] Total time: 1:21.576 s
[INFO] Finished at: Tue Feb 14 20:02:24 EST 2012
[INFO] Final Memory: 31M/81M
[INFO] ----------------------------------------------- -------------------------
[Duk @ ~ / playn / playn ((branch on))
  

[Duk @ ~ / playn / playn ((branch on))
  
⤷ git checkout master
Previous HEAD position was db92d89 ... [Maven-release-plugin] prepare release playn-1.1
Switched to branch 'master'
[Duk @ ~ / playn / playn (master)
  
⤷ mvn archetype: generate-DarchetypeCatalog = local-DarchetypeGroupId = com.googlecode.playn-DarchetypeArtifactId = playn-archetype-DarchetypeVersion = 1.1
[INFO] Scanning for projects ...
[INFO] ----------------------------------------------- -------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] Project PlayN
[INFO] Core PlayN
[INFO] Java PlayN
[INFO] PlayN Android
[INFO] Archetype Project PlayN
[INFO] PlayN Benchmark Metaproject
[INFO] PlayN Core Benchmarks
[INFO] PlayN WebGL
[INFO] PlayN HTML
[INFO] PlayN Benchmark HTML
[INFO] PlayN Flash
[INFO] PlayN JBox2D
[INFO] PlayN iOS
[INFO] PlayN Payments
[INFO] Core PlayN Payments
[INFO] PlayN payments HTML
[INFO] Server PlayN payments
[INFO] Server PlayN
[INFO] Tests PlayN Metaproject
[INFO] Tests PlayN Core
[INFO] Tests PlayN Java
[INFO] Tests PlayN HTML
[INFO] Tests PlayN Android
[WARNING] POM for The org.eclipse.m2e: lifecycle-mapping: jar: 1.0.0 is missing, the dependency information available
[WARNING] Failed to retrieve plugin descriptor is org.eclipse.m2e: lifecycle-mapping: 1.0.0: Plugin org.eclipse.m2e: lifecycle-mapping: 1.0.0 or one of excellant dependencies could not be resolved: Failed to read artifact descriptor is org.eclipse.m2e: lifecycle-mapping: jar: 1.0.0
[INFO]
[INFO] ----------------------------------------------- -------------------------
[INFO] Building Project PlayN 1.2-SNAPSHOT
[INFO] ----------------------------------------------- -------------------------
[WARNING] POM for The org.eclipse.m2e: lifecycle-mapping: jar: 1.0.0 is missing, the dependency information available
[WARNING] Failed to retrieve plugin descriptor is org.eclipse.m2e: lifecycle-mapping: 1.0.0: Plugin org.eclipse.m2e: lifecycle-mapping: 1.0.0 or one of excellant dependencies could not be resolved: Failed to read artifact descriptor is org.eclipse.m2e: lifecycle-mapping: jar: 1.0.0
[INFO]
[INFO] >>> maven-archetype-plugin: 2.2: generate (default-cli) @ playn-project >>>
[INFO]
[INFO] --- maven-enforcer-plugin: 1.0: enforce (enforce-maven) @ playn-project ---
[INFO]
[INFO] <<< maven-archetype-plugin: 2.2: generate (default-cli) @ playn-project <<<
[INFO]
[INFO] --- maven-archetype-plugin: 2.2: generate (default-cli) @ playn-project ---
[INFO] Generating project in Interactive mode
[INFO] Archetype repository missing. Using the one from [com.googlecode.playn: playn-archetype: 1.1] found in the local catalog
Set value for property 'groupId' :: br.brandish
Set value for property 'artifactId' :: grocery
Set value for property 'version': 1.0-SNAPSHOT :: 1.0
Set value for property 'package': app :: br.brandish
Set value for property 'JavaGameClassName' :: Quitanda
Confirm properties configuration:
groupId: br.brandish
artifactId: grocery store
version: 1.0
package: app
JavaGameClassName: Quitanda
 
Y :: Y
[INFO] ----------------------------------------------- -----------------------------
[INFO] Using Following parameters for Creating Project from Archetype: playn-archetype: 1.1
[INFO] ----------------------------------------------- -----------------------------
[INFO] Parameter: groupId, Value: br.brandish
[INFO] Parameter: artifactId, Value: grocery store
[INFO] Parameter: version, Value: 1.0
[INFO] Parameter: package, Value: app
[INFO] Parameter: packageInPathFormat, Value: app
[INFO] Parameter: package, Value: app
[INFO] Parameter: version, Value: 1.0
[INFO] Parameter: JavaGameClassName, Value: Quitanda
[INFO] Parameter: groupId, Value: br.brandish
[INFO] Parameter: artifactId, Value: grocery store
[INFO] Parent element not overwritten in / Users / duk / playn / playn / grocery / pom.xml
[INFO] Parent element not overwritten in / Users / duk / playn / playn / grocery store / core / pom.xml
[INFO] Parent element not overwritten in / Users / duk / playn / playn / grocery / java / pom.xml
[INFO] Parent element not overwritten in / Users / duk / playn / playn / grocery store / html / pom.xml
[INFO] Parent element not overwritten in / Users / duk / playn / playn / grocery / android / pom.xml
[INFO] project from Archetype created in dir: / Users / duk / playn / playn / grocery
[INFO] ----------------------------------------------- -------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] PlayN Project ..................................... SUCCESS [19.376s]
[INFO] PlayN Core ........................................ SKIPPED
[INFO] Java PlayN ........................................ SKIPPED
[INFO] PlayN Android ..................................... SKIPPED
[INFO] Archetype PlayN Project ........................... SKIPPED
[INFO] PlayN Metaproject Benchmark ....................... SKIPPED
[INFO] PlayN Core Benchmarks ............................. SKIPPED
[INFO] PlayN WebGL ....................................... SKIPPED
[INFO] PlayN HTML ........................................ SKIPPED
[INFO] PlayN Benchmark HTML .............................. SKIPPED
[INFO] PlayN Flash ....................................... SKIPPED
[INFO] PlayN JBox2D ...................................... SKIPPED
[INFO] PlayN iOS ......................................... SKIPPED
[INFO] PlayN Payments .................................... SKIPPED
[INFO] Core PlayN Payments ............................... SKIPPED
[INFO] PlayN HTML payments ............................... SKIPPED
[INFO] Server PlayN payments ............................. SKIPPED
[INFO] PlayN Server ...................................... SKIPPED
[INFO] Tests PlayN Metaproject ........................... SKIPPED
[INFO] Tests PlayN Core .................................. SKIPPED
[INFO] Tests PlayN Java .................................. SKIPPED
[INFO] Tests PlayN HTML .................................. SKIPPED
[INFO] Tests Android PlayN ............................... SKIPPED
[INFO] ----------------------------------------------- -------------------------
[INFO] BUILD SUCCESS
[INFO] ----------------------------------------------- -------------------------
[INFO] Total time: 20.927s
[INFO] Finished at: Tue Feb 14 20:03:24 EST 2012
[INFO] Final Memory: 12M/81M
[INFO] ----------------------------------------------- -------------------------
[Duk @ ~ / playn / playn (master)
  
⤷ grocery cd /
[Duk @ ~ / playn / playn / grocery store (master)
  
⤷ ls
core java html android build.xml pom.xml
[Duk @ ~ / playn / playn / grocery store (master)
  

Duk

unread,
Feb 14, 2012, 5:17:06 PM2/14/12
to PlayN
There is another way to create a blank project using the "playn 1.1"?
> >  git clonehttps://code.google.com/p/playn/

Michael Bayne

unread,
Feb 14, 2012, 5:21:04 PM2/14/12
to pl...@googlegroups.com
On Tue, Feb 14, 2012 at 2:07 PM, Duk <rick...@gmail.com> wrote:
> Even doing so did not work ....

What you showed below looks like full success to me. What didn't work about it?

-- m...@samskivert.com

wirgon

unread,
Feb 22, 2012, 5:41:21 AM2/22/12
to PlayN
Well... It is after sunday now and when i use "mvn archetype:generate -
DarchetypeGroupId=com.googlecode.playn -DarchetypeArtifactId=playn-
archetype -DarchetypeVersion=1.1"
It didn't create backend (catalog) for iOS.... will it be added in
near future ?

On Feb 14, 10:36 pm, Michael Bayne <m...@samskivert.com> wrote:
> On Tue, Feb 14, 2012 at 1:01 PM, Duk <rick....@gmail.com> wrote:
> > I can not download version 1.1 of playN, when I type
> > mvn archetype: generate-DarchetypeGroupId = com.googlecode.playn-
> > DarchetypeArtifactId = playn-archetype-DarchetypeVersion = 1.1
> > it downloads the PlayN version 1.0.1! only with the projects, android,
> > html, java
>
> Unfortunately, the Maven Central archetype database is only updated
> every Sunday:
>
>  https://docs.sonatype.org/display/Repository/Central+Repository+FAQ
>
> If you want to use the 1.1 archetype between now and then, you have to
> do the following:
>
>   git clonehttps://code.google.com/p/playn/

Michael Bayne

unread,
Feb 22, 2012, 12:32:18 PM2/22/12
to pl...@googlegroups.com
On Wed, Feb 22, 2012 at 2:41 AM, wirgon <brzo...@gmail.com> wrote:
It didn't create backend (catalog) for iOS.... will it be added in
near future ?

The archetype does not create an ios project. Not in the 1.1 release, and not in the latest trunk. The ios support is pretty solid, but the ios build system is a giant pile of hacks. I wouldn't want to give people the idea that it just works out of the box. Most people can't even get Eclipse to work with Android or GWT, I definitely don't want those people trying to deploy to iOS. Consider the lack of an ios module in the archetype a "Warning: Dangerous Terrain Ahead" sign.

There are unresolved issues with the way MonoDevelop relies on Visual Studio project files, which require knowledge of where certain things are via absolute paths on the file system. This is totally unportable and can't be magically solved via the Maven archetype. I may need to write a Maven plugin that generates a Visual Studio project file with the appropriate hard coded crap.

There are issues with the way MonoDevelop (and Visual Studio and Xcode, which it is copying in this case), handle resources. They require that every single image, audio, etc. file be enumerated in the Visual Studio project file, and that those files be in subdirectories of the directory that contains the Visual Studio project file. This is in conflict with the way PlayN projects are normally organized, where the media are under the core/ directory, usually deep down in its bowels in core/src/main/java/com/foobar/bazgame/resources. I have currently made this kind of work by symlinking that directory into the ios/ directory and instructing MonoDevelop to automatically scan that directory and add any new resources it finds to the project file (this auto-scanning is apparent how those barbarians IDE users handle these things). However, symlinks don't work reliably on Windows (not necessarily an issue since you can't build the ios stuff on Windows), and there's also no way to get a Maven Archetype to create a symlink in the first place (AFAIK). So that has to be sorted out.

Also, I need to write a Maven plugin that performs the conversion from Java bytecodes to CLR bytecodes using IKVM. Presently that's accomplished by a shell script, which is full of hard coded paths and hard coded project version numbers.

The whole business needs a lot of work before it's going to be plug and play. If you want to try out the ios backend right now, you need to do some work up front, and understand how the whole process works. I explained the process in an email a while back, and you can look at showcase/ios and hello/ios in the playn-samples project to see how to set up your own game's ios directory. It's not that complicated, but it involves yet more moving parts.

If you were especially motivated, you could write down everything you did to get things working and make a tutorial for other people who want to deploy to ios. :)

-- m...@samskivert.com

Lars Ivar Igesund

unread,
Feb 23, 2012, 5:11:03 AM2/23/12
to pl...@googlegroups.com
Michael,

you mention Windows, and I guess implicitly Mac for final
build/deploy. How do Linux (as a dev env) fit (or not) into this
picture?

Regards,
Lars Ivar

Michael Bayne

unread,
Feb 23, 2012, 11:35:49 AM2/23/12
to pl...@googlegroups.com
On Thu, Feb 23, 2012 at 2:11 AM, Lars Ivar Igesund <lar...@gmail.com> wrote:
you mention Windows, and I guess implicitly Mac for final
build/deploy. How do Linux (as a dev env) fit (or not) into this
picture?

Unfortunately, it's not possible to build an iOS app on anything except a Mac. This is because various of the tools needed to build and deploy the app only exist for Mac OS.

All of the other PlayN backends can be built on Mac/Linux/Windows.

It is possible to build a PlayN game on a continuous build system (I do it with my games, you can see the build for my poor, neglected PlayN "demo" game here: http://build.threerings.net/job/atlantis/), and even to deploy the HTML backend via said continuous build system (which I've also done), achieving the continuous deployment that's so popular with the Web 2.0 kids these days.

To deploy the APK to an Android device, one must take a manual step (I suppose if you had an Android device connected to your build server, you could perhaps automatically deploy to the device).

To deploy to the iOS simulator or an iOS device, you must take some manual steps after your normal game build. I'll be reducing those manual steps to the pressing of a single button in MonoDevelop, but I don't know if that final step can be automated. It may be possible to do the final iOS build and deploy via command line tools, but I haven't yet looked into it.

-- m...@samskivert.com

Lars Ivar Igesund

unread,
Feb 25, 2012, 6:33:03 AM2/25/12
to pl...@googlegroups.com
Thanks for the information Michael.

It would be totally awesome if some one-click solution for
building/deploying on Mac was possible. Then I could offload that part
to a brother more inclined to be in possession of such beasts :)

Regards,
Lars Ivar

Reply all
Reply to author
Forward
0 new messages