Half-Life 2 inspired scene


I’ve been spending this Sunday on being inspired by Project Borealis (Half-Life 3’ish sort of thing), and it made me want to make my own version of something from Half-Life 2 - In this case, the train station at the start. From there it would be a nice start to begin re-modelling City17 (Lots of lovely architecture).

The lighting in the scene isn’t baked, it’s realtime voxel-based global illumination, most of the stuff have been modelled/textured/animated/coded within a few hours on Armory v0.4 (I’ve a few scripts there, that I haven’t bothered updating to v.0.5 yet due to Blender API changes) on Blender 2.8. Relies only on logic nodes, no haxe code. - Eventhough I’m not fully satisfied with the result, it does give a sense of amazement thinking about how quickly you can go from concept to finish with Eevee and Armory.

I’ll be posting more here as I get more time to work on it, and I’ll upload scenes and assets as I progress. (At the same rate, that Valve releases episodes.)


Very once work man, Thanks for sharing.


What is the frame rate like? It seems jittery in the video and I can’t tell if that’s from the screen recording software or optimization problems.


@Naxela , looks really good. What are your system specs ?


That is awesome! :smiley: Did you do this all yourself from scratch!?


It’s an awesome showcase to show how fast a scene can be created and gameplay added without import/Export 3D models.

Tips to make it more dynamic :

  • some water and particles for water fountain
  • some particles and heat distortion for the flying robot;
  • slow moving clouds shadows (fake system)
  • small containers here and there showing there is people activity

The lighting is too bright everywhere, also you need to wait for rendering bug to be fixed ( https://github.com/armory3d/armory/issues/989 ) , wait for reflection probes also, it should look lot better.

Did you tried baked ? This could have been interesting to compare.
(I’m not sure Voxel is good or accurate)



The framerate depends a bit on the settings, but with VXGI @ 2 bounces and 128 resolution for a 64 grid + 1.5 SS it runs at around 50-60. I get about 20-30 FPS with a 256 resolution and 1.5 supersampling, which I thought would be nice enough for a youtube video that runs at about 30 frames anyway, but I hadn’t taken into account that the screenrecorder would slash my framerate too. For game settings in general, a 64 resolution and no supersampling looks fine though and goes to 60 fps just fine.


I run it on an i5 with GTX1060, so an ok machine, but could easily be better.


Yeah, everything was modelled from scratch, except for the little combine man in the pictures. Textures from either CC0Textures, Texturehaven or Megascans.


Thanks, I’ll put those ideas on the todo list. I had planned on more activity, but ran out of time. As for the lighting, it was actually deliberate as I kinda liked it (although the bloom was perhaps a bit too much). The brightness is perhaps more exaggerated in the second picture, as I kinda think it added depth in the first, and the third it was clamped.

A little tip for some users, that probably don’t know this - The scene exposure can be adjusted from the cycles film-exposure value:


As for baking the lighting - While it might have made the quality somewhat better, having static baked lighting doesn’t allow for dynamic day/night cycles, which is another thing on my to do list. Voxel GI with relight allows me to do that.


What resolution it is running ? 1080 p ?

Floor cracks and papers garbage decals to break texture repetition ?

Static looks better about shadows, static will will run faster on old hardware, but it is useless in Armory because dynamic objects can’t get their lighting change following lightmaps static lights (something Unity can do).

Well … i want to see more about that project when you’ll add some dynamic things and perhaps change the bloom and lighting :slightly_smiling_face:
Or wait for reflection probes and Armory pbr (textures roughness and metallic) to work and it should look lot lot better.

A fast time lapse video showcasing all is made from scratch in Blender (Armory) would be the best showcase about the real Armory workflow power.
Armory is unmatched because no 3D engine has all Blender features all in one combined in a plugin (sculpt, model, bake, paint, UV, rig, animate, modifiers, blender plugins).

This is very inspiring, Armory needs more scenes with dynamic things; does not need to be a game to be a great showcase.


Nice. Im big fan of HL series!


great results! here are some tips:
add some peds walking around: would definatley change the point of attention, but would demonstrate skin shading for the first time in armory’s history…
try adding character physics


Would it be possible you release this first level demo sources ? Or it is private project ?
I think this could become a good interior games benchmark for Armory users to tweak graphics and test how it runs , or suggest some graphics or performance improvements.

Does Armory have features to do culling when there is many rooms connected ?


It’s just running on 720p, mainly because it messes up my multi-monitor setup with the screen recorder on 1080p (I’ve some background apps that decides to plop up when I do).

I’ll add that to my todo list :+1:

I’m sure reflection probes, and the new features in Armory v0.5 and v0.6 will open up for a lot more awesomeness.

I could probably make a breakdown video, or a commented video where I explain what and how I do. At least it’s something for consideration.

It’s just a personal project, so the only thing preventing me from releasing the stuff is that it’s running on a quite customized version of armory 0.4 with stuff done to shaders and renderpaths, that makes it break with any other version. Plus I’m not sure Quixel/Megascans would be happy with releasing some of their textures. - But! I plan upgrade it a bit to v.06 once it comes out, plus change it to only use CC0 textures. - As for the customized stuff, it’s related to this, but newer (PPV) (https://github.com/Naxela/PPV) - Essentially, most of the colorgrading and shaders (Bloom, SSR, VXGI and more) have been made realtime:


Plus added a ton of custom stuff too, like CA/Fringe and dirt masks (probably hard to see due to crappy gif compression):


All of which, I hope to eventually either make as a plugin, or as runtime loaded libraries for version 0.6.

What I usually do is work with grouped objects (by room/building/area, etc.) and volume triggers. For instance, when walking from area A into area B I hide/remove objects in area A, and so on. It’s not efficient and requires manual work, but it works.

On a different topic, here’s a little cool thing I’ve been playing around with - It’s a CastleDB based in-game Encyclopedia (Similar to the Mass Effect Codex), now I just need multitext lines in ZUI:


Texture Haven
(for normal mapping) Materialize
maybe these will help?


I saw there was pull request for multitext for zui(pull request is old now though).
or you could use haxeui for that, Haxeui is really cool, cause you can handle stuff with CSS as it very easy.


@BlackGoku36 Do you know if you use CSS styling for HaxeUI in Kha, or does that only work for the web platform?


Dunno which platform it support but i think it support all platform because haxeui itself use css for styling not just kha.
Here example for armory -> https://github.com/armory3d/haxeui_example. (this is bit old).

Here the Haxe-UI creator using it -> https://twitter.com/IanHarrigan1982/status/1069602760977457155 (this is latest).

Here template for pure kha -> https://github.com/haxeui/haxeui-templates/tree/master/kha.


AFAIK styling in HaxeUI is done with css-like language, which is converted to css for web or used for styling on native.

@Naxela , great work, thanks for sharing ! Does it run as a web export ? I am curious about performance on such scene.


This looks promising, cannot wait for the finished scene!


While waiting for the finalized 0.6 version of Armory, I’ve had a bit of time experimenting with things that aren’t necessarily dependent on the redone rendering core, such as continuing with the concepting of the Combine-inspired architecture with focus on architectural brutalism and structural expressionism that is perhaps more prevalent in bigger spaces and exteriors.

So for now, these are EEVEE pre-renders that should sort of show how the interiors will look in Armory once the environments are baked - For now I’m unable to bake without crashes (that is probably more related to either the Blender 2.8 beta or my graphics card driver rather than Armory):


Things that do work well already in Armory 0.6 is animations and armatures, and I must admit I’ve never ever really dug into this before now, and to my surprise it mostly works great, and it get’s really cool when you can align animations up with sound effects (like shown in the video below). Finally there’s the interaction between Armory and the underlying HTML/CSS/JS on browser deployment, such as the simple background change:

Being able to directly call Javascript and thus make CSS changes from within Armory and Haxe allows for some really neat features, and essentially allows you to have advanced HTML/CSS-based UI-overlays that equals some of the high-priced UI solutions for more prominent games - Here just a quick example with CSS3 filter blur and transform rotation:


Performance is slightly lower than Krom, and Voxel GI doesn’t work on web export but apart from that it works great


Awesome job. Your scenes always look so great. :slight_smile: I can’t wait to see what they will look like in Armory render, but Eevee looks like it is doing a great job too.