Delta Engine Blog

AI, Robotics, multiplatform game development and Strict programming language

Dungeon Quest Updated with Source Code now

Hey! Finally some News about Game Development again. All this Silverlight and VS2008 stuff is nice, but XNA has become pretty popular recently (lots of posts in blogs, more articles everywhere and a lot more news).

Anyway, I wanted to release the Dungeon Quest Source Code for several months now, but I never found the time to package everything up, do some cleanup and release it. Recently some people have requested the source code and emails keep coming in. To finally make everyone happy, here is the new Dungeon Quest version with some nice additions, much cleaner code with quite a lot of refactoring and some nice unit tests (see below). This version also does not require PS3.0 anymore, you can now run Dungeon Quest on a PS2.0 graphic card!

First of all: The downloads, all of them can be found on XnaProjects.net too:
  • DungeonQuestSetup.exe (40 MB): Game installer for Windows with everything you need to play.

  • DungeonQuestSourceCodeAndContent.zip (103 MB): Full Dungeon Quest source code with all content files.
    Please note that the collada files (xml text format) and the sound/music are very big (extracted ~200 MB).
    This download also contains the full game in the bin/debug/ directory, you only need to download this file
    for development and testing.
    Contains solution and project files for VS2005, VC# Express (XNA Express) and Xbox 360!

  • DungeonQuest.wmv (21 MB): Higher quality version of the YouTube video below

Here is the good old YouTube video from the game to give you a first view if you don't know about Dungeon Quest yet.



If you want to drive into the source code I highly recommend starting all the unit tests in Program.cs after checking out the directory structure of the project:

  • UIManager.TestUI();
    Show the graphical user interface of the game (boxes for health, player values, rpg levels, etc.)

  • ShaderTests.TestNormalMappingShader();
    Test the normal mapping shader, for more shader tests check out the XNA Rocket Commander and XNA Racing Game projects.

  • ColladaModel.TestCaveColladaModelScene();
    This tests the big cave collada file (80 MB) and renders it with the cave shader. Looks very nice.

  • ColladaModel.TestLoadStaticModel();
    This is straight from the SkiningColladaModelsWithXNA project from February. This test show shows a static collada model.

  • AnimatedColladaModel.TestPlayerColladaModelScene();
    Also from the SkinningColladaModelsWithXNA project. This shows the player or the goblins running, dying, staying, etc.
    This is a useful unit test to test animations for skinned collada models.

  • PostScreenGlow.TestPostScreenGlow();
    Test post screen glow, more details can be found in the Rocket Commander tutorials and most of my XNA projects.

  • PlaneRenderer.TestRenderingPlaneXY();
    Test to render a plane on the ground, which is also used in some other tests. Also good for testing shaders.

  • ShadowMapShader.TestShadowMapping();
    Test Shadow Mapping unit test, pretty complex stuff, but kinda nice for this game. More details can be found in my book, this is a complex topic and involves a lot of finetuning to get it right.

  • EffectManager.TestEffects();
    Since DungeonQuest uses some effects for fire, smoke, blood, etc. it has a simple effect system build in. Use this test to see whats possible and to extend the effect system.

  • StringHelper.TestConvertStringToFloatArray();
    An example of a dynamic unit test, which can also be started from NUnit or TestDriven.Net (right click if you have the addin installed).

  • Sound.TestPlaySounds();
    And another test to play the sound effects used in the game, just press A, B, 1, 2, 3, etc. to play sounds.

  • ColladaModel.TestCaveColladaModelSceneSplitScreen();
    This test shows how the engine supports split screen support, but it was never fully implemented into the game itself yet.
    To finish this the game logic + handling input from 2nd player has to be implemented.

Some Screenshots from the last post on my blog about Dungeon Quest:


Ok, let's get started. What is this guy doing there. He doesn't look very friendly, maybe it is better to hit him in the head!


First quest completed. This key is important to open the door to the second level.


Nonstop fighting action. Well, at least if you don't lose your way.


This is how it looks like after I got angry. I told those guys, don't start any fights!


Ohh no. I did not use all my skills (see right side) and this Ogre killed me too quickly. I guess I have to start over.


The credit screen when the game ends. Notice my book :)


No reason to stop, let's start over and try again. The fight is continuing. The game is not that hard, you just have to use all skills and avoid being hit by fireballs or big enemies when you have low hit points.

I hope you like Dungeon Quest and that the source code can be useful for your XNA projects. Enjoy!