Monday, May 9, 2016

Abuse 1996 - SDL port 0.9a



When I released my Quake 2D demo back in 2012 many people compared it to Abuse, a game by Crack dot Com released in 1996. While I was waiting for my new PC to get fixed(it took months!) I was stuck with a PC bought in 2005. I already played everything I could on it and my gaming options were limited. I found out Abuse was available for free, so I wanted to check it out. It ran in DOSBox at 320x200 resolution and felt like playing a FPS game with very low FOV. Aiming with the mouse was very difficult, because even in fullscreen the mouse was still behaving like it was 320x200 resolution and was too sensitive.

Reading the included readme file I saw there was a high resolution option, but it seemed to be only available in the shareware version or in editor mode, and the game would automatically turn off the in-game lights, because it would be too demanding for the PCs in 1996 on high resolutions. Not to mention a bug would cause the entire screen to go black the second time a level was loaded. While looking for a fix I found out the original source code was released and there were several source ports released during the years, mostly for Linux. Finally Xenoveritas SDL2 port from 2014 showed up in the search results and was exactly what I needed; a working Windows port, plus it had instructions how to build it.

After I enabled custom resolutions and fixed the light, I also wanted to extract the textures, so I can use them in my own engine. Then I saw Xenoveritas never finished adding Xbox controller support, so I did it instead... it didn't stop there, and here is the final result in motion:


As you can see the game gets pretty intense. It's a classic design where you need to find switches to open new areas, and you need to cleverly use security turrets and destructible walls to fight the enemies. It takes 2-3 hours to beat the game.

 Here is the list of updates in Abuse SDL 0.9a compared to Xenoveritas version from 2014:

- Enabled custom resolutions and enabled lights on high resolutions
- Re-enabled OpenGL rendering to enable vsync
- Game screen scaling in window and fullscreen mode using F11 and F12
- Enabled some high resolution images from the 1997 Mac OS release
- Fixed level music not being played correctly, added "victory" music in the end game screen
- Fixed the health power image, fixed mouse image when choosing initial gamma
- Added or re-enabled various settings in the config file (borderless window, grab input, editor mode, high resolution images...)
- Local save game files and configuration files
- Quick load using F9, quick save using F5 on save consoles
- Added cheats via chat console: bullettime, god, giveall, flypower, sneakypower, fastpower, healthpower, nopower
- XBox360 controller support with rebindable buttons
- Updated abuse-tool so it can extract the images in Abuse SPEC files to modern image formats as individual images, tilemaps or a texture atlas with information about image, tile and animation frame sizes and positions


I only tested the game on my old 2005 PC and the new one, running Windows 32bit and 64bit. I would really appreciate some feedback, so I know it works or not. I would also like to know how playing with the Xbox controller feels, since I plan to use the same controls in my own engine. Please read the included README file for more information, controls and links to previous port releases and other stuff. You can download the game from this link or on ModDB:

md5: 16E116B753A2142E4AE2BB63C2A4A351


I already mentioned I wanted to extract the images, so here is an archive that contains all the extracted Abuse images in PNG format, together with information about image name, size and positions of individual frames of animation: 
 Aliens addon

md5: 5A2D1E65A2D76C6C0D340F600E2F7B5B

I also used a HMI to MIDI converter to convert the music to MIDI. I didn't convert them to wav or mp3, because different soundfonts give different results when playing MIDI music. You can download the MIDI files here:
md5: 5FC937F71DB047DA9E46961F83016CDA

The source code for Abuse SDL port 0.9a is available on my GitHub page. As I said the game is not fully tested and there are few issues which are described in the README file. The game physics are locked at 15 FPS, and the rendering is a bit slow, those are two major things I would like to eventually fix. Multiplayer doesn't work, but that is way out of my league:


Thank you for playing Abuse!

12 comments:

  1. Thank you very much for updating this game. It means a lot. I hope you continue working on it in your spare time. So are you a software developer/engineer or some type of experienced programmer?

    ReplyDelete
    Replies
    1. Thank you for taking the time to write. There are still some things I would like to do with it, but I can't promise anything. I do have a masters degree in computer science, but I never managed to get a job in the field, and eventually quit trying. What you see on this blog is my only connection with software development and programming that is left.

      Delete
  2. Thanks for polishing this gem for us.

    ReplyDelete
  3. It looks very nice, I'll give it a try because I like the way it moves and plays. Thanks for your work.

    ReplyDelete
  4. Hi there, good to see this game hasn't been forgotten.
    Is it still possible to compile it for Linux?

    ReplyDelete
    Replies
    1. Hello. Yes it is possible and few people have done it (see my Abuse GitHub page->pull requests for more info), but I have very little experience with Linux, so I haven't tried it myself and don't have the compiled game to share. It should also work on Mac.

      Delete
  5. Amazing job! If there's a community for Abuse, I'd sure love to join it! This game is incredible, and your work is too! <3

    ReplyDelete
    Replies
    1. I think Abuse communities died 15 years ago. Only thing keeping the game alive are random people like me who discover the code after several years and mess around with it.

      Delete
  6. Thank you so much for this build. it runs great on win7!
    my strongest desire is for netplay. looking at the source on git it looks like you still had some stuff about multiplayer in there but when I launch the netplay button is not on the main menu?
    Also this is one of the only versions I could find that allows custom resolutions without being in edit mode. I have a few versions from dos that I can run in dosbox and multiplayer works with the ipx tunneling but no high resolution unless in edit mode. Im looking for a good version i can just zip up and move or give to friends and play multiplay wth no fiddling.

    ReplyDelete
    Replies
    1. Glad to hear. As for the multiplayer it would crash my PC so I disabled the button in the menu and replaced it with the credits button instead. If you read the TODO file on git the people who previously worked on this port never fixed it and I simply lack the knowledge to do it.

      Delete
    2. Thanks for the reply back. And So quick! Its a shame it crashes.

      Delete
    3. If I understand correctly, the multiplayer part of the game uses IPX instead of TCP-IP, so it means the only way to make mp working is to rewrite the whole mp code. Maybe it's easy if using special mp libraries around the web. I've seen some, but can't remember any.
      Who strongly wants mp use dosbox netplay emulation.

      Delete