Jump to content
  • Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

579 Good

About Sparkon

  • Rank
  1. Usually there is an explicit relationship between the resource and its creator ( ID3D11Device ) and during its lifetime is very unlikely to change, and in case it might need to change ( creation / destruction ) is way better ( IMHO ) to directly create a new instance. Thus i would approach the problem this way : class IResource { IResource(GraphicsContext& graphics_context) : m_graphics_context { graphics_context } { } protected: GraphicsContext& m_graphics_context; }; obviously the GraphicsContext& contains Device, immediate context, feature levels and more ( it can also be a POD ). Since you directly manipulate resources w/ no handles inbetween copying resources is debatable .   I´m personally a big fan of references, but still you might go aswell with pointers. References disallow invalid ( null ) instances but at the same time they do have some ¨¨problems¨¨ ( if you wanna call them that way ) with copy constructors.   If you think the resource is going to be recreated different times by different devices, just ( as said already ) pass the graphics context or the device to the create() method. Since i´m sort of promoting references, pass the parameter as reference <3 and keep it as a pointer inside. ( we are using C++ afterall )   Happy coding
  2. I'll try to address your question the best way i can ( i'm not the most experienced around here) ^^ : - Direct3D11 should be available from Vista SP2+ if i'm not wrong. Choosing whether to support Windows XP or not is totally your choice, i would probably read some hardware surveys ( http://store.steampowered.com/hwsurvey | http://stats.unity3d.com/pc/index.html ). Yes, there are still many peoples running Windows XP ( unfortunately ) - I'm sorry i'm not aware of any reference article that covers 'doing 2D with D3D', still, as i wrote the previous post and if you start googling around, most of the answers will reference : - Textured quads - GS - Batching and this is exactly how XNA would do it ( not GS tho ) [ https://directxtk.codeplex.com/SourceControl/latest#Src/SpriteBatch.cpp ] - Direct3D vs OpenGL on Windows, argh this question ^^ Don't like this terrain... I cautiously tell you that D3D 'should' 'is supposed' 'might' be better than OGL on Windows platform mostly due to hardware support, but Valve wouldn't agree with me ( http://blogs.valvesoftware.com/linux/faster-zombies/ ) [ I took 'better' for 'faster' ]. I personally prefer D3D API to the OGL's one, but that's a matter of taste. - I'm just going to mention this library, i don't think it really fits your purpose and i hate its API, but you've probably heard of it and you will : Direct2D. Developing games / wrapping it up is quite painful for the way it is structured, but undoubtedly has a crazy amount of features. If you code your entire game with no wrapping, porting it to OpenGL is probably a hassle, if you start wrapping D3D calls / resources it will not be that hard to port it to OGL, not saying it is easy tho. Another road you might take if you are going to port the game later is just dive into OGL and leave D3D aside for the moment. Hope i was helpful, and you if need anything else, don't hesitate to PM me. Happy coding
  3. Hey, I'll just point out few things :   - XNA bottleneck : As long as the game runs fine (60+ fps ) using XNA i don't see the need to switch to D3D for performance reasons. If you have a real bottleneck is probably somewhere else or you draw something like tens of thousands of particles in an inefficient way. The statement [ xna is working much slower than directx ] well.. it's too wide, it is true for obvious reasons, but at the same time, this performance difference should be negligible for the most part.     - XNA / C# D3D / C++ : by switching to D3D9 i guess you were considering moving to C++ ( but you might be talking about Managed DX ). Learning D3D will be fulfilling in many ways, but not a wise choice if your purpose is to complete the game as soon as possible. C++ is a whole another language and will massively ( usually, don't take my word for wisdom ) increase your development time.    - D3D9 : there is a new, much better ( depends ? ) version called D3D11 that provides backward compatibility with D3D9 hardware http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876(v=vs.85).aspx   - 2D with D3D : after you've properly chosen to use D3D11 and start looking for 2D help people will tell you : 2D is nothing else than rendering textured quads, well that's it really. There are many techniques that you can use ( naming Geometry Shaders, Instancing, Batching ) but it all revolves around 2 triangles being textured. If you come from XNA i'd really tell you to check out DirectXTK ( https://directxtk.codeplex.com/ ). It provides some XNA-like modules for D3D11. If you still don't want to use it, just dig in the source code to learn more.   - Platform games : same concepts apply to D3D   Have fun & happy coding : )
  4. Thank you for the answer, as soon as i get home i'll make a couple of tests with the particle engine! Btw great blog, bookmarked :) Happy coding !
  5. Thanks from me too Spiro! I've read your article and i was interested in the DX9 32 bit padding, since XNA is DX9 based it is supposed to work too, isnt it? If you had any experience with it i'd be glad to hear from you :) Thank you for your time and happy coding!!
  6. Sparkon

    [XNA] COLLADA Deled3D editor

    Thank you for answering me, that's a good idea, i'll probably go for that and write a content processor that will discard all the vertex data.     Thank you and happy coding!
  7. Hello guys, lately i started working on my game's levels and i found Deled3D to be an amazing product, extremely easy to use, fantastic material manager, but i had only a simple problem regarding custom models and exporting :    Every time i export the scene in any format, for each mesh it saves all it's data ( vertices, normals, UVs and more ) while i only want it to save either the models name or it's directory.  If i didn't make myself clear, here's what i would like :  Instead of :  <geometry id="mesh2-geometry" name="88_trailer2"> <mesh> <source id="mesh2-geometry-position"> <float_array id="mesh2-geometry-position-array" count="7071"> <!-- HERE ALL VERTICES,NORMALS, UVs --> </float_array> </source> </mesh>   I'd simply like : <geometry id="mesh2-geometry" name="88_trailer2"> <mesh> <source id="mesh2-geometry-position" src="MODEL NAME or PATH TO MODEL" /> </mesh>     Is there any way to achieve it without manually doing it after exporting the scene ?. This also dramatically decreases the file's size and allows me to reuse models across different scenes without reloading them each time. Thanks for the time and feel free to suggest other tools aswell!    Happy coding!
  8. Sparkon

    Who are your developer heros?

    I'd say Michael Morhaime Blizzard's co-founder and Carmack ofc. But as Buster2000 said, not for their programming's skill, instead for what they created!.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!