DirectX.DevPak distributed with book

by Dimi 25. May 2009 15:48

Last year I received an email from Jonathan Harbour, asking me if he is allowed to distribute the DirectX.DevPak with his new book Advanced 2D game development. Of course I agreed but soon forgot about it.

Recently a friend of mine contacted me telling me that he had found the DirectX.DevPak on a CD included in a book. I must admit I do not own this book but hey... most important is that I'm famous now ;) Just joking. Head over to Amazon and watch the reviews. It seems that this is quite a good book with quite interesting topics like 2D and 3D rendering, animation, input and audio control, physics, threading and scripting using the LUA script engine. I'm looking forward to get this book (sadly no signed book reached me :( ) but the content promises a lot and the current user ratings tend to be very positive.

Here’s what professionals in the game industry have to say about this author’s work:

Barry Caudill, Executive Producer of Civlization Revolutions at Firaxis Games: “I like your style of writing and I appreciate how you dig down and explain things.” “A book like this is invaluable.” “Very well written and applicable to what we do at Firaxis.” “Very impressed.” “I enjoyed myself immensely while working through the book.” “Keep up the great work.”*

John Romero, Lead Designer of Gauntlet Dark Legacy at Midway, co-founder of id Software, Designer of Doom and Quake: “I just got your book and it’s exactly what I needed!” “For the last several years, I’ve been so busy with game design and directing large teams that I never had the time to actually code.” “I really needed the concise info contained in your book.” “I just wanted to say thanks for writing an essential book for game coding.”**

* Referring to Beginning Game Programming. ** Referring to Pocket PC Game Programming

Tags: , ,

DevPak | game development

The future of the DirectX.DevPak for Dev-Cpp

by Dimi 23. March 2008 22:46

gproductions2 June 22nd 2004 the website G-Productions was launched. This site was dedicated to my very own afford to create a game engine using DirectX. I was not a friend of the Visual Studio that time since I could not afford this (it was not that cheap that time), so an alternative compiler had to be found. Soon I stepped over Dev-Cpp. This was a very complete and full functional IDE which uses the MinGW compiler. Cool was my first thought, but the first problems were soon knocking on the door. Those of you who ever tried to use DirectX with the MinGW compiler know what I'm talking about. A bunch of compiler errors say hello if you include a DirectX header file.

Teaching a compiler the Microsoft way

DirectX_75x65 Searching the www I could not find any way how to use the DirectX SDK with the MinGW compiler. A DirectX DevPak was available but it included only the DirectX Graphics component of SDK and it was not very complete (imagine the D3DX functions library). On several forums and bb's people already had posted problems with using MinGW and DirectX SDK (that time people referred to the DX SDK 8.1). Soon I realized that there was the need of an adequate solution. Download the DX SDK and let's get to work I thought and so I did. After downloading the DirectX SDK 9.0 I started reading through the compiler tools documentation. After a short time I got all the DirectX Graphics issues fixed and I had a stable release of the graphics library of the SDK. Most important thing was, that it was full usable and full functional with Dev-Cpp.

Next step: DirectInput

Next task on my list was the DirectInput library. Some fixes here some fixes there and converting the library and here you are with a complete DirectInput library for MinGW. Easy I thought, let's get to the sound stuff.

The audience is listening

That time for audio the DX SDK provided the DirectSound and DirectMusic library. While DirectMusic was easy to convert, DirectSound made some problems because of the use of some defines which were not so easy to work with.

DirectShow

The biggest problem when working with the MinGW compiler tools is also the best feature. The MinGW compiler is an ANSII compliant compiler and allows only ANSII compliant C++. The complete DX SDK contains partial non-ANSII-compliant code. That was the issue most people complaint about. Within the DXSDK a script language (IDL) was used what was also difficult to change that MinGW could work with it. Most work with the DXSDK was changing some parts of the header files, mainly fixing scoping problems and/or rewriting the IDL parts and the header files worked very well with MinGW. But what I faced with the DirectShow part was terrible. Let's say I needed one month of work to make DirectX Graphics, DirectSound, DirectMusic, DirectInput and DirectPlay work with MinGW I needed at least 3 more months to convert the DirectShow stuff. My intention was to release the most complete DirectX.DevPak available so people could use it for their applications. My intention was also that my DevPak should compile out-of-the-box. So I didn't loose a word on my DevPak until the DirectShow part was also converted. The problem was that most tutorials and samples used the BaseClasses, a static library which wrapped many things up and allowed the developer to render videos on textures or for DirectDraw on surfaces. These BaseClasses library was nearly impossible to change for MinGW. Finally with some tweaks DirectShow was usable with MinGW and I included the samples and provided it for download.

Past and future

Four years I spent more time on keeping updated this DirectX.DevPak, which was originally designed to help me and my team developing the blueEngine, than on working on my own game engine (Microsoft loved me so much that they began releasing a monthly update on the DX 9.0 SDK). The DirectX.DevPak became an own single project that took most of my time.

Since the release of the Visual Studio Express Editions especially the XNA Express version I began asking myself if it would make any sense of continue the work on the DevPak and release any further updates. The reason why I started to work with Dev-Cpp and the MinGW compiler was that I didn't have the money to buy a Visual Studio C++ 6.0 version. Now Microsoft introduced the Visual Studio Express editions giving such a great development environment away for free. Why should someone still need an updated DirectX.DevPak? I downloaded the DirectX SDK March 2008 and tried to look how much work it would be to convert it. So many changes, monthly updates, some functions were dropped others were introduced...

 

There definitely won't be be any more updates on the DirectX.DevPak. The last release is available here. The changes on the DXSDK are too many. I would have to convert the complete DXSDK March 2008 and I simply don't have the time for this. It was great to work on this DevPak you can learn so much about C++ when having to work with compiler and linker issues, different static library formats. I think this also improved the way I'm programming in C++ and of course influenced the way I think about open-source projects a standardized static and dynamic library format etc.

 

DirectX.DevPak versions here available

Download the DevPak here

 

Tags: , , , ,

DevPak

NVidia CG Toolkit DevPak for Dev-Cpp

by Dimi 1. October 2006 13:26

For all those of you who have problems getting the great Cg Toolkit to work with Dev-Cpp here is a DevPak which makes your life a bit more comfortable.

I released two versions of the DevPak. The first is the complete DevPak with everything from the original toolkit of Nvidia. The second is a “lite” version which does not include the media and resource files.

I used the Cg Toolkit 1.5 as base so download and enjoy

cg_light.DevPak (3,87 mb)

cg-1.5.DevPak (12,62 mb)

Tags: , , ,

game development | DevPak

Audiere.DevPak for Dev-Cpp

by Dimi 10. September 2005 13:21

A popular and in my opinion great sound and music library is the audiere music API. Here is a short descriptoin from their site:

Audiere is a high-level audio API. It can play Ogg Vorbis, MP3, FLAC, uncompressed WAV, AIFF, MOD, S3M, XM, and IT files. For audio output, Audiere supports DirectSound or WinMM in Windows, OSS on Linux and Cygwin, and SGI AL on IRIX.

Audiere is open source and licensed under the LGPL. This means that you may freely use Audiere in commercial products, as long as you do not modify the source code. If you do modify Audiere and release a product that uses your modifications, you must release your changes to the code under the LGPL as well.

Audiere is portable. It is tested on Windows, Linux-i386, Cygwin, and IRIX with at least three major compilers. Most of Audiere is endian-independent, so I expect it would work with few modifications on other architectures.

So why not making it easy for you guys and release a DevPak? Here you are with a DevPak for Dev-Cpp ;)

audiere-win32-1.9.4.DevPak (855,41 kb)

Tags: , ,

game development | DevPak

OggVorbis win32 DevPak for Dev-Cpp

by Dimi 26. June 2004 13:16

About the OggVorbis sound library
The OggVorbis sound library is one of the greatest sound libraries available on the net.
The advantages of OggVorbis are the same like those of the mp3 format.

  • sound compression with (nearly) no loss of quality.
  • easy to use and implement in applications
  • SDK available
and the most important which makes OggVorbis our favorite sound library: it's free. No royalties.
The last point is maybe the most important. While implementing mp3 sound in your applications means the payment of royalties to the Frauenhofer Institute in Germany, you can use OggVorbis for free. The SDK contains everything a developer dreams of.
Why not use other sound libraries like fmod or bass?
Sure the fmod library is a really great and advanced sound library and provides really everything for developers. It's implementation is easy and its usage is great, but the disadvantage is, that you have to provide the dynamic link library with your application in order to use this. Now imagine you are developing a game or a game engine :-) and your design already includes enough libraries. Why not implementing the sound in one of your own without the need of an additional dll?
Why releasing a package
With installing the SDK you are ready to go for developing, as long as you use Microsoft Visual C++. If you want to use the OggVorbis SDK with MinGW you have to rebuild the libraries to readable format for the MinGW compiler. It was kind of work get this done, so we thought of providing this devpak to the public and below a step-by-step instruction on how to compile the OggVorbis stuff yourself.
What the DevPak contains
  • the dynamic link libraries
  • the documents provided from the original OggVorbis SDK
  • the example code from the original OggVorbis SDK
  • the header files in their appropriate folders
  • the static libraries
For a detailed description what will be copied on your system, refer to the readme file included with the devpak.

What the SDK contains
The OggVorbis SDK contains the necessary header files for using the sound library and it contains the static and dynamic libraries. The static libs are divided in two parts. The first part includes all the libraries necessary to link to the dll's the second part includes all libs for linking the sound stuff into your application. These libraries are specified with the word static which is included in the lib name before the extension. Example: ogg_static.lib If we take a closer look at these libraries we will recognize, that these libraries are not readable from the MinGW linker. They are for Visual C++ only, so we have to build these libraries manually. The good thing is, that you can use the libraries for dll linking since they are readable. That means that if you are going to use the dll's provided with the SDK you don't need to do the steps below. That also means, that you have to include the dll's with your application and that is not the way we want to go on. So let's build the libraries ourselves.
What do we need?
What we need is:
  • the libogg source. Download the file libogg-1.1.zip at OggVorbis homepage
  • the libvorbis source. Download the file libvorbis-1.0.1.zip at the same location as above.
  • the MSYS package. Download the package at the MinGW site
  • a modified version of the os_types.h header file which can be downloaded here

The first step
..is to install MSYS. This is a great collection of tools for MinGW and makes life easier.
After installing MSYS (by the way, MSYS stands for Minimal SYStem) unzip the libogg-1.1.zip and the libvorbis source on your harddisk (I would recommend you to unzip them in separate folders).
Now replace the file {MyDrive}:{MyFolder}libogg-1.1includeoggos_types.h with the new header file you downloaded at the above location. If you aren't able to find the location of the file on your hard disk replace {MyDrive}:{MyFolder} with the drive and folder name you unzipped the SDK.
Now we are ready to go. Start the MSYS console with a double click on the icon on your desktop and switch to the root folder of the libogg SDK. The console prompt is UNIX like so some of you may have problems at first but believe me it's easy and similar to DOS. Once you are in the root folder of your libogg SDK type the following into the console prompt:
$ configure --disable-shared
Now MSYS will do all the work for us, like checking the compiler version, running some tests etc...
When MSYS finished creating the makefiles we need type the following into the console prompt:
$ make
This will build at least the desired libraries we need. Watch the console output. If you followed the steps above no error should occur. Otherwise check if you really followed the steps above and use the recommended versions of the tools and packages we mentioned. Now the first step finished. Now we have to build the vorbis libraries.
The second step
Copy the ogg folder of your libogg-1.1include folder into your MinGW include folder. Go to your src.libs folder and copy the file libogg.a into your MinGW lib folder. NOTE: the library can directly be copied to the lib folder of your MinGW installation but you have to copy the complete folder ogg of your Include folder into your MinGW include folder. Switch on the MSYS console into your libvorbis-1.0.1 root folder. Type the following into your MSYS console prompt:
$ configure --disable-shared
Now MSYS will work again and build the makefiles for the vorbis SDK. If the console output reports an error, you most probably didn't copy the ogg folder of your libogg-1.1include folder into your MinGW include folder. After finishing the makefiles and dependencies type the following into the MSYS console prompt:
$ make
Now the vorbis libraries are compiled. After finishing the compile process you should have a new directory within your libvorbis-1.0.1lib folder named .libs Switch into this directory and here you are the last libraries. Now let's check if we did everything right.
In your libogg-1.1src.libs folder should be the following files:
  • libogg.a
  • libogg.la
  • libogg.lai

In your libvorbis-1.0.1lib.libs folder should be the following files:
  • libvorbis.a
  • libvorbis.la
  • libvorbis.lai
  • libvorbisenc.a
  • libvorbisenc.la
  • libvorbisenc.lai
  • libvorbisfile.a
  • libvorbisfile.la
  • libvorbisfile.lai

Congratulations, you have build all the static libraries to use the complete OggVorbis sound library with your application. Copy all the *.a files into your MinGW lib folder
Copy the folder:
- libogg-1.1include
- libvorbis-1.0.1include
into your MinGW include folder. You're done. Happy programming. If you encountered any errors or are not able to compile after following the above steps, just mail us or head over to the forums. If you are too lazy to do the steps again download the compiled libraries from here.

OggVorbis-win32sdk.DevPak (2,09 mb)

Tags: , , , ,

game development | DevPak

DirectX.DevPak for Dev-Cpp

by Dimi 26. June 2004 13:01

Here you are with a DevPak designed for Dev-C++.
This package was build in order to make it easier for you to use DirectX with the MinGW Compiler used in Dev-C++ . A lot of work was done on this package but the results show that it was worth the work As far as we know, it is the most complete DevPak for DirectX available.
The package:
When we started looking for a package we used the distribution of Gorobei and Zero Valintine from www.gamedev.net. Soon we noticed that it was just a build of original DirectX SDK files, not optimized to work completely with the MinGW compiler. After some basic changes on the DirectSound and DirectMusic stuff we got the most modules working. The last big challenge was the DirectShow part of DirectX. Picked with many IDL interfaces maybe this was the most difficult part of the complete package. After getting this to work and after re-building the BaseClasses (Kudos to ToTo who did the most work on this) the final step was done. We added the mmreg.h (for some multimedia registration stuff) to complete the package and provide it to you as is. Work is not finished yet. We continue improving the package to make it the most complete DirectX.DevPak available, so it will (hopefully) be one day a 1:1 copy of the DirectX SDK.
The DevPak includes:

  • all header files of the DXSDK (MinGW compatible)
  • all libraries of the DXSDK (MinGW compatible)
  • some debug and helper libraries (shared dll) of the DXSDK
  • some templates to create dx projects within Dev-Cpp from scratch.
  • DirectX icon
  • the helper classes of the DXSDK

Note:
You don't really need the DirectX9 SDK. What you have to install is the DirectX 9.0 runtime version. You should also be carefull not to have installed the DirectX.DevPak available through the update module of Dev-Cpp. In some cases you might get compiler errors, caused by concurrent versions.
More information:
For more help on DirectX9.DevPak visit our message board. For more information on Dev-C++ visit: the Bloodshed forum
Credits:
  • ToTo for contributing some major changes on the libraries and for help on the BaseClasses
  • EvilInvader for all that ml-shit I couldn't get rid of.
  • NinjaNL for using the DevPak and providing us some usefull information on usage and testing.
  • Yeoh for the How_to_make_Devpaks.txt at http://www.yeohhs.com

DirectX9_help.rar (11,42 mb)

DirectX90.DevPak (3,63 mb)

DirectX90b.DevPak (5,07 mb)

DirectX90c.DevPak (6,23 mb)

Tags: , , , , ,

DevPak | game development

Powered by BlogEngine.NET 1.6.0.0
Theme adopted by Dimi with portions of Mads Kristensen and portions of Rtur.net

RecentPosts