Grey Alien BlitzMax Game Framework V1.04 out!

Miscellaneous Forums/Blitz Showcase/Grey Alien BlitzMax Game Framework V1.04 out!

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Hi everyone, I'm proud to announce the release V1.04 of the Grey Alien BlitzMax Game Framework.

In case you didn't know, the Game Framework is a collection of extremely useful source code files that you can use to produce professional quality games. For more information please see my NEW web page about the framework:

http://www.greyaliengames.com/framework.php

Please take a look because hopefully it will answer your questions. If you think that I can improve the information on the web page then please let me know. I'd love to hear from existing customers too if you think that I should add some more information to help people decide to get the framework. In fact if any of you have any testimonials that you'd let me put on the site (with your name and country) then please let me know as I know that testimonials really help. Thanks! :-)

Here's a quick link to the AOTMG V0.44 demo but you can also find links to Speed Run and Make Me Happy on the webpage:

*DEMO* www.greyaliengames.com/aotmg/aotmg044.zip (6.22Mb)





This version has many improvements and the next version should have support for "proper" Vista directories and also full Mac support (the framework already compiles on Mac but I am planning to convert some special Win32 features over to Mac).

List of major changes (there are loads of small changes, if you want me too list them then I will do):

CommonTypes:
	- *** IMPORTANT. Added TGame.Init() and moved all the code
	  from TGame.New() into it. This means that you MUST call
	  Game.Init() after your Game = New TGame line because
	  there is no longer a New() method which sets up the Game
	  type.  Why?  Because now you can extend the TGame type and
	  when you call New in your extended type it won't call the
	  default TGame init code (which used to be in TGame.New()).
	  Therefore you can write your own TGame.Init() and do stuff
	  like create your own ini files etc.
	- *** Listed all types in alphabetical order (except TGame
	  which is still at the top).
	- *** Gave each type a one line description and tidied up
	  comments.  Pasted all the descriptions into an HTML file
	  called CommonTypes.html.  Check it out.
	- *** Jitter Correction added to timing code. See Version
	  History at the bottom of commontypes.bmx for more info.
	- *** At the request of Space Ace, KeyHit and KeyDown no
	  longer share the same Keys[] array.  Keydown now logs
	  state changes in the KeyStates[] array.  This now
	  works more like BRL's PolledInput.  Please check your
	  games/apps to make sure that they still behave the same
	  (mine do).
	- *** Added fields to TSplashScreen to support a
	  scrolling/zooming background behind the logo.
	- *** The sound driver is automatically changed to OpenAL
	  for Windows Vista because it's more stable than FreeAudio.
	- *** Added TGame.ChangeSoundDriver and a SoundDriver field
	  which is also shown on the debug display.  WARNING: If you
	  have created any sound channels BEFORE TGame.New() is
	  called or you have some global variables or types which
	  use AllocChannel() you'll need to alter their code so that
	  the channels are created after TGame.New() is called OR
	  comment out the ChangeSoundDriver() call in TGame.New.
	- *** TButton now supports an expand on mouse over effect
	  via the ScaleOnMOMax field.  It looks pretty neat.  Check
	  it out!
	- *** Added Precache() to TImageBank, TMenu and TButton.
	  Very useful because it sends the images to VRAM for
	  quicker drawing of the first frame.
	- *** TFade now supports a panning, zooming background that
	  can be faded in and out quicker than the main logo.
	- *** Added TParticleGenerator and TParticleGeneratorList.
	- *** Added UserFunction(p:TParticle) to TParticlePhase.
	  You can set this to your own function and it will get
	  called when the phase ends, very useful for making stuff
	  happen when the particle hits its destination for example.
	- *** Added AnimStoppedFunction(TSprite) to TSprite. It's an
	  optional user-defined function that will be called when
	  the animation finishes.  Useful for triggering something
	  else.
	- *** Added TButton.MouseOverUserFunction%() field.  This is
	  an optional user-defined function that is called when the
	  player moves the mouse over the button.  You can put any
	  special code you want in here (perhaps to activate some
	  special effects) and if you return a non-zero value the
	  Mouse Over state will not be set and nor will button
	  clicks be accepted.
	- *** Added TGame.TerminatedUserFunction%() field.  This is
	  an optional user-defined function that is called when the
	  player clicks X in the top right of the window.  You can
	  put any special exit code in here and if you return a
	  value of 1 the termination will be aborted!

	CommonCode:
	- *** Listed all CommonCode functions in alphabetical order.
	- *** Gave each CommonCode function a one line description
	  and tidied up comments.   Pasted all the descriptions into
	  an HTML file called CommonCode.html.
	- *** IMPORTANT: cctg_DrawImageRect() renamed to
	  ccDrawImageRect().  Check your code.
	- *** Added ccBezier()
	- *** Added ccSplitStringIntoLines() for spliting text read
	  with LoadText into an array of strings.
	- *** Added ccFastRand by by Manel Ibáñez (big speed
	  improvement), and also ccFastRandSeed().
	- *** Added ccGetVersionString() by Dave Kirk.  Returns a
	  string containing the OS version.
	- *** Added ccGetMemoryStatus()



If you haven't received V1.04 yet then please let me know!

Once again thanks to my loyal customers for your continued support.