Quick Links: Download Gideros Studio | Gideros Documentation | Gideros Development Center | Gideros community chat | DONATE
Clan of the Cloud... — Gideros Forum

Clan of the Cloud...

SinisterSoftSinisterSoft Maintainer
edited December 2015 in General questions
There is a gaming cloud backend at http://www.clanofthecloud.com/

I have been told that they will be making a completely free tier price plan very soon.

I have been messing with the API and it's cross platform and works really well.

It allows you to have multiple cross platform leaderboards, achievements, and lots more, etc...

Here is my test code so far to get people started:

http://www.sinistersoft.com/downloads/clan.lua

Just add it to your project then exclude it from execution, then include it in your code like this:
require("socket")
local mime=require("mime.core")
require "json"
require "clan"

Likes: pie, theone10

Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
https://deluxepixel.com
+1 -1 (+2 / -0 )Share on Facebook
«1

Comments

  • Also, if you want this to work in the Windows player then you need 'libeay32.dll and ssleay32.dll'

    See: https://github.com/gideros/gideros/issues/50

    I copied those two files into my program files/gideros folder and it works great. With Android/iOS, etc there shouldn't be an issue.
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • I've been looking for multi-platform game services that work without a login. Is that possible with clanny cloud?
    My Gideros games: www.totebo.com
  • yes, works fine.

    If you login without fb or google then it sets up an anonymous account automatically on their server. If you login to fb, etc later then it will combine the accounts automatically.

    I'll carry on with it tomorrow and add commands to get the leaderboards, etc...

    With the score command I added you have 3 parameters (score, info and board). With that you can have multiple leaderboards, score is score and info can be used for whatever you like - it's a string.

    Leaderboards are created automatically as you make them up. Achievements currently have to be created manually.

    It looks like it will be free to use with a max number of pings per second.

    Likes: totebo

    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
    +1 -1 (+1 / -0 )Share on Facebook
  • Updated first post - will now grab leaderboards...

    Likes: totebo

    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
    +1 -1 (+1 / -0 )Share on Facebook
  • Tested an export to HTML5 and Android - no problems! :)

    Likes: totebo, pie

    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
    +1 -1 (+2 / -0 )Share on Facebook
  • If you get any errors with json on html5 then you may have had a memory allocation, try making the initial allocation larger by editing the gideros.js file and change:
    Module.TOTAL_MEMORY=128*1024*1024
    to
    Module.TOTAL_MEMORY=200*1024*1024
    or larger
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • Updated the clan.lua file (see first post).
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • @SinisterSoft I am willing to try this service for multiplayer games - I have a basic local multiplayer made with unite and I am still not sure if it would be worth the cost putting up a dedicated server with noobhub right now. I like their free policy up to 2000 monthly users, at least you can understand if you get some revenue to keep it up.

    I have some questions if you already know the answers: do I need to install the clan sdk to use their services? How? :)
    Did you have a chance to try their multiplayer api yet?

    Thank you :)

    Likes: SinisterSoft

    +1 -1 (+1 / -0 )Share on Facebook
  • SinisterSoftSinisterSoft Maintainer
    edited December 2015
    They are making a free, unlimited user service too. It will be announced very soon.

    To use the service just fill in your details on their website, then use the code I made. No need to include anything else. Tested on all current exports inc HTML5.

    I haven't tested the multiplayer stuff yet.

    Update:
    I've just been in touch with them and they should be announcing it next week.

    Likes: pie

    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
    +1 -1 (+1 / -0 )Share on Facebook
  • SinisterSoftSinisterSoft Maintainer
    edited December 2015
    Clan of the Cloud have announced their free plans!

    http://www.clanofthecloud.com/#pricing

    "Our Free Plan
    An unbeatable offer
    $0
    free forever
    All SDK features"

    Likes: pie, hgy29, ChrisF, totebo

    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
    +1 -1 (+4 / -0 )Share on Facebook
  • totebototebo Member
    edited December 2015
    Hey @sinistersoft, it's not clear on the website if players can share arbitrary data with other players; as in: Player A saves a level in a level editor and player B loads it.

    After having messed around with their API maybe you know?
    My Gideros games: www.totebo.com
  • I think you can - you can save data in the high score too - this is returned to whever downloads the high score list.

    So you could show where people crashed in previous games they played, etc
    (just tag more information into the score data field)
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • totebototebo Member
    edited December 2015
    Yeah, I'm using the high score string in Scrappy Cat to show friends' best scores. But the issue there is that Lua doesn't support 64 bit integers, so it's quite limited. Also, I'd want players to save more than one level in the level editor, which would complicate things. Would be nice to have a service where you can store and share any old data, including ghost races and stuff like that.
    My Gideros games: www.totebo.com
  • You must have really high scores?
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • totebototebo Member
    edited December 2015
    I'm saving a lot of things in Scrappy Cat, including level id, level zone, level number and death position. I think that uses up 18 out of 19 digits possible. :) To be able to use 64 bit I modified the gamekit plugin to accept strings on iOS. Original discussion:
    http://giderosmobile.com/forum/discussion/5707/what-is-the-largest-number-in-lua/p1

    For me, though, saving arbitrary data would be best to keep things scalable (bigger levels, longer ghost races).

    Don't get me wrong. The nerd in me likes the idea of using high scores to do something else, and it works great in Scrappy. :)

    ps. I've fired an email to Clan of the Cloud to see if they do support arbitrary data saving and sharing.
    My Gideros games: www.totebo.com
  • Just to say: Yes, a user can store arbitrary data and share it with the world with The Clan of the Cloud interface. tCotC guys guys have been very responsive and on the ball, so looks promising.

    @sinistersoft, have you completed your Gideros bridge?

    Likes: SinisterSoft

    My Gideros games: www.totebo.com
    +1 -1 (+1 / -0 )Share on Facebook
  • @SinisterSoft Very interesting! They have server side code in javascript (hooks). But i wonder about real-time mode using rest api. Will it safe as socket tcp?
    Coming soon
  • @toebo What bit did you want me to add next?

    @vitalitymobile The file I made uses the rest api - so it's completely cross platform already - tested on iOS, Android, Windows and HTML5 exports.
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • Whoa @sinistersoft, haven't played with it yet, but these are on the list!

    - Save high score and load top high scores
    - Save arbitrary data and load other players data (used to share user-created levels)

    Actually, that's a pretty good start. :)

    Ideally these should be possible without a login. If logged in (with Google or iTunes) the name of that login would be used instead of "guest".
    My Gideros games: www.totebo.com
  • @SinisterSoft I mean they receive message by using http get:
    http://docs.clanofthecloud.apiary.io/#reference/events/v1gamereventdomaingamerid
    So my wonder is: With that loop, maybe they will block main GUI thread (cause lag game), and will be battery killer.
    Did you try real time feature? Would you please implement send and receive event in api and have simple example about that?
    Coming soon
  • hgy29hgy29 Maintainer
    @vitalitymobile: it won't use much battery nor block the main loop. UrlLoader is asynchronous, and since you supply the timeout, you can make it as big as you want. I used the same approach in my app to get events from my own server.
    The GET request is left in standby until some evnts occurs or the timeout is reached. During this time, no network traffic occur and the main loop isn't affected.
    +1 -1 (+1 / -0 )Share on Facebook
  • @vitalitymobile - the events will have to be polled via http, like @hgy29 said it shouldn't affect the game.

    @hgy29 - can I have multiple gets running - can I set the timeout to until the program ends or a message is received?

    @totebo - I've had a word with them about 'retro high scores' where you can have a high score list with no login - just leaderboard, score, name, data ... it will be discussed at their next meeting I think. This type of leaderboard would be ideal I think for multiplayer retro style games where one person can dominate the high score list. The leaderboard would have a limit, eg the top 100 or something.
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    @SinisterSoft, you can have multiple outsanding http request, yes, but you have to select a timeout in seconds, eventually launching the request again when the timeout expire (when you get the result of the GET request)
  • Do I get a timed out message?
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • hgy29hgy29 Maintainer
    What you get in case of timeout is defined by CotC (they handle the timeout). However I remember that iOS code didn't allow requests to last more than 1mn at some point, don't know if it is still the case...
  • @hgy29 , @SinisterSoft Thank for the explain, i understand now.
    Coming soon
  • @totebo I've been looking at the current available api and I can't see any way of making a traditional anonymous high score table - like an old style game. I've looked at the key/value pairs, and indexing, etc...
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • @sinistersoft, it doesn't really have to be anonymous. I was thinking something like this:

    1. Each player gets assigned a "unique" id (probably using the device time and a randomized number) even if they're offline. Maybe use phone id if possible.
    2. This id is is used for all saves to COTC, with the username "guest".
    3. If they sign in with iTunes or Google future saves will use that username
    My Gideros games: www.totebo.com
  • Yes, but the problem is that cotc is a leaderboard, not a high score table. With a high score table the same person can have multiple entries on the high score list (like in the old days), but with a leaderboard you have one entry in the table - you move up/down the leaderboard depending on if you beat or someone else beats your score.

    btw, this is only a problem if you have multiple players on one machine. If you have multiple machines playing the game, each can sign into cotc and submit their own score to the leaderboard - all this is already in the code that I have written already.

    What I have suggested to cotc is to make a another type of high score table that operates like the old 'classic' type of high score table (rather than a leaderboard) - so the same player can have multiple entries on the same table without a need to actually log in.

    Likes: pie, totebo

    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
    +1 -1 (+2 / -0 )Share on Facebook
  • Gotcha. The old school way would be an ordered list, so maybe the solution would be a generic way of ordering data by one column (like score).
    My Gideros games: www.totebo.com
Sign In or Register to comment.