Sunday, 21 March 2010

Engine4.03 released

Engine4.03

Bugs fixed in this release
==========================

Menu003: after investigation this was a bug with the Shooter menu system and not internally with the game engine

Engine015: temporary solution before final re-write, I altered how sprites were being added to the collisions bins, unfortunately this meant that collision check happened before all sprites had entered the bins doh!, meaning not all sprites were collision visible. if you want a more detailed explanation see me in lesson time. If there are any issues (and there might be) please let me know and revert back to a previous version of the engine which was stable for you.


Changes in this release
=======================

AudioManager
------------
This is a brand new class I have started (decided to do it Sunday afternoon) that implements correctly the new audio features in XNA 3.1 (and hopefully in XNA 4.0), it will eventually replace the SoundManager although they will work side by side. It's gonna have bugs which will need to weedled out but the main reason for doing it is that we don't need XACT anymore (and that is good cause it don't work on my win7 laptop!) we can just have a bunch of WAV's and mp3's.

added - AddSong(), this allows you add an mp3 track to the audio manager. The great thing about this is you can easily control the volume but you also get access to Frequency and sample information (I've got it working - but I have disabled it for now - see this video for a simple test) which could be used to generate music related gameplay ala Sega's REZ.

One thing to mention there is a slight delay when you first contact the MediaPlayer (even to set volume!)

It is not activated by default and requires a little jigging to attach to your projects but it works pretty good, here is the feature list (so far :) )

added - AddSoundEffect(), these work like sound effects in the old sound manager fire and forget, but the new audio manager can also independantly set the volume and more excitingly change the pitch and pan of each version of the same sound effect independantly

added - PlayEffect(), shoots off a sound effect that will play once, you can set the volume, pitch or pan of the effect

added - PlayManagedEffect(), triggers a sound effect, but leaves it managable, which means it can be paused, looped and its various settings changed.

added - PauseManagedEffect(), pauses a currently managed effect.

added - ResumeManagedEffect(), resumse a previously paused effect.

added - StopManagedEffect(), stops a previously playing effect.

added - PlaySong(), plays an mp3 track - be aware there is a slight lag

added - RemoveManagedEffect(), removes an instance of a sound effect

added - RemoveAllManagedEffects(), removes all sound effect instances.

added - StopCurrentSong(), stops media player playing music tracks (you can do MediaPlayer.Stop)


TextManager
-----------
added - pointHandler now part of list of attributes applicable to Text when using DrawAsSprites()


TrackManager
------------
added - TrackPositionNear(), attempts to find the position along the current track that is the closest to the given position. This could be used to allow a sprite to jump from one track to another close by. Not tested this fully (lets face it I haven't tested this at all!) so consider it a ALPHA

added - Remove(), which Removes a track at the given position. The position is the order in which the tracks were added. The first track added is at position 0. If the track removed is being followed by the sprite then it is detached from this track and the end track handler is called if enabled, this may also break your code as it needs extensive testing.

added - CurrentTrackData, this returns a Track containing all the information about the current used track and links back to the base TrackDefinition in use

EngineManager and Sprite
========================
Various - lots of internal changes in preparation for plugging in new collision systems

Adjusted - made the collision checks and collision comparisons keep track of their Maximum values

No comments:

Post a Comment