Possible Steam achievement implementation?

MysticalMist

Well-known member
I recently thought about how flexible the Steam achievement system was in order to make achievements for games made from almost any engine or software. There seems to be a lot of resources for doing that as well for indie developers/small teams that are uploading their games to Steam. If someone was aiming to make an original, commercial game for the public using OpenBOR, could achievements be a possibility? Could that be a possible update in the future?

I'm worried this question sounded ridiculous but I couldn't stop thinking about it since then. 😅
 
To use achievements on Steam, you need access to the Steam API. Officially, it's only provided as C++ code that you can integrate into your game or create a DLL.
Unofficially, there are many ports of the API for different languages and engines.

From what I know of OpenBOR, there's no way to interact with a DLL, but since it's open source, integrating the API shouldn't be difficult. However, I think you'd have to compile a modified version for this purpose.

If you're referring to creating an achievement system within the game, it's no different from any other persistent system. You should be able to use global variables and save them to a file.
 
@msmalik681,

There's no technical reason we can't do this, other than my own time. I've been working on the engine quite a bit lately, but there are a lot of things I need to get done before this.

Chiefly, moving to full 64bit compatability. Until recently the 64bit Windows build wasn't really usable because it threw erroneous errors loading .png files. That's fixed, and the next step is support for 64bit depth and unsigned types in script, to allow interaction with native 64bit properties and bit fields (there are a lot more of those than you might think).

The latest repository can accept them, but I need to finish math functionality before it's release ready.

After that I have some other stuff to finish.

On a personal level, I'm not really too fond of supporting Steam in any way. It puts the onus on us to keep up with someone else's APIs, and also further promotes an entity that already has near total monopoly on "indie" gaming. If there's a good reason for it, I'll be willing to discuss.

If you're referring to creating an achievement system within the game, it's no different from any other persistent system. You should be able to use global variables and save them to a file.

Stay away from global variables for persistent data. The engine supports filestream CRUD specifically for persistence. Learn it. Use it.

DC
 
If I may offer a comment, @DCurrent if you're going to invest time in implementing something like this, I think it would be better to consider adding support for accessing a DLL.

The Steam API changes over time, and I believe it would be easier to update a DLL and access from a script than to have to change the API directly in the engine.
 
Back
Top Bottom