Содержание
- 2. AAA GAMING WITH SOME D CODE
- 3. QUANTUM BREAK WHAT THIS TALK WILL COVER Integrating D A major use case Getting it shipped
- 4. Third person cinematic action game with integrated live action TV show Xbox One, Windows 10 #1
- 5. INTEGRATING D
- 6. PREVIOUSLY AT DCONF 2013 USING D ALONGSIDE A GAME ENGINE
- 7. Code as data D code exists as data in our pipeline, allowing new logic to be
- 8. D’S COMPILE TIME FEATURES WHAT DID I GET MYSELF IN TO?
- 9. Mark up functions/interfaces with version numbers Variable inside @(Export) and @(Import) UDA in D, #define parameter
- 10. Stagger submitting D code until new build is published Shelve D code Submit C++ code Email
- 11. BINARY COMPATIBILITY IT JUST WORKS! @( Version( 3 ) ) struct DebugGraph { @( AddedVersion( 2
- 12. BINARY COMPATIBILITY IT JUST WORKS!
- 13. Creating bindings to do code in D – 30+ minutes and the staggered submit hassle Doing
- 14. A MAJOR USE CASE
- 15. Our Morpheme setup required code and data to be in sync Code publish time of a
- 16. D plugins? Well, they solve some problems! Generic component system written, specialised for animation networks Manually
- 17. GETTING IT SHIPPED
- 18. core.stdc.stdlib alloc/calloc/realloc/free gc_rawAlloc, gc_rawCalloc, gc_rawRealloc, gc_rawFree Hooking up our engine’s allocation functions required staggering DLL initialisation
- 19. SHIPPING WITH D MEMORY MANAGEMENT extern( Windows ) BOOL DllMain( HINSTANCE hInstance, ULONG ulReason, LPVOID pvReserved
- 20. The GC itself wasn’t “solved” Far stricter memory requirements than normal programs Industry standard is to
- 21. The GC itself wasn’t “solved” Automatic Reference Counting is our preferred method Attempted to add compiler
- 22. The GC itself wasn’t “solved” GC has 32MB, never collects, increments in 8MB chunks This is
- 23. Runtime porting still needs work LoadLibrary -> LoadPackagedLibrary Auto-packaged files as data only work from deployment
- 24. QUANTUM BREAK XBOX ONE & WINDOWS 10 FIRST AAA GAME WITH D CODE TO SHIP ON
- 25. Wasn’t used enough, could have done it in C++ More the fault of the plugin system,
- 26. Almost! Few areas that need tightening up ARC support please please please please please “Official” console
- 28. Скачать презентацию