SLUDGE

Features

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 (any number of directions you want)... plus you can provide different animations for talking, walking and standing still
  • Full-screen backgrounds - load 'em from PNG or TGA files in a single line
  • Interactive backgrounds - yes, bits of the background image can represent objects too
  • Sound effects - play any noise (OGG or WAV) 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 (MOD, S3M, IT or 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
  • True-colour - SLUDGE uses 32-bit colour throughout
  • Any resolution you want - provided your video card can support it, so can SLUDGE
  • 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
  • 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
  • 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 ("Fontify") - courtessy of the new sprite bank editor
  • Fantastic audio support - not just your standard WAV files, but Ogg Vorbis and FLAC compressed samples and lots of track-based music formats (MOD, S3M, 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
  • 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 a faster download for people with slow modems
  • 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)
  • 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)