Grey Alien Blitzmax Game Framework V1.06 out NOW!

Miscellaneous Forums/Blitz Showcase/Grey Alien Blitzmax Game Framework V1.06 out NOW!

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

The Game Framework is a well-respected collection of extremely useful source code files that you can use to produce professional quality games such as Fairway Solitaire (A huge top 10 hit on Big Fish Games) and Holiday Bonus (A highly popular Christmas themed casual game). Of course you don't have to make casual games with it, you can make shooters, platformers, educational tools or whatever takes your fancy! The framework is compatible with Windows and Mac OSX.

For more information please see my web page about the framework and don't forget to check out the FAQ:

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

Here's a quick link to the AOTMG V1.06 demo for PC and Mac. You can also find links to Speed Run and Make Me Happy demos on the framework web page:

*Windows DEMO* (6.39Mb)
*Mac OSX DEMO* (6.29Mb) (Universal Binary)



This version has *many* improvements. It's probably my biggest release yet. The main point to note is that it is now 100% Vista and Mac OSX compatible. Also I've added Bitmap Font support and support for reading in Unicode text files for game text in other languages. Oh and I've added a scrollbar, a tooltip, fancy dialog transitions, powerful slideshow (watch the intro in Fairway Solitaire to see what I mean), and more! Here's a brief list of the major changes (many more were made and are detailed in each source code file):

	- *** The framework is now 100% Windows Vista compatible.
	- *** The framework is now 100% MAC OSX compatible.
	- *** The sound driver is now automatically changed to
	  OpenAL on non-Windows XP machines e.g. 98/Me/Vista.
	- *** Added TBitmapFont. Extremely useful.  Supports
	  Unicode characters as well.  Several Types have been
	  updated to use TBitmapFont such as TFont, TLabel, TDialog,
	  TTextInput and TListBox.
	- *** Added TGameText.  This is very useful for reading a
	  text file containing lots of game text (perhaps for
	  localisation purposes). You can the find the text
	  you want as a String array or just one long String with CR
	  LF pairs separating thel ines.  Unicode files are also
	  supported for special language characters e.g. Cyrillic.
	- *** Added TScrollBar.
	- *** Added TToolTip.
	- *** Added TLine, TCircle and TVector.
	- *** Added TTransitionEffect, TSlide and TSlideShow.
	- *** Added TValue and TValueList.
	- *** TDialog can now transition in and out.  It can fade
	  the screen during the transistion and also can fade itself
	  in and out.  TDialogOK and TDialogYesNo support this
	  functionality, but not TDialogTextInput and TPlayerManager
	  (yet).  You can also specify a channel to fade out when
	  TDialog fades out.
	- *** Added a Channels:TChannelArray to TGame along with
	  ChannelsCreate() and ChannelsKill().  Use
	  Game.Channels.PlayGameSound() to play a TGameSound.  I
	  advise using the Channel Array for your own games instead
	  of manually allocating and stopping your own channels
	  because if you forget to stop your own channels you'll
	  get a memory leak and clog up sound card channels.
	- *** TButton and TListBox now use Game.Channels() if it
	  exists.
	- *** Added Game.Kill() to kill the new Channels
	  TChannelArray and some other channels.  You should call
	  this right at the end of your game in CleanUp()
	- ***Added Speech, SpeechVolume, SpeechChannel,
	  SpeechStopped and PausedSpeechState fields to TGame and
	  Speech and SpeechVolume to the ini file and the debug
	  display. Also added numerous methods to support a separate
	  Speech channel.
	- *** Added TGame.UseCorrectPath and TGame.SubPath so that
	  data can be stored in the correct path on Vista (and other
	  OSes if you wish e.g. XP).  You need to use both, SubPath
	  won't be used unless UseCorrectPath is set to 1. Added
	  TGame.SetSubPath() and TGame.ApplySubPath(). If you want
	  these to work properly, you should apply them BEFORE
	  Game.Init() so that the ini is written in the correct
	  location.  See AOTMG.bmx to see how they are used.
	- *** If TGame.UseCorrectPath is set (it is by default),
	  TGame.Init will create a Sub Path (specified by
	  TGame.SubPath) in the correct shared data folder depending
	  on the OS and will give it full access permissions so that
	  it works in Windows Vista.
	- ***Several Types now support scaling! Such as TListBox,
	  TSlider, and TMenu.
	- *** Added TGame.DataInAppBundle.  Set to 1 on MacOS if you
	  want the data folder to be located in the app bundle. I
	  advise this because it makes the game a lot easier to
	  distribute.  Note that you should only store	non-dynanic
	  data (read only) in that folder.  All other dynamic data
	  (read/write) should go in the correct Sub Path (See the
	  TGame.UseCorrectPath Field).
	- *** TMousePointer.UpdateCoords now works on Mac OSX.  This
	  means that the mouse cursor nicely slides in and out of
	  the game window, woo!
	- *** Other Mac OS enhancements/fixes made too.

	- Turned all framework keys into defineable Global
	  variables!
	- Added some more values to the Debug Stats.
	- TDialog can now show a wordwrapped caption
	- Added GraphicPlacement field and gpX, gpY coords to TGame
	  plus a SetGP method. You can use these to allow you to
	  line up a graphic on-screen with the arrow keys and
	  see its coords in the debug display, very useful time
	  saver.

	- Several enhancements/fixes to TParticleGenerator.
	- Several enhancements/fixes to TParticle and TParticleList.
	- Several enhancements/fixes to TSprite.
	- Several enhancements/fixes to TButton and TMenu.
	- Several enhancements/fixes to TProfileManager.
	- Several enhancements/fixes to TDialog and extended types.
	- Several enhancements/fixes to TGame's music code.
	- Several enhancements/fixes to TLoadingScreen.
	- Lots of other little fixes and enhancements too.

	CommonCode:
	- Both WordWrap functions now support TBitmapFonts!
	- Made ccDialogOK support word wrapped messages.
	- Added ccShadowTextWrapped()
	- Added ccRoundFloatToString()
	- Added ccFormatNumber()
	- Added ccDimScreen() and ccDimArea()
	- Added ccCopyImageRect() and ccCopyImageToImage()
	- Added ccGiveDirectoryFullAccess(). Use with Windows Vista
	  to set up a shared data folder!	
	- Added ccVectorAdd(), ccVectorMultiply() and
	  ccVectorSubtract()
	- Added ccClipImageToViewport()
	- Added ccGenericPointInQuad()
	- Added ccCircleLineIntersect() and ccCircleLineIntersect2()
	- Added ccPointToPointDist()
	- Added ccTimeTo12Hour()
	- Added ccRatioToSine180()
	- Added ccGetMusicalNote()
	- Added ccWriteErrors%() and ccErrorPath$()
	- ccRunTimeError will now write the error to a text file!
	  Very useful for customers/testers that fail to write down
	  the error message.
	- Added ccGetDirectXVersion() and ccDirectXVersionIsValid()
	- Added ccDrawOnPixmap()
	- Added ccGetDesktopSize()
	- Added ccGetSharedUserDataFolder() for MacOS.
	- Added ccGetWindowOriginOSX()
	- Added ccGetCursorPosOSX()
	- Added ccGetActiveWindowOSX()
	- Added ccFixMacWindowY() 
	- Also added some less interesting functions and made some
	  other fixes and minor enhancements here and there. Check
	  the version history for more details.



Please Note: If you haven't received an email announcing the release of V1.06 with details of the new forum, then please let me know.

Once again thanks to my loyal customers and super helpful forum members for your continued support! :-)

can it add a minimize button to the window?

Yes in Windows, plus I have a module tweak listen in my forum that does the same on MacOSX. When minimise is clicked the game will minimise and pause and the music will stop. It will resume when the window is maximised again.

well.. i jst ordered this framework thingy - never thought
i would..but seems im gettin old + jst cant be arsed to
reinvent the wheel anymore..
Im impressed with the list of features + im looking forward
to tinkering around with this.. keep up the good work :)

+happy new year..er..a little l8 :p

Thanks! your order has been processed. The feature list is pretty big now and it's very stable, mainly because the framework has been continually improved over the last 20 months.

If i ever get blitzMax, i'll probably be getting this. It looks extremely useful and i've only heard good things about it :o)

Cool. What do you use at the moment then? Blitz3D? I started with BlitzPlus but craved OOP and BMax has that and neat 3D graphics card effects that can be applied to 2D textures. I love it.

I continue to be impressed with this framework of yours. I'd already own it if I weren't still currently in B3D land.

Question: how well does it integrate with any of the current 3d engines (miniB3d, Irrlicht, etc.) available to BlitzMax? Or is it limited to strictly using BlitzMax's 2d abilities?

Well, i'm liking blitzmax's minib3d application. For that reason i'd move to blitzmax, because i liked the blitz3d command set for 3d, and i'm pretty good at using it. Blitzmax's better types would be really cool too. And cross platform is always good.

Just stuck with blitz3d cause i can get results with it. I do realise it's slow though. So i reckon your framework would help me get the most out of blitzmax, along with minib3d :o)

I've never used any of the 3D libraries myself (being stuck in 2D land) however, I have advised a couple of customers how to integrate with them (you simply call any 3D logic/physics in my framework's logic loop and you call any 3D draw commands in my frameworks draw loop). So it should be fine, but I can't guarantee that until I see it with my own eyes. I think I'll ask on the framework forums if anyone has had any luck with 3D. Here's a bit on it from my FAQ:

http://www.greyaliengames.com/framework/faq.html#3D

Argh...you're going to force me to eventually buy this thing. When I do, mark that day on your calendar. :)

@Grey Alien: I always wondered how implementing another system worked. Now I can see how. Okay, I'm in. Once I finish the current B3D game I'll make the switch. Hopefully Flow will be up and running then!

Groovy!

Dustin: Good luck with Bots, I wanna see the finished game soon :-)

Grey Alien: Hah, that makes two of us. Well, if this writer's strike goes on much longer I'll have plenty of free time to complete it!

Oh, are you a screenwriter then or work for movie studios?

My day job is VFX character animator. I'm currently working on animating big, scary, shiny robots for "Terminator: Sarah Connor Chronicles". They got 9 scripts cranked out before the strike. And we're quickly getting close to being done with them.

wow, sounds cool. Hope the movie is decent!

***IMPORTANT***: I'm going to Austria for a week with my family to visit some friends from 16th-23rd Jan 2008. I won't be able to process any sales in that period but will be process them as soon as I get back. If you place your orders today and tomorrow (Mon/Tue) up to about 10PM GMT, I'll process them before I go away. Thanks for your patience.

Jake... when you get back... I have been trying for over a week now to join your forum. It says it is sending me a confirmation email, but I never get the email (it is not in spam holding on the server either). I've emailed you twice about the problem (last weekend and yesterday) at the info@grey... address but didn't realize you've been on vacation until I came here.

Thanks,
Mark.

I think he turned off automatic forum authentication because the forum was getting hit with spammers. He should be back soon.

Didn't get any mail from you at least not that I would have realized it.
the latest I have was the pre-release 1.05 beta you sent me when I bought it.

Hi all, yeah I'm back from my holiday now. I haven't yet turned off automatic authentication (I don't know how) and you should have got an email. I'm not sure it's 100% reliable for some reason, don't know why. Anyway, I believe I've sorted it for you both now.

I'm going to the Casuality 2008 conference in Amsterdam for 4 days from Feb 5th to Feb 8th so won't be able to process sales or help requests until I get back. Thanks for your patience.

OY! process my account, lol :D

I did within about 1 minute of getting your email ;-) Welcome aboard dude!

PLEASE NOTE: I am going away for a week from Friday 11th April to Friday 18th April and will not be able to process any Framework sales until I return. Many thanks for your patience.

@Dustin, that would explain why the series just seemed to stop dead after nine episodes, was getting really good. I hope they carry on making more.

@Grey, I might be getting max soon so you could potentially get a sale off me, I like fairway solitare and have ideas for a few 2D games of my own.

I would probably purchase this and save my programmer a lot of time, but alas it lacks linux support. I feel that a casual game developer can not leave anyone behind and this framework does just that.

Someone at Grey's forum has it running on linux.

andy_mc: Cool. BMax is great for sure and easy (and fun) to make 2D games in. Good luck.

EnigmaticGames: Yeah as zawran says, although not officially supported on Linux, several of my customers have got it working on Linux with hardly any effort. Mac is fully supported and I've experienced Mac conversion rates at twice the level of PC conversion rates, so that's definitely worth doing but I don't think Linux is particularly viable for selling Casual games (yet), although it may be more so for Retro/hard-core games...

I'd limited success with getting BMax compiling within VMWare, but now I see that the framework will work (although unsupported) within Linux, I might fire up my VMWare copy of Linux Fedora.

Hi all, I'm flying to Seattle today to visit BFG (who I make games for). I'll be away for a week so will not be able to process sales or support queries. Also when I get back I have to have a minor operation and will be out of action for a few days. Thanks for your patience.

Hi all, I'm away on holiday for a week from Fri 18th to the following Friday so will not be able to process any sales or support requests until I return.

Lucky bunny,

That explains it... :)

IPete2.

Got your email, will reply soon :-) Was sunny ALL week, we were in a holiday cottage 20m from the beach in Cornwall - lush!

Where about's in Cornwall? Just back from a stag in Newquay myself. I wouldn't recommend reef fishing after 10 pints ;)

Glad you'd a good holiday Grey, just been peeking at your latest updates:-

This version has *many* improvements. It's probably my biggest release yet. The main point to note is that it is now 100% Vista and Mac OSX compatible. Also I've added Bitmap Font support and support for reading in Unicode text files for game text in other languages. Oh and I've added a scrollbar, a tooltip, fancy dialog transitions, powerful slideshow


my attempts at running BMax within a VMWare copy of Linux tasks my CPU too much, my long term plan is too maybe try ubuntu & BMax. Although BRL's latest updates have improved BMax ability to run even within a VMWare copy of Linux... but I digress.

@Dustin:
I continue to be impressed with this framework of yours. I'd already own it if I weren't still currently in B3D land.


I moved from B3D land to BMax due to Grey's framework and highly recommend it... even before trying v1.06. I still pop back to B3D with a bit of JV-ODE but I've only released one product & that was with Grey's framework. As someone well known says around these parts - finish your product or I'll shoot maself!

Stevie G: Trevone, near Padstow. Nice cove where the tide goes out really far exposing rockpools etc.

@Blitzplotter: thx for the kind words.

@Grey, I've surf ski'd at padstow in the past (its like surf canoeing but you don't sit in the canoes, you sit on it - brilliant fun, and less easy to drown which is always good).

I'm of to Norfolks version of Cornwall in 1 weeks time.... Cromer, Woo Hoo!

That surf skiing sounds mad. Enjoy your break!

Couple of things - what is limiting this from Linux compatibility? Is it only the fact that you don't run Linux/can't test?

Also, how easy would it be to opt to use the B3DSDK with this... I'm thinking I might need to buy B3DSDK for the old 2D support.

Yes I don't have a Linux setup so I can properly test it and say "Yes it works" although some Framework users have got it working on Linux fine. There's a linux thread on the framework forum too. Basically it should work fine but there may be a few tiny details that don't work because I use Windows and Mac API calls, and I would probably need to use an equivalent Linux call.

As for B3DSDK, I don't know enough about it but other people have got the framework working with other 3D engines no problems, so I don't forsee an issue with this.

Ive got my Framework games working with Linux nearly straight away (I had some file calls in different cases) apart from the sound not playing (which needs changing for Linux)...

Doesn't FreeAudio work in Linux? That's the default that the Framework uses.

All right another question. After reading the feature list in your FAQs I must say I am very impressed. Lots of fiddly little crap I've coded myself in the past that needs to be redone for Max now...

I can see that quite possibly a lot of sswifts' sprite system (which I also had my eye on) may overlap features in the framework, which I hadn't initially expected the framework to cover. I was wondering if you would care to compare and explain any features that sswifts system might still have over yours, being that it is probably more targeted (for sprite stuff)?


Doesn't FreeAudio work in Linux? That's the default that the Framework uses.



Dont know... I didnt spend too much time with it - Im not a Unix kind of guy - it took me a while just to get BlitzMax to work on it, when I did I loaded my games fixed the incorrect file calls and ran it - no sound... then formatted the drive and put Vista on it so I could that test that ;-)

@Hotcakes: I've got sswift's system and had a look at it. He has a physics system which my framework does not have. Apart from that the functionality is much the same, although I may have some things he doesn't have and vice versa (I haven't seen his system for a while though). Possibly his system is more optimised because my system offers a fee more options, but I couldn't say for sure unless tests were done. My TSprite type is extended into TParticle and there is a whole particle engine to manage them - naturally this is very useful. TSprite is also extended into TButton which is contained and managed by a TMenu class, again this is invaluable for games and will save you many hours of programming alone, plus it is comprehensive with many cool options. Probably I should stop calling my framework a "framework" and start calling it an "engine" now because it has so many extras beyond a basic framework. Anyway, I hope you enjoy using it! :-)

therevills: OK thanks for the info,

Ooh a physics thing. Not hard to roll basic physics on your own but it sure would save some time. Guess I'll just go spend happy and buy the both of them =] I like supporting sswifty anyways...

I did find the physics thing quite CPU intensive but maybe that's just the way I was using it (I used it in a demo of his which had some bouncing objects and I hooked it up to the framework - check the docs for how I got it to work).

I've just moved to Vancouver and my PC has not yet arrived, so I can't receive emails and process framework orders for a few more days. Sorry for any inconvenience.

@Grey Alien: I purchased your framework a week ago. I've tried emailing a couple of times but haven't received any response. Please could you give me access to the downloads?

Have you read the post above you psychris?

Yeah, but I noticed that Grey Alien has been pretty active on this forum over the past week, after my PayPal order. I only posted here hoping to get his attention because I haven't had any luck emailing directly or posting on the framework forum.

GA's a good guy and I'm sure you'll have access in a few days or sooner. You just happened to purchase the frame work at the worst time probably. Right smack in the middle of him moving, starting a new job, setting up a new pc, etc, etc. ;)

Thanks MGE, that's reassuring. I don't wish to come across as impatient, I was just concerned more than anything else.

EDIT: And as if by magic, I now have access. Thanks GA!

Yeah I'm sorry about that. My PC is out of action and I process the sales on that. I can access the Blitz forum via my Macbook Pro and wi-fi so I carried on doing that fine :-)

Are you still taking orders on this?

(Your info page still has your UK address for cheques, btw)

Yes I am. Thanks for the info about the address error, will fix tonight.

The framework does not contain the projection matrix code, that's in my BFG only framework stuff. But it does contain a UserResumeFunction() which I am using after focus returns to the game to call some projection matrix code to reset it - you could use your own projection matrix and call your own reset code via that function. Of course I'm making an assumption that's what you were interested in the framework for but I could be totally wrong :-) Probably at this stage rewriting your game code to fit in the framework would be a big pain but there's plenty of useful code in there you can rip out and re-purpose!

I'm interested in it for various reasons. I'm tired of redoing the same stuff over and over. I don't imagine I'd use much/any of it as you have it. Rather rip bits out and put it where I want it.

Magicville's on hold for now anyway, but we'll see after Christmas.

I'm in the same boat as GFK regarding GA's framework. I'm only using bits and pieces as well. (mutex, vista folder access) It's worth the price just to gain access to a wealth of code that's proved itself to be stable.

@GfK: If you need you'd better get it soon, as something is in the pipeline...

@GfK: If you need you'd better get it soon, as something is in the pipeline...
My hands are financially tied right now. I'll have to take my chances as I can't do anything this side of Christmas.

Stupid Christmas. :/

I'll buy you a licence if you want, then you can paypal me the cash after x-mas.

Nah man don't do that! But thanks anyway!

It's x-mas. I'm feeling generous.

It's nice that people feel kind at Christmas, now to keep that spirit all year long! :-)

"If you need you'd better get it soon, as something is in the pipeline... "

Details please. Thanks.

I'll post a thread about it later today or tomorrow/weekend.

I finally got off my duff and ordered a copy today. Looking forward to messing around with it :)

Congrats Ratboy, you are my final customer!

http://www.blitzbasic.com/Community/posts.php?topic=82042

Yay! :D

All the framework stuff was the part that made my brain glaze over when I'd tried to finish games in the past, so I'm glad I slipped in under the wire here.