Gemini Update

I’ve finally taken the time to update the Gemini UDK Starter Kit. It’s no longer a stupid text dump of badly-formatted code in a PDF file, but actual .uc files that are pretty close to plug-and-play.

The most important update concerns delegates. If you’ve watched my YouTube tutorials, you’ll remember that I had to resort to a very bad hack to “notify” UDK when a Gemini transaction was completed. For example, when exiting the game, what if you wanted to tell Gemini that you were going offline? If you sent a message to Gemini and then exited, the message would never get sent. My trick was to set a “bExit” boolean to true before calling this message, and not exit until the Gemini connection was closed and bExit = true.

Now, you can just have a function like this:

function OnExit()
{
ConsoleCommand("quit");
}

And do this:

ServiceBrowser.RegisterNotifyDelegate(OnExit);
ServiceBrowser.PerformOp(0, 2, 1);

And when the transaction is done, your function gets called! The coolest thing about this is that it can be used for a whole bunch of situations. What about…updating a browser list after the refresh button is pressed? Register a “UpdateList()” function, then ask Gemini for the new server list. How about waiting for approval to join a server? Gemini can stall the response until it’s authenticated, and you can register an “AuthenticationComplete()” function to the service. It will be called, guaranteed.

I’ve also added support for concurrent requests. It’s handled automatically so there’s no need to worry anymore about having your requests overridden by the next one in line.

Since starting Gemini a little over a year ago, I’ve been surprised at how it’s caught on. Gemini currently has 204 active account instances and is handling over 3000 index entries. At one point it even had to go on a paid quota, which it remains on today. I wish I had more time to maintain Gemini, and there’s a lot of stuff I’d love to add to it, so I welcome anyone who’s interested to help me out. I’m already working on beefing up the UDK side with a friend of mine, who’s using Gemini in his (hopefully) commercial game.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s