Man! You are my hero! Ilove really love your work. I want to learn about XNA too. but I don´t know here to start... I don´t want your code or something like that, I just want 1 of 2 things:
1st - that you write some tutorials about your project, (don´t need to be your original project) just some stuff about to create a world, lights, efects, textures, the render, geomipmaps, etc. And I will pay for this tutorials if was necessary! ;)
@TugaSammy Thank you. Writing high quality tutorials is very hard work and takes a lot of time which I don't really have. However, I have a blog where I post from time to time my progress and explain some of the technical aspects. I haven't updated it in a while but I will soon.
2nd - Or give us some good tutorials in internet or some where else, that we can follow ("Good" because everything I found in internet does not seem good enough compared to your project)!
Thanks it's really great work, i can imagine you get to the stage, 'what shall i do with it' lol, because turning it into a game probably involves another order of magnitude of work. Anyways ~S~
Thanks again for all your answers to my questions. I am now seriously considering learning c# for game development. But there is one crucial issue: most serious game developers use c++, so will it not be significantly more difficult to find good people to work with? What are your thoughts on this?
@steamednotfried You might have a point. It might be a little more difficult. However, I don't really know yet where I am going to go with this. I'll probably switch to C++ if I'll find myself forced to do it.
I want to do things involving procedurally generated planets, but I have been torn between using c++ and directx or c# and xna. Please could you explain why you are using c# and xna for such a performance sensitive project?
@steamednotfried Well. there are more reasons for which I chose C# and XNA. First of all, I've been a C# developer for almost a decade now and I am very comfortable with C#. Second, XNA is very easily portable to XBOX and third, there is also a marketing issue because people don't usually expect a XNA Game to look very good and when one does, they usually spread the word faster. I admit I could benefit a lot if I would switch to DirectX 11. Maybe I will one day, I am not sure yet.
@asilviu2008 Thank you very much for making the effort to answer my question properly. If c# + xna can do everything your game needs while running on the computers owned by your desired target market, then I guess that is the way to go. Your frame rate is unacceptably low, though, and that's on your hardware (I don't know how that compares to your target market's hardware). You don't want to limit your market to people with hardware good enough to smoothly run an xna game with graphics that good
@steamednotfried The framerate is low in this video because of the light shafts rendering method I used which is not very DirectX9 friendly. I also didn't bother too much trying to optimize it. I disabled it in my latest version and the framerate is now at about 60 fps. IMO the only drawback of XNA is that it limits you to DX9 which will also happen if you go with C++ and DirectX if you want your game to run on consoles like the XBOX, which only supports DX9
@steamednotfried C++ is not a lot faster than C#. I did some research on this a while ago. People seem to have different opinions about this on the web so I wrote an application to see for myself. I did some common math operations and memory allocation tests. In my tests it turned out that C++ was only about 1.2 times faster than C# which was way not enough to convince me to give up the development comfort of C#
@asilviu2008 Wow, that's interesting. In that case, could you please help me to understand why the industry uses c++? Especially when the main bottleneck is usually the rendering on the gpu. Is c# slower on some crucial types of operations? Is it that c# is much less space-efficient? Also, I browsed through the XBLIG marketplace and the quality and ambition is really depressing. I don't know why you would want to release a game there. Will look forward to your reply.
Oh, and also, there is no way you're going to get those graphics on c# running on the 360 is there? If so then why do all of the current xbli games look so damned awful?
@steamednotfried Technically it should run. I just don't know what the framerate will be. I will have to get access to a XBOX to find out. This is actually a good question, haven't thought about it too much.
@asilviu2008 Yeah, I meant that it probably won't run with an acceptable frame rate. But that shouldn't be a factor because XBLIG seems like a really crap portal. Better just make a good game for PC and port it to console properly if MS or Sony like it.
Another question: you say that c# is only a tiny bit slower than c++, but surely, your bottleneck is the rendering which is in directx's hands. So why is it struggling with light shafts? Is it just gpu? Or would it be better with c++/directx?
Also, your game in particular would benefit greatly from the geometry shader available from directx 10 onwards. But as far as I can tell, you cannot use directx 10/11 from c#. This is a major problem for your game (which will only get much worse as you add more effects and other objects to render), and it also suggests that c# isn't a serious option for game development in the long term. Does it not?
@steamednotfried The specific algorithm I used to render the light shafts would run a lot faster if I could set individual blending functions for each color channel. DX9 (and therefore XNA) only allows you to set a blending function for all channels, because of this, I have to render the lightshafts in 4 passes whereas if I would have had shader model 4 support I would have only needed 1 pass. So it would be better with C++/DirectX10 but it would be the same with C++/DirectX9
@asilviu2008 Ok, thanks, that clears that up. But now what of this lack of directx 10 onwards support for c#? Doesn't this send alarm bells wringing in your head signalling that, while c# might just about suffice for this project with some compromises, it is generally not a language for serious game making and that you might as well switch to c++ sooner rather than later? I have no idea if this is the case or not but I'm very keen to find out so please give me your take. Thanks.
Surely you need to be guaranteed that support for your language will stay on the cutting edge? I thought that directx was implemented as COM interfaces so that it could be language neutral? So why can't they all be accessed through c#, especially as this is a Microsoft language. Anyway, maybe you are right in not getting attached to any one language and instead just choosing the right language for each job. That sounds like a far healthier, not to mention more efficient, approach.
One more question (please answer them all :) ), if c# is only a tiny bit slower then c++, and managed directx is 98% as fast as normal directx, then why don't you see more xna games with xbox 360 level graphics? Or maybe you do, I don't know.
@steamednotfried Most of the games with great graphics out there use the latest engines from EPIC (ie Unreal Engine), ID etc. which are engines created in C++ that eek out every last drop of performance from the hardware. Until someone starts spending a lot of money creating a "bleeding-edge" game engine in XNA, there won't be many games with great graphics in XNA.
@steamednotfried DX can indeed be accessed directly from C# but then you would have to deal with all the interop yourself which is not very funny. XNA and SlimDX do that for you.
@asilviu2008 Ah, OK, so you can use directx 10 onwards from c#. When you say you would have to deal with all the interop yourself, do you mean the same thing that everyone currently has to do with c++? So the only disadvantage with c# is that 1: it is a tiny bit slower, and 2: less people have used it for games so there are less libraries and such? Once again, thanks for all your help.
@steamednotfried So, this demo would run just as slowly (or maybe a tiny bit faster) if you did the whole thing with c++ and directx 9 on your computer (assuming you had the c++ skills to make it efficient)?
@steamednotfried Basically yes, that "tiny" is about 20% as far as I could find out in my tests so it depends on what you are after. 20% can after all be enough for some people to switch to C++. If you do like physics simulations on the CPU, it could make a difference. And yes, less "big people" have used it so there are not so many cutting edge engines in XNA but I think you could get about the same graphics quality out of XNA as out of C++ and DirectX9.
@steamednotfried XNA was created so that a game written in XNA will run with almost no changes on both the PC and the XBOX. Because XBOX hardware only supports DX9, XNA also only supports DX9. This also means that XNA will support DX10 and DX11 when the next XBOX comes out which will happen in 2013 as far as I heard. In the meanwhile I could switch to SlimDX (which is a C# wrapper for DX10 and DX11) if I really need to.
@steamednotfried Well, C++ has been used in game development since for ever. Game developers across the world are comfortable using it, and it's hard for them to give it up just like that. Second, that extra 20% gain in speed might be a lot when you are trying to squeeze in, for example, an extra AI algorithm. I am far from that so I'll stick to C# until I come across a good enough reason to switch to C++. C# just makes the development a lot faster.
continued... lots of people with high-end gaming computers are only interested in games with 'bleeding-edge' graphics; which you are not going to achieve with xna. So who are you going for? he few people with high-end gaming computers who are also interested in interesting indie games? Your 'surprisingly good graphics for xna' publicity scheme seems odd. I'm sure that will give you something but surely not as much as either great graphics for a game in general and especially
continued, continued, great graphics for an indie game. I've been learning about directx this summer and I've had a nagging feeling that I should be working at a slightly higher level. I am having to reimplement solutions to solved problems which I feel should be nicely wrapped up in some way for all but expert graphics programmers who need to implement new algorithms. At the moment, this reimplementation seems to be the price you pay for having complete control over the structure of your game
continued, continued, continued. Or maybe there are some libraries for developers who want full control over engine architecture without implementing any innovating graphics algorithms. If so, then it seems odd that directx is seen as the default starting point for an aspiring game developer. Sorry for long reply.
Just one simple question. XNA or C++?
TugaSammy 2 months ago
@TugaSammy The version from this video is XNA
asilviu2008 2 months ago
@asilviu2008
Sorry for my english. ;)
Man! You are my hero! Ilove really love your work. I want to learn about XNA too. but I don´t know here to start... I don´t want your code or something like that, I just want 1 of 2 things:
1st - that you write some tutorials about your project, (don´t need to be your original project) just some stuff about to create a world, lights, efects, textures, the render, geomipmaps, etc. And I will pay for this tutorials if was necessary! ;)
TugaSammy 2 months ago
@TugaSammy Thank you. Writing high quality tutorials is very hard work and takes a lot of time which I don't really have. However, I have a blog where I post from time to time my progress and explain some of the technical aspects. I haven't updated it in a while but I will soon.
asilviu2008 2 months ago
@asilviu2008
2nd - Or give us some good tutorials in internet or some where else, that we can follow ("Good" because everything I found in internet does not seem good enough compared to your project)!
Thanx for your attention! :) Keep the good work.
TugaSammy 2 months ago
Looking good :-)
KingHaggis 4 months ago
could i down load this
ghost59able 4 months ago
@ghost59able Not yet
asilviu2008 4 months ago
Have you written any tutorials or blogs about this?
PICLex 5 months ago in playlist More videos from asilviu2008
@PICLex Not yet, but I will start a development log soon and I will post the link in my next video
asilviu2008 5 months ago
@asilviu2008
Thanks it's really great work, i can imagine you get to the stage, 'what shall i do with it' lol, because turning it into a game probably involves another order of magnitude of work. Anyways ~S~
PICLex 5 months ago
Thanks again for all your answers to my questions. I am now seriously considering learning c# for game development. But there is one crucial issue: most serious game developers use c++, so will it not be significantly more difficult to find good people to work with? What are your thoughts on this?
Thanks.
steamednotfried 6 months ago
@steamednotfried You might have a point. It might be a little more difficult. However, I don't really know yet where I am going to go with this. I'll probably switch to C++ if I'll find myself forced to do it.
asilviu2008 6 months ago
I want to do things involving procedurally generated planets, but I have been torn between using c++ and directx or c# and xna. Please could you explain why you are using c# and xna for such a performance sensitive project?
Thank you and good luck.
steamednotfried 6 months ago
@steamednotfried Well. there are more reasons for which I chose C# and XNA. First of all, I've been a C# developer for almost a decade now and I am very comfortable with C#. Second, XNA is very easily portable to XBOX and third, there is also a marketing issue because people don't usually expect a XNA Game to look very good and when one does, they usually spread the word faster. I admit I could benefit a lot if I would switch to DirectX 11. Maybe I will one day, I am not sure yet.
asilviu2008 6 months ago
@asilviu2008 Thank you very much for making the effort to answer my question properly. If c# + xna can do everything your game needs while running on the computers owned by your desired target market, then I guess that is the way to go. Your frame rate is unacceptably low, though, and that's on your hardware (I don't know how that compares to your target market's hardware). You don't want to limit your market to people with hardware good enough to smoothly run an xna game with graphics that good
steamednotfried 6 months ago
@steamednotfried The framerate is low in this video because of the light shafts rendering method I used which is not very DirectX9 friendly. I also didn't bother too much trying to optimize it. I disabled it in my latest version and the framerate is now at about 60 fps. IMO the only drawback of XNA is that it limits you to DX9 which will also happen if you go with C++ and DirectX if you want your game to run on consoles like the XBOX, which only supports DX9
asilviu2008 6 months ago
@steamednotfried C++ is not a lot faster than C#. I did some research on this a while ago. People seem to have different opinions about this on the web so I wrote an application to see for myself. I did some common math operations and memory allocation tests. In my tests it turned out that C++ was only about 1.2 times faster than C# which was way not enough to convince me to give up the development comfort of C#
asilviu2008 6 months ago
@asilviu2008 Wow, that's interesting. In that case, could you please help me to understand why the industry uses c++? Especially when the main bottleneck is usually the rendering on the gpu. Is c# slower on some crucial types of operations? Is it that c# is much less space-efficient? Also, I browsed through the XBLIG marketplace and the quality and ambition is really depressing. I don't know why you would want to release a game there. Will look forward to your reply.
steamednotfried 6 months ago
Oh, and also, there is no way you're going to get those graphics on c# running on the 360 is there? If so then why do all of the current xbli games look so damned awful?
steamednotfried 6 months ago
@steamednotfried Technically it should run. I just don't know what the framerate will be. I will have to get access to a XBOX to find out. This is actually a good question, haven't thought about it too much.
asilviu2008 6 months ago
@asilviu2008 Yeah, I meant that it probably won't run with an acceptable frame rate. But that shouldn't be a factor because XBLIG seems like a really crap portal. Better just make a good game for PC and port it to console properly if MS or Sony like it.
Another question: you say that c# is only a tiny bit slower than c++, but surely, your bottleneck is the rendering which is in directx's hands. So why is it struggling with light shafts? Is it just gpu? Or would it be better with c++/directx?
steamednotfried 6 months ago
Also, your game in particular would benefit greatly from the geometry shader available from directx 10 onwards. But as far as I can tell, you cannot use directx 10/11 from c#. This is a major problem for your game (which will only get much worse as you add more effects and other objects to render), and it also suggests that c# isn't a serious option for game development in the long term. Does it not?
(previous post should say "is it just your gpu?")
steamednotfried 6 months ago
@steamednotfried The specific algorithm I used to render the light shafts would run a lot faster if I could set individual blending functions for each color channel. DX9 (and therefore XNA) only allows you to set a blending function for all channels, because of this, I have to render the lightshafts in 4 passes whereas if I would have had shader model 4 support I would have only needed 1 pass. So it would be better with C++/DirectX10 but it would be the same with C++/DirectX9
asilviu2008 6 months ago
@asilviu2008 Ok, thanks, that clears that up. But now what of this lack of directx 10 onwards support for c#? Doesn't this send alarm bells wringing in your head signalling that, while c# might just about suffice for this project with some compromises, it is generally not a language for serious game making and that you might as well switch to c++ sooner rather than later? I have no idea if this is the case or not but I'm very keen to find out so please give me your take. Thanks.
steamednotfried 6 months ago
Surely you need to be guaranteed that support for your language will stay on the cutting edge? I thought that directx was implemented as COM interfaces so that it could be language neutral? So why can't they all be accessed through c#, especially as this is a Microsoft language. Anyway, maybe you are right in not getting attached to any one language and instead just choosing the right language for each job. That sounds like a far healthier, not to mention more efficient, approach.
steamednotfried 6 months ago
One more question (please answer them all :) ), if c# is only a tiny bit slower then c++, and managed directx is 98% as fast as normal directx, then why don't you see more xna games with xbox 360 level graphics? Or maybe you do, I don't know.
steamednotfried 6 months ago
@steamednotfried Most of the games with great graphics out there use the latest engines from EPIC (ie Unreal Engine), ID etc. which are engines created in C++ that eek out every last drop of performance from the hardware. Until someone starts spending a lot of money creating a "bleeding-edge" game engine in XNA, there won't be many games with great graphics in XNA.
asilviu2008 6 months ago
@steamednotfried DX can indeed be accessed directly from C# but then you would have to deal with all the interop yourself which is not very funny. XNA and SlimDX do that for you.
asilviu2008 6 months ago
@asilviu2008 Ah, OK, so you can use directx 10 onwards from c#. When you say you would have to deal with all the interop yourself, do you mean the same thing that everyone currently has to do with c++? So the only disadvantage with c# is that 1: it is a tiny bit slower, and 2: less people have used it for games so there are less libraries and such? Once again, thanks for all your help.
steamednotfried 6 months ago
@steamednotfried So, this demo would run just as slowly (or maybe a tiny bit faster) if you did the whole thing with c++ and directx 9 on your computer (assuming you had the c++ skills to make it efficient)?
steamednotfried 6 months ago
@steamednotfried Basically yes, that "tiny" is about 20% as far as I could find out in my tests so it depends on what you are after. 20% can after all be enough for some people to switch to C++. If you do like physics simulations on the CPU, it could make a difference. And yes, less "big people" have used it so there are not so many cutting edge engines in XNA but I think you could get about the same graphics quality out of XNA as out of C++ and DirectX9.
asilviu2008 6 months ago
@steamednotfried XNA was created so that a game written in XNA will run with almost no changes on both the PC and the XBOX. Because XBOX hardware only supports DX9, XNA also only supports DX9. This also means that XNA will support DX10 and DX11 when the next XBOX comes out which will happen in 2013 as far as I heard. In the meanwhile I could switch to SlimDX (which is a C# wrapper for DX10 and DX11) if I really need to.
asilviu2008 6 months ago
@steamednotfried Well, C++ has been used in game development since for ever. Game developers across the world are comfortable using it, and it's hard for them to give it up just like that. Second, that extra 20% gain in speed might be a lot when you are trying to squeeze in, for example, an extra AI algorithm. I am far from that so I'll stick to C# until I come across a good enough reason to switch to C++. C# just makes the development a lot faster.
asilviu2008 6 months ago
continued... lots of people with high-end gaming computers are only interested in games with 'bleeding-edge' graphics; which you are not going to achieve with xna. So who are you going for? he few people with high-end gaming computers who are also interested in interesting indie games? Your 'surprisingly good graphics for xna' publicity scheme seems odd. I'm sure that will give you something but surely not as much as either great graphics for a game in general and especially
steamednotfried 6 months ago
continued, continued, great graphics for an indie game. I've been learning about directx this summer and I've had a nagging feeling that I should be working at a slightly higher level. I am having to reimplement solutions to solved problems which I feel should be nicely wrapped up in some way for all but expert graphics programmers who need to implement new algorithms. At the moment, this reimplementation seems to be the price you pay for having complete control over the structure of your game
steamednotfried 6 months ago
continued, continued, continued. Or maybe there are some libraries for developers who want full control over engine architecture without implementing any innovating graphics algorithms. If so, then it seems odd that directx is seen as the default starting point for an aspiring game developer. Sorry for long reply.
steamednotfried 6 months ago
wow
shadmar9 8 months ago
nice
MixerGamingHD 9 months ago
Fain!
DanyGhinescu 9 months ago
Great stuff! Keep going with it. I like where you're headed: glory and success ::- ).
axonnus 9 months ago