When Half Life Alyx was released back in early 2020 it made me realize that there's still so much we can still do with this media. If you're fortunate enough to have tried VR, specially a fully realized experience such HL Alyx, you know it's definitely ground breaking. Now, whether or not VR will reach mass adoption or stay niche is still up to the debate, but no one can deny it's a paradigm change when it comes to immersion.
Coincidentally, we were all under lockdown, and I was pretty bummed I couldn't go back home to see my family, so I decided to try and bring home to us, and this post is a breakdown of the process I used on this environment.
I've always wanted to tackle a VR environment as a developer / artist every since it started to become popular, but never really had the chance or the drive to do it. HL:A made it easier for me, as it's development tools are available to the public, including all of the game's assets for anyone to reverse engineer and study (one of my favorite ways to learn) and I was just hooked...
I love how Source 2's Hammer comes with a really powerful modeling toolkit, usually with any other modern engine, you need to author all your geometry on a 3rd party modeling application, but in here that's completely optional as you can do most of the work in the editor, should you choose to.
I started out by blocking out a small area, trying to get a feel for the modeling toolkit and trying my very best to stick to the grid, and this engine makes that very easy, in fact it almost forces you to go out of your way (holding control) to move geometry off grid, this really shows that this editor was made for modularity and smart modeling workflows.
When I was happy with the dimensions of the buildings, I started throwing some solid colors on there. You could argue it's too early for that, but I wanted to start pre visualizing the colors as soon as possible here, and it helps me staying exited for the progress being done and it actually helps getting a sense for scale.
Also made a modular window and door prefab and started to dress the facades of the buildings. This is good to start detailing in a non destructive way.
In this phase, I made another window and door prefab to be used only on the bottom section of the buildings. Also went on www.textures.com and picked some nice scans that I thought represented the look of the usual cobble stones you see on these alleys of Porto.
This was a good opportunity to try out the new Hammer's material editor, this engine doesn't let you make custom shaders like Unity or UE4, which sounds restrictive but I actually like to be limited. Creativity breathes in restrictions, besides you probably have here in your disposal pretty much all you need to make an environment in terms of shaders, simple, blend, parallax, decals, etc.
Started to try out a few materials, and to see if blending two different rock materials would look acceptable here, for more variety I vertex painted bigger rocks towards the edges and smaller ones in the middle of the road.
Started doing some early lighting work here too, put in some slight fog, tweaked the sun strength and color, added reflection probes and I did some experimentation with how I was going to achieve the curbs and organic walls here. I realize it's better to not model these, and instead use modular assets to set dress these corner edges.
Some further refinement on the building shapes, and threw some railings in there to help get a sense of scale.
Added a few new materials and refined the shapes of the building even further. Also started to narrow down the color pallet a little bit too and was learning the UV / mapping toolkit. All the geometry being on the grid helped a lot, but there's still quite a few organic shapes on here, specifically on the ground that were going to prove a little bit more challenging, slopes are never easy to do, specially when there's buildings involved.
I made sure the map was contained and always playable. Added light importance volumes, did a few test bakes and dropped all the necessary entities to play this in VR. This is started to get exciting, walking around your own environment was a really amazing feeling I've never felt in my near 2 decades of making games.
Portugal being a southern country, the sun gets pretty strong specially during the summer months, I really wanted to reinforce this feeling by adding some sun reflections from the big glass windows. Unfortunately it doesn't seem it's possible to add masks to spotlights like other engines I've worked on, but it is possible to change the shape of the spotlights via a library of a few different shapes, square with smooth edges was all I needed so this was enough.
I searched the HL:A stock materials for a few props and materials to start replacing the flat colors and default grid textures. Even tho most of this stuff is temp, it gives me a good estimate for how much I have left to do and it helps fleshing out the look faster.
When I wanted to make the rooftops, was when I started to feel that Hammer's modeling toolkit wasn't enough. So I hopped on Maya and modeled a modular kit for the rooftops. Since all of the builds are on the grid, I know exactly how big the corners needed to be.
Some quick set dressing with the correct grid settings, and I could make all the rooftops fairly quickly.
At this stage, I couldn't help myself and started to put in some props, rain gutters, and some foliage too. Probably way too early, in hindsight I shouldn't have done it at this point yet but as long as you don't spend too much time in one specific thing when there's a bunch of other things requiring your attention like making the doors, windows, balconies and other bigger stuff, I'd say it's ok.
A few more prop placement too... I was just having too much fun in VR grabing and throwing stuff around. I knew there wouldn't be any enemies or any sort of gameplay in this scenes, so I tried to place plenty of stuff to look and interact with.
Alright, those blockout windows now have been annoying me for way too long, it's time to tackle them. Initially I intended to model them in Maya and bring them in as a model, but I choose to instead stick with prefabs. All of the windows you see here are copies of the same prefab, so, I just spent a little bit of time beveling the corners and doing some proper mapping and they look alright with the obviously benefit that I only need to do it to one and it would propagate to all the other instances.
I also modeled a few props are that unique to this scene, like that typical Portuguese wall lamp.
Once I was happy with the window stone frames, I dupped the prefabs and created different versions of them. These ones for example, have a inner red wooden frame.
Also, notice I started to make some colored plaster materials. In fact, this is just one material that blends with a second color which is white, and they both share the same mask. The color, is achieved through a model tint, allowing me to control the color of each building individually through a slider in the editor itself, no need to jump between photoshop and the editor exporting color maps.
The back alley of the scene also required some love, the round stone corner was still something I didn't exactly know how was going to do successfully. So what I did here was to try and hide the top edge with a modular curb kit, then blend two different stone textures together, and paint the darker texture on the top and bottom of the wall to create a gradient. To hide the transition between the ground and the wall itself, I painted some moss to the bottom of the textures and hand set dressed a few weeds along the walls ground edge.
Another angle of the rear back alley and the round wall, still struggling with a few intersections so I played around with the blending here to introduce some gradients and reduce repetition.