Monday, August 20, 2012

i46

i45 to i46

New Features

[#1182] Several server to server communications now use SSL host checking.

This improves the security for integrations with 3rd party components, such as google G+ and facebook.

Numerous performance improvements in the core server

  • [#1185] Calls to facebook are now made by the web layer rather than the core server.
  • [#1186] Switched to using fastjson json library for all the server to web layer communications.
  • [#1187] Switched to more efficient memory allocator in server binary.
  • [#1188] Switched to single event threaded model, rather than one thread per request.

Bug Fixes

[#1167] Appstore entries with empty modifiers no-longer cause javascript errors in the editor.

i45

i44 to i45

New Features

[#????] Added admin scripts

These are callable using scripts/run_admin with the admin_token. They must be whitelisted using whitelist_admin. Note that these scripts do not receive an args.player argument, but do receive others arguments in the same manner as conventional scripts.

[#1172] Added ability for admin to create and login players

This is done though the admin/create_player and admin/login_player functions.

The create_player function requires a name and admin token. It does not set the players password, which must be set using a separate call.

The login_player function requires an admin token, and either a name or player id.

Bug Fixes

No bug fixes this release.

i44

i43 to i44

New Features

[#1155] Added basic urban airship integration

[#1172] Added experimental direct database access to lua scripting.

This is not available by default - contact us if you want access to it.

Usage looks like this:

function luadbtest(args)
  local it = lua_db:query("SELECT id, name FROM Junk")
  local retval = {}
  while not it:is_end() do
    table.insert( retval, { id=it:column_as_string(0), name=it:column_as_string(1) } )
    it:next()
  end
  return 0, retval
end

whitelist("luadbtest")

[#1173] Return player id on login or create

All create or login calls now return the player id.

[#1174] Added google/login_or_create

Since trying to log in or create a player invalidates a google oauth2 code, we have provided an alternative function that first tries to log a player in with the given code, or else creates a new player associated to the corresponding google user.

This call returns the "mode" set to "create" or "login" depending on which method occurred. It also returns the players id and auth token.

[#1175] Added google/token functions.

This call allows the client to get the current users google oauth2 token.

Bug Fixes

[#1176] Players google data is immediately stored.

Player data corresponding to their google account was only getting periodically synced to the database, this is now occurring immediately. One symptom was that in some situations players could not log in immediately after creating an account.

[#1177] Obtaining a users google id now works on tokens with a larger variety of scopes.

Originally we required the application to request the userinfo.profile scope, for the methods we used to obatin a players google id. Applications can now use the gplus.me scope now, and any scope that embeds the users id into the token info.

[#1178] Fixed some runtime warnings from some server code.

i43

i42 to i43

New Features

No new features this release

Bug Fixes

[#1166] Processing of large script objects was slow.

Script objects were getting copied more times than necessary, which was causing a significant slow-down when working with large script objects. The unneeded copies have been removed.

i42

i41 to i42

New Features

[#1165] Can now specify a prefix for the name in google wallet purchases.

A prefix that apears at the start of all google wallet purchases can now be specified in the pannel for controlling google wallet parameters. This can be useful for filtering the transaction log in google wallet if you have more than one application sharing the same wallet.

Bug Fixes

No bug fixes this release

i41

i40 to i41

New Features

No new features this release.

Bug Fixes

[#1157] Player data can now be removed from the leaderboard on player deletion.

Player data for deleted players was not getting removed from some leaderboards due to a permissions issue. The data should now be removed. Existing leaderboards have had this old data removed.

[#1156] Loging in via Facebook and Google is now more reliable.

There was an issue where the login details for a new player were not being made immediately available to the login system, meaning there could be a delay between player creation and next possible login.

The Facebook and Google information is now immediately made avaialble to the login system after create or bind.