New Grey Alien BlitzMax Game Framework V0.99!

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

The Forum Archive is locked. These are the original blitzbasic.com forums, kept so their posts can still be read and searched. No new topics, replies or edits can be made here. To join the conversation, head over to the Blitz3D+ forums.

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 :-)