locked
Library for Windows8 market game. Questions.

    Question

  • Hello programmers. I need your advise and answers. 
    I develop own unmanaged game library on C++/DX11 through VS11. The library itself writed as Win32 project static library(*.lib). If I make a project with this library and want distribute it through Win8 market what I must do ? So questions..
    1) I need recreate project to metro library ? 
    2) I can target desktop app, and sell it to desktop market or something providing by Microsoft ?
    3) If I call function unsupported in metro, in metro app - app will crash ?
    4) Can I keep metro and desktop code in one library ?(but not using desktop calls in metro app and vice-versa), and it will pass certification ?

    • Edited by ChaosDev Tuesday, May 22, 2012 12:17 PM
    Tuesday, May 22, 2012 12:13 PM

Answers

  • The Windows Store only accepts finished applications. You will need to distribute your library to your developers through some other means. I'm not familiar with how the store catalog works for Desktop apps to know if you will be able to provide a listing page for a library. I'm not sure if details have been announced beyond Ted Dworkin's remarks in the Previewing the Windows Store article and the //build/ conference keynotes.  You might try asking in the Store forum.

    Regarding your technical questions, you will probably need two separate versions of the library: one for Metro style apps and one for desktop apps. Since you have a static library the linker may exclude the desktop calls from the final application if they aren't used, but it would be more sure to keep them separate.

    Calling unsupported calls shouldn't crash, but the calls may fail. The specific details will depend on the specific call. An app calling unavailable functions won't pass certification and so won't be eligible for the store.

    --Rob

    Tuesday, May 22, 2012 9:27 PM
    Moderator
  • Note that the key problem with shipping 'binary' code to 3rd party developers as a static library is that it is very specific to the particular version of the compiler toolset you are using. You will need a distinct static library version for VS 2012, any future Service Pack, or any older VS release you want to support (say VS 2010 SP1 with the Windows 8.0 SDK).

    This is one of the reasons why shipping a DLL for your code is a much simpler solution. That said, you will defintely need a "Metro" and a "Win32 desktop" version of your library.

    For an example of a 'dual-use' library (albeit a shared source one), you might want to look at DirectTK to see how we navigate the API differences.

    Tuesday, May 22, 2012 9:44 PM

All replies

  • The Windows Store only accepts finished applications. You will need to distribute your library to your developers through some other means. I'm not familiar with how the store catalog works for Desktop apps to know if you will be able to provide a listing page for a library. I'm not sure if details have been announced beyond Ted Dworkin's remarks in the Previewing the Windows Store article and the //build/ conference keynotes.  You might try asking in the Store forum.

    Regarding your technical questions, you will probably need two separate versions of the library: one for Metro style apps and one for desktop apps. Since you have a static library the linker may exclude the desktop calls from the final application if they aren't used, but it would be more sure to keep them separate.

    Calling unsupported calls shouldn't crash, but the calls may fail. The specific details will depend on the specific call. An app calling unavailable functions won't pass certification and so won't be eligible for the store.

    --Rob

    Tuesday, May 22, 2012 9:27 PM
    Moderator
  • Note that the key problem with shipping 'binary' code to 3rd party developers as a static library is that it is very specific to the particular version of the compiler toolset you are using. You will need a distinct static library version for VS 2012, any future Service Pack, or any older VS release you want to support (say VS 2010 SP1 with the Windows 8.0 SDK).

    This is one of the reasons why shipping a DLL for your code is a much simpler solution. That said, you will defintely need a "Metro" and a "Win32 desktop" version of your library.

    For an example of a 'dual-use' library (albeit a shared source one), you might want to look at DirectTK to see how we navigate the API differences.

    Tuesday, May 22, 2012 9:44 PM