Current Features
SLUDGE currently contains built-in support for the following:
- Objects - with easy to use "events" defining how the game reacts when different objects are combined
- Characters - plus automatic scaling (now with anti-aliasing as standard) and special effects such as transparency
- Animations - suitable for one-shot and automatically looping animations; combine any images from a sprite bank in any order
- Costumes - with a costume your characters can look different when facing different directions (north, south, east, west)... plus you can provide different animations for talking, walking and standing still
- Full-screen backgrounds - load 'em from TGA files in a single line
- Interactive backgrounds - yes, bits of the background image can represent objects too
- Sound effects - play any noise (WAV or MP3) at any time with a single command; also support for looping sounds, changing the volume of individual noises and a whole heap of other audio goodness
- Music - play up to three tunes at once (including MOD, MO3, IT3 and XM)
- Full talkie versions - just supply a sound file when you make someone talk or think, and SLUDGE takes care of everything for you
- Scrolling backgrounds - point the camera anywhere at any time
- Freezing / unfreezing - put the entire world on hold while you go to a close-up, look through your inventory or run your custom menu system
- Input handlers - set the engine up so that it calls your function when a mouse button is clicked, when the mouse moves, when a key is pressed...
- Timers - pause for however long you want, whenever you want, without your character saying "..."
- Multiple functions at once - keep that character moving or talking in the background, animate waterfalls or just devise puzzles which must be solved against the clock
- Z-buffers - so characters walk behind tables, trees, door-frames, alien machinery etc.
- Floor plans - including automatic path finding without crossing non-walkable areas
- Lightmaps - set up shadows and spotlights simply by using an extra image the same size as your room
- High-colour - SLUDGE uses 16-bit colour throughout
- Any resolution you want - provided your video card can support it, so can SLUDGE (1200 x 640 is the largest I've heard about so far)
- Windowed mode - with your own custom title bar and quit message (whoo!)
- Full-screen mode - and if full-screen mode fails, your game will run in windowed mode instead rather than just keeling over
- Game loading and saving - plus rename, delete or launch any file you want
- Single output file - containing all your graphics, sounds and script
- Scripts are compiled not interpreted - nobody can break in and see how you did all your clever bits... and they run faster, too
- Shaded variable-width fonts - fonts are just greyscale sprite banks, and if you don't like Hungry Software's demo font (based on Ariel) there are plenty of other fonts to download courtesy of other SLUDGE users
- Multi-directional characters - no longer can your people only face north, south, east and west, but any number of different directions you want
- Sprite flipping - just use a negative sprite number and the appropriate sprite will be mirrored for you, saving you file space
- Compressed sprite files - yep, your sprite banks are now compressed, saving you even more file space
- Huge sprites - no more 255x255 size limit
- Per-pixel mouse-over-sprite checking - the mouse will only register a character when you're actually pointing at it, not just anywhere within its bounding box
- Spinning characters - on command and automatically when turning a corner while walking, at whatever speed you want
- Semi-automatic font conversion - courtessy of the new sprite bank editor
- Fantastic audio support - not just your standard WAV files, but Ogg Vorbis and MP3 compressed samples and lots of track-based music formats such as IT and XM
- Improved keyboard handler - catch more keypresses including function keys, cursor keys and - should you want to - Alt, Ctrl, Shift, Alt Gr, Caps Lock, Insert, Delete, Home, End, Page Up, Page Down, Windows and any extra quick-launch keys your keyboard may have
- Multiple transition modes - Bored of your screens appearing and disappearing too quickly? Now you can disolve or fade in and out, or even cross fade between one scene and the next
- Your own choice of icon - well, you can't change the icon for the SLUDGE engine, but here's the next best thing... give your project a 16x16 or 32x32 image and the engine will use it as an icon in your game's title bar, and in the taskbar while it's running
- Custom window sizes - you can alter the sizes of the windows used by the z-buffer maker and floor editor
- Silent running - no sound support? So what! The engine can now carry on regardless, letting people with no sound cards play your game too! It's also an easy way to make a much smaller file for quicker compile times during development or for a faster download for people with slow modems
- Movie playback - display AVI files in your game, with the framerate automatically synched to your game's frame rate for easy matching up of audio or even on-screen speech text
- Portable custom data files - save an array to a file for use later, or even use by another SLUDGE game... you can even encode it all so nobody else can understand it, and all you need to do to read it is provide the same key
- Background parallax scrolling - leave holes in your room through which you can see a sky or background which scrolls at a different speed to the rest of the scene
- Multiple language support - make your game playable in as many languages as you have the time to provide, all within the one game file
Current Possibilities
SLUDGE does not contain built-in support for the following, but all this stuff - and a whole lot more - is entirely possible using the language (and, therefore, a lot more customisable):
- Inventory system - SLUDGE uses one array / stack / queue / linked-list type container which is ideally suited to implementing an inventory (source code in example project)
- Scrolling credits - You can paste to the screen, and you can scroll the video buffer... what more do you need? (source code
here)
- Message boxes - and you can make it look exactly how you want (source code
here)
- Text entry boxes - Freeze, write your message on the screen, unfreeze... and make it look exactly how you want (source code
here)
- Automatic character following - just update the position of the camera every frame, and hey presto! (source code
here)
- Fake foreground parallax scrolling - a la Broken Sword... simply update the location of an inanimate "character" every time you move the camera
- Interactive conversations - there's nothing in SLUDGE to handle this, but with such an impressive scripting language the code for a complete interactive conversation mechanism is less than 100 lines (source code in example project)
Not Going To Happen
The following features have been suggested and, hopefully, quashed... and the list is here in an attempt to stop more good folks asking about the same things again:
- Real-time string-to-code evaluation - by the time your code reaches the SLUDGE engine, there are no variable names, no function names, no whiles, no ifs... in fact, not a lot of anything you'll recognise, so parsing a string, turning it into code and running it is pretty much out of the question
I Want... I Want...
More suggestions? Make them known on the SLUDGE wishlist forum! You never know, your ideas may appear in a future version of SLUDGE!