Dark Bit Factory & Gravity

PROGRAMMING => General coding questions => Topic started by: Zeb on February 21, 2011

Title: Blitz - which version?
Post by: Zeb on February 21, 2011
Going by the name of it I thought BlitzMax was the best to go for now I'm not sure.

I'm not into writing flashy ground breaking demos. I'd like to play with maths routines to help get my head around maths a bit more. Maybe write some utilities so if any of them can make GUI apps for Windows that'd be good.

Just what are the main differences with 3D and Max?
Title: Re: Blitz - which version?
Post by: va!n on February 21, 2011
Afaik Blitz and Blitz3D developing has stopped! So BlitzMax is the latest version of the Blitz package! Afaik with BlitzMax you can easy use OOP, use and write your own libs, DX and OGL support, GUI stuff and more...

From the website:

Code: [Select]
Blitz 3D:
======

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.

And a whole lot more...

Code: [Select]
Blitz Max:
=======

Overview
BlitzMax is the new, next generation game programming language from Blitz Research. BlitzMax retains the BASIC roots of Blitz3D and BlitzPlus, but adds a ton of cool new features and abilities.

Enhanced BASIC language
BlitzMax is BASIC...but with a few twists, including:

    * Function pointers
    * Fully dynamic arrays
    * Inheritance and polymorphism
    * 'By reference' function parameters
    * Byte, Short, Int, Long, Float and Double numeric data types
    * Array and string slicing
    * Flexible 'collection' system for dealing with linked lists etc
    * Low level pointer handling
    * UTF16 strings
    * The ability to 'Incbin' binary data and access it as easily as if it were a regular file
    * External language support for interfacing with C/C++/ObjectiveC or assembly code


Multiplatform support
BlitzMax has been designed from the ground up for multiplatform support, and BlitzMax programs can be compiled for Windows, MacOS X and Linux. The BlitzMax license is 'all in one' - buy BlitzMax once and run your programs on all three platforms!

Modular design
BlitzMax is largely based around the idea of modules, collections of commands stored in special files. You can add your own modules to the system, allowing you to cleanly reuse code in your own projects. Modules are also a great way to distribute libraries of commands, and Blitz Research have many weird and wonderful modules lined up for future release!

Easy to use 2D command set
BlitzMax includes the Max2D module which contains a set of very easy to use 2D commands. On MacOS X and Linux, Max2D uses the OpenGL API, while on Windows PCs you have the option of using either the OpenGL or DirectX APIs. Both OpenGL and DirectX use 3D hardware to draw graphics to the screen, allowing for advanced effects such as realtime blending, rotation and scaling.

Intelligent build system
BlitzMax allows you to split a project up into multiple source files which can be pre-compiled to massively reduce development time. This process is handled automatically by the included BMK ('Blitz make') utility and is completely transparent to the developer.

IDE and Debugger
The BlitzMax package includes an 'integrated development environment' (IDE), which is used to enter your programs, and a debugger for tracking down bugs.

Direct OpenGL support
Thanks to the OpenGL module, you can use BlitzMax for direct OpenGL programming. Writing an OpenGL program is now as simple as:

GLGraphics 640,480

While Not KeyHit( KEY_ESCAPE )

glClear GL_COLOR_BUFFER_BIT

glBegin GL_TRIANGLES
glVertex2i 0,1
glVertex2i 1,-1
glVertex2i -1,-1
glEnd

Flip

Wend

In addition, a module based on the popular 'Glew' library provides support for all OpenGL extensions.

Tons of source code included
Most BlitzMax modules are written in...BlitzMax! When you buy BlitzMax, you will receive the source code to all the BlitzMax modules, allowing advanced users the opportunity to enhance the BlitzMax system, or tweak it for their own needs.

Title: Re: Blitz - which version?
Post by: Zeb on February 21, 2011
OK so if production has stopped are they worth learning or is there something else in the pipeline?

Not sure I want to spend ages learning something that's already expired.
Title: Re: Blitz - which version?
Post by: va!n on February 21, 2011
BlitzMax is the latest version and i havent heard anythink that BlitzMax developing has been stopped. BlitzBasic in generall is a simple and nice basic language to learn coding and to produce some nice stuff! Its your choise what version of Blitz you want to learn and code!

Probaly i would prefer to use BlitzMax, because its the latest version, you have a lot of flexibilty like OOP, OGL, DX, platform independent and more... Maybe one of the blitz gurus here can tell you his opinion ^^
Title: Re: Blitz - which version?
Post by: Zeb on February 21, 2011
Thanks - I'm used to the OOP after playing with PHP for a few years. Coding assembler for several years has given me some invaluable knowledge with loads of stuff. If you'd have told me years ago I'd go back to BASIC I'd probably have laughed :)

I did try learning C (either C# or C++) but was unable to find anything remotely useful. Source code didn't compile and nothing worked so I packed that lot in.
Title: Re: Blitz - which version?
Post by: Hotshot on February 21, 2011
Blitz 3D is easiest plus it got Great Document...
Blitz 3D can do 2D commands and also 3D Commands as you both world to it :)

BlitzMax is abit Advance but the Document is crap even thought there is lots of BlitzMax Tutorials on Blitzbasic website

There is Game Programming for teen Third Edition for BlitzMax  :)

 :cheers:
Title: Re: Blitz - which version?
Post by: va!n on February 21, 2011
Hotshot, please correct me when i am wrong.... but afaik Blitz3D has NO support for creating apps with real system GUI... (sure, you can code your own custom GUI). With BlitzMax, Zeb could create / produce some nice 2D, 3D and even system GUI stuff.

Since Blitz3D developing has stopped and has some small bugs afaik, BlitzMax would make a lot more sence to start with - even its the latest version of the BlitzBasic serie and probaly Mark will still bring new version / updates!?
Title: Re: Blitz - which version?
Post by: Hotshot on February 22, 2011
Quote
Hotshot, please correct me when i am wrong.... but afaik Blitz3D has NO support for creating apps with real system GUI... (sure, you can code your own custom GUI). With BlitzMax, Zeb could create / produce some nice 2D, 3D and even system GUI stuff.

Since Blitz3D developing has stopped and has some small bugs afaik, BlitzMax would make a lot more sence to start with - even its the latest version of the BlitzBasic serie and probaly Mark will still bring new version / updates!?

BlLITZ 3D have 2D Commands and 3D Commands but No GUI as you have do it Manual(mean hard coding of GUI). I think Blitz 3D does have GUI Library Add on called Blitz3D Userlibs Website where they have GUI Wrapper for it...

BlitzPlus have 2D Commands and GUI Commands but No 3D Commands

BlitzMax Have 2D Commands but it also have 3D Library add on for your choice plus GUI Library add on for your choice too........

For Future used.....I would say BlitzMax but BlitzMonkeys(it will be like BlitzMax 2) is coming out soon which will have HTML5, Flash, XNA and Android... and there more to it too.
Title: Re: Blitz - which version?
Post by: zawran on February 22, 2011
I have used Blitz3D and BlitzPlus a lot, and while they are great basic languages, once I got into BlitzMax I never looked back. BlitzMax is a really powerful language. And while the documentation might be on the light side, it is not all that difficult to get into. I would not advise anyone these days to buy anything but BlitzMax because you might as well take advantage of being able to use the advanced features it offers and add to that the fact that it is multiplatform. When you purchase it you will be able to compile for windows, linux and mac.

They offer a free Gui module which will enable you to make professionel looking applications if you want to use it for making tools. There are a lot of module available for free by the users of the language and several different 3D modules if you want to play with 3D. Since it is modul based, you will only have to include code from modules you actually make use of, which cuts down on the size of the compiled exe file.

You can either use the supplied 2D module, or use dx or opengl directly, and it will also work directly with C code if you want it to. It just gives you a ton of options that you would not have with the older languages. It is still being actively developed on, and there is a ton of code examples on the forum plus a lot of active users to ask should you get stuck somewhere.

It is true that they are working on a new language, but it has been in development for a long time now, and it will be something that is targeted mainly towards mobile platforms as I see it. When it is eventually released it will likely be very short on documentation, which is a problem they had back when BlitzMax was released as well. BlitzMax is a lot better though now than it used to be. And a lot of users have also made some very good tutorials to get one started.
Title: Re: Blitz - which version?
Post by: Shockwave on February 22, 2011
I can't comment on Blitz Max because I have never used it.. If you were looking to build something to release then Bmax would be the best one.

If you're looking for something to ease you gently into programming or a language that you can use to make quick prototypes of things, blitz 3d gets you started just about the most quickly of any language I have ever used and it's friendly to use too.

I've spent many a happy hour with it.
Title: Re: Blitz - which version?
Post by: TinDragon on February 26, 2011
Will throw my view in since I have blitz3d and blitzmax.

Blitz 3d is aimed squarely at making dx7 powered games, while it has been used to make apps its not what it was made for so you have to work alor harder to make gui based applications. Its also very old now so while it does work on alot of hardware its stuck in dx7 land unless you start using 3rd party dll's via a rather crude system.

Blitzmax is a much more upto date language, can be coded with all the OOP stuff or not as its up to you as the coder, it has alot of included stuff for games as well but there are gui modules both free and for sale, there's a free implementation of the wx gui system thats pretty impressive. There's tons of free modules out there to do all sorts of things to expand the language and a free clone of the blitz3d  "3d" command set in minib3d which uses opengl making it cross platform which is another plus point for bmax, it has linux & mac versions which you get when you buy it on top of the windows version, so there are options to make cross platform apps should you want to.

Since buying blitzmax I have never gone back to blitz3d for anything other than to convert some code over to use in blitzmax itself or to fix any of my old software. There really is no need. I have also delved deep into bmax insides and created my own code to make windows, small opengl code and even tinkered with d3d code, based on c/c++ examples with minimal translation to native bmax code.  I even got Ferris c/c++ softare synth playback code to compile in a bmax app with out even changing it from c/c++ code, just included it in my bmax code and called it when needed.

So for my money blitzmax if you want a blitz product to code with as its the best value for money of the 2 imho.  :)