Deva Drifter

2020-07-07 at 10:07 | Posted in Computer path | 2 Comments
Tags: , , , , , , ,

Deva Drifter is a precise and satisfying top down arcade physics based driving game EXCLUSIVE for the Amstrad CPC with rigid body dynamics and SUB-pixel sprites providing smooth handling at 50 frames per second on overscan. It’s the third entry of the Hidden History Saga game series (after Light Lands) and may be the first CPC game with true rigid body dynamics and SUB-pixel sprite drawing (both in the rotation and displacement of the car). This is what Deva Drifter looks like:

 

Story

Enki says to you: “Utnapishtim, to avoid Annu’s watery genocidal plans I command you to build a huge boat. Every blueprint piece for the emergency watership is hidden inside your extreme driving lessons trophies, because of reasons. Go get them all before the rain comes! Also be careful of big crashes as they will temporarily shutdown your car while its automatic repairing system takes care of the mess.”

How to get the game

  • Deva Drifter: available for free as a download link at the end of this post.
  • Deva Drifter deluxe: the DELUXE version of the game with lots of extra tracks, available as physical or digital edition:
    • Deva Drifter deluxe (Digital Edition): orders should be directed at alberto.rd.mr@gmail.com with subject “Deva Drifter deluxe (Digital Edition)”. Be sure to write from your PayPal mail as this is the payment method. The cost is 3.9€.
    • Deva Drifter deluxe (Physical Edition): on an original 3 inch Amstrad CPC disk. Orders should be directed at alberto.rd.mr@gmail.com with subject “Deva Drifter deluxe (Physical Edition)” and clearly specifying name and shipping address. Be sure to write from your PayPal mail as this is the payment method. The total cost is 69€ with shipping costs included by registered mail.

System requirements

  • Gameplay is better on original hardware: Amstrad/Schneider CPC 464/464+/472/664/6128/6128+, but you may also play using a compatible emulator.
  • 128K of RAM.
  • 3 inch disc drive.

Inside Deva Drifter

Development of Deva Drifter has revolved around two main challenges:
1. Calculating the physics.
2. Providing adequate user feedback through the restricted graphic output.
As for the first challenge: each wheel has static and dynamic grip physics, also speed is independently calculated for each wheel. This may seem unnecessary but because total speed of one wheel is the sum of linear speed plus angular speed this implies each wheel may have a different speed. Car steering is indirectly derived from front wheels smooth analog turning friction with the ground. Every applied force generates torque and modifies the car lineal and angular momentums, as it should be when using rigid body dynamics. There are four different types of ground (tarmac, dirt, ice and quicksand) which modify how each independent wheel reacts and contributes to the movement of the car. And yes the engine handles well the case when each wheel is on a different ground at the same time.
Addressing the second challenge: what good is going to do calculating fun physics if it’s all lost on low resolution graphics output? this is frequently overlooked (as I did). When I first ported Deva Drifter prototype from Linux (high resolution and subpixel drawn) to Amstrad CPC (pixel precise sprites) the feeling of driving was gone. At first I thought there was a bug in the ported code that ruined it, but after much investigation the situation became clear: even though the physics simulation was working perfectly well the diminished graphic feedback to the user was not transmitting it effectively. So I added subpixel precalculated 2x SSAA drawing achieved with 7 possible colors in mode 1 using epileptic sprites (to enjoy the game to the fullest play it on a CRT monitor as usual on original hardware). Then I added overscan to increase sprite drawing resolution to 368*264 pixels (virtual 736*528 subpixels) and in turn increase realtime visual feed back. Internal car calculated location resolution was higher by a lot so that was not a problem. Also a total of 1024 virtual car sprites are used dynamically modifying 256 precalculated sprites on the fly with 16 separate car drawing routines. Everything at 50 frames per second. After all that, the car driving feeling was back on the Amstrad CPC.
That’s a significant amount of Amstrad CPC CPU power poured into so few pixels. I’ve been told about Deva Drifter: ‘it’s like trying to make a nuclear power plant out of card board’. I still don’t know if that is a good or a bad thing…

Deva Drifter is coded in C, assembler and machine code and has been possible thanks to:

  • GCC: as C++ compiler for several development tools.
  • Inkscape: well thought vector editor.
  • GIMP: allows accurate reproduction of CPC mode 0 for designing Amstrad CPC graphics.
  • Roland Perry: one of the lead designers of the original CPC.
  • Wolfgang Amadeus Mozart: something about music.
  • SDCC: awesome C compiler and assembler.
  • CPCMANIA: useful tech info.
  • WinAPE: CPC & CPC+ emulator.
  • CPCtelera: very comfy way to install and use SDCC and WinAPE. Vector Vaults doesn’t use them, but CPCtelera has nice libraries for the CPC for you to try.
  • Wine: runs WinAPE on Linux.
  • Arimo TTF by Steve Matteson.
  • Raydiant++: 2D renders.
  • ConvImgCpc: image conversion tool.
  • LMMS: music arrangements.
  • Linux: worst OS there is, except all the others.
  • iDSK: easy way of creating Amstrad CPC disk images.
  • KDevelop: as editor of source files and GCC frontend.
  • gedit: as generic text editor.

Hint

Try entering Light Lands winning code into Deva Drifter and see what happens…

Health warning

People sensible to unflashy menus are advised to play this game with caution.

Disclaimer

This product is not affiliated, associated, authorized, endorsed by, or in any way officially connected with AMSTRAD, or any of its subsidiaries or its affiliates.

Download

Blog at WordPress.com.
Entries and comments feeds.