Hands On DarkBASIC Pro
Contents (Volume 1)
Background Information
- Algorithms
- Stepwise Refinement
- Structured English
- Desk Checking
- Boolean expressions
Starting DarkBASIC Pro
- Creating a DarkBASIC Pro Project
- Executing a Program
- Understanding Screen Output
- Text colour, size and font
- Adding Comments
Data
- Variables and Constants
- The Assignment Statement
- Arithmetic Calculations
- Keyboard Input
- READ and DATA
- Strings
- Creating Random Numbers
Selection
- AND, OR and NOT Operators
- The IF Statement
- The SELECT Statement
- Nested IF Statements
- Testing Selection Constructs
Iteration
- The DO..LOOP Construct
- The EXIT Statement
- The FOR..NEXT Construct
- The SLEEP Statement
- The REPEAT..UNTIL Construct
- The WHILE..ENDWHILE Construct
- Testing Iteration Constructs
Drawing Statements
- Drawing Basic Shapes
- Erasing Shapes
- A First Attempt at Animation
Modular Programming
- Creating Functions
- Global and Local Variables
- Mini-Specs
- Parameter Passing
- Pre and Post Conditions
- Returning a Result
String Functions
- Standard String Functions
- Creating a Function Library
The Game of Hangman
- Black Box Testing
- Designing a Game
- Equivalence Classes
- White Box Testing
Arrays
- Defining Arrays
- Accessing Array Elements
- Multi-dimensional Arrays
- Programming Techniques Using Arrays
- Searching and Sorting an Array
The Game of Bull and Touch
Advanced Data Types and Operators
- INC and DEC Operators
- Record Structures
- Arrays of Records
- Dynamic Lists
- Declaring Variables
- Queues and Stacks
- Shift Operators
- Bitwise Operators
- Binary, Hexadecimal and Octal Values
Bitmaps
- Basic Ideas
- Loading a Bitmap
- Displaying a Bitmap
- Resizing a Bitmap
- Positioning a Bitmap
Video Cards and the Screen
- Creating a List of Available Display Modes
- Creating a List of Installed Video Cards
File Handling
- Navigating the Backing Store Structure
- Accessing Files
- Writing a File
- Reading from a File
- Random File Access
Handling Music Files
- Playing MIDI and MP3 Files
- Playing CD Tracks
Displaying Video Files
Accessing the Keyboard
- Scan Codes
- Detecting Multiple Simultaneous Key Presses
Mathematical Functions
Images
Sprites
- Loading and Positioning Sprites
- Setting the Sprite Origin
- Moving Sprites
- Detecting Sprite Collisions
- Rebounding Sprites
- Animated Sprites
Sound
- Playing WAV Files
- Creating 3D Sound Effects
2D Vectors
Two Player Space Duel Game
Using the Mouse
- Creating Buttons and Rollover Effects
Using a Joystick
- Controlling Movement
- Using Feedback
Contents (Volume 2)
3D Concepts and Terminology
- 3D Coordinate system
- World Units
- Vertices, Edges, and Polygons
- Vertex and Surface Normals
- 3D Primitives
- Textures, Cameras, and Lights
- Alpha Channels
3D Primitives
- Creating 3D Primitives
- Positioning 3D Objects
- Rotating 3D Objects
- Scaling 3D Objects
- Cloning 3D Objects
- Culling
- Merging 3D Objects
Texturing
- Adding Texture to a 3D Surface
- Mipmaps
- Tiling
- Creating Seamless Tiles
- Video Texturing
- Texture Effects
- Multiple Texturing
- Colouring 3D Objects
- Sky Spheres
Cameras
- Positioning Cameras
- Creating new Cameras
- Setting the Camera Viewport
- Setting the Aspect Ratio
- Setting the Aspect Ratio
- Zooming
- Camera Range
- Tracking
- Giving the User Control
- Handling Camera Collisions
- Outputting Camera Image to a Surface
- Locking an Object to the Viewport
Lighting
- Types of Light
- Light Colour
- Creating Lights
- Light Range
- Creating a Fog Effect
Meshes and Limbs
- Creating Meshes
- Models with Limbs
- Translating Limbs
- Texturing Limbs
- Glueing an Object to a Limb
- Using Limbs to Create a Door
Importing 3D Models
- File Formats
- Scaling Models
- Animated Models
- Model Limbs
User Control
- Selecting On-Screen Objects
Solitaire - The Board Game
Advanced Lighting and Texturing
- Surface Reflection
- Light Maps and Bump Maps
- Sphere and Cube Mapping
- Texture Blending
- Alpha Mapping
- Cartoon and Rainbow Shading
- Shadows
Collisions
- Bounding Boxes and Spheres
- Detecting a Collision
- Line-of-Sight Collisions
- Static Collisions
Particles
- Standard Particles
- Fire Particles
- Snow Particles
- Particle Examples
BSP Models
- Loading BSP
- BSP Cameras
- BSP Collisions
Elevators - a 3rd Person Game
Creating Terrain
- Terrain Contour Images
- Texturing Terrain
- Advanced Terrain Statements
- Treasure Island - a 1st Person Game
- Sky Boxes
Landscape Matrices
- Creating a Matrix
- Texturing a Matrix
- Matrix Transparency
- Matrix Lighting
Manipulating Vertices
- Capturing Vertex Data
- Changing Coordinates, Lighting, and Texture
- Creating New Shapes
Pointers and Memblocks
- Basic Concepts
- Using a Pointer
- Creating a Memblock
- Storing Data in a Memblock
- Images, Sounds and 3D Objects in Memblocks
Shaders
- Vertex Shaders
- Pixel Shaders
ODE
- Dynamic and Static Volumes
- Gravity, Velocity, Mass
Maths: Vectors and Matrices
- 3 and 4 Element Vectors
- Matrices
- Transforming Vertices
Network Programming
- Basic Concepts
- Setting up a Link
- Adding and Removing Players
- Sending and Receiving Data
- Creating a Multi-Computer Game
FTP
- Setting up a Connection
- Downloading and Uploading Files
Using DLLs
- Creating new DBPro Statements
- Adding Highlighting and Help
- Using Standard DLLs