Introducing 3D Mobile Game Hub

Hello Everyone,
Inspired by the Roblox project I have created an end to end flow where users (mostly children) can easily program 3d games (using SceneMax3d) and deploy them to a Mobile Game Hub where every one can simply download and play those games.
This is a pre-alpha version and the game hub application is not yet available in the Google play store but the idea and the direction is clear.
I expect a lot of challenges managing the hub’s data in the future, creating an eco system, security, preventing DOS and abuse to the platform but I see a large potential here.

I’ll be happy to hear your comments & suggestions :slight_smile:

Cheers!

9 Likes

Well done ! Great Work !

So,

  • Would Game Deployment to GameHub APK be managed through a private online server ?

  • How the game is shifted to the GameHub…Are they game code packages that are downloaded & deployed as game templates ?

1 Like

Yes, I have created a small NodeJS web server to manage the games list.
I upload the scripts + resources (no compiled APK) zipped to the server and the Mobile Game Hub application knows how to download & extract the code and of course run it

1 Like

Awesome ! :-).

1 Like

Optimizations (best practice, you aren’t forced to) : for GameHub Apk

  • UI/UX : build a user interface that mimics game console more than a navigation apk, something like :
  1. This was our Soccer Game Client rebuilt by our main Ui/Ux developer, but game is aborted due to some refractoring :

  1. NFS game client by EA:

This may also help you, & remove the pain of navigation view & drawer, app code design would be better oragnized as well.

  1. Ideas :
  • Orientation#LANDSCAPE for the game console & changeable when running a deployed package.

  • ImmersiveMode for the GameHub apk(after converting to game console), hides status & nav Bars

  • RecyclerView search using Filter interface, because you may have a lot of games.

  • Games arranged in a CardView with developer name & other data like game description from beneath, you are doing this already in a nice adjustable thumbnail, but may add some more data & border the cardView.

  • A very big mistake, i was doing tho is delegating the download manager to use UiThread which will return a bad user exp & slow responsive layout, slow animations, so better you delegate downloading the deployed game inside a background task job scheduled by WorkManager & ran that as a FutureTask on a new single thread with a back-off(retry) criteria & other constraints.

  • Data & Storage (i am not good at this, still learning tho) :sweat_smile: :

You can refer to the project JetPackCompose, jetpack aims to provide helper libraries for android developers that run across nearly all android OS versions, so for example WorkManager from jetpack enables you to utilize background tasks as scheduled requested jobs & foreground tasks too for anything like notifications/data download/data upload/data exchange/read/write long operations & even when the app is closed & killed, that basically uses JobScheduler for android 8.1 & up, AlarmManager & Services for below 8.1, so it really utilizes time & code…

I think may be you can ignore some of the UI, & focus more on data management & background tasks in order to make bugs less to occur over tons of android devices !

Libraries like :

DataStore, Room(Sql/Sqlite), biometeric & crypto may help you for data management & security :

I haven’t used nodeJs express before, if you have thought a moment that it’s not efficient, you may see Firebase android is also good, & there are desktop bindings too, but heavy data plans are heavily paid.

Best of Luck…

1 Like

Wow! a lot of material to think of :slight_smile: Thanks!
For the UI stuff, I prefer using as much JME UI as possible over Android Views for easier portability between PC/Android/iOS.
All the data downloads are done in separate threads. Not on the UI thread.
However, I load all the game’s assets on the GL thread. will change that in the future for better user experience.
for the database I’m using SQLITE3 - good enough for this phase.
NodeJS can cope with heavy load as long as its doing mostly IO operations and not too much computational tasks.
The big challenges for this innovation will be : managing large amounts of applications posted to the server, rating them, protecting the server from being abused and deciding on the best business model. This kind of projects cannot exist without getting some income since cloud resources cost money. But I’m not worried about that it’s going to succeed :wink:

1 Like