Devil-Engines

The Devil-Engines are a set of useful extensions to the Blitz3D programming language. As the Blitz3D graphics engine is very limited, the Devil-Engines fill the missing gap. There are 4 libraries, a separate shader engine in addition and the game demo that shows them working together.


  • Devil Shadow System
  • Devil Physic Engine
  • Devil Particle System
  • Shader Engine
  • Devil GUI
  • Game Demo

Legacy Disclaimer

Downloads
2005 to 2007
Legacy

The development has been discontinued by 2007. Reasons are 1.) I moved away from Blitz3D and started to use C#, C++, PHP and other more common languages. And 2.) Blitz3D itself isn't developing. BRL stopped working on Blitz3D long ago and today, the language & engine can be considered legacy. However, since there is still interest, I will keep hosting them for download.


Devil Shadow System

The Devil Shadow System is a hardware accelerated stencil shadow system, made in a team of bytecode77 and Dare Devil. It's the most famous Devil-Engine of all four because there are limited alternatives. This is a volumetric shadow system, which is much faster and even more precise than a render-to-texture shadow system. Some experimental stencil shadow libraries for Blitz3D only support Z-Pass, which means improper rendering with camera inside of shadow volumes. The current version of the Devil Shadow System supports Z-Fail and shadowed areas are not rendered with "half brightness", but instead with ambient light values.

Stencil shadows are created by casting a volumetric mesh on the scene that represents the silhouette of the shadow, thus everything is rendered with ambient light that's inside of that volume. The Devil Shadow System also supports ENBM (Environmental Bump Mapping. This effect can be used to create distorted reflection and refraction effects. Note: ENBM is not to be confused with DOT3 Bump Mapping.

Special thanks to Tom, who is the author of the two included DLL's!

Devil Physic Engine

The Devil Physic Engine is a 3D physics engine which is built upon the BlitzODE physics wrapper. It is a high-level library simplifying the entire functionality by offering a simple and direct API to Blitz3D. It is also very fast as the calculations of the underlying DLL's are written in C++. This system supports all required features for a decent physics engine including ragdoll meshes.

Due to licensing issues, version 1.7 (Newton) has been discontinued (source code is still available) and you should use the version 1.0, which utilizes BlitzODE.

Devil Particle System

The Devil Particle System is a single surface particle engine designed to create particle effects such as fire, smoke, sparks or explosions. Using Blitz3D's sprite entities for particle effects is generally a bad idea because it lacks in performance. Instead, a single mesh with massive vertex manipulation is used in order to achieve best results. This way, even heavy calculations perform surprisingly smooth.

A templating system is implemented so you can create re-usable particle effects. Also, please note, that due to its simplicity the Devil Particle System is the Devil-Engine that interferes the least with any other system you may use. This is mainly because no DLL hooks, like in Devil Shadow System, are required.

A huge collection of particle images to choose from is included as well.

Shader Engine

Better shader support for the Devil Shadow System has been frequently requested. Since the DSS had its legacy status at that time, I released "Shader Engine". It is not particularly part of the Devil-Engines, but it uses the DLL's of the Devil Shadow System. Note, that it is incompatible with the Devil Shadow System, but rather an alternative to it.

Here I would like to point out that, indeed, it would be possible to implement proper shaders and stencil shadows working together. However, this is the state of development from 2007 at its last release. Anyone who uses provided code & knowledge to form a complete system is welcome!

Shader Engine supports DOT3 bump mapping for lighting effects on meshes and Environmental bump mapping for effects like glass, water, fire, hot air or ice cube. See the example for some impressions on how to utilize these features.

Devil GUI

The Devil GUI, successor of XGui, is a library that contains lots of UI controls that Windows normally includes (see the list below). It can either be used as a game UI, but preferably it has been developed for creating applications in Blitz3D that work with both the 3D engine and require UI.

The Skin SDK is for developers who want to create their own styles. The GUI renderer is primarily designed for Windows "type of skins". The *.skin file is somewhat flexible, but not flexible enough for complicated skins such as Windows Aero, yet. However, it is easily comprehensible. All PNG and INI files are packed into the *.skin file by skinwriter.bb, which makes it more comfortable to deploy.

Please also note, that Devil GUI has been developed while Windows XP was the current Microsoft operating system. And as you see, the Windows XP style is most targeted when it comes to style compatibility.

Gadgets

  • Window, Menu
  • Tab/TabPage, GroupBox
  • Button, Edit, CheckBox, RadioButton, ComboBox, ListBox
  • ProgressBar, Spinner
  • Slider, ScrollBar
  • Label, Image, Icon

Dialogs

Utilizing existing gadgets, following dialogs are pre-implemented:

  • Message Box
  • Color Picker

Included Skins

Skin Name Author
Windows 2000 bytecode77
Windows XP bytecode77
Windows XP Silver bytecode77
Windows Vista bytecode77 & boehmi
Mac OS X bytecode77
Militia boehmi
BackRow boehmi

Note: The Vista skin looks odd, because by the time the Devil GUI was developed, Windows Vista was not officially released. For the same reason, there is no skin for Windows 7 and beyond.

Game Demo

The game demo demonstrates all four engines working together, just as in an actual game. It was also designed to help game developers get a rough introduction into all engines used in one application.

Screenshots