New Grey Alien BlitzMax Game Framework V0.99!

Miscellaneous Forums/Blitz Showcase/New Grey Alien BlitzMax Game Framework V0.99!

Yes, this release is a big one with tons of new improvements including:

	- Level Complete and Game Finished screens.
	- Level and Target shown on HUD.
	- Intro and Outro text animations added to game screen.
	- DirectX/OpenGL driver toggle.
	- 10 levels that each get harder.
	- Made high scores slide onto screen and flash by using
	  a new TSlideLines type.
	- Level Stats slide onto the Level Complete screen and
	  flash.
	- Game Over and Game Finished screens now show total
	  score, kills and time.
	- Moving shadows based on light source added to Options
	  screen.
	- Options screen now has a background.
	- Level Complete screen has scrolling background.
	- Shadows on title screen menu and header.
	- Remixed title screen music.
	- Add a zooming/scrolling Level Select screen that shows
	  levels unlocked during the game and allows the player
	  to play previous levels.
	- Game Over screen now has fancy text header.
	- Option to apply threshold to Fixed Rate Logic so that
	  game slows down instead of jerking to catch up after
	  long delay.
	- Option to switch off Fixed Rate Logic (for debugging)
	- Added Shadow parameter to all ccDrawText functions.
	- Text, Buttons and Sprites can now be drawn with an
	  alpha-blended shadow at any angle/size.
	- The priority of the game thread in full-screen and
	  windowed mode can be controlled separately via the .ini
	  file.
	- Space or Enter now actives OK buttons, and Play Game on
	  the Title Screen, and the Click Here To Play button on
	  the Loading Screen.
	- Fades can be switched off in code for instant
	  transistions.
	- TAnimation type added for multi-phase animations.
	- TButton now supports a greyed-out disabled image.
	- TSineCounter provides nice smooth ratios for movement or
	  glowing etc.
	- Disabled PolledInput and changed the input code to be
	  event-based to harmonise with the OS more and to fall in
	  line with recommendations made on the Blitz forums.
	- Changed in-game music for a much smaller file.
	- Numerous small fixes and enhancements.


Try the mini-game demo to see it in action: http://www.greyaliengames.com/aotmg/aotmg039.zip (5.59Mb)

Find out more about the framework: http://www.greyaliengames.com/framework/faq.html













*********************************************************
The Game Framework (Windows only) is a collection of files that you can use to make a professional quality game. It also comes with an example mini-game called Attack of the Mutant Greys.

You can buy it for $49 or £25.90 or €38 (please ask for prices in other currencies). This gives you a royalty free licence to use the code for freeware and commercial projects. You will receive updates as and when they become available. I may put the price up soon as I add more featured.

To buy it, please go here: http://www.greyaliengames.com/contact.php and use the Paypal donate button (this is my preferred method).
Or use Share-it! https://secure.shareit.com/shareit/checkout.html?PRODUCT[300072102]=1
If you are based in the U.K. and want to pay by cheque or postal order, please email me (my email address is in my profile and on my website). If enough people want to pay via a different method, I'll look into it.
*********************************************************
How To Play
-----------

Just move left and right and shoot the UFOs with Z, that's it for now...

Keys
----

Press <Esc> to exit the game.
Press <F> to toggle full screen/windowed mode.
Press <V> to toggle VSync on/off.
Press <G> to toggle DirectX/OpenGL.
Press <D> to bring up the debug display
Whilst in debug mode, press <J> to jump level.
Whilst in debug mode, press <R> to restart level.
Whilst in debug mode, press <T> to toggle fast (full speed).
Whilst in debug mode, press <L> to toggle slow motion.
Whilst in debug mode, press <I> to toggle Flip modes.
Whilst in debug mode, press <A> to toggle anti-lag fix.
Whilst in debug mode, press <N> to toggle No Timing.
Press <P> to pause the game.
Press <Q> to quit the game.
Press <S> to toggle sound on/off.
Press <M> to toggle music on/off.
Press <-> and <=> to adjust sound volume.
Press <F12> to take a screenshot.
Press <Ctrl+X> to exit the game instantly.


Summary of features (in no particular order):
Smooth Fixed Rate Logic timing. 
Dynamically change between Full-Screen and Windowed Mode. 
Dynamically change between DirectX and OpenGL. 
Windowed mode has working minimise and close buttons. 
Game and music pauses whenever focus is lost. 
Full icon support. 
Ini file to save user settings. 
Extensive debug suite. 
Take screenshots with F12. 
Integrated mouse pointer. 
Sound and music functions. 
Sprite type. 
Button type. 
Menu type. 
Animation type for handling multi-phase animations. 
Splash screen. 
Loading screen. 
Title screen. 
Fully working options screen. 
Load, save and enter High Scores. 
Other example screens such as Level Complete, Game Complete, Game Over, and Credits. 
Select Level Map which zooms and scrolls. 
Example types such as Player (with shield, lives, target, and level), Bullet, Alien etc. 
Fast fade. 
Manage multiple game screens easily. 
Event-based input instead of PolledInput. 
BlitzMax fixes and workarounds. 
And more! 

List of features in detail:
*Timing*

- Extra smooth Fixed Rate Logic (an alternative to Delta Timing).
  Your game will run the same speed on all systems regardless of
  refresh rate/VSync and in windowed or full-screen mode.
- If anything occurs which causes a big delay, such as loading
  music or changing screen mode or dragging the window etc., the
  Fixed Rate Logic will reset its timing variables to avoid any
  skipping caused by the time delay.
- Option to turn off the Fixed Rate Logic/Delta Timing code.
- Option to apply a timing threshold, above which the timing code
  will delay (loose time) instead of catching up and jerking.
- Option to boost the Process Priority Class and Thread Priority
  in Windows via ini file settings.

*Full-Screen/Windowed Mode*
- Switch between full-screen and windowed mode easily on-the-fly.
- Switch between DirectX and OpenGL easily on-the-fly.
- Automatically chooses graphics mode.  Will reduce from
  full-screen 32-bit to 24-bit to 16-bit, then to windowed mode,
  and will finally error nicely if nothing is supported.
- DirectX rendering lag has been fixed.
- Option to prevent vertical tearing in windowed mode (on some
  systems).
- Windowed mode has minimise button.
- Windowed mode has a working close button.
- The window is automatically centred on the desktop.
- When game is minimised or focus is lost (even in full-screen
  mode) the game and music are paused, yet the screen will still
  redraw to avoid Windows overwriting it.  The game and music
  will resume when the window is restored or refocused.
- When the game is in windowed mode and the user clicks in
  another window, the game and music will pause and the screen
  will display "Paused" until the user clicks back in the window.
- Moving the mouse onto the title bar will show the default
  Windows cursor so that you can click on minimise and close etc.
  This is NOT default Blitz Max behaviour!
- Windowed mode uses Delay(1) so that Windows can have some CPU
  power each frame.  This stops other applications from running
  slowly when the Game Framework is running.

*Icon*
- Icon will show on title bar, task bar, and when alt+tabbing.
- Exe can have icon built in (needs some external work)

*Ini File*

- Important variables are stored in an auto-generated,
  auto-repairing ini file.  This means that you can save options
  such as Full Screen On/Off, Music and Sound volumes, Particle
  Quality etc. and have them load in each time the game is run.
  The ini file is automatically updated whenever a user changes
  an ini variable, such as when they change screen mode or
  volume etc.

*Debug*

- Display Debug variables anywhere on-screen, including:
	- Logic Time
	- Draw Time
	- FPS
	- Desktop Hz
	- Game Hz
	- Fixed Rate Logic Ticks
	- Lag Fix (on/off)
	- Flip mode (-1,0,1)
	- Fast (on/off)
	- Slow Motion (on/off)
	- VSync (on/off)
	- Timing (on/off)
	- Driver (DirectX/OpenGL)
	- Memory Allocated
	- Music Volume (0-100)
	- Sound Volume (0-100)
- FPS Counter.
- Fast on/off toggle.  Good for testing maximum frame rate.
- Slow Motion mode. Runs at 25% (or user-defined speed), good
  for testing movement and animation.
- Toggle Direct X Lag Fix
- Toggle Flip modes
- VSync toggle.
- Timing on/off toggle.

*Functionality*

- Uses event-based input instead of PolledInput for greater
  harmony with OS.
- Screenshot with F12.
- Quick Exit key for developers.
- Toggle VSync On/Off (user can do this)
- Boss Key automatically minimises and pauses game and music, even
  in full-screen mode.
- Sound and music on/off hot keys.
- Adjust music volume and sound volume separately.
- Pause Key.  Also pauses and resumes music (if any is playing).
  Also shows a paused image on-screen (if an image is assigned).
- Protection against two copies of game running at once.
- Current Screen and Destination Screen are tracked to enable
  a clever centralised screen change function to be used.
- Ability to play a sound when escape is pressed to exit from
  a screen.
- Complete game loop example i.e. Play and die, then return to
  title; or play and complete levels, then go to game finished
  screen, then return to title.
- Sprites, buttons, and menus can have transparent shadows at any
  angle.

*Other Useful Types*
- TMousePointer handles loading a cursor, getting mouse values
  once per logic loop (to ensure constant coords and button
  readings), supports offsets for where point is not in top left,
  and slides the game cursor smoothly off the edges of the window
  instead of leaving it at the last known position.
- TSprite includes animation, brightness, scale and rotation
  capabilities.
- TButton with mouse-over graphic, sound and management code.
- TGameSound incorporates name, pitch and volume.
- TSoundBank for easy storage and retrieval of sounds.
- TGameImage incorporates name, width and height.
- TImageBank for easy storage and retrieval of images.
- TGameFade fades the screen and music without any GrabImage
  delay. The fade is tied into the game timing so it will pause
  if the game is paused or suspended, plus you can optionally fade
  a still or animated screen. The fade can be skipped with a key
  press or mouse click.  An ini flag can be disabled to skip
  fades; this is useful for developers.
- TMenu allows you to easily group together and manage several
  buttons, and to track which one the user clicked.
- TScreen includes background image, header, menu and default
  behaviour so that you can extend it for other screens.
- THighScoreList loads and saves high scores.
- TTextInput allows user to input text such as their name.
- TAnimation starts, manages and ends a multi-phase animation.
- TSlideLine allows moving text.
- TSineCounter allows you to use a smooth non-linear ratio to
  update objects (e.g. movement, fades, glows etc.)

*Splash screens*
- Splash screen with fade image and sound in/out functionality.
- Support for a publisher/portal splash screen.

*Loading screen*
- Loading screen with a loading bar supported.
- After Loading is complete, the loading bar is optionally
  replaced with a "Click here to play" button.

*Title screen*
- Example title screen with music and a menu that launches other
  screens as well as exiting the game.

*Options screen*
- Fully working options screen including separate music and sound
  volumes, full-screen toggle, vsync toggle, particles level and
  DirectX/OpenGL driver option.  It also has a button which shows
  the credits screen.

*Example Types*
- TExplosion extends TSprite, and TExplosionList.
- TPlayer extends TSprite and has shield bar, lives, level and
  kills target.  When the kills target is reached, the next level
  will be started and when you run out of lives you are taken to
  the game over screen.
- TBullet extends TSprite, and TBulletList.
- TAlien extends TSprite, and TAlienList.
- TInstructionScreen extends TScreen.
- TCreditsScreen extends TScreen.
- TLevelCompleteScreen extends TScreen.
- TGameOverScreen extends TScreen (shows total stats).
- TGameFinishedScreen extends TScreen (shows total stats).
- TSelectLevelScreen with map which zooms and scrolls.


Yep, you are getting tons of cool stuff for your money! Plus I keep on enhancing the code with more useful features. Next up: Full Profile Management System and in-game menu. Watch this space!

BIG thanks to everyone on the forums who has offered advice and helped with testing! Also EXTRA BIG thanks to all my loyal customers for your continued support :-)

Nice one! I'm looking forward to this landing in my inbox.

give me about 30 mins :-)

Nice one Alien. Seems you have been busy. :)

Nice. :)

I didn't realise that the framework would save me a whole bunch of time. It is worth every penny. :)

thanks guys.

Amon, of course it saves you (loads of) time, I wasn't making it up when I said "Don't reinvent the wheel" etc ;-)

Update has gone out. Check your email.

Feckin hell this filled up quick!

I do have a question though- What makes this "Windows Only" at the moment? :)

Grey doesn't own a Mac I think... :)

I know, I was more wondering wheather he knew for a fact it worked only on windows ;)

Grey doesn't own a Mac I think... :)

Yeah that's it basically. Well it *should* compile on a Mac as all the Win32 bits are protected with compiler directives, and it's already OpenGL compatible. It's just that some of the fancy pants OS-related features won't do anything on Macs (such as Icon support, minimise etc). But the rest of it will totally work and be useful. When I release my next game, I'll ask the producer to buy me a Mac as he wants to do a Mac conversion anyway. Then I'll look into a Mac version of the framework. I also don't have a Linux machine, but it should still run, but without the fancy OS-related stuff. I don't have any real intention to setup Linux to test it at the moment though.

Nice Game Grey Alien. I play`d to level 10
Total Score: 5140
Total Kill: 110
Toal Time: 129

But the aliens and the playership was very big. To big i think ;)

But it is a nice small game.

Thanks Blitzblaster. It's not really a proper game, just a demo of the framework I'm selling. Hmm 110 kills, sounds like a bug, should be 100. I'll look into it (and try to beat your score! ;-))


It's not really a proper game...



Yes but it definitely gives a better impression to potential customers in this updated version - smooth scrolling backgrounds and so on (even with large sprites). :-)

hm a bug Grey Alien ? No i`m so fast, that i become 110 :) kills....lol...

Did anyone else receive Grey's framework v0.99 email twice?

Thanks though Grey. Going to have a play tonight.

Yes I did - it's good Grey but I don't want 2 copies. ;-)

lol. Yeah I've no idea why everyone got it twice! Sorry about that. Was the second one a zip or a rar? Also did you get the other emails twice like the SyncMods one, or the one I sent out before the zip file saying "Get ready for framework 0.99"? There's only one of each in my Outlook Express send items box. However, I did forward the email to 7 customers but changed the attachment to a rar. However, forwarding shouldn't resend it to everyone on the original BCC list should it?

Every email I get from you I get twice Jake! I'm not deaf you know - I SAID I'M NOT DEAF YOU KNOW. ;-)

Seriously, it's only the framework I've been getting twice - including the original version.

Must be my email provider or something. How weird. Also it's only emails with attachments, which is just great as the attachments are big! I've no idea how to sort this out though :-(

Blitzblaster: Hmm I just played all the way through and got:

score = 4210 (I was more efficient in my kills ;-p)
kills = 100
time = 111

could you have been mistaken I wonder, or did you die and restart or just loose a life or something? Or may you replayed a level, that's it! On the main map you probably clicked a previous level and played that rather than the current one :-)

Jake, have you got your clients 'email' and 'name' fields both set to an email address in your address book? That might explain it.

yes that could be it. I'll check it out, didn't realise that would cause a ptoblem...

OK I've changed them all to have proper names, let's see if that helps with the next update, thanks Steve.

I've fully tested it with the latest Sync Mods and tweaked the code to remove obsolete fixes now.

Only got 1 copy this time. ;-)

interesting, someone else reported two copies of it. sigh.

I only received one this time too.

Just one copy here and I wish to thank you for the great work you've done so far. The framework is so easy to use and I've learned a great deal from it already.

Barney

Jimmy Krankie: It could be random but maybe me giving everyone proper names has sorted it.

Barnabius: you are welcome. Hope you like the new version.

Wow! This was really worth every $$... What a time saver!
Just started to intergrate Gabriels TV3D mod. Looking good so far :)

Alienforce: That's great, I'm glad it's going well with TV3D :-) When it works, please post a demo or let me know as I can add to the FAQ that it works.

Grey: just had a chance to sit down and start to sift thru' your latest user guide... upon first glance it looks very comprehensive - I may get my product ready for Autumn instead of Christmas.

good for you. The latest user-guide does have that 21 point guide to making your own game, which should be useful. I look forward to seeing it anyway :-)

Grey: Your latest bit of info has moved my project forward a great deal, I may even opt for some BMax / B3D integration potentially via info saved to textfiles....

nice to hear.

I've just emailed out an updating Getting Started Guide with some support queries answered in it.

At some point (around V1.01) I'll have some level loading code that I can release too.

Just added a working in-game menu:



Next up, full player profile management system. This is worth $49 alone!

Your support is faultless... keep up the good work grey :~)

just want to add an, i agree with blitzplotter :-)

yay, you've made my day (+ it's my birthday :-))

Happy B'day Grey.... my project is ALREADY teetering on the edge of the functionality of the 'other' version I developed in B3d. I say already due to the 'tiny' amount of time (relatively speaking - compared to B3d) it has taken me to progress my project in what is , in essence a new programming language.

Blitzplotter. That's great news, glad you are getting to grips with BMax, it's nice to use isn't it?

Getting nicer day by day....

Hey your sig is much improved although the old one had a certain kooky charm.

kooky charm LOL ;~> Have you a {rough} forecast on your full player profile management system ? Will it provide the {user} with an infinite amount of players ? Have you any games on the go yourself still or is your game framework becoming a 24/7 ish thing ?

I thought the profile thing would be ready this week but I had some Delphi contract work to do at v. good rates. So it'll be next week now. If I can be bothered to make a scrollbar, then it will be infinite players. Otherwise it might be limited to 10 or something (even Richochet, the bat n ball game, does this because it has no scrollbar!)

After that the framework is largely done and I need to get on with the next match-3 I been commissioned to make. It will be using the framework of course and any improvements I make to the framework will be sent out to my customers. Also I'm making a platformer in my spare time with a small team, and also I might make AOTMG into a proper mini-game (if I can find the time) ...

Grey, are you about? I cannot seem to contact you via email. May be a problem my end, just wanted to check.

Jason.

Yeah sorry I was just not on my PC for a long time. Was on the laptop but it has no email. Anyway we talked now ...

:)

Jason.