• Right, so, what seems like a long time ago I started work on a C# API for dotNet developers. That project kind of fell through the roof and killed my cat. So, to get around my anger I coded a game.

    Now, I'm back, however, and am working, once again, on the C# API.

    The source may be downloaded from the project page here: https://gamejolttrophies.codeplex.com/.

    If you've got suggestions for what you want to see featured in the API leave it here, if you broke something and want to submit a bug, please do that  on Codeplex so I can sift through them easier.

    More info will be availible as the project progresses. There should be a lot more by the end of the weekend.

    If you are looking for documentation on how to use the API then check out the Documentation on Codeplex or read up on the documentation in the code. I've done my best to provide helpful comments.

    Last edited on September 20, 2012 - 02:46 AM by runewake2

  • I've put this up on the achievements landing page, rune. Which means you now have to finish it up! Mwuahaha... Innoccent

  • Hey, everything but Highscores and Data Storage is done. But unfortunatly I don't get paid for this, so it kind of falls back to working on it only during free time on weekends etc. I've also been having this weird issue with threads that I'm working on fixing.

    Also, I hope to have a .Net 4, 3, Silverlight, Metro and Windows Phone version availible by the time I call the project done.

    Additionally roaming storage, which still needs some work, will have to be done for the final version. It would be nice if Game Jolt had a "Settings" API so that a user could store global settings for simple things like forward, backward, sideways, jump, attack, action, pause etc. That could be accessed by all games. That would pretty much do what my roaming storage does, except globally.

    Anway, it should be working for .Net 4 by the end of this weekend. After that, I'll work on getting Silver Jolt finished with a Silverlight version, then move to more interesting things.

    I'm sure I'll think of other ways to abuse this system while I work in order to get really weird things. Like statistics tracking for example. The API's Add function will prove useful here. :)

    Edit: ... but Cros ... Torchlight 2 is coming out ... my weekend might be .... busy.

    Last edited on September 20, 2012 - 01:05 AM by runewake2

  • @runewake2: aside from games, I work mainly with C# (computer vision applied to medicine). If you get stuck with those threads or anything else feel free to ask :)

  • Well, the thing is... I use a Timer to keep your session open, the Timer runs every 30 seconds, and works as long as I'm debugging, however, when I remove my breakpoint the session eventually times out. As in, Game Jolt closes the session. No idea why that is happening, but it's annoying. If you have suggestions, let me know.

    That is the only real problem I've found so far.

  • If you ping every 5 seconds instead, does Game Jolt keep the session open?

  • Yes, that does seem to fix the problem, though I'm not sure if the time was the issue. Oddly, when debugging I got the time in a session up to about 5 minutes. Then I removed the breakpoint and soon the session was failing. I believe the issue might be that code might not be executing in a console application while the window is deselected. But for now, it seems to be working, so I'll upload the fix, and mark the bug as fixed. Should be finishing the rest of the API this weekend, assuming no big issues get in the way. I might even get roaming storage started.

    I see I already have two users, so gotta get this done to make them happy. :D

    Hoping to branch out the project to something that supports silverlight, XNA and 3.0. Also I'll be building some DLL's to fill that barren Downloads page.

  • Hmm, I was suggesting every 5 seconds to test it. I wouldn't keep it as 5 seconds in the production code. Try something like 20 seconds instead.

  • I thought I replied to this. Anyway, as you can see with SilverJolt, my Silverlight test project. Sessions are now working just fine. I should also note that I have left it up to the developer to decide the period between session updates. However, I have bumped it back to 30 seconds for now, seems to be working. Alas, I did have stuff to do this weekend, though oddly not Torchlight 2 related, that prevented the Data Storage and Highscores from being finished. Maybe next weekend?

  • ??? why are there no videos or anything? it doesnt even explain where to start!

  • Hello,

    The site has a link to Documentation which has a high level overview of the design behind the API. The source code includes two projects, one is the API the other is a sample project which uses the Windows console to let you access your trophies. This serves as my "Tutorial" project. I've also tried to document each class and function in the source.

    Personally, I'm not developing new features for this API as I've moved to Unity for my own projects and the API saw almost no use. The number of silverlight, XNA and MonoGame projects is just too small. I will still fix bugs and help with implementation and each source file includes an email address for support. Feel free to ask any implementation questions you have regarding the API and I'll do my best to help you out.

    If you are working with a C# game engine like Unity, there are better libraries specifically written to take advantage of some of the engines features. I'd check if your engine is supported by one of these first. This library itself requires more work since it doesn't have any of that front end attached to it.

    The easiest way to get started is by checking the code out via Subversion. This can be done with a tool like TortoiseSVN or any number of others. AnkhSVN is a good plugin that adds SVN support directly to Visual Studio. If version control is not your thing, you can just click the download button from the Source Code page.

    Hope that helps,

  • How do i input acheivements?

  • Hello, there is documentation about Awarding (and Fetching Trophies) on the Documentation page here (https://gamejolttrophies.codeplex.com/wikipage?title=Trophies&referringTitle=Documentation). If that isn't enough information I can throw together a quick code sample for you.

    Last edited on May 28, 2015 - 09:42 PM by runewake2

  • Hi Runewake,


    i've done some reading up on the API and i would love to implement it in my game. The problem is however, that i have never accessed any API at all (i am fairly new at programming). I would love to go and discover whether i can make this happen, but could you please let me know in advance if what i want is at all possible?

    My game is a download for windows. When people download and play it from their PC, can i access the API and grant users trophies? I can imagine this is not possible since the game does not know the user id when it is downloaded and being runned local.

    So basically, my question is: is it at all possible to use the API in a downloadable game?


    My game is created in C# / monogame.


    Happy to hear from you.



  • Game Jolt's API uses the idea of a Username and private Token (different than your password). You access the API by logging in using these. It is perfectly fine to add Game Jolt trophies etc to an offline game.

    To get started this is what you will need to do.

    First, you will need a way for a user to login with their Game Jolt username and token.

    Once you have their username and token you'll need to use these with the provided C# API to contact Game Jolt. Your users will need to be online for this to work.

    Now that you've validated your users connection with Game Jolt you'll need to unlock the trophy by calling the appropriate methods in my library.


    To make it clear, my library works by simply providing a layer between web communication and your game allowing you to talk to the Game Jolt server without having to construct the messages yourself.


    Note also that you will need the Game Jolt API Key's in order to use the API. These are specific to each game.