RPG Maker VX Ace

RPG Maker VX Ace

View Stats:
Xilefian 27 Mar, 2015 @ 5:57am
Steam Overlay + API script
I'm just gauging interest for this feature before I start on it as I'm not sure if many people even want/care for it and I'd rather not waste my time by making a something that no-one will even use.

A bit of background
I am the creator of the OpenGL 3D graphics library for VXAce, a library that allows 3D graphics to be drawn in RMVXA.

Steam Overlay
I've had people ask me if this allows the Steam Overlay to work; no it does not. The Steam Overlay looks for a specific function call to hook to, the SwapBuffer() function, which swaps an OS Window's back buffer with the front buffer in hardware. RMVXA does not call this function, so the Overlay doesn't work.

How will I make it work?
My plan is to follow the same idea as my 3D graphics in RPG Maker library and make a DLL that creates a hidden window that calls this function, letting Steam detect it and draw its overlay to it, from there I can read the buffer from the GPU and copy it into an RPG Maker bitmap (Which is how my 3D graphics library displays the rendered graphics).

How it will be used
If I were to do this I'd make it a DLL to be hooked with the Win32API in RGSS with an interface to allow scripts to grab the Steam Overlay and display it however desired. I would probably make an example script that overrides the behaviour of the default scenes to always display the Steam Overlay.

Rest of the Steam API?
Because it is a DLL I have the option to add in the Steam API (now that it is public). This will enable things like Steam Friends and Steam Profiles in RPG Maker VX Ace, so we could do stuff like replace the party leader's portrait with the player's Steam Profile avatar or only allow save files to be loaded from the player's Steam UUID that created the save file.

Commercial RPG Maker games would obviously gain the ability to use Steam achievements and Steam Inventories, DLC, Trading and more (As well as Steam servers for any RPG Maker games that have online components)

For commercial RPG Maker games that want to use these Steam API features I'd like to issue a paid license, I will make the basic overlay + friends script free, but with games that depend on my work for their commercial goings I will be charging a fee which will issue a version of the DLL that will only work for your game's App ID. There'll be a license to go with this.

Limitations
The first obvious limitation is screenshots. Because of the method of getting the Overlay to work any screenshots would produce blank images. My plan is to try and hook the screenshot call from Steam and call an RGSS function to get the bitmap. This could use .snap_to_bitmap or similar for screenshots, which means games can do stuff like watermark screenshots or add special effects to them if this idea works!. I'm doubtful screenshots will work at all.

The second one that I can think of is game resolution. Some VXA games are at a higher resolution that 544x416. To get around this I'll have the Steam Overlay buffer resolution decided by the game itself, so if a 1024x768 game wants the Overlay it can allocate the buffer at that resolution. This opens up the opportunity for Overlay downscaling too; a 544x416 game could render the overlay at 640x480 so more content fits within the small resolution, however this could cause aliasing issues and would need thinking about (Steam Overlay is best at native resolution).

What's the catch?
I might not even do this if people aren't interested. I don't want to waste my time as I'm a pretty busy guy, just that I know that at least 2 people were desperate enough for this feature to message me and offer money.

If not enough people care, then I'll forget this plan. I don't have much free time to be able to work on it to begin with, hence why I'm asking the community here.
< >
Showing 1-15 of 27 comments
Kio Kurashi 27 Mar, 2015 @ 6:26am 
How much do I need to pay for this upon release?
Xilefian 27 Mar, 2015 @ 6:35am 
Originally posted by Kurashi:
How much do I need to pay for this upon release?
I'd make the overlay and basic steam feature free, but for the features that only commercial Steam games get I would have to think about it.

In the best case scenario I'd probably charge based on how many of the Steam commercial features a game requires and I would prefer it to be a one time fee.

What I have been thinking of is having a system where you'd select features from a checklist that your commercial game needs and that would end up with the price.

The paid-for plan might not even happen, if people want Steam Overlay I'd do that for free, but if people don't care about the commercial Steam App features there isn't much reason for me to spend time on implementing them.
Mystix 27 Mar, 2015 @ 7:26am 
@Xilefian:
I recently got my Blade of Rage game (a RPG developed with VxAce) Green-Lit on Steam, and ideally I'd like to be able to include Steam-Achievements for it (it would be nice if what you mentioned also included a script and demo so I can see how I would then be able to implement Achievements for my own game), and it would of course be nice to have the Steam Overlay work with it as well.

I'm not a 'Scripter' (though I can sometimes muddle my way through some things enough to make bits of custom editing and such), and much of the scripting / coding stuff is waaaay over my head. So, I'd be willing to pay for it (the Steam Overlay + API script with ability to add Steam-Achievements) if the price seemed resonable & within my very limited budget (I'm basically broke, lol, but I'd try to scrape up some $ for it).

I was tentatively & briefly talking to a Scripter about it, but no plans were really yet in place, nor fees discussed, etc... So I'm still open to ideas about it and someone that could help me in this regard.

Even if you decide to not go ahead and make your Steam Overlay + API script for the general public, might it something you would consider doing for an aspiring Indie Game Developer like myself, who was able to get their VxAce game Green-Lit on Steam & wanted to be able to include the Acheivements for their game, if you were to recieve a payment for it?

Thanks. :) --Don
Xilefian 27 Mar, 2015 @ 9:22am 
Originally posted by LoneWolfDon:
@Xilefian:
I recently got my Blade of Rage [...]
My solution will be a script API, so scripting will be required to take advantage of the features.

I will be keeping the API as simple as possible, so for achievements as an example I'll try to make it so the achievement IDs are read from the Steam Server and registered as symbols then in an event you could do something like;
SteamUserStats::AwardAchievement( ACH_KILL_TEN_ENEMIES )

I don't have a Steam app on the store, if I get serious with this I'll try and talk to Valve about becoming a Steam partner, from there I would be able to make an example project and hand that out along with the game specific DLLs for the commercial library if that becomes a thing.

I want to make the Overlay part as simple as possible, so I'd bundle a script that enables a default behaviour for it (Opens on-top of everything, F12 screenshotting, input capturing).
Mystix 27 Mar, 2015 @ 10:55am 
@Xilefian : Good stuff. Well perhaps as I continue development of my game, in the next month or so if I'm not able to find anyone else to help me with it, would it be ok if I contacted you about it and work out the details? As I mentioned, I'd be willing to pay if it's a fee that I'd be able to scrape up the $ for.
Cheers! :)
Xilefian 27 Mar, 2015 @ 10:57am 
Originally posted by LoneWolfDon:
@Xilefian : Good stuff. Well perhaps as I continue development of my game, in the next month or so if I'm not able to find anyone else to help me with it, would it be ok if I contacted you about it and work out the details? As I mentioned, I'd be willing to pay if it's a fee that I'd be able to scrape up the $ for.
Cheers! :)
I'd rather you didn't contact me and wait to see if I will attempt this free version first
Mystix 27 Mar, 2015 @ 11:22am 
Originally posted by Xilefian:
I'd rather you didn't contact me and wait to see if I will attempt this free version first

Ok. No rush. I'm still developing my game and probably have a few more months or so before it's ready for release. I'll see how things go.
._.Stashed Girl._. 30 Mar, 2015 @ 11:21am 
Ok I read all of the page since from now I wrote this.

Well.. Basically the idea is very great, but.. basi-cally.

The interest of the:


I. Steam Overlay in a RPG Maker Game will be really very very very limited..

Developpers of RPG Makers software, provide us a Fullscreen.. BUT

The way of the engine of RPG Maker VX Ace is in Fullscreen is.. some of so-badly uglyest fullscreen engine I've ever seen, all seems just stretched, it's almost ugly.

And.. This.. imposed blur/tearing is not player-friendly not at all!

So.. Now this is why many RPG Maker VX Ace's game players will not use in FullScreen..
So.. The Steam Overlay in a pityful small window .. is a real non-sense.

Steam Overlay is more use-able in FullScreen, but as I explained.. In FullScreen, RPG Maker's game looks so badly ugly.




II. Steam API in a non-commercial RPG Maker Game will be not use-able at all BUT for commercial RPG Maker Game..

FaceSet replacing by Steam Avatar

Which player really care to replace his artworks by real "images" of profiles in a RPG Maker VX Ace's game?
This make a difference potentially ambiguous in the in-game menu for showing FaceSet and for message..

An example from I what I'd say:

Thinking about the so-called Hero named "Eric", so, his charset is.. Eric but the FaceSet will be an avatar which don't have any related to Eric/the game, (let's take mine Steam Avatar for example).


Steam Friends

Which use can we do from that.. Showing who is connected?
Is it really useful?
I mean.. "Yay! my friend John Doe is connected... but.. Wait before inviting him.. I can't play with him since the RPG Maker software can't support multiplayer efficient way to being (meaning gadgets)..."

So.. John Doe is certainly connected.. But.. This is here the interaction will stop.


Steam Achievements

This feature is certainly useful for some on Steam, but from I know, since always, RPG Maker VX Ace's makers have created their games with so-many scripts adding the abilities to track achievements from their game.
But, if makers can also publish them over the Steam servers, (assuming the game use a connection, but from I know, there is no online capabilities by default within RPG Maker VX Ace.), this can be something of a addition game feature, indeed, but again, only for commercial games..


Steam Trading

Steam offer us the ability of tradings only Steam category of Steam Inventory items of the Steam User.
Likely, Steam Cards, Steam Emotes, Steam Backgrounds, well, only Steam stuff..
This can't be useful for trading a game item (like Potion) stuff from a players to another player.
So.. I don't see any of the interest here. But perhaps I'm wrong on your intention of featuring this.. feature.


Steam DLC

Anyway, this feature can be so-useful for .. again, commercial games.
Making DLC can be something of useful I think, even it's a more a commercial arguments than a game feature.



III. And so.. Now.. My Conclusion

For the Steam API capability

Non-commercial RPG Maker VX Ace's makers can be fullfully disappointed/anger (that's a details, but an important details) from the non-ability to use theses possibles useful features.
Since, Steam API need an authorization key, theses features will be then only useful for commercial games.

** The most usefulm feature can be Steam Achievements I think..

As Steam API will be only for commercial games, I recommand you to addressing to commercial makers already existent, like developpers of To The Moon, Skyborn, Aveyond, etc.. (sorry for others devellopers which I not cited, but your games don't come back in my toughts for the moment).


For the Steam Overlay capability

Steam Overlay seems a very great idea, but from what I can read in your "description of use capabilities", it's just way-so limited as hell due to RPG Maker VX Ace's graphics engine itself, so, might be a false-great idea to work on a Steam Overlay.

There is possibly a chance to be useful when the "High Res DLL" directly created from RPG Maker VX Ace developpers will come one day... (some say as a rumour it's in the road.. a High-Res DLL beta-test very very hidden on Steam has been launched, but now terminated).

But.. From now, the Steam Overlay is pretty useless !



Hope my feedback will be useful to you Xilefian.

PS: where is your: OpenGL dll ? Is it usable for non-commercial/commercial games? Please give us a link :)

EDIT: fixing some typo errors, and wrapping a bit my text.
Last edited by ._.Stashed Girl._.; 30 Mar, 2015 @ 11:27am
Xilefian 30 Mar, 2015 @ 11:55am 
Originally posted by Aтαηα¢ιυѕ:
Ok I read all of the page since from now I wrote this.

...
Seems like you're missing the point a bit. This isn't for standard RPG Maker games, it's for people who will find it useful with scripts.

So someone may make a script that implements Steam trading, in which case you may need avatars and names.

The character portrait Steam avatar was an example of a possibility, it isn't a mandatory feature, you can do anything you want (you're free to use your imagination, don't assume I won't let you).


You can actually change the resolution of RPG Maker VX Ace, so the full-screen thing you mentioned in point 1 is already void. I did think of this, it will be low resolution if no-one changes the RM resolution, so I would implement a downscaling feature to accommodate this (which I described above).


We don't need Enterbrain to make a high-res DLL, we can do that ourselves (in-fact, we don't need a DLL, as I said it's built into the engine already).


My OpenGL API is free for use, you can download the demo here; {LINK REMOVED}

All your feedback seems to presume that I am forcing features upon people, so unfortunately a lot of what you said is actually not an issue for me, it's an issue for anyone who wants to use Steam features. Everything I said were example possibilities that you can do, they're not feature's that I'm going to make.
._.Stashed Girl._. 30 Mar, 2015 @ 12:31pm 
Hello Xilefian, just want add the maximum resolution allowed in RPG Maker VX Ace games is 680*480.

So...
We can't overcome this limit ourselves.
And so, the fullscreen point is not void (not totally void for being more true).

For all the left things..

Interfacing Steam Overlay/Steam API, will be perhaps a non-sense in a RPG Maker game.
But, non-commercialy I want mean, it's certainly an another case when used in a commercial game.

I know also that you don't debating about a mandatory feature when you described your Steam Avatar capability, but, well..


No no, I just give my feedback about "a maker" using your "possible features".
Please don't think that I think (in any time) that you forced features upon people XD.
(as English is not my primary language, it's perhaps a misspelled sentence I wrote)..


[Off-Subject: ON]
And thanks for the link to your OpenGL API. It is stable? Is there a topic/a manual?
[Off-Subject: OFF]

Thanks for reading.
Xilefian 30 Mar, 2015 @ 1:02pm 
Originally posted by Aтαηα¢ιυѕ:
Hello Xilefian, just want add the maximum resolution allowed in RPG Maker VX Ace games is 680*480.
Oh my mistake, I did not know this.

I can easily add in resolution chaning to the DLL, which would destroy the window and recreate it at a desired resolution, that has been done many times before in previous RPG Maker versions.

That OpenGL project is abandoned due to the overhead of the Win32API calls, it can be sped up if threading was used, but that's a massive undertaking so it was easier to abandon the project.

What I have there is pretty stable, someone is already using it to add per-pixel lighting into RPG Maker games.
Kio Kurashi 30 Mar, 2015 @ 4:09pm 
Originally posted by Aтαηα¢ιυѕ:
Hello Xilefian, just want add the maximum resolution allowed in RPG Maker VX Ace games is 680*480.

Well you see the thing is taht my resolution is 1080 * 610 because I got the dll that allows for larger window screens which by the way is something that is planned for future implementation so at that point this particular argument will be moot. But not until then.
._.Stashed Girl._. 31 Mar, 2015 @ 10:40am 
Exactly What I said, it exists a "High Res DLL".

But not many people have it.

Also, Archeia (which is one of the author (seems she is)), give us no useful informations on this High Res DLL.

Anyway, I'm so disappointed I miss this DLL when in BETA.

Originally posted by Xilefian:
Oh my mistake, I did not know this.

I can easily add in resolution chaning to the DLL, which would destroy the window and recreate it at a desired resolution, that has been done many times before in previous RPG Maker versions.


Interesting way of workaround, but my advices will to you must waiting for the future possible implementation of official High Res Update.

Good luck with your project.
Last edited by ._.Stashed Girl._.; 31 Mar, 2015 @ 10:43am
Xilefian 31 Mar, 2015 @ 11:16am 
Originally posted by Aтαηα¢ιυѕ:
Interesting way of workaround, but my advices will to you must waiting for the future possible implementation of official High Res Update.
Well I have no reason to wait, it's quite an easy feature to do in a DLL and it can be replaced with any official implementation in the future.
._.Stashed Girl._. 31 Mar, 2015 @ 11:18am 
Ah if so, then go work on, and show us the result ! (but pay attention to EULA of RPG Maker VX Ace, it not permit to hack the resolution.. by injecting a DLL.. in core of RPG Maker VX Ace).

Now if you can do that, the Steam Overlay can be more useful in this way!

I'm curious now.
< >
Showing 1-15 of 27 comments
Per page: 1530 50