Blog

All Blog Posts  |  Next Post  |  Previous Post



Hawk One: a voxel helicopter game written in Delphi with TMS WEB Core

Today

Customer Case

TMS Software Delphi  Components

In the 1990s, Ralf spent a lot of time playing Comanche, NovaLogic's helicopter game with its voxel landscapes. What stuck with him was flying low over the mountains and valleys, using hills as cover. Somewhere along the way he added an item to his personal to-do list: build a helicopter game like that himself.

More than thirty years later, he did. Hawk One is now playable on itch.io, it runs in the browser, and it is written in Delphi and compiled to JavaScript with TMS WEB Core.

Play Hawk One


It started with a renderer

Hawk One wasn't a game at first. Ralf wanted to find out whether he could write his own voxel-style terrain renderer and get it fast enough to run in a web browser. There is no Unity or Unreal underneath. The renderer, flight model, HUD and game logic are his own Pascal code.

The first versions ran at 9 frames per second. A lot of the work after that went into keeping calculations out of the render loop and precomputing terrain data, until the frame rate was acceptable on a desktop PC and later on phones and tablets too.

Once he could fly over his own landscape, the project grew into a game almost by itself. Helicopter movement came first, then a HUD, a minimap, radar contacts and a compass. After that came weapons: a gun plus air-to-ground and air-to-air missiles, with target locking, ammunition and scoring.

Hawk One gameplay on a phone: voxel terrain with a river, compass heading tape, minimap, mission timer and an air-to-ground missile lock on a target
Locking an air-to-ground missile onto a target, with the touch controls visible on the left and right.

The current mission gives you five minutes to find and destroy every enemy radar contact. A radio officer briefs you before takeoff and has something different to say afterwards depending on how it went.

Pixel-art radio officer with a headset next to the mission briefing text
The mission briefing from base.


Keyboard, gamepad and touch

Input turned out to be harder than Ralf expected. Controls that feel right on a keyboard don't work on a controller, and neither works on a phone. Hawk One now switches between them automatically. On a desktop you can use the keyboard or plug in a gamepad, which also works in the menus. On a phone or tablet, two virtual joysticks and touch buttons appear on screen. There are two flight models as well. Arcade is the default, so you can start flying without reading a manual, and a more simulation-oriented option is there for people who want it.

Control settings screen with input device options (auto, keyboard, touch, joystick/gamepad) and flight control model options (arcade, simulator)
Input device and flight model can also be set by hand.

The game can also be installed as a Progressive Web App and launched from the home screen, so the same build runs on a Windows PC, a tablet and a phone.


Why we like this project

Most TMS WEB Core applications we see are business software: dashboards, forms, portals, back-office tools. Hawk One is a different kind of workload. A real-time renderer redraws the whole screen every frame and has to react to input with no noticeable lag, and here all of that code is written in Object Pascal.

Ralf works as a full-stack developer and uses Delphi every day in his professional projects. Hawk One is a side project built with the same language and tools he uses at work. It shows that TMS WEB Core can handle performance-sensitive code in the browser, and that Delphi developers can bring their existing skills to a platform that runs on nearly any device.

It's also a lot of fun to play.


An early version, and he wants feedback

Hawk One is in active development. Ralf plans more missions, enemies that fight back, more varied terrain, better effects and more sound. He's asking players how the controls feel, how the game performs on their device, and whether the five-minute mission is too easy or too hard. If you try it, leave a comment on the itch.io page.

Have you built something unusual with TMS WEB Core? We'd like to hear about it.



Aäron Decramer


  1. Customer Case: Oleg Kyrylenko - Viking Stories Mobile App

  2. Customer Case: Alexandre’s Boisramé - School Planning Tool

  3. Customer Case: High-Logic, FontCreator - Font Editor

  4. Hawk One: a voxel helicopter game written in Delphi with TMS WEB Core



This blog post has not received any comments yet.



Add a new comment

You will receive a confirmation mail with a link to validate your comment, please use a valid email address.
All fields are required.



All Blog Posts  |  Next Post  |  Previous Post