Page 1 of 1

Blitz3D [commercial]

Posted: Thu Oct 11, 2007 5:17 pm
by Tami
[url="http://www.blitzbasic.com/Products/blitz3d.php"][b]Blitz3D[/b][/url] $100.00 USD - digital version

Demo Available

Create 2D and 3D Games for Windows

Features: Blitz3D compiler, IDE, debugger, example code, tutorials and documentation.

Requirements: Windows Vista/XP/2K/ME/98/95; Hardware accelerated video card; DirectX7 or greater.

You will also receive a registration code with your purchase, entitling you to free product updates and full access to the Blitz3D community forums.

Overview
If you've been yearning to create games but have been frustrated by the complexity of programming languages such as C++ or Java, you've come to the right place!

Blitz3D provides a simple yet powerful environment for game creation - simple, because its based around the popular and easy to use BASIC programming language; and powerful, thanks to a highly optimized underlying 2D/3D engine.

Blitz3D includes many commands to help you out with game creation - but not too many! Rather than confuse you with tons of commands, Blitz3D's command set has been carefully designed to provide maximum flexibility for minimum effort.

And if you get stuck, there is always the huge Blitz3D user community to call upon for help. Buying Blitz3D provides you with access to the official Blitz Research forums, home to thousands of dedicated and talented Blitz3D enthusiasts.

Can you write commercial quality games in Blitz3D? Why not - others are! Great titles such as Best Friends, Wonderland and Juno Nemesis were written in Blitz. In fact, many shareware authors are moving to Blitz from languages such as C++ due to the faster development time.

Curious? Why not check out the demo! Read on for a brief description of just some of Blitz3D's features...

Super flexible entity system
Blitz3D is designed around the idea of entities. Typically, a 3D game will consist of many types of 3D elements such as cameras, lights, meshes and so on. In Blitz3D, these are all considered to be entities. This means that the same commands can be used to manipulate and deal with a wide range of 3D objects - for example, the TurnEntity command can be used to turn a camera, a light, a mesh, or even a massive terrain!

Meshes
Meshes are the workhorse of any 3D engine. Blitz allows you to either create your own meshes from scratch, or load existing meshes in either X, 3DS or B3D format. The B3D format is unique to Blitz3D, and has been designed to provide for all the features of the Blitz3D engine. B3D exporters are available for a wide range of modelling software including 3D Studio, Lightwave and Truespace. Blitz3D meshes provide features such as vertex colors and multiple texture coordinate sets.

Terrains
Blitz3D terrains can be used to generate apparently HUGE scenes! This is achieved through a trick known as LOD (level-of-detail) reduction. This completely automatic process works by picking a set of polygons which approximates the shape of a very high resolution heightmap. Blitz3D terrains can also be modified in realtime - great for blowing holes in things!

Sprites
Sprites are simply textured 2D rectangles - easy to setup and great for things like particle effects, heads-up-displays and so on. Sprites can be setup to automatically orient themselves to face the camera, giving the illusion of a spherical object, but without the overhead of drawing a ton of polygons.

Cameras
Blitz3D cameras offer the programmer direct control over viewport, zoom, clipping range, fog effects and even offer an isometric mode. Multiple cameras are also no problem - simply use CreateCamera as many times as you want!

Lights
Blitz3D offers directional lights, point lights and spot lights. You can control the color, range and 'cone' of lights with ease.

Super flexible brush system
Blitz3D makes extensive use of the idea of brushes to color, texture and otherwise manipulate the appearance of entities. Brushes offer a wide range of effects such as tinting, multitexturing and specular highlights.

Multitexturing
Multitexturing allows you to apply up to 8 layers of texture to an entity. This can be used to achieve such effects as lightmapping, detail texturing, specular highlights and a host more. The multitexturing system in Blitz3D also allows you to precisely control how textures are combined together.

Environment mapping
Environment mapping creates the illusion of reflections with in a scene. Blitz3D provides 2 forms of environment mapping - spherical or cubic. Cubic environment maps can even be updated in realtime, providing for awesome, dynamic reflection effects.

[b]Blitz3D SDK[/b] $100.00 USD - digital version

Use the Blitz3D engine to create games in C, C++, C#, BlitzMax and PureBasic

Features: Static libraries and interfaces for C, C++, C#, BlitzMax and PureBasic; Dynamic library for shipping with your games; Installation guides and comprehensive API documentation.

Requirements: Windows Vista/XP/2K/ME/98/95; Hardware accelerated video card; DirectX7 or greater.

You will also receive a registration code with your purchase, entitling you to free product updates and full access to the Blitz Research community forums.

Overview
The Blitz3D SDK allows you to use the highly popular Blitz3D engine with a range of programming languages including C, C++, C#, BlitzMax and PureBasic.

The package includes static libraries and interfaces, a single dynamic library to be shipped with your game and full API documentation.

The Blitz3D SDK has been tested with the following programming environments:

* DevC (includes project template)
* VisualC
* VisualC# (includes .cs interface)
* BlitzMax (includes BlitzMax module)
* PureBasic (includes .pbi prototype file)

However, it should be usable with any programming language capable of linking with static libraries and that supports ints, float and 'c strings'.

Finally, programming a 3D application in C is now as easy as...

[code]#include <windows.h>

#include "../include/blitz3dsdk.h"

void teapot(){
bbGraphics3D(640,480,32,2);

BBMeshModel teapot=bbLoadMesh( "media/teapot/teapot.x" );
BBTexture tex=bbLoadTexture( "media/teapot/castle_env.bmp",128+8 );

bbEntityTexture(teapot,tex,0,0);
bbEntityFX(teapot,1);

BBPivot cam_pivot=bbCreatePivot();
BBCamera camera=bbCreateCamera( cam_pivot );
bbPositionEntity(camera,0,0,-3);

while (!bbKeyHit(1)){
if(bbKeyDown(200)) bbTurnEntity(cam_pivot,3,0,0);
if(bbKeyDown(208)) bbTurnEntity(cam_pivot,-3,0,0);
if(bbKeyDown(203)) bbTurnEntity(cam_pivot,0,3,0);
if(bbKeyDown(205)) bbTurnEntity(cam_pivot,0,-3,0);
bbTurnEntity(teapot,.1,.3,0);
bbUpdateWorld();
bbRenderWorld();
bbFlip();
}
}

int WINAPI WinMain(HINSTANCE hThisInst,HINSTANCE hPrevInst,LPSTR lpszArgs,int nWinMode){
bbBeginBlitz3D();
teapot();
return 0;
}[/code]

The Blitz3D SDK ships under the following license:

[quote]Blitz3D SDK License.

The Blitz3D SDK is copyright Blitz Research Ltd ("BRL"), and remains the commercial property of BRL

This license permits the holder the right to redistribute the b3d.dll runtime library found in the redist folder with their own applications, provided the application includes also the following sub-license:

"The file b3d.dll included in this application is copyright Blitz Research Ltd and may not be redistributed by any means without the prior permission of Blitz Research Ltd."

All other files included in this archive may not be redistributed by any means without the permission of BRL.

You are also permitted to create language 'wrappers' for the Blitz3D SDK, provided such wrappers do not include any files
found in this archive, and in addition include the following sub-license:

"This product may only be used by licensed owners of the Blitz3D SDK."

All use of the Blitz3D SDK, b3d.dll or any other BRL product is entirely at the care of the holder who agrees to indemnify BRL against any and all consequences (commercial or otherwise) of using BRL's products or resulting software.[/quote]

The Blitz3D SDK supports most of the commands included in Blitz3D, with the major exception being file system and file IO commands. Here is a full list of commands supported by the Blitz3D SDK:

bbBeginBlitz3D
bbEndBlitz3D
bbRuntimeError
bbSetBlitz3DDebugMode
bbSetBlitz3DDebugCallback
bbSetBlitz3DEventCallback
bbSetBlitz3DHWND
bbSetBlitz3DTitle
bbGraphics
bbFlip
bbBackBuffer
bbFrontBuffer
bbGraphicsWidth
bbGraphicsHeight
bbGraphicsDepth
bbEndGraphics
bbVWait
bbScanLine
bbTotalVidMem
bbAvailVidMem
bbSetGamma
bbUpdateGamma
bbGammaRed
bbGammaGreen
bbGammaBlue
bbPrint
bbWrite
bbInput$
bbLocate
bbCls
bbPlot
bbLine
bbRect
bbOval
bbColor
bbClsColor
bbOrigin
bbViewport
bbGetColor
bbColorRed
bbColorGreen
bbColorBlue
bbText
bbLoadFont
bbSetFont
bbFreeFont
bbFontWidth
bbFontHeight
bbStringWidth
bbStringHeight
bbLoadImage
bbLoadAnimImage
bbCreateImage
bbMaskImage
bbImageWidth
bbImageHeight
bbSaveImage
bbFreeImage
bbDrawImage
bbDrawBlock
bbDrawImageRect
bbDrawBlockRect
bbTileImage
bbTileBlock
bbHandleImage
bbMidHandle
bbAutoMidHandle
bbImageXHandle
bbImageYHandle
bbCopyImage
bbGrabImage
bbImageBuffer
bbScaleImage
bbResizeImage
bbRotateImage
bbTFormImage
bbTFormFilter
bbRectsOverlap
bbImagesOverlap
bbImagesCollide
bbImageRectOverlap
bbImageRectCollide
bbSetBuffer
bbGraphicsBuffer
bbLoadBuffer
bbSaveBuffer
bbReadPixel
bbWritePixel
bbCopyPixel
bbCopyRect
bbLockBuffer
bbUnlockBuffer
bbReadPixelFast
bbWritePixelFast
bbCopyPixelFast
bbCountGfxModes
bbGfxModeWidth
bbGfxModeHeight
bbGfxModeDepth
bbGfxModeExists
bbCountGfxDrivers
bbGfxDriverName$
bbSetGfxDriver
bbLoadSound
bbPlaySound
bbFreeSound
bbLoopSound
bbSoundPitch
bbSoundVolume
bbSoundPan
bbPlayMusic
bbPlayCDTrack
bbStopChannel
bbPauseChannel
bbResumeChannel
bbChannelPitch
bbChannelVolume
bbChannelPan
bbChannelPlaying
bbOpenMovie
bbCloseMovie
bbDrawMovie
bbMovieWidth
bbMovieHeight
bbMoviePlaying
bbGetKey
bbWaitKey
bbKeyDown
bbKeyHit
bbFlushKeys
bbMouseX
bbMouseY
bbMouseZ
bbMouseDown
bbMouseHit
bbGetMouse
bbWaitMouse
bbShowPointer
bbHidePointer
bbMoveMouse
bbMouseXSpeed
bbMouseYSpeed
bbMouseZSpeed
bbFlushMouse
bbJoyType
bbGetJoy
bbJoyDown
bbJoyHit
bbWaitJoy
bbFlushJoy
bbJoyHat
bbJoyX
bbJoyXDir
bbJoyY
bbJoyYDir
bbJoyZ
bbJoyZDir
bbJoyU
bbJoyUDir
bbJoyV
bbJoyVDir
bbJoyYaw#
bbJoyPitch#
bbJoyRoll#
bbGraphics3D
bbDither
bbWBuffer
bbAntiAlias
bbWireFrame
bbHWMultiTex
bbRenderWorld
bbUpdateWorld
bbCaptureWorld
bbClearWorld
bbTrisRendered
bbCreateCamera
bbCameraViewport
bbCameraClsMode
bbCameraClsColor
bbCameraRange
bbCameraZoom
bbCameraProjMode
bbCameraFogMode
bbCameraFogColor
bbCameraFogRange
bbCameraProject
bbProjectedX#
bbProjectedY#
bbProjectedZ#
bbEntityInView
bbAmbientLight
bbCreateLight
bbLightRange
bbLightColor
bbLightConeAngles
bbCreatePivot
bbCreateCube
bbCreateSphere
bbCreateCylinder
bbCreateCone
bbCreatePlane
bbCreateMirror
bbCopyEntity
bbLoadTexture
bbLoadAnimTexture
bbCreateTexture
bbFreeTexture
bbTextureBlend
bbTextureCoords
bbScaleTexture
bbPositionTexture
bbRotateTexture
bbTextureWidth
bbTextureHeight
bbTextureBuffer
bbTextureName$
bbGetBrushTexture
bbTextureFilter
bbClearTextureFilters
bbSetCubeFace
bbSetCubeMode
bbCreateBrush
bbLoadBrush
bbFreeBrush
bbBrushColor
bbBrushAlpha
bbBrushBlend
bbBrushFX
bbBrushShininess
bbBrushTexture
bbGetEntityBrush
bbGetSurfaceBrush
bbCountGfxModes3D
bbGfxMode3D
bbWindowed3D
bbGfxMode3DExists
bbGfxDriver3D
bbGfxDriverCaps3D
bbHWTexUnits
bbVectorYaw#
bbVectorPitch#
bbTFormPoint
bbTFormVector
bbTFormNormal
bbTFormedX#
bbTFormedY#
bbTFormedZ#
bbPositionEntity
bbMoveEntity
bbTranslateEntity
bbEntityX#
bbEntityY#
bbEntityZ#
bbRotateEntity
bbTurnEntity
bbPointEntity
bbAlignToVector
bbEntityRoll#
bbEntityYaw#
bbEntityPitch#
bbGetMatElement#
bbScaleEntity
bbEntityParent
bbGetParent
bbCountChildren
bbGetChild
bbFindChild
bbShowEntity
bbHideEntity
bbEntityAutoFade
bbEntityOrder
bbFreeEntity
bbEntityColor
bbEntityAlpha
bbEntityShininess
bbEntityTexture
bbEntityBlend
bbEntityFX
bbPaintEntity
bbCollisions
bbClearCollisions
bbEntityType
bbGetEntityType
bbResetEntity
bbEntityRadius
bbEntityBox
bbEntityCollided
bbCountCollisions
bbCollisionX#
bbCollisionY#
bbCollisionZ#
bbCollisionNX#
bbCollisionNY#
bbCollisionNZ#
bbCollisionTime#
bbCollisionEntity
bbCollisionSurface
bbCollisionTriangle
bbEntityPickMode
bbLinePick
bbEntityPick
bbCameraPick
bbPickedX#
bbPickedY#
bbPickedZ#
bbPickedNX
bbPickedNY
bbPickedNZ
bbPickedTime
bbPickedEntity
bbPickedSurface
bbPickedTriangle
bbLoadMesh
bbLoadAnimMesh
bbLoaderMatrix
bbCopyMesh
bbCreateMesh
bbAddMesh
bbFlipMesh
bbPaintMesh
bbLightMesh
bbFitMesh
bbScaleMesh
bbRotateMesh
bbPositionMesh
bbUpdateNormals
bbMeshesIntersect
bbMeshWidth#
bbMeshHeight#
bbMeshDepth#
bbMeshCullBox
bbCountSurfaces
bbGetSurface
bbCreateSurface
bbPaintSurface
bbClearSurface
bbFindSurface
bbAddVertex
bbAddTriangle
bbVertexCoords
bbVertexNormal
bbVertexColor
bbVertexTexCoords
bbCountVertices
bbCountTriangles
bbVertexX#
bbVertexY#
bbVertexZ#
bbVertexNX#
bbVertexNY#
bbVertexNZ#
bbVertexRed#
bbVertexGreen#
bbVertexBlue#
bbVertexAlpha#
bbVertexU#
bbVertexV#
bbVertexW#
bbTriangleVertex
bbEntityClass$
bbEntityName$
bbNameEntity
bbEntityID
bbSetEntityID
bbCaptureEntity
bbEntityVisible
bbEntityDistance#
bbDeltaYaw#
bbDeltaPitch#
bbAnimate
bbExtractAnimSeq
bbAddAnimSeq
bbSetAnimKey
bbLoadAnimSeq
bbSetAnimTime
bbAnimSeq
bbAnimLength
bbAnimTime#
bbAnimating
bbCreateTerrain
bbLoadTerrain
bbTerrainDetail
bbTerrainShading
bbModifyTerrain
bbTerrainSize
bbTerrainHeight#
bbTerrainX#
bbTerrainY#
bbTerrainZ#
bbCreateSprite
bbLoadSprite
bbSpriteViewMode
bbRotateSprite
bbScaleSprite
bbHandleSprite
bbLoadMD2
bbAnimateMD2
bbMD2AnimTime
bbMD2AnimLength
bbMD2Animating
bbLoadBSP
bbBSPAmbientLight
bbBSPLighting
bbCreateListener
bbEmitSound