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.
 
I totally get that, @DCurrent.

I'd only vouch for wanting that sort of feature in order to encourage more indie developers or current OpenBOR modders to make more titles like Merso's "Balacera Brothers" or "Buccaneers" (I know the latter technically isn't original, but I mean being able to create commercial games worth playing/publishing) and make them feel more like their own thing and add some longevity to them. I know it's nothing too unique, but I see it as a cool way to make OpenBOR games stand out that way.
 
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.

OpenBOR can already access .DLL and has had that capability for almost two decades. It used to do it for certain features. It just doesn't need to now because we rolled that stuff into the source code - managing. .DLL is a pain for creators.

DC
 
OpenBOR can already access .DLL and has had that capability for almost two decades. It used to do it for certain features. It just doesn't need to now because we rolled that stuff into the source code - managing. .DLL is a pain for creators.

DC
Thanks for that information.. I was completely unaware of that feature, so in theory it should be possible to integrate the Steam API.

Just out of curiosity, is there any documentation on how to interact with a DLL from OpenBOR scripts?
 
Back
Top Bottom