Games Library (Game & Emulator database + launcher) development project, help wanted! - Printable Version
+- XBMC Community Forum (http://forum.xbmc.org)
+-- Forum: Development (/forumdisplay.php?fid=32)
+--- Forum: Development (/forumdisplay.php?fid=93)
+--- Thread: Games Library (Game & Emulator database + launcher) development project, help wanted! (/showthread.php?tid=40715)
- Lugaidster - 2009-04-28 04:54
I have a question. Is something like Steam Overlay possible? That would be a great way to keep in touch with XBMC while playing games without "breaking the magic" and leaving the game.
Not that I'm suggesting to dedicate resources right now for this. I think the right thing to do would be to get a Game/Emulator launcher for one and for all. But it would still be nice in a not so far future.
I might even try to do something like that if I knew how the overlay works.
- leo2 - 2009-04-28 15:21
Lugaidster Wrote:I have a question. Is something like Steam Overlay possible? That would be a great way to keep in touch with XBMC while playing games without "breaking the magic" and leaving the game.Can you explain exactly what is the "Steam Overlay" that you suggesting?
- EMK0 - 2009-04-28 17:31
steam overlay is basically a menu the goes on top of the steam games. so you could for example press a button and it shows a menu on top of the game with options like your friends list options and so on.
this is an example
while in game you press a binded button and that screen shows up ontop of the game so you don't need to minimize to access those things like friends/servers and so on.
- spiff - 2009-04-28 17:44
quite likely support code in the games....
- EMK0 - 2009-04-29 03:54
yea that's probably true for steam but for Xfire defently not they manually make the overlay work for there games. one other example that the games don't support a overlay in there code is http://www.gameoverlay.com/.
- Lugaidster - 2009-04-30 05:51
Steam overlay works on steam games and on non-steam games. I read a bit on it and they use (probably) dll-injection to inject code in directx calls to EndScene then they render the overlay and then they call DirectX's EndScene. I read somewhere that this works for DX9 games I don't know how they do it for DX10 games or OpenGL games. I haven't tried any ID game on steam as of yet so I don't know.
Steam overlay even works for Gears of Wars, and that is relevant because Gears of Wars is quite nasty when it comes to modded files or whatever.
As a proof consider Crysis (which is not made by Steam):
Steam overlay is confirmed to work with OpenGL (tested with quake III demo), DX9 and DX10 (tested with crysis in dx10 mode, I set it through the command line option).
This should be simpler to implement in linux since AFAIK there's only OpenGL in there. Windows is a whole other beast since you have DX7-10 (with each version having it's own perks) and OpenGL.
Last Edit (I promise):
I found a link from steam saying that their overlay works with every version of dx (7 to 10) and opengl also. Not working with directdraw though.
- EMK0 - 2009-04-30 16:45
i had an idea about this would it be possible to have an overlay that can load python scripts? this way it would make it much easier to mod the overlay for specific options for different emulators/games?
- Lugaidster - 2009-05-01 07:55
the issue here isn't to control xbmc through the overlay but to create a way to draw that overlay no matter what api the game uses and what os you are in.
GameLibrary UI Thoughts - leo2 - 2009-05-01 18:04
I'm currently working on the GameLibrary branch, and I have some unsolved issues that I would like to share with you:
1. What type of Directory would the user add as a source? will it be the Games folder (with folders)? will it be the "Start Menu" folder (with shortcuts)? both of them?
2. What happens when the user clicks on a scanned game directory ? will the files in the folders will be displayed? will the game executable will run? what if there are more than one executable in the directory, how would XBMC should know which one is the game executable?
3. In the "Library Mode" you can browse by Genre, Platform, etc.. but how should the other software be accessed (for e.g firefox), it's not a game, and it has no info from games database, so it won't be in the library at all...
4. will the user be able to add a single executable into the database or only it's folder?
- Rand Al Thor - 2009-05-01 18:47
Quote:I'm currently working on the GameLibrary branch, and I have some unsolved issues that I would like to share with you:
Hey leo! First off, I just wanted to say that I really appreciate what you are doing. This is an amazing project! I can't wait to see this in action. Now, let me take a stab at some of these and let you know how I personally would like to see them function.
Quote:1. What type of Directory would the user add as a source? will it be the Games folder (with folders)? will it be the "Start Menu" folder (with shortcuts)? both of them?
I think there should be an option when adding a folder to this section of the library. "Add Single Folder" or "Add Root Folder." If you have a bunch of games in their own folders under c:/Games/ then you add the root folder and it scans recursively. If you just want to add firefox you add single folder C:/Program Files/Firefox/
This is pretty similar to what they use in the movies library. They have an option for "scan recursively" although I think that "single folder" and "root folder" are better explanations IMHO.
Quote:2. What happens when the user clicks on a scanned game directory ? will the files in the folders will be displayed? will the game executable will run? what if there are more than one executable in the directory, how would XBMC should know which one is the game executable?
I think it should run the executable. Opening up the context menu should give you an option to "set game options" Here you should be able to add parameters for launch ie "-f" etc. Either that or have a box for launch parameters when you first setup the game folder.
I don't see any reason why there should be more than one .exe in a single folder.
Quote:3. In the "Library Mode" you can browse by Genre, Platform, etc.. but how should the other software be accessed (for e.g firefox), it's not a game, and it has no info from games database, so it won't be in the library at all...
I think that instead of a "games library" the entire project should be named something like "programs library" and games will be just a subsection of the project.
How about having another option when adding a folder to specify what you are adding? You would choose "Program" or "Game." Then when you navigate to the "Programs Library" the hierarchy would be as such:
So there would be two top level choices from the programs library. Games or programs. I don't really see a need to separate programs into genres so they can just be listed. Then the skinner can have a button on the home screen called "games" that links to the games node or one called "programs" that links to the programs node. To deal with how programs show up in the library, you could have it default that any Program gets added to the library as "Programname" and uses the default icon. If the user really wants to get fancy they could use an .nfo if you really wanted to give information about what firefox does and have a folder.jpg in the firefox folder to change the icon. Just like the movies library.
Quote:4. will the user be able to add a single executable into the database or only it's folder?
I think for simplicity sake we should limit it to a folder. It just seems like you might have to deal with way too many variables if someone has a bunch of .exe's in a single folder and they have some added as single .exe's some as the root folder etc etc.
On a final note, using an overlay as suggested before, would add a lot to the implementation of programs and games into XBMC. It would keep the transition from fullscreen XBMC to Game and back as seamless as possible so you don't "break the magic." That way you could also pause a game and fade in XBMC to queue some music, then seamlessly fade back to your game. Then while playing your game, bring up the player controls to skip a song. Even if we decide that only a very small bit of xbmc can actually be overlayed on the games/programs, like playercontrols, it will still be an amazing addition.