• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

thomasvantroyen

Members
  • Content count

    18
  • Joined

  • Last visited

Community Reputation

109 Neutral

About thomasvantroyen

  • Rank
    Member
  1. The central editing component is the open source "AvalonEdit", this provides easily configurable syntax highlighting based on regular expressions, very easy. This project has grown, btw: [url="http://effected.codeplex.com"]http://effected.codeplex.com[/url] If you need help, just contact me through the codeplex page or something... greetings
  2. thanks for the ideas, it certainly still needs a lot of finishing work like the things you say. I certainly will implement your suggestions. You will notice that the code completion data is far from complete/accurate, I didn't have decent resources or time. Feel free to let me know if you can provide me code completion changes. You can also edit the code completion yourself (see explanations on codeplex) but i don't know how comprehensible that xml structure is So, bugs, suggestions, changes --> [url="https://www.codeplex.com/site/users/contact/ThomasVT?OriginalUrl=http://www.codeplex.com/site/users/view/ThomasVT"]let me know[/url]
  3. Hey, A while ago I showed my first test version for a lightweight HLSL editor for integration in daily programming. I have been working quite a bit on it since then (in spare time), so I now proudly present: EffectEd v0.1 Main Features: * syntax highlighting * waterproof error checking using the Direct3D compiler * intelligent code completion * support for splitting D3D 11 shaders over multiple files (= compile using shaderprofiles) Check out [url="http://effected.codeplex.com/"]codeplex[/url] for the full feature list and details and watch [url="http://www.youtube.com/watch?v=kt-WbUuXvgU"]the video [/url]to see it in action. The binaries have some bugfixes that the sources don't have yet (had some big issues with an attempt to use GitHub and lost some work *grrr*) greetings.
  4. Hey, A while ago I showed my first test version for a lightweight HLSL editor for integration in daily programming. I have been working quite a bit on it since then (in spare time), so I now proudly present: EffectEd v0.1 Main Features: * syntax highlighting * waterproof error checking using the Direct3D compiler * intelligent code completion * support for splitting D3D 11 shaders over multiple files (= compile using shaderprofiles) Check out [url="http://effected.codeplex.com/"]codeplex[/url] for the full feature list and details and watch [url="http://www.youtube.com/watch?v=kt-WbUuXvgU"]the video [/url]to see it in action. The binaries have some bugfixes that the sources don't have yet (had some big issues with an attempt to use GitHub and lost some work *grrr*) greetings.
  5. Still working on it: it was a bunch of testlogic stitched together... so, during the weekends, I'm busy refactoring it into a decent piece of software and making about every aspect configurable through Xml. Don't expect wonders, I'm running low on spare time. Pitty my life is stuffed with developing boring business software at daytime Anyway, as soon as this batch of features is done, it's going public.. Then, I still have some big ideas, but I'll let it rest a bit then, see what the community thinks.
  6. I intend to make it resemble VS.NET so it feels familiar, so, code completion is Ctrl+Space indeed. I'm not going to put a whole lot of effort in it, I'm a noob at DirectX and want to do game programming in the end.. But I'll work on it along the way as I acquire more need of features and when it's getting somewhere, I will put it in an opensource project some place. I'll let you know. Your suggestions are very welcome, feature 2 of Jazon Z could use some elaboration about that particular use case, though. (remember: i'm a novice) I was thinking about a template choice dialog so, if I understand your request well, having specific templates for things like you mentioned, could be handy. (you may always send me some to elaborate)
  7. Hey, As I found existing HLSL editors overly complicated (FX Composer), outdated (Render Monkey) or unavailable, I decided to make a Visual Studio Code Editor inspired HLSL Editor. Now, I don't say FX Composer is bad, but it's just very complex. I wanted something lightweight that easily integrates into the programming process with nothing but the most obvious features: syntax colouring, code completion (the more the better), visualizing errors and maybe a simple test-on-sphere renderview. It's been like only 15 hours of work so far so it's not finished yet but thanks to the great AvalonEdit it has my priority features in it already: * syntax highlighting * code completion using Alt+Space for intrinsic HLSL functions (could be much better, but that requires a lot of context-parsing work) * compiling using DirectX 10 with error listing and marking errors in the code when double clicked. * filewatcher: EffectEd detects when you modified the open file in another application * opens files from commandline argument: when "*.fx" is correctly associated to EffectEd, opening an effect file from Explorer or VS.NET will automatically open EffectEd with the requested file. [url="http://www.redarcher.net/effected1.0.zip"]EffectEd v1.0[/url] [img]http://www.redarcher.net/screenshot.gif[/img] As I don't want to spend time yet to integrate it into VS.NET, you can associate the .fx extension in Visual Studio Solution Explorer by right clicking any fx file and choose "Open with...". In there, you can configure EffectEd to be the default for .fx files. All is still experimental but I thought I could share it as it is to get your thoughts and ideas. Or to find out if I'm making something that already exists (and is still available) cheers.
  8. The sole reason i advise you to go to C#, as I explained before, is because you will find much more samples and learning material on the internet. Most people on forums (like this one) will prefer using C# to answer your questions. the difference is quite huge. You experienced it yourself with the VB.NET samples that won't work. And me finding the same examples in one google search (meaning there are very little different vb.net resources for SlimDX out there). It's just the prefered language in .NET communities, resulting in making your life a lot easier You need to get the hang of it a bit, but it's really not hard.
  9. Hey, more curiosity than necessity (i like understanding things to the bone ) Why does SlimDX use a DataStream to work with DirectX Buffers? I have a feeling it has something to do with unmanaged array's being different than managed arrays but why isn't it abstracted away into the framework, if it's only that? greetings.
  10. I have googled around a bit, and I think you're using these translated examples: [url="http://www.ventsim.com/files/samplesvb.zip"]http://www.ventsim.com/files/samplesvb.zip[/url] If it's those, I looked at them for a bit, and they don't seem to compile indeed even after messing around with it for a while. It seems like a bizarre version of SlimDX.dll he's sending with the zip package because when I use the "official" dll from slimdx for .NET 2, I get non existing methods, while the dll that's in the sample package doesn't have these errors. Then again, running with the dll provided gives the runtime problem you mentioned. Maybe, this is fixable, but why bother? Just follow my advice: download Visual Studio Express 2010 C# (it's free, and legal) and get the latest SlimDX. You can even consider XNA 4.0 which is even easier to get started with and is powerful too. XNA is a game framework on DirectX, so you won't have to write a lot of basic math/rendering logic yourself. XNA 4 is DirectX 9, which you are using anyway. It's really a no-brainer, you'll thank yourself in a few weeks you learned C#; trust me
  11. I found it myself. As i was refactoring to get a nicely structured base class to get me started, i accidently found out that this mouse cursor problem only exists in a specific situation: When you AltTab out of a fullscreen app, it actually becomes windowed. When reactivating the app, it remains windowed. Because I always want a fullscreen, I added the following eventhandler: [font="Consolas"][size="2"][font="Consolas"][size="2"]WindowsForm.AppActivated += (sender, args) => { SwapChain.IsFullScreen = [/size][/font][/size][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]true[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]; }; [/size][/font][/size][/font] Because of common sense i also set IsWindowed = false when calling Device.CreateWithSwapChain(). This combination caused the mouse cursor to stay visible after alt-tab and reactivating the app. But when you change one thing: call Device.CreateWithSwapChain() with [b]IsWindowed = true[/b]; this Cursor problem doesn't happen anymore. You start DirectX windowed but my AppActivated eventhandler above is triggered at startup too, so I get a fullscreen immediately at startup. So, now I have a fullscreen app, that never becomes windowed and never shows the windows mouse cursor, finally If any expert can explain this difference, I'm happy to listen, but for now I'l just accept it
  12. I'm a SlimDX noob too, but this is merely a .NET problem, which i DO know very well. You have at least two projects: your test client project and the sampleframework from SlimDX. These both need a reference to SlimDX.dll. Therefore, when you reference and use the sampleframework you indirectly are using things from SlimDX through the SampleFramework. It's probably there where you get conflicts with the SlimDX dll that is directly referenced in your client project. Your project references to version A of SlimDX, while SampleFramework points to another version B. So, I think you will have to check all references to SlimDX in ALL projects and make sure they point to physically the same dll (actually, it's the version that counts, but physical is extra safe [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] ) If I can give you a tip: download VS.NET 2010 Express C# edition and learn C#. It works almost identical to VB.NET but with other syntax. It's not like shifting to Java or C++, it's not hard, I bet you will already be getting more comfortable with it after a few sessions. C# is the leading language in Microsoft samples, and in any Microsoft technology community I know of. Therefore, learning C# is a minor effort to get the benefit of getting a lot more learning material to play with. Besides, the internet is packed with "comparisons between VB.NET and C#" so you will barely ever not find how to do things in C# that you know in VB.NET. I may be wrong, but the VB.NET samples of SlimDX may have gotten less attention and may be buggy? I have used the C# demo's, and those work fine. Btw, if you stick to VB.NET, and my help didn't solve the problem, just let me know where and which sample you're talking about, I'll give it a look. Hope this helps
  13. Hey, On Win7 DirectX11 using SlimDX, i have an empty project that's fullscreen with some mousecursor-hiding code like found on this forum too. The mouse is nicely hidden initially. When alt-tabing out and activating the app again, the fullscreen returns but with a visible mousecursor. Whichever code i try, it won't work. I even have Cursor.Hide() in my main loop Here is the code, it's messy because it's test code Anyone see mistakes? When i translate to DirectX 10, i get the same problem. [font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]var [/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]form = [/size][/font][/size][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/size][/font][/size][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]RenderForm[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]();[/size][/font][/size][/font] [font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Device[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] device;[/size][/font][/size][/font] [font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]SwapChain[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] swapChain;[/size][/font][/size][/font] [font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Device[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].CreateWithSwapChain([/size][/font][/size][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]DriverType[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Hardware, [/size][/font][/size][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]DeviceCreationFlags[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Debug, swapChainDescription, [/size][/font][/size][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]out[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] device, [/size][/font][/size][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]out[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] swapChain);[/size][/font][/size][/font] [font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]using[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] ([/size][/font][/size][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]var[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] factory = swapChain.GetParent<[/size][/font][/size][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Factory[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]>())[/size][/font][/size][/font] [font="Consolas"][size="2"][font="Consolas"][size="2"]factory.SetWindowAssociation(form.Handle, [/size][/font][/size][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]WindowAssociationFlags[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].IgnoreAltEnter);[/size][/font][/size][/font] [font="Consolas"][size="2"][font="Consolas"][size="2"]form.Activated += (o, e) => { [/size][/font][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]swapChain.IsFullScreen = [/size][/font][/size][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]true[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]; [color="#2b91af"]Cursor[/color][font="Consolas"][size="2"][font="Consolas"][size="2"].Hide(); [/size][/font][/size][/font][/size][/font][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]};[/size][/font][/size][/font] [font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]var[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] backBuffer = [/size][/font][/size][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Resource[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].FromSwapChain<[/size][/font][/size][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Texture2D[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]>(swapChain, 0);[/size][/font][/size][/font] [font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]var[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] renderView = [/size][/font][/size][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/size][/font][/size][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]RenderTargetView[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](device, backBuffer);[/size][/font][/size][/font] [font="Consolas"][size="2"][font="Consolas"][size="2"]device.ImmediateContext.OutputMerger.SetTargets(renderView);[/size][/font][/size][/font] [font="Consolas"][size="2"][font="Consolas"][size="2"]device.ImmediateContext.Rasterizer.SetViewports([/size][/font][/size][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]new[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"] [/size][/font][/size][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Viewport[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"](0, 0, form.ClientSize.Width, form.ClientSize.Height, 0.0f, 1.0f));[/size][/font][/size][/font] [font="Consolas"][size="2"][font="Consolas"][size="2"]form.MouseEnter += (s, e) => [/size][/font][/size][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Cursor[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Hide();[/size][/font][/size][/font] [font="Consolas"][size="2"][font="Consolas"][size="2"]form.MouseLeave += (s, e) => [/size][/font][/size][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Cursor[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Show();[/size][/font][/size][/font] [font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]MessagePump[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Run(form, () => [/size][/font][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]{ [/size][/font][/size][/font] [font="Consolas"][size="2"][font="Consolas"][size="2"] [/size][/font][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"]device.ImmediateContext.ClearRenderTargetView(renderView, [/size][/font][/size][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]Color[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].CornflowerBlue);[/size][/font][/size][/font] [font="Consolas"][size="2"][font="Consolas"][size="2"] swapChain.Present(0, [/size][/font][/size][/font][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"]PresentFlags[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].None);[/size][/font][/size][/font] [font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"][font="Consolas"][size="2"][color="#2b91af"] Cursor[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"].Hide();[/size][/font][/size][/font] [font="Consolas"][size="2"][font="Consolas"][size="2"]});[/size][/font][/size][/font] [font="Consolas"][size="2"][font="Consolas"][size="2"]swapChain.IsFullScreen = [/size][/font][/size][/font][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"][font="Consolas"][size="2"][color="#0000ff"]false[/color][/size][/font][/color][/size][/font][/color][/size][/font][font="Consolas"][size="2"][font="Consolas"][size="2"];[/size][/font][/size][/font] [font="Consolas"][size="2"][font="Consolas"][size="2"]device.Dispose();[/size][/font][/size][/font] [font="Consolas"][size="2"][font="Consolas"][size="2"]swapChain.Dispose();[/size][/font][/size][/font]
  14. i'm speechless... you just made my day, or probably even my year i already wondered why there wasn't anybody making some .NET interop of DX, but i figured XNA (what i thought to be DX10 before today) made any such attempt obsolete and that explained why no decent interop project existed.. but apparently they DO exist !! thank you for your service but please close the door behind you, XNA thanks a whole lot!
  15. thanks, after googling around a bit more, i indeed found out it's actually DX9 but with some non-standardized features (in hidef profile) that only work by DX10 supporting hardware. that's probably the reason why it's not working on xp machines, they often don't have DX10 hardware. But thanks for clarifying even more. So, i guess I'll have to learn C++ with all the difficult COM syntax and macro's. I'm a pro .NET guy for about 8 years, but damn, advanced C++ is hard to learn in absence of decent code completion and helping descriptions popping up everywhere. pitty c++ hasnt changed much the last decade. Even c++11 doesn't bring much improvement on the usability-domain imho. The IDE is just not very helpfull, like c# or any more mainstream language. Ah well, i guess my hobby-games will have to settle with DX 9 It's more about the AI to me anyway. thanks