czyzby / gdx-setup Goto Github PK
View Code? Open in Web Editor NEW:octocat: Alternative gdx-setup application - create your LibGDX projects with ease!
Home Page: https://github.com/czyzby/gdx-setup/releases
License: The Unlicense
:octocat: Alternative gdx-setup application - create your LibGDX projects with ease!
Home Page: https://github.com/czyzby/gdx-setup/releases
License: The Unlicense
As per title, im using gdx-setup 1.9.5-beta1.
In Advanced tab:
changing build tools version and gwt version gets remembered anyway
KTX is a set of Kotlin LibGDX extensions.
kotlin template for applicationlistener/adapter, seems to create a java class instead. what it should do is create a kotlin one for starters.
GWT 2.8.0 is now the default version used by the GWT backend.
ApplicationListener
.ApplicationAdapter
.Game
, basic Screen
usage.InputProcessor
: combined ApplicationListener
and InputAdapter
.Scene2D
, basic GUI.gdx-setup
(displaying BadLogic logo).Artemis-odb is an alternative to libgdx's Ashley. Definitely worth including.
Add GWT support for gdx-facebook.
http://www.badlogicgames.com/forum/viewtopic.php?f=17&p=93566#p93566
LmlApplicationListener
. (How can I use LML to manage my views?)Original gdx-setup
analyses Android SDK at the given path - this application just trusts you to do the right thing and enter path to the correct directory. It would be nice to inspect and move the Android SDK analysis code from the original application, and attach it as a custom validator to the Android SDK text field.
MOE
platform.JogAmp is basically an alternative to LWJGL. There is an unofficial backend, which is kept pretty much up to date (the latest release supports LibGDX 1.9.3, which happens to be the latest version as I'm writing this). The maintainer claims that JOGL supports Raspberry Pi and Android, not sure about integration with existing libraries though. Even if most supported platforms are already covered, this could be an alternative for people who don't want to use existing LWJGL-based backends (for whatever reason).
blade-ink is a LibGDX-compatible Java implementation of Ink - a scripting language for writing interactive narrative. See the forum topic.
Scene2D
?See KTX.
gdx-video is a (semi?) official LibGDX extension that could be included in gdx-setup
.
I followed the instruction in official MOE website (install eclipse plugin then create a project) to install MOE on my mac. But still can not check the "ios MOE" platform. It keep prompt "Intel's Multi OS Engine is not installed"
The official libGDX setup tool recently updated a specific file, soundmanager2-jsmin.js, to the most recent version as part of the libGDX 1.9.5 and GWT 2.8.0 update. The problem is, if an application uses libGDX 1.9.5 or 1.9.6 but has a soundmanager2-jsmin.js file from an earlier version, then there's a mismatch when the app is loaded in the browser and the entire application fails to start. This file isn't part of the jar distribution or anything, and needs to be added as part of the project generation to the webapp
folder of the gwt module. I've gotten around this by copying in that file manually, which works OK... but the user should at least be told they need to copy in that file to (using this tool's layout conventions) gwt/webapp/soundmanager2-jsmin.js
. The main tricky part to fixing this in gdx-setup is using a different soundmanager2-jsmin.js for libGDX 1.9.4 or earlier versus 1.9.5 or later.
In order to compile on GWT 2.8.0, I've also needed to remove the line
enableClosureCompiler = true
from gwt/build.gradle
, since that option isn't present in GWT 2.8.0, and to add the line
<set-configuration-property name="xsiframe.failIfScriptTag" value="FALSE"/>
to the file GdxDefinition.gwt.xml (which is in the user-specified package folder in the gwt module).
These are definitely needed for the gwt:dist
task, but I don't know if they're needed for superDev. I may have missed some steps, but I have a working project in https://github.com/tommyettinger/SquidLib-Demos/tree/master/TheTsar3 that I can check for changes I made.
SquidLib is a toolbox for turn-based games based on LibGDX. While it seems to come with a separate project generator tool, including this extension in gdx-setup
- possibly with a showcase template - would certainly be nice.
Since we'd rather not use snapshot versions (or their equivalents), the library should probably be included after the next release to Maven Central. See yellowstonegames/SquidLib#126
.usl
file included in raw
folder.
pack
task.USL is an alternative to plain LibGDX skin JSON files. It could be easily added as a Gradle build time dependency and invoked via Gradle task, similarly to texture packer. Providing a separate USL template might be unnecessary - it's not really a runtime extension, I think such template would simply consist of JSON generation at headless and desktop projects.
As a third party extension, USL should be added to root Gradle build time dependencies (project.rootGradle.buildDependencies
) with quotes included. Including it as compile time dependency in desktop and headless projects - similarly to gdx-tools
- might also prove useful.
I can work around this if need be, but the fix is trivial so I'd like to see it in the main application. In the generated build.gradle for an android module, the command adb is called as part of a list of arguments, as seen in the code here https://github.com/czyzby/gdx-setup/blob/master/src/main/kotlin/com/github/czyzby/setup/data/platforms/android.kt#L189 . But, Gradle won't interpolate Strings in single quotes, and the adb section there results in '$adb'
where it should instead be "$adb"
. Without interpolating to get an actual command from the variable adb, it tries to run the command at the command line called $adb
(including the non-removed dollar sign), which doesn't exist. That actually had caused my android modules to fail for months, if not a year, and interfere with other modules, so I always removed Android when I encountered this. Now, I don't have to, and I hope this quick fix can be used.
For absolute ease of implementation, change
commandLine '${'$'}adb', 'shell', 'am', 'start', '-n', '${project.basic.rootPackage}/${project.basic.rootPackage}.android.AndroidLauncher'
to
commandLine "${'$'}adb", 'shell', 'am', 'start', '-n', '${project.basic.rootPackage}/${project.basic.rootPackage}.android.AndroidLauncher'
or however you need to change a single quote to a double quote in the middle of a literal string. You probably also want to do this on lines 182 and 185, above the line I linked to and also containing ${'$'}
in a single-quoted un-interpolated string; I think that that's why my ANDROID_HOME settings weren't respected and I needed a local.properties file.
TypingLabel is an extension of the Scene2d Label
widget.
Hey. I'm using a clean install (see exact settings below) and I can't access the assets folder when running the application on my android device. Accessing the assets works just fine on desktop. I use Gdx.files.internal()
to try to access the assets folder. I've tried debugging the problem and these are some conclusions I've come to:
Gdx.files.internal("").exists()
is true)./images
, /sounds
, /webkit
(checked with Gdx.files.internal("").list()
).
build.gradle
in my android directory says assets.srcDirs = ['../assets']
.
../assets
does exist but is not the folder that Gdx.files.internal()
points to.../assets
folder just in case).These are my settings in gdx-setup:
Any help appreciated!
A simple README.md
file could be optionally generated if the user asks the application to do so. It could contain descriptions of basic Gradle tasks.
Gradle wrapper was excluded from the initial gdx-setup
on purpose - it makes the jar a lot bigger, forces a specific Gradle version and thanks to not running the Gradle tasks, the generation takes a fraction of second instead of up to a few minutes.
However, Gradle wrapper might be useful to beginners and people that - for any reason - do not want to install Gradle globally. It should be possible to _optionally_ include Gradle wrapper and run any Gradle tasks right after the initial generation.
Noise4J is a lightweight map generation utility library.
I can generate a project just fine with gdx-setup (I downloaded the latest nightly linked from the main page), and can even run certain tasks for the project (like desktop:run
) from the command line, but I can't import the project into IntelliJ IDEA and I can't run basic tasks like gradlew tasks
. There's an error in IDEA about missing the armeabi native jar that should be part of gdx-platform, and it offers to show the log, but IDEA apparently can't load that... since it freezes if I try to view the log. I initially got an error running gradlew tasks
that showed a stacktrace that led to me updating to the Android 23.0.3 tools. Since then, no stacktrace but no improvement in the error either. I'm having a hard time tracking down the actual source of this bug, and it's very possible it's a local configuration issue, but it hasn't happened at all with the normal libGDX setup-ui. Here's the relevant info, with a few hundred lines of internal gradle stacktrace removed:
$ gradlew tasks --stacktrace
Configuration on demand is an incubating feature.
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\Users\noto\Documents\GitHub\GdxSetupTestSquid\android\build.gradle' line: 46
* What went wrong:
A problem occurred evaluating project ':android'.
> Could not resolve all dependencies for configuration ':android:natives'.
> Could not find gdx-platform-natives-armeabi.jar (com.badlogicgames.gdx:gdx-platform:1.9.2).
Searched in the following locations:
file:/C:/Users/noto/.m2/repository/com/badlogicgames/gdx/gdx-platform/1.9.2/gdx-platform-1.9.2-natives-armeabi.jar
* Try:
Run with --info or --debug option to get more log output.
* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':android'.
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:157)
at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:72)
...
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: org.gradle.api.artifacts.ResolveException: Could not resolve all dependencies for configuration ':android:natives'.
at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver.wrapException(ErrorHandlingConfigurationResolver.java:70)
...
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
... 71 more
Caused by: org.gradle.internal.resolve.ArtifactNotFoundException: Could not find gdx-platform-natives-armeabi.jar (com.badlogicgames.gdx:gdx-platform:1.9.2).
Searched in the following locations:
file:/C:/Users/noto/.m2/repository/com/badlogicgames/gdx/gdx-platform/1.9.2/gdx-platform-1.9.2-natives-armeabi.jar
at org.gradle.internal.resolve.result.DefaultBuildableArtifactResolveResult.notFound(DefaultBuildableArtifactResolveResult.java:38)
at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver.resolveArtifact(ExternalResourceResolver.java:247)
...
at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver$ErrorHandlingResolvedConfiguration.getFiles(ErrorHandlingConfigurationResolver.java:197)
... 90 more
BUILD FAILED
Total time: 1.515 secs
And here's the results of it with --info
on instead of --stacktrace
:
$ gradlew tasks --info
Connected to daemon DaemonInfo{pid=6008, address=[34a8d807-0143-4399-aa3d-6e066f967371 port:49258, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]], idle=true, context=DefaultDaemonContext[uid=b0dbe4a4-a285-4009-8f81-f9d16bb1548a,javaHome=C:\Program Files\Zulu\zulu-8,daemonRegistryDir=C:\Users\noto\.gradle\daemon,pid=6008,idleTimeout=10800000,daemonOpts=-Xms128m,-Xmx512m,-Dfile.encoding=windows-1252,-Duser.country=US,-Duser.language=en,-Duser.variant]}. Dispatching request Build{id=227e6adf-23df-462f-a87d-e4f8ee2ea4f8.1, currentDir=C:\Users\noto\Documents\GitHub\GdxSetupTestSquid}.
Received result org.gradle.launcher.daemon.protocol.BuildStarted@4e928fbf from daemon DaemonInfo{pid=6008, address=[34a8d807-0143-4399-aa3d-6e066f967371 port:49258, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]], idle=true, context=DefaultDaemonContext[uid=b0dbe4a4-a285-4009-8f81-f9d16bb1548a,javaHome=C:\Program Files\Zulu\zulu-8,daemonRegistryDir=C:\Users\noto\.gradle\daemon,pid=6008,idleTimeout=10800000,daemonOpts=-Xms128m,-Xmx512m,-Dfile.encoding=windows-1252,-Duser.country=US,-Duser.language=en,-Duser.variant]} (build should be starting).
The client will now receive all logging from the daemon (pid: 6008). The daemon log file: C:\Users\noto\.gradle\daemon\2.13\daemon-6008.out.log
Starting 6th build in daemon [uptime: 14 mins 40.348 secs, performance: 93%, memory: 56% of 477.6 MB]
Executing build with daemon context: DefaultDaemonContext[uid=b0dbe4a4-a285-4009-8f81-f9d16bb1548a,javaHome=C:\Program Files\Zulu\zulu-8,daemonRegistryDir=C:\Users\noto\.gradle\daemon,pid=6008,idleTimeout=10800000,daemonOpts=-Xms128m,-Xmx512m,-Dfile.encoding=windows-1252,-Duser.country=US,-Duser.language=en,-Duser.variant]
Starting Build
Settings evaluated using settings file 'C:\Users\noto\Documents\GitHub\GdxSetupTestSquid\settings.gradle'.
Projects loaded. Root project using build file 'C:\Users\noto\Documents\GitHub\GdxSetupTestSquid\build.gradle'.
Included projects: [root project 'GdxSetupTestSquid', project ':android', project ':core', project ':desktop', project ':gwt']
Configuration on demand is an incubating feature.
Evaluating root project 'GdxSetupTestSquid' using build file 'C:\Users\noto\Documents\GitHub\GdxSetupTestSquid\build.gradle'.
Evaluating project ':android' using build file 'C:\Users\noto\Documents\GitHub\GdxSetupTestSquid\android\build.gradle'.
Creating configuration compile
Creating configuration apk
Creating configuration provided
Creating configuration wearApp
Creating configuration androidTestCompile
Creating configuration androidTestApk
Creating configuration androidTestProvided
Creating configuration androidTestWearApp
Creating configuration testCompile
Creating configuration testApk
Creating configuration testProvided
Creating configuration testWearApp
Creating configuration debugCompile
Creating configuration debugApk
Creating configuration debugProvided
Creating configuration debugWearApp
Creating configuration testDebugCompile
Creating configuration testDebugApk
Creating configuration testDebugProvided
Creating configuration testDebugWearApp
Creating configuration releaseCompile
Creating configuration releaseApk
Creating configuration releaseProvided
Creating configuration releaseWearApp
Creating configuration testReleaseCompile
Creating configuration testReleaseApk
Creating configuration testReleaseProvided
Creating configuration testReleaseWearApp
Creating configuration instrumentTestCompile
Creating configuration instrumentTestApk
Creating configuration instrumentTestProvided
Creating configuration instrumentTestWearApp
Evaluating project ':core' using build file 'C:\Users\noto\Documents\GitHub\GdxSetupTestSquid\core\build.gradle'.
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\Users\noto\Documents\GitHub\GdxSetupTestSquid\android\build.gradle' line: 46
* What went wrong:
A problem occurred evaluating project ':android'.
> Could not resolve all dependencies for configuration ':android:natives'.
> Could not find gdx-platform-natives-armeabi.jar (com.badlogicgames.gdx:gdx-platform:1.9.2).
Searched in the following locations:
file:/C:/Users/noto/.m2/repository/com/badlogicgames/gdx/gdx-platform/1.9.2/gdx-platform-1.9.2-natives-armeabi.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.
BUILD FAILED
Total time: 1.603 secs
Stopped 0 compiler daemon(s).
Received result Failure[value=org.gradle.initialization.ReportedException: org.gradle.internal.exceptions.LocationAwareException: Build file 'C:\Users\noto\Documents\GitHub\GdxSetupTestSquid\android\build.gradle' line: 46
A problem occurred evaluating project ':android'.] from daemon DaemonInfo{pid=6008, address=[34a8d807-0143-4399-aa3d-6e066f967371 port:49258, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]], idle=true, context=DefaultDaemonContext[uid=b0dbe4a4-a285-4009-8f81-f9d16bb1548a,javaHome=C:\Program Files\Zulu\zulu-8,daemonRegistryDir=C:\Users\noto\.gradle\daemon,pid=6008,idleTimeout=10800000,daemonOpts=-Xms128m,-Xmx512m,-Dfile.encoding=windows-1252,-Duser.country=US,-Duser.language=en,-Duser.variant]} (build should be done).
The mentioned jar, gdx-platform-1.9.2-natives-armeabi.jar, does not exist in the location it's searching, though one other native jars is there: gdx-platform-1.9.2-natives-desktop.jar. I've produced APKs with LibGDX 1.9.2 on earlier projects, so I don't think the armeabi jar is needed in the searched location to work with Android stuff.
Both this error and the difficulty getting more information about it are very strange, and I think the different handling of the native platform jars in this project compared to setup-ui may be a possible culprit. Are there any recent changes in native/platform-jar behavior, or possibly differences in local configuration between the .m2 folders used by developers and my .m2 folder with lots of Maven libraries already installed?
GdxAI 1.8.1 was released.
It would be good idea to add update checker checking for newer version of gdx-setup. This can implemented in very simple way, there would be one text file with latest version URL either in this repository or on GtiHub pages. If newer version is found then dialog would be displayed (or less obstructive notification somewhere in the main window) and upon clicking on it user would be taken to that URL to download new jar - so no auto updater but that also can be considered.
With original gdx-setup I was always downloading new jar when I wanted to create new project. You never new when there was a new version. This setup uses versions but still it would be a lot nicer to have updates shown in the UI instead of need to go here to check for new version.
There should be advanced option to clear destination folder when it is not empty. It would be useful for debugging and checking various templates. Confirmation warning should be shown if directory is not empty. This should also modify FromValidator conditions accordingly (remove check for empty directory).
read-only
style in tinted.json
.
After generating project and closing main window app process is still running, Maybe Executor is not being shutdown properly?
The new Joise 1.0.3 is now GWT-compatible and it would be nice to include it. The major advantage Joise has (for me at least) over SquidLib (which I'm also using) and Noise4J is that Joise can do seamless a.k.a. wrapping a.k.a. repeating noise.
Disabled UI elements should be darker than enabled widgets. Currently they are brighter so it may confuse users. For example take a look at Android SDK path field or at FileChooser Back and Forward buttons.
iOS
platform.Gradle 3 runs all tasks through the daemon by default (which significantly speeds it up).
I've created CI job on my server however to make it fully automatic @czyzby needs to create webhook. (only repository owners can do this)
http://kotcrab.com:8080/github-webhook/
application/x-www-form-urlencoded
Just the push event.
This way new snapshot jar will be automatically build at this location after new commit was pushed to this repository.
JTransc is an AOT compiler of Java bytecode into Haxe, which in turn allows to run the code on multiple platforms. JTransc LibGDX backend seems to be based on Lime. While it's possible that Android and desktop games would be simply faster using the default backends, JTransc gives LibGDX devs a possibly of using other JVM languages - like Kotlin - while still being able to target HTML5 platform. (GWT supports only Java.) We would need an example project and the exact Gradle setup, though. jtransc/gdx-backend-jtransc#1
This is a known LibGDX/LWJGL3 issue. We could manually restart the application if -XstartOnFirstThread
argument is absent.
A success screen should be displayed after the project is properly generated. An additional error dialog might be shown if any exceptions are thrown during generation.
I created a project using this tool, and everything is smooth!
The only thing that is affecting me is the fact that the project created with the tool will not display calls to Gdx.app.log, or System.out.println in the "run tab", making it quite dificult to debug at times.
I am quite sure this is related to the project, as my previous project (created with the official tool) is able to display the output without problems (using the same intellijidea version and in the same computer).
I have already enabled the "Show console when a message is printed to standard output stream" to see if it made any difference, but didn't work.
I checked the desktop build.gradle to compare it to the ones created by the original setup tool, but there doesn't seem to be anything there which could be causing this trouble.
Any idea on how to overcome this?
I downloaded latest version from this link https://dl.kotcrab.com/libgdx/gdx-setup-latest.jar.
Generated a project with core, desktop, android backends.
Choose Viseditor from third-party tab.
Choose Basic VisEditor from template.
Project generated successfully.
Able to run the desktop project.
But when running android project with real device (adb debugging ON), receive this error from logcat http://pastebin.com/bRzGSmkM
(i guess its because no asset folder in android project)
im using MacOs Yosemite, Eclipse Mars.2
Currently application will crash if there is no valid key in pl
bundle but it exists in en
bundle. In such case it should fallback to English locale. In the future locales might be out of sync - after all we can't know all languages and might not be able to update them ourselves so fallback strategy should be used.
gdx-websocket
usage. (How to connect to an external web socket service?)gdx-websocket
provides only the client implementation.A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.