Cross-platform-template game

Hello fellows !

First of all, i’d like to thank @Ali_RS for his contributions and help !! Much appreciated.

Following some discussions here, i plan to remaintain the CrossPlatformModule project under the name Cross-platform-template

Major new Additions on the module from the last merged PR:

  1. An extra game-assets module which will serve as a holder for game assets at the gradle resources directory (it also supports java code related to assets if you want to further maintain a custom asset loading code on your game).
  2. A common.gradle dependencies file at the root project module to avoid duplicate gradle implementations (this is so far designed to include cross-platform binaries, while platform-specifics are implemented on their relevant module).
  3. Updated gradle-wrapper to gradle-7.6.
  4. Updated android-sdk to the brand new api-33.
  5. Updated jme version to 3.6.0-beta3 :smile:.

Things i think of now:

  1. Update some deprecated api usages on android.
  2. Add some command-line helper gradle tasks on the android module to help in starting emulators and running applications using adb to be able to develop android easily outside of android-studio.
  3. Fork this project and create a new Cross-platform-jfx-template that implements jfx on the desktop module only and platform-specific android views code on the other hand on the android module.

Benefits of this template over the regular gradle templates:

  1. Provides an ability to build binaries for desktop and android easily with the same assets.
  2. Provides separate and common application compile-time development environments instead of checking for the current machine and do something specific dynamically, so your code should be placed depending on what you are really developing, for example:
    • jMonkeyEngine code should go into the game module.
    • Android hardware or sensors or IoT related android code should go into the android module.
    • Desktop specific native or hardware code (that would include specific drivers code for hardware projects too) should go into desktop module.
  3. And all of that within your gradle environment, so i guarantee this will work very well with jme-sdk and i will be happy to see it one day on the official jme-sdk !

Finally, i plan to migrate my arcade game JPluto to use this template when it’s completed !! And by the way my game has a hardware access which will not be okay if all the code is written on the same module !

EDIT:
And it’s a public template (it just forks and changes names really but yeah) now

5 Likes

Please, if you have any optimizations, you would like to add, open an issue here:

Im not making Android games, tho thanks for addition for community :slight_smile: its for sure more easy to develop like this.

1 Like

I added a Gradle desktop and android CIs and currently working on automating releases via github-actions, so built artifacts get pushed directly to github-releases when the user creates a new release on the repository…any ideas though ? i think if itch.io provides an API, could we use this to push artifacts automatically ?

1 Like

Oh, i was searching randomly for itch.io on the github-actions marketplace and they already have their own api on github-actions :grinning:

EDIT:
Okay, may be it is not an official one, but i will give it a try…

EDIT2:

It uses the official itch io butler api:
https://itch.io/docs/butler/installing.html

Great News !

1 Like