Procedural Music in 256 bytes.

If there is one type of music that I have an incredibly strong taste for, it’s chiptune music, ones played by electronic circuits and chips rather than actual instruments. Classic games are a great source of these tracks and some of my most memorable melodies come from them.

During the Oldskool 4K Intro competition at Revision 2017, the Swedish hacker Linus Åkesson, manages destroy the 4K intro limit, with a tiny program in 256 bytes for the Commodore 64, a 1/128 factor reduction of the maximum. It is not a surprise that it won first place in the competition.

My day job involves me working with bloated runtimes and gigantic libraries that some span in the order of several gigabytes. Powerful machines with several cores and gigabytes of RAM are required to run these applications.

I am humbled by classic video game designers who had to work with tiny amounts of RAM and pathetic processors found in calculators like the Motorola 68000 and still manage to have colourful experiences with wonderful sound running at 60 frames per second.

The goal of these developers wasn’t some philosophy like maintainability or a certain idioms or design patterns, but rather extracting the most out of the hardware and provide the most impressive gaming experience.

When the Revision 2017 demo competition was over, I start looking at the winners, and nothing touched me more than the “A Mind is Born” demo. His technical description barely fits in my head and makes me feel like a novice programmer in my first programming course.

The actual executable is 256 bytes, and there was room to spare with the first instruction being a no-op (NOP). Ironically, the SID tune is larger at 325 bytes and encoding to MP3 would make a file larger than 2 MB. Encoding this blog post in UTF-8 is more than 256 bytes!

The music is generated by the program itself rather than having a score embedded in the program. The conductor isn’t the programmer, but the program. This is the procedural aspect of it. It sounds like a chaotic psytrance piece building up to a strong climax at 1:42 morphing into a real pseudo-orchestra.

This chilling piece of music shows what the mind of true geniuses can produce. If you don’t get goosebumps listening to this, you have no appreciation of true technical art. I recommend a listen with a good set of headphones to enjoy the incredibly deep bassline.

How to Drift a Bus

This is another satire...

I traveled to Japan last year and got a chance to meet the Drift King himself. I was doing a track day and drifting culture is hot in Tokyo. I got a chance to speak to Mr. Tsuchiya and he told me a funny story about drifting something you wouldn't expect:

Hi, my name is Keiichi Tsuchiya, and I am the Drift King. I call this maneuver the "Omenibussu Duriftu" and it cost me my job and sent me into abject poverty.

I started doing this on rainy days tired from my 8 hour shift of hauling passengers around, I needed to relax and have a bit of fun. I would move the bus side to side and then turn hard and the bus would drift. Passengers screamed and complained as I counter-steered the slide. The complaints lead to me being fired ending my career as a bus driver.

If you want to try this yourself and risk your losing your wage, just do the following mods and follow these instructions.

Make sure you inflate the rear tires of the bus as much as you can and deflate the front ones. This will make the bus prone to oversteer. I convinced the maintenance workers to install nitrous on the bus telling them that the bosses ordered us to test out this new ethanol reduction system. I even convinced them to weld the rear differential as it would help getting out of sticky situations in snow.

I recommend you do this with 40 footer bus as an accordion bus may lead to fish-tailing. Use a track with plenty of run of area to prevent accidents or the rapid-transit road if you're brave enough. You'll need a rear-engined, rear-wheel drive bus for this technique (a bit like the Porsche 911).

First, accelerate to 60 kph, and then swing the bus left and right until you reach the corner. While you swing, keep accelerating until 100 kph. Then once it reaches the turn, accelerate hard and let the bus slide without adding steering input. Half-way through the slide, counter steer and reduce throttle. It will work every time, at least for someone skilled like me.

The simulation was possible thanks to BeamNG.drive

The Million Dollar App Idea

If you're a mobile developer, this almost certainly happened to you. A friend or relative makes you swear to secrecy about what he's going to tell you next. His secret idea will change the world and make millions. He comes up with the idea (usually like Uber but for X) and you do all the development work, split share 50/50.

Most people think that coming with an idea is hard, but it isn't. Everyone has a ton of ideas all day long, many of them ridiculous and some few genius. However, execution is the difficult part: development, marketing, building a company and so on. That sucks in every available time slot in your day as you try to make your idea into reality.

What's worse however is most of these ideas fail. Startups get a ton of investment money that is sunk into nothing. People quit their jobs hoping their new business will let them retire early. None of this really happens.

People are mesmerized by what they see in the media. A teenager who made a soundboard app makes millions and buys a mansion at age 17. Another makes thousands of dollars in ads from his YouTube videos or Twitch streams. However, all of this is a form of survivorship bias.

How many Twitch streams are watched by virtually nobody compared to the few famous ones. Pennies are made from most YouTubers who put ads up. The reality is that these successful people are the exception not the norm, they can almost attribute their success to luck.

I've seen people with no fame make excellent content and vice-versa. Producing good work isn't guaranteeing success. Not the best product is always the one that makes it to market. If we can call it that, fate, results in success.

However, to succeed, one must play the lottery game and hope to make it there. You can't beat the odds if you don't try. But don't approach the idea with naivety, but actually study what people want. Notice how informercials sell mundane things you never thought of and they sometimes make great success even if their products are garbage.

Think of a problem that you actually experience day to day. Something that bothers you and perhaps others. Maybe finding a solution to that would increase your success. Don't just imitate another streamer or blogger, because they succeeded out luck mostly. You need to do something novel that no one has ever thought of yet, and maybe, just maybe, you'll be making a few bucks.

When working on a project, your goal shouldn't be fame or money, but rather passion and learning. That growth is so much more valuable as the new skills you learn can be put into use somewhere else, maybe in a job that actually makes money.

My Computing Setup

Everyone (or maybe just me) is interested in what people of different livelihoods use as a computing setup. Think I'm crazy, there's actually a website (uses this) all about this, interviewing relatively famous people about what they use to do their jobs, write their books, photography, create apps and so on.

I've always liked the laptop form-factor because it allows me to work from anywhere in the home, or if I want to do something elsewhere, I easily can. However, I also like sitting at a desk with a big screen and a comfortable sitting position. To get the best of both, I'd purchase laptops with a docking station that would allow me to use my laptop normally and then plug it into a docking station connected to a big screen, laptop, keyboard, etc.

Lenovo ThinkPad Mini Dock Series 3. A very common docking station compatible with many ThinkPad laptops.

Laptop

I went through a slew a laptops from Dell and Lenovo and right now I've settled on a Dell XPS 9560. It's a good balance between portability, style and enough power for gaming, something I'm avid of. The grunt also helps with compiling large software projects and multi-tasking.

A brief overview of the Specifications of the Beast.

Display

I really wanted something unique to do my work on, simply for the desire of being different (and self-conceited). The main attraction is the screen. I originally got a 24" 2K monitor but it had display connectivity issues and it made me angry enough that I wanted to go to extremes; get a giant 40" 4K TV and get that working properly.

To get a 4K TV working at a proper resolution and refresh rate, you need to take some special things into consideration. First, the TV must support chroma 4:4:4 subsampling, which means no compression is used to display pixels on the screen. Otherwise, text appears blurry but movies and games will look acceptable. Some cheaper TV brands don't have it and each manufacturer has a different way of enabling this feature. I recommend this excellent write up by Rtings about it .

This method allows for 4K@60 Hz (a good refresh rate for gaming and regular desktop usage) but requires HDMI 2.0 or newer. You'll either need to make sure your system supports it (most newer video cards support it but laptops usually don't). I was able to procure a USB-C to HDMI 2.0 adapter for my Dell laptop to get the image to display to my liking. My work laptop, an early-2015 MacBook Pro needs an active (passive won't work) DisplayPort to HDMI 2.0 adapter and a patch for macOS Sierra. Finally, you may need a high-bandwidth HDMI 2.0 cable that is rated for 18 Gbps but you may already have a high quality HDMI quality cable laying around that supports 4k@60Hz just fine. Try before you buy something new.

Keep in mind that TVs are often not designed for low latency or gaming so do some research beforehand to ensure that you screen meets your latency sensitivities. Rtings is my go-to source for this but otherwise other websites found with a quick Google query have useful information too.

The behemoth display itself. 

You really don't need multiple screens with this kind of setup unless you're working at NASA. A 4K display is like the equivalent of four 1080p screens stacked together. Very often, I'll have a small lonely window sitting in the window while I idle around browsing the web. You'll never want to maximize anything as scanning your eyes across a meter of pixels can be tiring.

Input

In terms of input, my route is a bit non-traditional. I really like ThinkPad keyboard with their TrackPoint. It allows me to move the pointer without moving my hands from the home row, though research has proven it to be one of the slower input methods. It's more of a comfort thing for me. I've owned many ThinkPads in the past so I got used to the layout of the keys but I miss the 7-row layout. I'm not very picky about the switch. I like both rubber domes (provided it's not mushy) and mechanical keyboards. I do enjoy the clicky MX blue switch very much, just wish they made a TrackPoint with those.

ThinkPad and Trackball combination.

I prefer a trackball mouse over the regular one because it allows me to move the pointer without actually moving the device. It takes time to get used to but I got to the point where I can play first-person shooters with it. It is very comfortable to hold and fits well in the hand. However, be prepared to clean the sensors for the ball regularly like you did in the good old days of ball mice with mechanical sensors.

Docking

Business style laptops usually come with a very practical docking station that allows to just slot the laptop into this slab and your screen, keyboard and mouse are all connected automatically. Dell didn't have this option so I opted for a stand and a Thunderbolt Dock with a Thunderbolt Connector. It allows me to easily plug everything with a single cable for both charging and connecting external devices. It's not as seamless as a traditional dock but this is the best I can get with this laptop.

Dell Laptop docked in its stand with a Thunderbolt Connector

For my work computer, when I occasionally work remotely, not that I have an excuse since the office is 4.7 km away, I have a few external plugs to connect my MacBook. I just need power, DisplayPort and USB to plug in and I'm ready to go. I have a switch to alternate between the Keyboard and Mouse from main laptop to the MacBook. It's pretty easy to setup and switch between systems.

The MacBook ready for work with just a few plugs.

LED Lighting

The pièce de resistance for me is the LED strip that runs under the screen. It allows for a very atmospheric look on the desk and makes things look a bit less sterile. The colour and brightness can be adjusted along with automatic colour changing. It looks especially great in low lighting though it can get distracting and sometimes I turn it off. It's more of a party piece to show off more than anything else. I purchased the kit from Ottawa LED

An animation of the LEDs slowly changing colours. I find it very mesmerizing and impresses the ladies (OK, maybe not) 

Operating System

In terms of software, pragmatism trumps ideology for me. I don't care about the operating system debates or what software is superior to another. The right tool for the right job and that is what you're supposed to use. I use Windows, macOS and Linux on a daily basis; each one has it's sublime moments and pain points.

At home, I use Windows 10 mostly for gaming. Virtually any kind of software is available for Windows and security has gotten better since Windows Vista but it's still a massive target for malware. Software development is feasible but you really want something more powerful than cmd.exe and PowerShell. With the new Windows Subsystem for Linux, the gap is starting to be filled but it still needs more work to become something production ready. Customizability is also another point, while there are Stardock tools and .dll hacks to get your own custom themes, they are a bit fiddly and don't always work as expected. You can get alternative shells but you'll usually be stuck with explorer.exe if you want things to behave properly. Not to deny you can get a very attractive Windows Setup with the right tweaking. In terms of device driver support, Windows is a clear winner because manufacturers write software for the most popular target. Not to mention that Windows has become pretty stable and has great architectural principles. What other operating system allows you to switch display drivers on the fly with WDDM. Not to say that things are perfect with the infamous BSOD.

My Windows Desktop

At work, I was given a MacBook running macOS Sierra. The aesthetics and consistence are second to none and things look so cohesive. The polish is amazing and though it's not something I'd use everyday, I definitely see the appeal. As a bonus, because it's a Unix-like operating system, you get all the POSIX commands out of the box, great for software development. They're the BSD flavours instead of GNU but it's hard to tell the difference. A man page will explain the differences for you and it's sufficient for me. Otherwise, just like Windows, everything just seems to work like multiple displays support, automatic sound output switching and fast boot times. I believe that in terms of plug and play support, macOS is the superior OS. I just wish you weren't stuck with the default look (I know a dark theme is in the works). Customization is a weak point in macOS. Switching between Command and Ctrl for keyboard shortcuts causes me fatigue as I switch between systems and I feel that the Windows taskbar system is superior to the Dock. I just want to see what I'm running, not everything that I've pinned down there. Admittedly, those big icons look gorgeous.

My work macOS setup. I've hardly done any tweaking and it looks pretty great.

For both work and home, I use Linux on servers and virtual machines. For the server, it is an excellent operating system, reliable and dependable. Amazing scripting capabilities and development tools up the wazoo. If I need something that will run my docker swarm without a hitch, Linux will do it for me. It's a testament that even Microsoft Azure let's you run Linux on their VMs. However, don't get me started about the Linux desktop. It's been a running joke that the current year is the year of the Linux desktop, but we'll never get there. Even the most user-friendly of distros like Ubuntu will eventually require you to use the command line to do something. Say get a second display with a different DPI working with xrandr, when on the other operating systems that start with W and M, it just works. Distros like Arch and Gentoo require a deep understanding of how an operating system works. It's a great hobby, but it's not fun when you need to get work done but a recent update borked your GPU driver for the third time and now you're just staring at a blank screen. However, when it comes to customizability, there is no contest. The most beautiful desktops are on Linux and there is so much variety. Stability would be nice for those desktop apps. I was an avid Linux user for 5 years but when I got a full time job and was studying, I didn't have time to maintain the system anymore. Nothing will able to replace Compiz Fusion for me or the excellent i3 window manager however. If you got time to tinker and computing is your hobby, you can't go wrong with Linux. Controversially, I actually quite like systemd, it's well done from an architectural point of view but it does not follow the Unix philosophy. But GNU/Linux is not Unix. Almost every distro has adopted it and it's a good sign as maybe Linux is moving to a unification movement as that's what we need for a successful desktop. Just look at macOS, it's basically a single-unified Unix distro and look how popular it is.

My souped-up Arch Linux i3 Desktop running in VMWare. One thing you can't argue about, Linux is cool.

Software

I'm not very picky about software, I just want something that works fast, efficient and does the job well.

For browser, I use Google Chrome but Firefox works just as well and so does the more obscure ones like Vivaldi. There's so much choices for web browsers and things are getting a little more standardized with WebKit and Blink (though we might have another IE era again). Extensions are common between most browsers but Firefox is the winner when it comes to customization (what other browser lets you change the colour of the tabs and their shape?). However, for some reason, Google Chrome feels the most responsive for me.

For music, this was a hard one for me. I tend to listen to quite a bit of a lot of obscure music. Google has the largest collection of music but I'll admit the recommendation engine needs some work, not that I was satisfied with any recommendation engine so far from Spotify or otherwise. Last.fm was close but it sometime still had unrelated tracks in my playlist but it's too bad they removed the radio feature. With the new YouTube Music, you get access to the largest collection of music on the Internet, everything is there. The recommendation engine is based on the YouTube Mix engine which so far has been providing good recommendations. I'm excited to see them merge Google Play Music with YouTube music.

Microsoft OneNote has to be my favourite piece of software in existence. The freeform nature of writing document really allows me to organize my thoughts in a way that makes sense in my brain. The autosave feature is the icing on the cake on top of the cloud synchronizing. I've enhanced my version with OneNote Gem for some extra goodies. I use OneNote as a loose todo-list and for drafting some of my compositions like this blog post.

I use the Microsoft Office suite because it is undeniably the most stable and feature rich out of all the paid options. While LibreOffice might be a functional free alternative, it's hard to compare. Look how much easier it is to write equations in Word compared to Writer, there's no contest. Disclaimer, I am paying for an Office 365 subscription.

For my backups, I use Macrium Reflect for a full disk image back up saved on a network drive. It's pretty headache free and it just does daily backups in the background without any fuss. For my really important files, everything goes into OneDrive but I've used Dropbox before and it's worked just as great. I use OneDrive because it comes with my Office 365 subscription with 1 TB of storage. I can't say I had a good experience with Google Drive though as the Desktop client was really unstable and sometimes my files didn't make it onto the remote storage.

For software development, it's a combination of tools. For Virtual Machines, I use VMWare Workstation mostly because I'm used to it and it has really good guest utilities. VirtualBox is great too but it's missing some features like having support for VT-x extensions within a guest. I do like the interface of VirtualBox better though. I use IntelliJ and Android Studio for Java-based development but I've had no problems using Eclipse. For me, the only real difference is the keyboard shortcuts and IntelliJ feeling a bit more polished. For light editing, it's mostly a mix of Visual Studio Code and Notepad++. Visual Studio Code has good plugins for auto-completion for various languages but nothing beats Notepad++ for a quick edit of a small script file, it's just so much lightweight than Electron-based Code. ConEmu is my go-to choice for Terminals, it's just so much more sophisticated than Command Prompt with the ability to start different shells, tiling and themes.

For budgeting, I like to use You Need A Budget. I was a PocketSmith user for a long time but it was a bit too cumbersome for my needs. I'm sure advanced budgeters would love the projection feature and all the fine tuning but I just need to categorize and shift money around. YNAB does the job but for some others all they need is a spreadsheet.

For games, my choices are pretty boring. I like sandbox and simulation games. Think Flight Simulator, Assetto Corsa and BeamNG.drive. I also enjoy my Tycoon games and have a slew of retro games for times when I need something simpler to play.

I use Renoise for music production. Even though it's one of the stranger DAWs, I find the sequencing arrangement to be much more intuitive than the timeline-based system. Most people will disagree with me, it's just a matter of taste. Unlike classic trackers, Renoise is very modern with VST support and ASIO4All.

For writing books, I like Scrivener due to the way it allows me to easily draft documents. However, I have to admit that OneNote or Word is just as well suited for the job but the folder arrangement for chapter and export abilities make it indispensable.

For 3D Modeling for the 3D printer, I use Autodesk Fusion 360. I'm not an expert modeler so I find it simple enough to make basic models. It has tools to make things like extrusion, holes and so on very simply and allows to define precise measurements. I know Blender allows for more sophisticated designs, one day I'll get there.

For electronics and microcontroller stuff, I like using Frizting to design the circuit which is a very basic tool for doing so. Theirs is nothing special about it, it's basically a fancy diagramming tool. For programming the micro-controller, I use what almost everyone else uses, Arduino IDE. It has syntax highlighting, auto-completion and easy way to send code to the micro-controller, what else do you need?

Finally, for system tools, I have a basic RainMeter system to show basic stats about my system. I had to write my own plugins to display additional sensors from HWiNFO but that's about it. On macOS, I use iStatMenus which is a great tool to display system info on the fly in the menubar. Good way to keep tabs on the system when npm is pulling in dependencies and compiling dependencies while taking 100% CPU and turning my laptop in a toaster oven.

Window Management

I like minimalism so my desktop is as empty as possible. A simple wallpaper with no desktop icons. A tray with almost no icons. A simple RainMeter display in the corner. My taskbar has no pinned apps and is made to display on apps that are running with nice labels instead of the default dock style. I am using Taskbar Tweaker to allow me to use the scroll wheel to switch between apps.

For organizing my windows on Windows and macOS, I use Divvy which allows me to have a pseudo-tiling arrangement on my screen. Since I have a giant 4K screen, it comes in handy to arrange the mess that my desktop becomes. On desktop Linux, I love i3 and nothing will ever replace it for me. The ability to arbitrarily define layouts is genius and I will never ever find a replacement for other operating systems. Also tiling window manager just looks cooler than anything else.

My messy desktop organized into neat tiles. A great way to keep your workflow in check.

Phone

My phone is a lot less fancy than my desktop. I'm still rocking a OnePlus 2, which is about 3 years old now. However, I have installed a custom ROM called Resurrection Remix for additional customization. I won't go into details but it's just for small quirks like having the volume slider only adjust the media volume. I've also rooted it so I can install an AdBlocker on the phone. Finally, I'm using Franco Kernel to downclock the processor to squeeze out an extra bit of battery life out of the phone.

My Phone following the same minimalist theme as my Computer.

In order to save money on an expensive phone plan, again, Canada has the most expensive phone plans in the world, I have a data only plan designed for tablets. I use a VoIP.ms line for my phone calls and I haven't noticed any difference in terms of call quality. I can also get cheap international calls with one of those Betamax clones. At the end, my phone bill rounds up to 30$ a month. I'm using Bria as my softphone client.

Finally, one thing I'm very proud of is that I have a phone in the kitchen also connected to VoIP using a Cisco SPA3102 gateway. It is an outbound only phone, but if the lobby intercom rings, both my cellphone and kitchen phone go off. Like this, if I can't answer the lobby from my cellphone, someone at home can answer it instead.

My phone doesn't get much use other than communication through WhatsApp and Telegram and navigation. I also use it to read books using Moon Reader+ Pro. I sync my books from OneDrive to the phone using FolderSync.

Parts

Conclusion

What my setup looks like as a whole. In general, I'm pretty pleased with the result, took me about 6 months to get to this point but it was a really fun endavour. 

Everyone has a different setup and some may have very simple setups because they don't care much about computing but as a hobbyist I like to have something to be proud of. Just like a car enthusiast wants to tune their car for the pride of it, I do the same with my most expensive hobby, computing.

Please feel free to share links or short descriptions in the comments on your setup. What do you think of my setup? Is it too boring? Where can I get ideas to inspire me with more intricate setups? All opinions are welcome.

 

Automatic Transmission Simulation in Games

I know automotive enthusiasts will hate me for saying this, but automatic transmissions are an incredibly fascinating technology. Manual transmissions these days are reserved for the track, while most of the developing world is moving to a fleet majoritarily composed of automatics.

These days, even enthusiasts will admit that automatics are more efficient, shift faster and easier to drive than a stick shift. However, no one will disagree that a standard is much more fun and engaging.

How Automatics Work

To over-simplify things a little, transmissions exist due to the limitations in a combustion engine. It has a several narrow RPM ranges where it either produces the most power, the most torque or is the most efficient. The different gears in a transmission allow the engine to operate at the speed ideal for the driving condition while staying within those narrow RPM ranges. For a more complete and accurate explanation, please see this section on Wikipedia.

The part that I always found the most interesting about automatic transmissions was the shifting schedule. In other words, at what car speed to shift the gear up or down. The algorithm didn't seem simply arbitrary or simple and before I could drive, I did not have a way to experiment in computer games to figure out this logic.

Most driving games don't actually implement a true automatic. Rather, cars are all equipped with a manual transmission and the 'automatic' mode is actually a driver assist. The logic behind is simple, when the engine is near redline, it shifts up. When slowing down, downshifts occur at the maximum possible engine speed without exceeding the redline on the previous gear. However, this logic does not resemble at all what happens in a true automatic in real life.

After getting my license, I was excited to finally experience this shifting logic for myself. I was very surprised at how intelligently designed the system was, and how it adapted to driving conditions.

How Automatics Behave

The main concept of an automatic revolves around this: the harder you press the throttle, the later it shifts up. When driving slowly in a city for example, you need little power from the engine to accelerate. Therefore, it does not make sense to use the engine's entire RPM range in the first few gears to get up to speed, as running an engine faster is less fuel efficient. Rather, shifting early in the RPM range will maximize efficiency.

Automatic cars attempt to run at the highest gear to allow the engine to run in the most efficient range. However, higher gears provide poor acceleration when in a low RPM.

If the throttle is fully depressed, the car will shift in a way to make use of the entire RPM range of the engine up to the redline, this is the maximize performance and prevent lugging that would occur in a higher gear. 

The other component is kickdown when depressing the throttle. At first, the car is at cruising certain speed and a higher gear will be engaged for fuel economy. However, if the throttle is depressed harder, the transmission will command a down shift, or several, to hit an RPM range suited for better performance.

Current automatics have become very advanced and take a multitude of factors into consideration to decide when to shift. Grade shift logic for example will adjust gear selection based on hill grade to help with acceleration on a steep incline or provide engine braking when going downhill.

Each manufacturer implements their own unique algorithms and systems though the above concepts generally remain the same.

Automatics in Games

I had great difficulty finding games that simulated automatics correctly. In fact, out of the hundreds of driving games I've tried, only three simulated them in road cars. 

Admittedly, this is not an important aspect in racing, as most track cars use manual transmissions for better control. However, many of these games include road cars available to the general public and I found it odd that this kind of detail was missing.

I will analyse each game and demonstrate how it handles and simulates this kind of transmission. We'll be comparing them to the most common type of automatic transmission, the torque converter-based one. 

The Test

A test was devised that will demonstrate each game's capability at simulating the behaviour of an automatic transmission. It only aims to show the basic behaviours of the shifting schedule of an automatic. 

- First, the car will be driven slowly at city driving speeds. We expect the transmission to perform early shifts for fuel economy. 
- Once reaching 70 km/h, the throttle will be fully depressed. This should initiate a kickdown, where the transmission selects the lowest possible gear for maximum acceleration.
- While accelerating, the car should only upshift at maximum RPM to maximize acceleration
- At 120km/h, the throttle will be fully released. At this point, the car will upshift to the highest possible gear for fuel economy. This is the cruising stage.

Other behaviours will be noted which are typical of torque converter-based automatic transmissions:

  • Slipping on acceleration due to torque converter and resulting torque multiplication.

  • Creeping forward when in drive with brake released.

  • Smooth and sluggish shifting between gears with no jerking movements between shifts.

Each test will be shown in a short video demonstrating the capabilities of each games.

Live for Speed

Live for Speed is racing simulation with physics accuracy that can be most admired by a perfectionist. Car handling feels so right and the feel for reaching the car's limit of grip is spectacular. Despite showing it's age now, few racing simulations come close to having the accurate driving feel of Live for Speed.

As a sim for purist racing fans, Live for Speed does not simulate automatic transmissions at all. Rather, the 'automatic' mode is a driving aid, that shifts for you in a way ideal for maximum performance rather than fuel efficiency. I'm including this game to show what a failing test would look like. 

Let's cruise along with the Hatchback XF GTI on the track and drive it through our test:

Notice how shifting only occurs upon reaching the redline. While slowing down, downshifts happen as soon as possible to make use of engine braking. This kind of shifting is great for racing as it is very predictable but not for saving fuel in a city car.

An LFS forum user by the pseudonym 'tigerboyz' created a mod that simulates the shifting schedule of an automatic though it still feels like a driving aid. The slushy feeling of a torque converter or forward creeping are not simulated. Instead, this mod simply uses the manual transmission and shifts at points where an automatic would.

Enthusia

Enthusia is likely to be the first game of it's kind to simulate automatic transmissions correctly. I noted this while skimming a Wikipedia article about the game describing this kind of accurate modeling.

I eventually got my hands on the game through emulation. The game was a commercial failure, likely in part due to it's difficulty stemming from it's accurate driving dynamics and competition from the much more popular counterpart, Gran Turismo 4. Therefore, securing a physical copy is prohibitively expensive.

Let's take a look at how Enthusia portrays an automatic transmission.

As seen in the video, Enthusia pretty much nails automatic transmission shifting behaviour. However, the shifts do appear like they come for a torque converter, albeit an aggressive one. 

The shifts don't happen that early and gears are held for a bit too long. It is almost as if the game is simulates a 'Sport' or 'Second Range' mode which is seen in some cars for sportier driving. This kind of mode shifts at higher RPMs for more responsive throttle feel and allows more use of engine braking for peppier driving.

Interestingly, when slowing down, the transmission down shifts in a way that favours performance driving. In other words, as the car slows down, downshifts occur to make use of engine braking to help the car slow down. In the average car, this does not happen, rather, shifting down only happens when the car has slowed down considerably or during kickdown.

However, one big part is missing: the characteristic creep when releasing the brake. The car stays immobile even with the handbrake released.

The game further emphases the stock transmission normally equipped with the car when selecting 'manual' or 'automatic' before a race. In cars with an automatic transmission, the choices are 'automatic' or 'semi-automatic' emphasizing that the car does not actually include a true manual with clutch and gear selector. For manual cars, 'gear assist' and 'manual' are displayed which indicates that the car won't be equipped with an automatic, rather an AI will assist the driver in shifting.

The selections for a Toyota Corolla, a car normally equipped with a torque converter-based automatic.

The selections for a Toyota Corolla, a car normally equipped with a torque converter-based automatic.

The selections for a Honda Accord Type-R, a car normally equipped with a clutch-based manual.

The selections for a Honda Accord Type-R, a car normally equipped with a clutch-based manual.

The game also simulate CVTs which shows just show niche-focused this game really is.

One last thing I'd like to mention about this game is how quirky it is. The presentation is really artistic for a racing game with a very cinematic intro and lively menu music. The car selection is really something to talk about with not only the stereotypical selection of road and racing cars, but also minivans, hybrids and SUVs. Enthusia really lets even the most niche of enthusiasts drive their favourites. Here's a few of them:

City Car Driving

Russian-based Forward Development seemed to have a very different take on a driving game: one that actually portrays everyday driving. Instead of testing the limits of your cars in a tight racing track, you'll be stuck in traffic in rain, merging on highways while checking your blind spot and of course, wearing your seat belt.

While the driving dynamics are not the most accurate or engaging, they're suitable for the leisurely pace known to most city drivers. Oversteer might not feel convincing, but the traffic patterns seem to mimic reality with impatient drivers, those who change lanes without signals and so on.

Let's get behind the wheel of an average car equipped with an automatic. We got rid of the traffic so we could speed at our leisure.

Clearly, the simulation of the automatic transmission is very impressive. The slushy shifts, the shifting schedule and the lurch of torque multiplication are all there. Everything feels right. There's even the characteristic automatic transmission creep when releasing the brake when in drive.

This game doesn't have much quirks, it's just a good education tool to get new drivers acquainted with the feel of driving, or perhaps those who enjoy driving so much they want to do it at home.

BeamNG.drive

Renowned for it's incredibly realistic crash physics, BeamNG.drive shows how well driving dynamics can be simulated even without any pre-canned behaviours. In BeamNG.drive, cars behave based on the sum of their parts such as drivetrain, tires, aerodynamics and so on. While not the most accurate driving simulator, the mechanics are incredibly convincing.

BeamNG.drive vehicle roaster focuses on daily road cars rather than performance vehicles. As a result, stock vehicles can be equipped with torque converter automatics, CVTs and of course manual transmissions.

Out of all the games tested so far, BeamNG.drive is a clear winner in terms of simulating torque converter-based automatics. From the sluggish acceleration due to torque multiplication to the smooth shifting and accurate shifting schedule, the game provides the most realistic feeling automatic driving experience.

Let's get straight to the test with this game.

What's obvious is how much it feels like you're driving a normal car in the city. The initial lunge from the torque converter to the sluggish shifts. Even the delayed kickdown is portrayed after flooring the accelerator. It's very impressive. Of course, it creeps forward as soon as you put it into drive.

The amount of options simulating different kind of transmissions is staggering:
- High stall torque converters
- CVTs
- Transbrakes
- Dual-Clutch Automatic Transmissions
- Sport Mode Selection
- Manual Mode in an Automatic Transmission

Each one of the features above is simulated in a very convincing way. If you're interested in tinkering with car behaviour, I highly recommend this game.

Final Thoughts

This kind of endavour was more of satisfying an obsession than anything else. This is probably one of the most niche things I've ever written about. Most racing fans simply floor the accelerator when the count down reaches zero, however I like to test the limits of games and see how much attention to detail they really put in. Even when it's not intended, games tend to become a sandbox for me.

Attention to detail is something I really appreciate. Few games go the extra mile to mimic intricate details of reality and it's really admirable. Now, for noticing that a game simulates automatic transmission logic, that is a personal problem of obsessiveness that I may have! 

It's hard for me to believe that the games above are the only ones in existence that simulate such concept of the automotive world. If you know any other games that simulate this behaviour, let me know by submitting a comment.