Godot: Android IAP: Leave in core or create a separate module?

Created on 3 Sep 2016  Â·  12Comments  Â·  Source: godotengine/godot

I worked on Android IAP from the core, I will made a PR for this, but a doubt come to me: It is a module like, is there any interest on make this as a module or better leave in the code?

If you want to see this working you can see on:
https://godotdevelopers.org/forum/discussion/17400/monty
(I dont want to put the Google Play link directly beacouse this is for developing purpose only, not for promo)

I want to put other doubt on the table:
I'm thinking that the best way to make a good export to Android with modules is by separating the code of creating a template into a plugin like the asset manager (with gradle), the plugin will be able to compile templates and export to Android (for example), and all modules could be dropped and customize the entire exportation. It this in mind or something?

Comments are very appreciated :)
Thanks!

archived discussion android core

Most helpful comment

I was thinking of creating a "google" module, for providing all the
standard Google APIs, including IAP, Google Play, etc.

On Sun, Sep 4, 2016 at 9:36 AM, volzhs [email protected] wrote:

take a look #3936 https://github.com/godotengine/godot/issues/3936
discussion too

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/6385#issuecomment-244601228,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z26yX0h_7ndqRTau-F9hA-YjUpA22ks5qmrtbgaJpZM4J0V8R
.

All 12 comments

Godot doesn't target Android "by default". All vendor specific features should come in modules IMHO.
P. S. Now that we have AssetLib, it's just easier and better to include it in there. Ask @akien-mga for help.

take a look #3936 discussion too

I was thinking of creating a "google" module, for providing all the
standard Google APIs, including IAP, Google Play, etc.

On Sun, Sep 4, 2016 at 9:36 AM, volzhs [email protected] wrote:

take a look #3936 https://github.com/godotengine/godot/issues/3936
discussion too

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/6385#issuecomment-244601228,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z26yX0h_7ndqRTau-F9hA-YjUpA22ks5qmrtbgaJpZM4J0V8R
.

I still think IAP can be abstracted with a common interface for all platforms. Having one for each means you need to write conditional code and be acquainted with different API to do the same thing.

I was thinking of creating a "google" module, for providing all the
standard Google APIs, including IAP, Google Play, etc.

wow, that could be great thing

If it depends on more or less standard APIs of Android, leaving it in the
main tree saves you from re compiling all the templates when you need to
build, which can get annoying, although not so much if it's limited to just
Android. An IAP module for Amazon Store would be an external module for
sure..

On 4 September 2016 at 16:29, George Marques [email protected]
wrote:

I still think IAP can be abstracted with a common interface for all
platforms. Having one for each means you need to write conditional code and
be acquainted with different API to do the same thing.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/6385#issuecomment-244609839,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGVmPYU_cAScW4wIjkh0SVJeFUcen19eks5qmuPVgaJpZM4J0V8R
.

I was thinking of creating a "google" module, for providing all the
standard Google APIs, including IAP, Google Play, etc.

Yes please ;)

I have a lot of work on this area created:

  • Google Analytics (https://github.com/jlopezcur/GodotGoogleAnalytics)
  • Firebase (as Google Analytics)
  • Admob (As is now in other repos and in my own: https://github.com/jlopezcur/GodotAdmob)
  • GooglePlayGamesServices (https://github.com/jlopezcur/GodotGooglePlayGameServices but need a complete refactoring):

    • Achievements

    • Leaderboards

    • Saved games, Snapshots on the cloud (not published on repo yet)

    • Client connections (solved a lot of problems on network disconnection and first connections)

  • Share (A better way to share as launch an intent in the correct way, not only a link)
  • Google IAP (worker)

All of this are working on the game: https://play.google.com/store/apps/details?id=com.kloder.monty

A lot can be done on GooglePlayGamesServices as:

  • Real-time multiplayer
  • Turn-base multiplayer (In our next game we are planning to use it)
  • Events and quest
  • Game gifts
  • Player stats
  • Nearby connections (In our next game we are planning to use it)
  • Video recording

I find some problems for a modules implementation:

  • GooglePlayGamesServices required that a file with the configuration (google-services.json) to be on: platforms/android/java
  • GooglePlayGamesServices and the new APIs (classpath 'com.google.gms:google-services:3.0.0') need some changes on platforms/android/build.gradle.template

These are common problems encounter in create a module independant ecosystem, how this could be done?

@reduz
"I was thinking of creating a "google" module, for providing all the
standard Google APIs, including IAP, Google Play, etc."

So this mean that the IAP move from the core to a module, right?

@jlopezcur Wow! That is something that I missed a lot in Godot engine. I would like to see it as easily to access all these functionalities as possible (in core).

There are a lot of changes to the engine since this is last discussed. Is it still relevant? If it is, is this achievable with GDNative?

I was thinking of creating a "google" module, for providing all the
standard Google APIs, including IAP, Google Play, etc.
Is it still alive for Godot 3? Maybe provide "google" module in AssetLib is a good thing

Closing as the described functionality can be made available through an Android plugin.

Was this page helpful?
0 / 5 - 0 ratings