December 18 - DX8 and Vista

Mycal

Staff member
OK. So we made the jump from DX7 to DX8 several months back. That brought us up to date on out of the box XP installations (base to SP3). However, I've been informed through several sources that DX9 is the earliest DX component shipped with Vista. And have confirmed this myself today. This will be true with Windows 7 as well. So while my priority is the World Editor right now, it's time to start furthering my C++ knowledge.

Because it is against the EULA to distribute DX components with an application, I cannot simply include the DX7VB.dll or the DX8VB.dll with any of our projects. Microsoft has also completely dropped support of downloading those components for use on Vista. In fact, their recommended method of bypassing this problem is to write a C++ COM object to expose DX9 to VB6.

So that's what I plan to do. From what I've seen, DX9 and DX8 are very similiar so it won't be too difficult to port to that. The biggest hurdle is actually writing all the code in C++. Also, since I cannot find any form of wrapper like this out there, I plan to release it absolutely free here, minus source code. I will try to find a very user friendly license as well so you don't have to worry too much about redistributing it. If anyone does have some DX experience in C++, feel free to contact me here and maybe you can help me out.

Basically the initial plan here is to provide all the functionality we need. After we have that, we can work on adding more functionality to it. And before you ask, no I do not plan to readd DX7 2D support. It is very possible to use 2D in DX8 and DX9 (as we and others have proved) so live with it.
 

krum

New Member
Calix said:
OK. So we made the jump from DX7 to DX8 several months back. That brought us up to date on out of the box XP installations (base to SP3). However, I've been informed through several sources that DX9 is the earliest DX component shipped with Vista. And have confirmed this myself today. This will be true with Windows 7 as well. So while my priority is the World Editor right now, it's time to start furthering my C++ knowledge.

Because it is against the EULA to distribute DX components with an application, I cannot simply include the DX7VB.dll or the DX8VB.dll with any of our projects. Microsoft has also completely dropped support of downloading those components for use on Vista. In fact, their recommended method of bypassing this problem is to write a C++ COM object to expose DX9 to VB6.

So that's what I plan to do. From what I've seen, DX9 and DX8 are very similiar so it won't be too difficult to port to that. The biggest hurdle is actually writing all the code in C++. Also, since I cannot find any form of wrapper like this out there, I plan to release it absolutely free here, minus source code. I will try to find a very user friendly license as well so you don't have to worry too much about redistributing it. If anyone does have some DX experience in C++, feel free to contact me here and maybe you can help me out.

Basically the initial plan here is to provide all the functionality we need. After we have that, we can work on adding more functionality to it. And before you ask, no I do not plan to readd DX7 2D support. It is very possible to use 2D in DX8 and DX9 (as we and others have proved) so live with it.

I actually have a book in which I am learning C++ with Direct X8, but as you said 9 should be just the same.

it is a book that focuses on game programming, and COM and such, which is nice, I am pretty far in it, so I will not only be able to help you with it, I will be able to fully program with you!

I am much butter in C++ than VB code wise, but I am still weak on DX, I will get there!!

then we should make a complete 2D engine for our needs and move forward from there.

the rest should progress rather fast since we have most of the ideas down, and replicating them shouldn't be too bad.


and I am finally fully understanding messages now!!

haha then I learned they are slow for DX since it has it's OWN messages hahaha!!

btw we should also look into OpenGL so we can be accessible to the mac, or I will learn OpenGL, then we will have both...or I learn both and you learn both hahaah, anyway it goes, I want to finish at least a small game, something like mario, get it out there and get people interested in this site, then we should resume the MORPG, since it is clearly a MUCH larger task, in fact how about I work on a side game all by myself...steven can learn flash hopfully and we can be a tripple hitter :p


#EDIT# the book is on directX 9 :p woot movin' on up!

also...I thought all direct X's were backwards compatible to 7 or 6??
 

Mycal

Staff member
I thought they were backward compatible too, but when testing with an OOTB Vista, Besrix would not work. So I started researching and its not that they are incompatible, it's that the VB dlls were left out of vista. Whether by accident or on purpose, even Microsoft isn't too sure, but they have already stated their official answer to the problem and if we don't like it, tough.

Small snag on my end though. I went home to my Mom's new house for Christmas, and have been here for 2 weeks. The first day here, my WinXP partition somehow got corrupted. I've been trying to restore via the Dell restore partition, but it is somehow corrupted too. Probably from my ventures with Fedora 9. All of the boxes that have my CDs are somewhere here and I've been going through each one, but have had no luck finding my restore CDs for the laptop. So, until I find those CDs, my laptop is out of commission. I knew it would happen sooner or later, but I was hoping on later :(

I just got the computer I'm working on right now up and running. Someone could have packed the cords to everything better. I go home tomorrow evening, so I guess I'll get started then.

Definitely looking forward to all the help I can get with this extra project.

In other news, I finally have two LCD monitors (compared to my old LCD and CRT) on my desk, with TONS more deskspace. I also got a 1 TB HDD, so I no longer have to worry about space. Anime, TV shows, and Music take up about 90% of my HDD right now. With my total of 1.7 TB, it now only takes up about 5-10%. YAY! :D
 

krum

New Member
Calix said:
I thought they were backward compatible too, but when testing with an OOTB Vista, Besrix would not work. So I started researching and its not that they are incompatible, it's that the VB dlls were left out of vista. Whether by accident or on purpose, even Microsoft isn't too sure, but they have already stated their official answer to the problem and if we don't like it, tough.

Small snag on my end though. I went home to my Mom's new house for Christmas, and have been here for 2 weeks. The first day here, my WinXP partition somehow got corrupted. I've been trying to restore via the Dell restore partition, but it is somehow corrupted too. Probably from my ventures with Fedora 9. All of the boxes that have my CDs are somewhere here and I've been going through each one, but have had no luck finding my restore CDs for the laptop. So, until I find those CDs, my laptop is out of commission. I knew it would happen sooner or later, but I was hoping on later :(

I just got the computer I'm working on right now up and running. Someone could have packed the cords to everything better. I go home tomorrow evening, so I guess I'll get started then.

Definitely looking forward to all the help I can get with this extra project.

In other news, I finally have two LCD monitors (compared to my old LCD and CRT) on my desk, with TONS more deskspace. I also got a 1 TB HDD, so I no longer have to worry about space. Anime, TV shows, and Music take up about 90% of my HDD right now. With my total of 1.7 TB, it now only takes up about 5-10%. YAY! :D

hah with the bad, comes the good!

well I am going through this book page by page to make sure, I get a general idea of how direct X works, and it doesn't seem that bad, we will be making a break out game in a chapter or two, although, once it gets to 3D I think I will stop and continue learning 2D on my own via online sources...

I am using an old version of C++ (VC++ 6.0) because it is unmanaged and thats what this book uses. and I found addin's that are awesome to make up for some of the features that other IDE's have (such as tabs and spell check)...

I am going to be pumping out as many games as I can this J-term here is what I plan to do...

Build a complete 2D engine from ground up for all my needs, and I want this thing to be as fast as I can possibly make it, so I will think each function out and whether I can combine it with another etc...

THEN I want to start developing games in this order:
Pong (2 player or CPU)
Break Out (2 player)
Tetris
Cards (so I can have some work with the mouse and advanced graphics)
Top Down Shooter (to work on collisions and graphic handling / particals)
Platformer (to work with 2D physics)

once I complete the platformer I plan to make a couple more advanced games and eventually when I feel comfortable I would move to the 3D part of the book.

I believe that most of those projects will NOT take very long so this is a (at most, SOLID 2 month training session for me)

I will ask for help from you BR, so I will be online a lot and I will involve you to help you learn C++ with DirectX.

it's really not that bad. DX9 is simple! and if you are interested in this book, the name is: "Beginning Game Programming" by Jonathan S. Harbour.

he doesn't go into great detail of what EVERYTHING is doing, but he explains the C++ windows section very throughly for what you need in game making.

I have the CD too for all the source code... but advanced DX will need to be found online :p I would download a copy of the book online, it's very informative, even though a lot of the things he explains are obvious, he hammers it home every chance he gets, and you don't forget what is what.
 

Mycal

Staff member
Funny, I was just about to post asking you what C++ compiler you used. I've been using MinGW for the longest time now. Main reason is because I can program in Notepad++ running from a flashdrive. This let me program absolutely anywhere I went where there was a computer. I used VC++ 6.0 in the labs at school, and just recently started using VS2008, though I have not tested any of my projects in it. So I'm pretty versatile when it comes to the compiler.

Anyway, I'm finally back home today. I've installed the TB drive, but haven't put it to much use yet. As soon as I got home, my priorities were to fix my nephew's computer (reformat, update to latest, and then installing all the necessary programs and games that he wanted). After that was done, I finally fixed my laptop. Though it's still installing VS2008 as I write this. After that finishes, there are several more programs to install then it should be in working order again. So I'm back in business it seems.

I'll look into finding that book.
 

krum

New Member
Calix said:
Funny, I was just about to post asking you what C++ compiler you used. I've been using MinGW for the longest time now. Main reason is because I can program in Notepad++ running from a flashdrive. This let me program absolutely anywhere I went where there was a computer. I used VC++ 6.0 in the labs at school, and just recently started using VS2008, though I have not tested any of my projects in it. So I'm pretty versatile when it comes to the compiler.

Anyway, I'm finally back home today. I've installed the TB drive, but haven't put it to much use yet. As soon as I got home, my priorities were to fix my nephew's computer (reformat, update to latest, and then installing all the necessary programs and games that he wanted). After that was done, I finally fixed my laptop. Though it's still installing VS2008 as I write this. After that finishes, there are several more programs to install then it should be in working order again. So I'm back in business it seems.

I'll look into finding that book.

the book does focus on vc++ 6

so it may be slightly incompatible, but there is another good book I found on openGL which dives into the windows messaging more, and Harbour has an advanced 2D game programming, which I think I will get... for some reason I learn better from a REAL book then an E-book, because I can read and do it at the same time :p

anywho glad everything is up and running, back to work :-\
 

krum

New Member
steven said:
krum, go print an ebook off at a kinkos or staples lol and it will be just like the real thing

eh, makes no sense when I can get the real thing with the CD for like 8 bucks used.

thats most likely cheaper than kinkos printing it off :p
 

Mycal

Staff member
Actually, I found the eBook (which was harder than I thought'd be) and have started into it. I can work on it and read at the same time since I have dual monitors. Only annoying thing is, one is widescreen while the other is standard. I would like to make the widescreen vertical to program in, but the base has to be unscrewed anytime I want to do that. That's more of a hassle than anything else. Also, the eBook torrent didn't come with the CD so that was kind of a bummer.

Taking it to kinko's? Do you know how expensive that is? A friend of mine looked into doing that with a class textbook and it would have cost him more than the book brand new would have been. Oh and yes, by friend, I do mean me :p. Textbooks are freaking expensive these days...

Anyway, I've started working on making a really simple DX9 library, but next need to figure out what it would take to make a dll compatible with VB6. Not much resources on the topic, at least not that I've had luck finding.
 

krum

New Member
I have the CD if you want me to zip it and send it to you!

the best part about the book is the details on C++ with windows programming, instead of the DOS shit.
 

Mycal

Staff member
Is the CD just a data CD, no autorun or anything that runs when you insert it? Well really, I guess it doesn't matter. Sure go ahead.

From what I can tell, it is more C oriented than C++ isn't it? Though, there isn't too big of a difference so far.
 

krum

New Member
Calix said:
Is the CD just a data CD, no autorun or anything that runs when you insert it? Well really, I guess it doesn't matter. Sure go ahead.

From what I can tell, it is more C oriented than C++ isn't it? Though, there isn't too big of a difference so far.

yea it is C oriented, but C++ is basically the same exact language!

nvm...I need a ftp connection so that I can get this size of a file up 48 mb takes too long on here!
 

Mycal

Staff member
Here, ftp to this server:
host: ww2.mushroomgames.com
port: 21
passive: yes (though if you get an error it means you should probably change this to no)
username: krum
password: ireallydontcarewhoknowsit

just upload to the root folder. since I'm posting this pass publicly, I'm only giving access to an empty folder.

[st][edit note] I'm having a hard time remote connecting to my desktop. So don't try this until after 8:00pm CST Jan. 23, 2009.[/st]

[edit2]stupid firewall was blocking it without telling me..it's working now. Resume is allowed in case you were wondering.
 

Mycal

Staff member
OK, I've looked into all possibilities for making this com object. It's proving to be much more difficult to do than previously suspected. I mean, I knew this was a huge task, but not nearly as much as it is turning out to be.

Next idea. I'm going to port the project (starting with the demo) to VB.NET and see what turns incompatible and see if I can't get it to simply run. After that, I'll move the DX8 code to DX9. If this works (meaning I can port all of our code without too much of a hassle), our new language will be VB.Net until it makes more sense to port to a better language.
 

steven

Administrator
I dont know much about anything so just tell me if im wrong because I dont feel like looking it up but isnt vb.net basically the same as c# (minus all the small things like how c# uses curlies not words) only really big difference is c# lets you do unsafe coding or whatever +pointers (which vb.net lets you use on certain conditions right?) and c++ is best for memory not getting used which i have no idea what that means i just know it..but while using vb.net if we ever want to use those things we can always just add a project using c# or c++ to do all that stuff, so vb.net seems like the language to stay with (if we do start using it we wont ever come by one that makes more sense to use, unless another one comes out?)

i didnt really read most of the thread, just saw the last post and got curious
 

Mycal

Staff member
Talking purely about .Net languages. Microsoft made all of them RAD (Rapid Application Development) languages and they all compile using MSIL (Microsoft Intermediate Language), similar to how Java compiles to bytecode that a JVM (Java Virtual Machine) can read. So now its a matter of preference of languages.

Now the real question is, we have several different options for the graphics since we are switching to .Net:
- We can continue to use DX8
- Switch to DX9
- Switch to OpenGL
- Switch to XNA (formerly Managed DirectX)

Of those options, we can probably cross of DX8. Now I never saw a real need for OpenGL but it was the preferred library by most game developers before DX9 took the scene. I'm still learning what XNA has to offer, but so far, I can say that with XNA, it really does make things a little easier. Plus it gives the advantage of connecting to the Xbox Live network, X360 games, and Zune games.

For the time being, I'm going to just convert it all to DX9 (since its not that big of a jump from DX8) and see where we stand when we get there.
 
Top