Totally newbie question - development platform?
Ok, I'm totally ignorant about what I need to get started. Do I need Visual Studio Net? Do I need just MS C++? Erm... what?
I have experience programming LONG LONG AGO, using MS C, way before Windows was invented. I've also used Borland C++ Builder 5.0, and Borland's Delphi. I know basic concepts with C, and Borland's IDEs.
My goal is to make simple Windows apps at first, and my long term goal is to create game user interfaces in DirectX draw and D3d.
Does Visual Studio net have getting started tutorials that show you how to 1. make your own resources, 2. create projects, 3. create classes, 4. compile/build, 5. explain debugging techniques (set breakpoints, set watch variables)? I'm talking about tutorials that teach you the IDE.
Consider me a total newbie. It has been so long since I've programmed ... and with other IDEs .... I have no idea on how to get started. Please advise. Is Visual Studio Net what I need for making DX applications? Is it easy to learn? Does it include sample projects to show me basic applications? Or is there something that is more appropriate for total newbies like me?
Thanks.
[1142 byte] By [
Lengo] at [2008-2-28]
Lengo wrote: |
| Do I need Visual Studio Net? Do I need just MS C++? Erm... what? |
|
No, you don't
*need* Visual Studio .Net (more specifically, Visual C++ .Net) to program with DirectX. In my opinion it is the best tool going, so if you can get it - do!
Visual C++ 2005 Express Edition should be out fairly soon, and from everything I've heard so far it's both cheap (around $50) and does everything you'll need it for.
Other alternatives are the
code::blocks IDE and the
Visual Studio 2003 Toolkit (both are free) or
DevC++ (again, free).
Lengo wrote: |
| I have experience programming LONG LONG AGO, using MS C, way before Windows was invented. I've also used Borland C++ Builder 5.0, and Borland's Delphi. I know basic concepts with C, and Borland's IDEs. |
|
You should be fine on the programming side of things - might need to brush up on some of the Windows aspects of things, but otherwise you're good to go

From a theoretical point of view, especially when looking at D3D, graphics theory is very important. There are some good sections in the SDK help under '
Getting Started'. If you're planning on doing any serious or long-term development with Direct3D then you'll want a proper text book on the subject... I highly recommend "Real-Time Rendering, Second Edition" by Tomas Akenine-Moller and Eric Haines (
Website for this book).
Lengo wrote: |
| My goal is to make simple Windows apps at first, and my long term goal is to create game user interfaces in DirectX draw and D3d. |
|
DirectDraw is deprecated now. There are ways to use it, but there's no particularly good reasons why you should bother learning it now. Direct3D will do everything DDraw could do, and more...
Lengo wrote: |
| Does Visual Studio net have getting started tutorials that show you how to 1. make your own resources, 2. create projects, 3. create classes, 4. compile/build, 5. explain debugging techniques (set breakpoints, set watch variables)? I'm talking about tutorials that teach you the IDE. |
|
Yes, I'm pretty sure there are a load of articles like that in the documentation. I've just got my copy of VisualStudio 2005 and I've been doing the occasional search for such things..
Lengo wrote: |
| Consider me a total newbie. It has been so long since I've programmed ... and with other IDEs .... I have no idea on how to get started. Please advise. Is Visual Studio Net what I need for making DX applications? Is it easy to learn? Does it include sample projects to show me basic applications? |
|
Right, I'm sure you probably realise this but don't be fooled into thinking you can pick this stuff up overnight. Everything you've mentioned so far seems perfectly reasonable to me, but depending on how much time you can put into it, it could still take a while to get to where you want to be.
(1) pick up an IDE (and compiler). Check out the ones I mentioned above.
(2) learn your way around the IDE and the tools you have. Don't touch DirectX just yet
(3) Try writing some simple samples - follow any basic tutorials that you can find
(4) Download the DirectX SDK, install as appropriate
(5) Dig into the six tutorials that included with the SDK, referring to the theory in the documentation (as mentioned above) as you go along
There are two fundamental steps for you it seems - getting back into programming and learning the basics of your tools; THEN it's applying those programming skills and tools to your task of DirectX applications. Treat it as two steps, don't jump ahead of yourself unless you're feeling
really confident
Lengo wrote: |
| Or is there something that is more appropriate for total newbies like me? |
|
Possibly. From a purely programming-language point of view, some people find the "managed" languages a lot easier to handle - VB.Net and C#.Net. Both have access to DirectX via the "Managed DirectX" library. The theory and general implementation details are pretty much the same, but it might well get you up-and-running a lot quicker and without too much stress.
hth
Jack
Thank you. I will get the Visual C++ Express Edition. Because of it's price, it will be less financially risky. If it goes well, I'll consider the C# for managed library simplicity(?).
As far as Ddraw being deprecated, all I intend to do is create information panels with links that allow user's to navigate to various other menus and places on the game map. Is it more difficult to make these in d3d? I don't want to get into vector math except to jump to locations on the playing field. Can I make these panels easily in d3d without having to bother with vector/matrix math?
Lengo wrote: |
| Thank you. I will get the Visual C++ Express Edition. Because of it's price, it will be less financially risky. If it goes well, I'll consider the C# for managed library simplicity(?). |
|
Whilst they have their similarities, they are different languages and platforms. Apart from a few rare cases you'll either code your applications in C++ or C# - not both...
Lengo wrote: |
| all I intend to do is create information panels with links that allow user's to navigate to various other menus and places on the game map. Is it more difficult to make these in d3d? |
|
I don't think there's much in it - there's probably a bit more of a jump to get started with D3D (a bit more terminology), but i'd still recommend the D3D route over DDraw.
One advantage of using D3D from the outset is that it leaves the door wide-open for future extensions - rotations/scaling/translation (and other geometric deformations) come pretty much for free, various texture effects are available (e.g. if you fancy making parts of your GUI semi-transparent).
Have a read of this article - it might give you a taster of what you're in for with the D3D route:
2D in Direct3D using Textured Quads.
SharpDevelop (
www.icsharpcode.com) is very nice. I wouldn't recommend it for commercial use though, but definitely a good IDE for personal v1.1 projects.
Thanks Jack. The article on 2D in Direct3D using textured quads was very informative. I think this is gonna be easier than I thought, though somewhat tedious (isn't that the nature of writing code?).
Also, I spent a little time yesterday looking at some C# code. I think I'll stay with C++ to avoid having to learn a new language. I'll have enough to do to learn the DX function names.
Anyways, it looks like I'm off to a good start. I think I'vr got a handle on this, and am ready to rock. The only thing is, I'm waiting for my copy of WinXP to arrive. I've been using Win98 for years and it's served me well, but just about ZERO new softwre will run on it. Soon as my WinXP gets here, I can download and install the 2005 V C++ Express and get going.
THANKS!
| Thanks Jack. The article on 2D in Direct3D using textured quads was very informative. I think this is gonna be easier than I thought, though somewhat tedious (isn't that the nature of writing code?). |
|
Once you get familiar with the basics you can probably write a wrapper around any common code. My engine allows 'low level' drawing as well as a nice high-level function call to DrawTexturedQuad() that does all the repetitive stuff in one place...
| Also, I spent a little time yesterday looking at some C# code. I think I'll stay with C++ to avoid having to learn a new language. I'll have enough to do to learn the DX function names. |
|
Good plan. You're more likely to cause yourself problems with two 'unknowns' in the mix instead of just one.
| I've been using Win98 for years and it's served me well, but just about ZERO new softwre will run on it. |
|
Wow! That's proper vintage software - you might try selling it to a museum 
Best of luck with the rest of your DX-related adventures!
Jack
Jack Hoxley wrote: |
Wow! That's proper vintage software - you might try selling it to a museum |
|
Yep. It's stable, mature software that Microsoft finally got right. At least I avoided the expense of paying for WinXP before it was ready, then the frustration of waiting for the service packs. I'm now ready for WinXP and WinXP is ready for me. I know this because they're close to releasing their new OS. MS is hungry for a new flood of cash.
I'm reconsidering Visual C++ 2005 Express. I spent some time on the boards about Express editions, and these boards are full of complaints about various things -- the help system, paths to the WinSDK and DX sdk, unexplained warnings, improper documentation, non-compatibility with 2003 examples, etc.. I don't understand how MS in good concience can release the retail versions as soon as Nov 7 with the number of unresolved issues. Then again, I realize that they are hungry for more cash (gotta preserve those exhorbitant lifestyles).
Oh well. Getting back to programming sounded like fun, but I'm not willing to spend my money for product that fails on a regular basis, and wait for fixes months, even years, down the road. I'll wait until they get it right and avoid these frustrations. I don't need them, and I'm certainly not going to spend my money to get them.
The Beta 2 versions seem to be free... And I think they are good for about a year. At least, the Beta 1 of VB.NET Express was.
So you might just download Beta 2 and poke around with it for awhile.
I have the beta 2 of VC++ Express, but I have not done much with it... I'm trying to learn VB.NET. C++ code looks scary
