ArtsTech engine development log


(Adam Parrott) #1

ArtsTech engine development log

This thread aims to serve as a more central locale for the numerous updates related to my current Haxe project, the ArtsTech game engine.


The ArtsTech engine is a “2.5D” first-person game engine, written completely in Haxe, which aims to mirror both the style and functionality of the Wolfenstein 3D-based games (including Wolfenstein 3D and Spear of Destiny, Blake Stone: Aliens of Gold and Blake Stone: Planet Strike, and Rise of the Triad: Dark War) while also incorporating some modern engine and gameplay features.

As a result, the engine will be largely limited to creating worlds with “blocky” orthogonal walls on a grid-like map; limiting wall and player heights to only one level of scaled height (with multi-height worlds and player movement being added later on); and using traditional flat sprites for all objects, enemies, and other actors.


With that in mind, the primary goals of this engine are to be:

  • Cross-platform, with desktop and consoles the primary targets
  • Written in 100% pure Haxe with minimal dependencies
  • Modular and self-contained
  • Highly performant on a wide array of machines
  • Similar in function and style to it’s retro games influences
  • Flexible enough to incorporate additional modern features


The following table provides a summary of the majority of planned engine features.

Group Feature Complete? Version
Walls Solid textured walls 🗸 alpha
Walls Transparent walls 🗸 0.9.0
Walls Inset walls 🗸 0.9.0
Walls Interactive wall tiles -
Walls Pushwalls 🗸 0.10.0
Walls Moving walls 🗸 0.10.0
Ceilings Textured ceilings 🗸 alpha
Ceilings Parallaxed backgrounds 🗸 alpha
Ceilings Animated ceiling tiles -
Floors Textured floors 🗸 alpha
Floors Animated floor tiles -
Floors Teleporting map cells -
Floors Touchplates / action floor tiles -
Doors Horizontal split doors 🗸 alpha
Doors Horizontal sliding doors 🗸 alpha
Doors Vertical sliding doors 🗸 0.9.0
Doors Vertical split doors 🗸 0.9.0
Objects Static single-sided objects 🗸 0.3.0
Objects Static multi-sided objects 🗸 0.4.0
Objects Animated objects -
Actors Multi-sided actors 🗸 0.4.0
Actors Animated actors -
Actors Moving actors -
Multi-height Multi-height walls of all types -
Multi-height Moving platforms up and down -
Multi-height Ability to “look” up and down -
Multi-height Ability to jump or fly up and down -
Dialogs Basic dialog support with nine-patch UIs 🗸 0.5.0
Dialogs Debug dialog for current key mapping 🗸 0.5.1
Dialogs Debug dialog for current session variables 🗸 0.5.1
Dialogs Debug dialog for current game textures 🗸 0.5.1
. - Single texture view mode (page left/right) 🗸 0.5.1
. - Overview / grid view mode of all textures -
Dialogs Debug dialog for current game objects -
. - Single object view mode (page left/right) 🗸 0.5.1
. - Overview / grid view mode of all objects -
Dialogs Debug dialog for current game palette(s) 🗸 0.7.1
Dialogs Debug dialog for current game font(s) 🗸 0.7.0
Dialogs Dialog for current level map 🗸 0.6.0
Dialogs Message box with optional confirm actions -
Miscellaneous Adjustable volumetric lighting 🗸 alpha
Miscellaneous Record and playback deterministic demos -
Miscellaneous Configurable HUD / on-screen display -
Miscellaneous Configurable title / transitional screens -
Miscellaneous Configurable menu system -
Miscellaneous Retro DOS mode on startup and shutdown -
Miscellaneous Basic debugging console -
Editing suite Map / level editor
. - Clone one map cell to another cell 🗸 0.8.0
. - Clone one map cell to multiple cells 🗸 0.10.1
. - Update current map properties 🗸 0.10.1
. - Update properties for single map cell 🗸 0.8.0
. - Update properties for multiple map cells 🗸 0.10.1
Editing suite Object / actor editor -
Editing suite Palette editor -
Editing suite Project editor -
Editing suite Menu system -
Editing suite Debugging console -


When additional features are added to the engine, I plan to post both short- and long-form updates to this thread which should provide additional insight behind some of the implementation and design decisions that were made to support each new engine feaure. I also plan to update the feature sumamry table in this initial post with the latest information as it comes available.

As always, comments and feedback are welcome!


In the meantime, here are a few videos that demonstrate some of the current engine features:

(More videos can be found at the project’s YouTube playlist here.)

Thanks for reading, and enjoy!


(Aleksandr Kuzmenko) #2

Do you have the sources published somewhere?

(Adam Parrott) #3

Not publicly. I may eventually open source the engine at some point in the future, but for now, the source is still being developed in secret. :slight_smile:

(Patrick Joseph Flannery) #4

Looking fantastic! Just to clarify too, neither source code or the public release of the engine itself, are available for perusal?

Super great looking, awesome work.

(Adam Parrott) #5

Thanks, Patrick!

Correct. I’m actually planning to use the engine in some commercial game projects, so it could be awhile before I would be ready and able to publicly open source the engine itself.

That said, I’m more than happy to answer any questions that people may have about the engine, so if you’re curious about some aspect of the architecture or implementation, feel free to ask away! :slight_smile: