Commitment to Open Source — Game Closure

Jishnu
Engineering @ HashCube
3 min readJun 27, 2016

Last week, we at HashCube moved all our internal GameClosure repos to github. Also, we started doing all development related to GameClosure, which can be useful for others, in github.

Along with this, we are open sourcing all the devkit modules we created internally for our games. this includes several ad networks, analytics sdks and amazon appstore support.

This is not a replacement or fork of GameClosure. We had to keep our own repo and maintain it internally when GameClosure development slowed down and our pull requests were stuck in review.

Repos and their changes/improvements on top of GameClosure

  1. Devkit — https://github.com/hashcube/devkit
  • Initializes a game with our copy of devkit-core
  • `devkit modules` gives correct version of the active modules in a game.

2. jsio — https://github.com/hashcube/js.io

  • Upgraded to latest underscore.js
  • Ability to chain event listeners.

3. Devkit-core — https://github.com/hashcube/devkit-core/

  • Nothing important, mostly pointing to our copies of native modules.

4. Native-android — https://github.com/hashcube/native-android/

  • Android 6.0 support — target SDK to 23
  • Removed unnecessary permissions — Contacts, Phone, Storage
  • Better memory management for low end devices
  • OpenSSL upgrade
  • Ability to copy assets to build (needed for amazon GameCircle)

5. Native-ios — https://github.com/hashcube/native-ios

  • 3D touch support (quick and hacky implementation. You need to use our utils module for full support)
  • Copy resource and bundles to the build

6. Native-core — https://github.com/hashcube/native-core/

  • Temporary fix for flickering issue
  • Better half sizing in android

7. Timestep — https://github.com/hashcube/timestep

  • Fix for default value in InputDialog box
  • Bug fixes for ScrollView
  • New StackView event for stack change — ‘StackChanged’
  • Fix memory leak in remove from superview
  • Helper functions for ViewPool — onObtain, onRelease
  • Fix for TextView stroke and shadow
  • Fix ButtonView event trigger

8. Adventuremap — https://github.com/hashcube/adventuremap.git

  • A lot of performance optimizations!
  • Smooth infinite scrolling maps
  • All the changes requires it’s own post.

9. DevkitHelper — https://github.com/hashcube/DevkitHelper

  • Some of the modules that we use internally across all our games
  • Ad-manager — to manage ads from multiple networks
  • Audio — Helper function on top of AudioManager for ease of use
  • Country — To get country of the user without asking for location permission
  • Error Handler — Send javascript errors to server for record production bugs
  • Event manager — Helper function to handle multiple analytic services
  • History — Handle back button in Android with ease
  • i18n — Localize text based on user’s device language
  • Model — Model written with GameClosure in mind. Useful to separate logic from view related code.
  • Storage — To handle localstorage writes and reads with ease. Also has support functions
  • Style — move out UI style configurations to a json.
  • Timer — Helper function to handle timeouts and intervals
  • Tutorial — Easy way to handle user on boarding without adding logic to your core game code.

10. Appsflyer — https://github.com/hashcube/appsflyer.git

  • Mobile marketing analytics and attribution platform,

11. Amazon Ads — https://github.com/hashcube/amazonads

  • For Kindle devices

12. Admob — https://github.com/hashcube/admob

  • Advertisement platform

13. Applovin — https://github.com/hashcube/applovin

  • Marketing automation and analytics

14. billing — https://github.com/hashcube/billing.git

  • Support for Android 6.0
  • Client side purchase verification.
  • Amazon billing support in amazon branch

15. Charboost — https://github.com/hashcube/chartboost.git

  • Cross promotion and app analytics

16. Facebook — https://github.com/hashcube/facebook.git

  • v2.3 SDK

17. Flurry — https://github.com/hashcube/flurry.git

  • Ads and analytics

18. GameAnalytics — https://github.com/hashcube/gameanalytics.git

  • Analytics platform

19. GamePlay — https://github.com/hashcube/gameplay.git

  • GooglePlay games support library
  • Supports Achievements and Leaderboard in Android

20. GameCenter — https://github.com/hashcube/gamecenter

  • iOS gamecenter support

21. GameCircle — https://github.com/hashcube/gamecircle

  • Amazon game circle support

22. Gamethrive (OneSignal) — https://github.com/hashcube/gamethrive

  • Push notification platform

23. Localnotify — https://github.com/hashcube/localnotify

  • Expanded notifications
  • Support for custom notification icon, rather than using the default app icon, so that we can add white icons in android to follow Google guidelines.

24. Mobihelp — https://github.com/hashcube/mobihelp

  • Online help desk to get feedback directly from users
  • It also supports FAQ

25. Supersonic — https://github.com/hashcube/supersonic

  • Advertising platform, supports several ad networks

26. Utils — https://github.com/hashcube/utils

  • Native share for iOS and Android
  • Get advertising ID
  • 3D Touch support

How to move

1. Change devkit-core to ours from dependencies section of your manifest file.
2. Delete the cache folder in which devkit keeps git repos,
~/.config/devkit/cache in GNU/Linux and ~/Library/Application
Support/devkit/cache
in OS X. This is important, otherwise next step
will fail.
3. run devkit install
4. Done!

--

--