locked
Create a GDF file

    Question

  • You cannot vote on your own post                            
    0
                    

    http://msdn.microsoft.com/en-us/library/windows/apps/hh465153.aspx

    I'm referring to the above link in order to make a gdf file.

    I have completed the first part successfully. But I'm facing a lot of problems in creating a DLL project container for the GDF file

    Step6:Copy the .RC file and all subdirectories created by the Game Definition File Maker tool to a "res" subdirectory in the resource DLL project directory for the new project. Add the .RC file to the project

    Now there is not any subdirectory names "res".

    Step7:

    Update the .RC file so it appears similar to the example below.

    Note  All instances of ID_GDF_XML should be changed to __GDF_XML.

    Visual Studio does not support resource editing therefore .RC file cannot be opened. So, can I edit it via notepad?

    Step 9,10,11 are also not clear. Please help.


    shahamish150294

    Friday, July 12, 2013 1:20 PM

Answers

  • You can create the "res" subdirectory.

    Visual Studio Express for Windows 8 supports only Windows Store apps, which don't use resource DLLs (the GDF file being one of two exceptions I can think of). Full versions of Visual Studio can edit resource DLLs, and I believe Visual Studio Express for Desktop should be able to do so.

    --Rob

    Friday, July 12, 2013 5:56 PM
    Owner

All replies

  • http://msdn.microsoft.com/en-us/library/windows/apps/hh465153.aspx

    I'm referring to the above link in order to make a gdf file.

    I have completed the first part successfully. But I'm facing a lot of problems in creating a DLL project container for the GDF file

    Step6:Copy the .RC file and all subdirectories created by the Game Definition File Maker tool to a "res" subdirectory in the resource DLL project directory for the new project. Add the .RC file to the project

    Now there is not any subdirectory names "res".

    Step7:

    Update the .RC file so it appears similar to the example below.

    Note  All instances of ID_GDF_XML should be changed to __GDF_XML.

    Visual Studio does not support resource editing therefore .RC file cannot be opened. So, can I edit it via notepad?

    Step 9,10,11 are also not clear. Please help.


    shahamish150294

    Friday, July 12, 2013 10:13 AM
  • You can create the "res" subdirectory.

    Visual Studio Express for Windows 8 supports only Windows Store apps, which don't use resource DLLs (the GDF file being one of two exceptions I can think of). Full versions of Visual Studio can edit resource DLLs, and I believe Visual Studio Express for Desktop should be able to do so.

    --Rob

    Friday, July 12, 2013 5:56 PM
    Owner
  • Thank you.

    Is it mandatory to submit the GDF file for certification of a game?


    shahamish150294

    Friday, July 12, 2013 7:40 PM
  • I navigate to my game project folder(My game name is AAAA), and follow the step 6 to create a "res" folder inside the DLL project folder(My DLL name is AAAAGame from step 1 to 5), but I am just not sure that is correct.

    Then back to VS Express 2012 for Windows 8, add the .RC file(Mine is AAAA.RC generated from Game Definition File Editor) to the DLL project. I right click on the .RC file and use both Open With.../Notepad and View Code to change all instances of ID_GDF_XML to __GDF_XML in the .RC file for step 7, and switch to Release mode from Debug as step 8 said. Now, here is problem shown when I Build. If I right click on game project(AAAA) and select Build to build, I have a successful message. But If I right click on DLL project(AAAAGame) and select Build to build, I have an error message as below:

    error RC1050: can not open include file 'gameux.h'.

    I then try to use Build Solution under Build menubar or function key F7. a message like this

    1>------ Build started: Project: AAAA, Configuration: Release Any CPU ------
    2>------ Skipped Build: Project: AAAAGame, Configuration: Release Win32 ------
    2>Project not selected to build for this solution configuration
    1>  AAAA -> C:\Visual Studio 2012\Projects\AAAA\AAAA\bin\Release\AAAA.exe
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 1 skipped ==========

    AAAA is game project, AAAAGame is DLL project. The DLL project is skipped to build.

    My question is which Build should be selected for step 8. My best guess is DLL project, and it gives me error. So I bing and google to nowhere can have this "error RC1050: can not open include file 'gameux.h'." for a clue. Indeed, the #include <gameux.h> is at first few line in the .RC file, that is all I know. So far. I think the step 6 and 8 are not well described in the document of Create a GDF file. I move on to see the next step,

    9. Copy the DLL just built to the source directory of your main game project.

    I have no clue about step 9. First, where is my DLL just built? Second, where is my "source" directory of my main game project? Therefore, I can not have the DLL for step 10.

    10. Add this DLL to your main game project in Visual Studio by right-clicking on the project and choosing the Add item under Existing Item.

    Further, how to type the name of your ratings DLL in the step 11? I know a relative path needed be considered, but how? and then for the step 12 to build for no errors or warnings.

    I have seen all of the Windows Store games from Microsoft Studio with the ratings. Can any one have making this DLL project container for the GDF file to game project successfully and give us a shot? A complete example for this "creating a DLL project container for the GDF file" is even more appreciated. Thanks.

    -- Rofenvj

     



    • Edited by rofenvj Wednesday, July 17, 2013 9:07 PM update
    Monday, July 15, 2013 12:56 AM
  • Having just completed this rather tedious process and with no knowledge of whether it is correctly working or not, here is what I know. The reason your project is not building is because the .rc file is incorrect. 

    1) Comment out //#include "AAAA.h"

    2) Comment out  //#include <gameux.h>

    3) Rename #include <afres.h> to #include <winnt.rh>

    4) Change all instances of ID_GDF_XML to __GDG_XML but keep ID_GDF_THUMBNAIL as is

    Also

    a) The res folder that is talked about is created manually. I copied all of the data generated by the GDF maker into this folder.

    b) The location of dll is build that is built varies. It depends on your settings in the configuration manager under the BUILD heading in Visual Studio. At the top left of the configuration manager, make sure dropdown is set to releases. My settings were my main game as "Any CPU" and my new project name as "Win32". After changing these settings and hitting build, a new folder is created in my main projects folder. It was just called "Release" as I had chosen "Any CPU". If I had chosen "x64" for my release build type, the folder would be called x64. Navigate to the bottom of the hierarchy and you will find the dll file.

    c) I then copied this dll file to the main folder of my game, and also added as an existing item to my main game. I then edit my Package.appxmanifest found in my main project, added a game explorer under declarations, and set the target to "mydllname.dll" 

    Hope this helps :)

    Thursday, July 18, 2013 1:20 AM
  • Thanks a lot for this post, this also took me a couple of steps further. Unfortunately I hit the following error when I try to run my game locally: The specified resource name cannot be found in the image file. Yawn... I will sort this one out tomorrow.
    Friday, July 19, 2013 10:27 PM
  • Thank you.

    Is it mandatory to submit the GDF file for certification of a game?


    shahamish150294

    A GDF file is mandatory if you want to submit your game to certain markets: Brazil, Korea, Taiwan and South Africa. You can submit your game without a GDF file if you leave out these mandatory markets.

    Friday, July 19, 2013 10:37 PM
  • At a guess, the error you are facing is most likely due the .dll that you specified in Package.appxmanifest the under declarations --> game explorer is incorrectly named/referenced or not added to the project. (See point "c" in my initial post). I totally sympathies with you though as this whole ordeal is very poorly documented.

    On a brighter note, I have just completed the submission to the Windows Store with my ESRB game rating certificate included and everything has passed. The final change I made though was to right click on the Package.appxmanifest and go to 'View Code". Then at the bottom of the xml before the  closing tag, paste in the following.

    <Dependencies>    
    <PackageDependency Name="Microsoft.VCLibs.110.00" MinVersion="11.0.0.0" />  
    </Dependencies>
    </Package>

    This prevented the following error 

    "IQ Jumper takes a dependency on Microsoft Visual C++ Runtime Package framework but is missing the framework dependency declaration in the manifest"

    Good luck


    • Edited by cwra007 Friday, July 19, 2013 11:50 PM grammar error
    Friday, July 19, 2013 11:49 PM
  • I did exactly as you mentioned on item c. But I get the message: the system failed to register the windows.gameExplorer extension due to the following error: The specified resource name cannot be found in the image file.. (0x80073cf6)

    I think the error comes straight from my dll file, but I have no idea on how to solve it. The documentation is either nonexisting or confusing and I have wasted another few hours on this. This is exactly the reason why I have only been working on Android apps for the last couple of months.

    @Microsoft: please provide a decent process to create GDF files first before making this mandatory.

    Saturday, July 20, 2013 11:20 AM
  • Might create a walkthrough in a day or so to help you/others. Will post if I do. 
    Sunday, July 21, 2013 9:30 AM
  • Halleluja, I finally got this stuff to work and it now even passed certification!

    I finally got the dll working by starting from scratch: New blank page project (which I conveniently called MyNewWin8Game), new gdf, new dll project (which I just called GameDefinition). This one worked straight away. I then copied the dll project to my game and configured the Entrypoint to Yes(/NOENTRY)

    Then I changed the following items in the res/NEU/gamedefinition.gdf.xml file:

    • gameID: I generated a new GUID via VS Tools > Create GUID
    • Name: same as the display name in appmanifest
    • Description: same as the description in appmanifest
    • FileTask: same as the display name in appmanifest

    I built the dll and added it to my game project. I added a Game Explorer declaration and set the Game definition container to "GameDefinition.dll"

    After submitting the updated game to the store it was rejected... the reason for this was because I had included the Brazil market and an ESRB rating. On the devcenter website you can upload an ESRB certificate file for Brazil (instead of the DJCTQ certificate), but your GDF file must contain the DJCTQ entry. Can it be any more confusing?

    After adding the DJCTQ entry to my GameDefinition.gdf.xml I resubmitted the app and now it finally passed certification.

    Hopefully this whole process will be integrated in VS by a couple of convenient checkboxes soon. Also the Windows App Cert kit does not detect this issue, probably because it does not know to what markets and category the app is submitted, however it would save a lot of time if it did.


    • Edited by ncu Monday, July 22, 2013 12:04 PM one more thing
    Monday, July 22, 2013 11:58 AM
  • Cool! Glad to hear it worked out in the end. Totally agree on the integration component. It's weird that at the same time Microsoft is pushing to increase the number of apps they have in the store to make Windows 8 a success, they are simultaneously failing to offer appropriate support to developers to assist in vital stages of release. Go figure.... Ah well, live and learn :)
    • Edited by cwra007 Tuesday, July 23, 2013 7:29 AM grammar
    Tuesday, July 23, 2013 7:28 AM
  • Having just completed this rather tedious process and with no knowledge of whether it is correctly working or not, here is what I know. The reason your project is not building is because the .rc file is incorrect. 

    1) Comment out //#include "AAAA.h"

    2) Comment out  //#include <gameux.h>

    3) Rename #include <afres.h> to #include <winnt.rh>

    4) Change all instances of ID_GDF_XML to __GDG_XML but keep ID_GDF_THUMBNAIL as is

    Also

    a) The res folder that is talked about is created manually. I copied all of the data generated by the GDF maker into this folder.

    b) The location of dll is build that is built varies. It depends on your settings in the configuration manager under the BUILD heading in Visual Studio. At the top left of the configuration manager, make sure dropdown is set to releases. My settings were my main game as "Any CPU" and my new project name as "Win32". After changing these settings and hitting build, a new folder is created in my main projects folder. It was just called "Release" as I had chosen "Any CPU". If I had chosen "x64" for my release build type, the folder would be called x64. Navigate to the bottom of the hierarchy and you will find the dll file.

    c) I then copied this dll file to the main folder of my game, and also added as an existing item to my main game. I then edit my Package.appxmanifest found in my main project, added a game explorer under declarations, and set the target to "mydllname.dll" 

    Hope this helps :)

    Should be __GDF_XML, not __GDG_XML.

    Wednesday, August 7, 2013 6:33 AM