Desert Express by TerraPass
In Desert Express your job is to protect your train from bandits, attempting to steal your cargo.

Every train run starts with a random number of crates loaded onto your train. The more cargo there is, the more cars your train consists of and the slower it travels, requiring you to spend more time on the run and making those crates an easy target for pursuers.
In addition to slower movement, having a large number of crates on board makes your train a more attractive target for bandits. You'll find that there will be more pursuers when your train is full, but as the number of crates you carry dwindles, so will the interest of the bandits: less and less of them will be inclined to join the chase.
How to play
Use your mouse to shoot at the bandits. Only the first enemy on the way of your shot will be killed (the shots don't pass through enemies).
Your aim is to successfully protect your cargo so that by the time the train reaches its destination there are as many crates remaining as possible. Can you finish a run with a full train without losing a single crate?
Credits
- Art: Kyrylo Cherkashyn (@lobster)
- Programming, music: Taras Denysenko (@terrapass)
Tools and resources used - Aseprite (pixel art & animation editor) - Tiled (tilemap editor) - Early version of a nameless custom engine, using SDL2 library with SDLimage, SDLttf and SDL_mixer extension libraries - bfxr (shot sound effect)
Updates changelog
desert-express-*-jam-original-bugfix builds on itch.io contain the following bug fixes:
- Fixed a crash which sometimes occurred on mouse click on the 2nd and subsequent runs.
- Fixed a graphical glitch, which sometimes led to the corruption of the background on the 2nd and subsequent runs.
desert-express-linux-jam-original and desert-express-windows-jam-original downloadables on itch.io contain builds of the game in the state it was submitted in before the Jam deadline, including all of the bugs.
desert-express-osx-jam-original contains a macOS build of the game. The two mentioned bugs were fixed while the game's code was adapted for macOS, so this version does not suffer from these bugs but, for the sake of consistency, a bugfix version for macOS is also provided, though it is identical (save for the window title) to the initial macOS version. Additionally, for macOS the soundtrack format had to be changed from .mp3 to .ogg to allow for its playback on macOS via the version of sdl2_mixer from Homebrew, which does not have .mp3 support.
jam-original and jam-original-bugfix builds on itch.io are identical in terms of mechanics and content. The only difference of bugfix versions, except for using .ogg, is that they are not affected by the aforementioned crash and visual glitch.
postjam-xmas build on itch.io is the latest postjam version of the game, which has a winter theme. The changes it contains, compared to the original Jam version, are described on the itch.io page.
Prerequisites and troubleshooting
On Windows, if the system complains about missing msvcp140.dll and/or vcruntime140.dll, make sure you install Microsoft Visual C++ Redistributable for Visual Sutdio 2015 package. If it complains about missing dll files, which are present in the game zip, such as SDL2.dll, make sure that you have fully extracted the zip to some non-temporary folder on your drive and that your antivirus hasn't gobbled up some of the files.
On Ubuntu 17.04 and up, all of the packages, on which the game depends, can be installed using the following command:
sudo apt install libsdl2-2.0-0 libsdl2-image-2.0-0 libsdl2-ttf-2.0-0 libsdl2-mixer-2.0-0 libboost-log1.60.0
On macOS, unfortunately, the .app is not yet bundled with the libraries, on which the game depends, so some Homebrew packages will have to be installed for the game to run. (Sorry about that.) Here's the command, which can be used to install the required packages:
brew install libvorbis sdl2 sdl2_image sdl2_mixer sdl2_ttf boost
Depending on your security preferences, macOS might refuse to launch the .app, due to it being "from an unidentified developer". In order to override it, right click on the .app file in Finder, select "Open" from the context menu and then click "Open" in the dialog that appears.
Ratings
| Overall | 248th | 3.767⭐ | 47🧑⚖️ |
| Fun | 204th | 3.716⭐ | 46🧑⚖️ |
| Innovation | 454th | 3.302⭐ | 45🧑⚖️ |
| Theme | 264th | 3.83⭐ | 46🧑⚖️ |
| Graphics | 296th | 3.957⭐ | 48🧑⚖️ |
| Audio | 173th | 3.702⭐ | 44🧑⚖️ |
| Humor | 567th | 2.914⭐ | 37🧑⚖️ |
| Mood | 274th | 3.643⭐ | 44🧑⚖️ |
| Given | 47🗳️ | 8🗨️ |
I definitely had some moments of panic, and I thought it was kind of funny how the calm friendly music juxtaposed with the violent slaughter. Those bandits must be desperate!!
Nice entry.
This could be an amazing game with more time. Nice work.
Hoped more depth than just shooting bandits though...
If that's not a problem, check the prerequisites section and do give it a go.
As for the difficulty of each subsequent run, it is actually randomized in the jam version: the number of crates is randomly determined for each run, so the game can become easier as well as harder. Obviously, this was just a quick and dirty way to make the theme more apparent by getting the player to play with different number of crates to ensure that indeed the more you have, the worse it is :). In the postjam version we'll of course add some sort of proper progression.
come check out our game
https://ldjam.com/events/ludum-dare/40/virus-detected
Anyway, on the machines we tested the game on, the bug occurred pretty rarely. Does it happen to you every time on the second run?
Props for still using SDL in this day and age!
This was simple but well executed as a concept. Your postjam changes make sense too! As others have pointed out I think some more mechanics around actually shooting down the bandits would make the game more interesting.
Quite curious what you'll end up doing with the postjam version though, the progression being entirely random proved a bit anticlimactic as you started on a level with something like 19 crates then suddenly jumped down to 5 something and far less enemies!
Interesting to see you used your own engine (though this meant it didn't run on my Ubuntu 16.04 machine as i've yet to jump to 17.04.. finally tried the game on Windows now!)
Nice work :)
I think there definitely needs to be some sort of cooldown/slowdown on the gun, as you can pretty easily just spam click and rarely have any issues even with high amounts of bandits. Also I wish there was a way to just shoot the bandit and not kill the horse :cry:
Notes from me:
- Create screen size in full screen
- Maybe add cooldown (but I don't know, maybe with cooldown you must generate less enemies and it's not good)
- Add bullet visualisation (raycast seems not so nice for me)
- You have many variants how expand your game: new guns, new enemies, new goals, new train and etc
Overall, I enjoyed this game
I had quite a bit of fun with it! I actually enjoy being able to spam the mouse button. Using one hand to click and the other to aim help a lot in the tight spots. The progression being random did seem weird like some people have already said. And the rest of my other suggestions seem to have been said too... like a better visuals for the projectile and also a wider range of weapons. Again, nice work!!