Unity - WTF is going on

General / 15 July 2022

Hey guys!


Like a lot of you guys know, I've been delving into learning Unity with the plans of potentially making game prototypes and creating tutorial resources for it. However in the last few weeks of me evaluating it and especially in the last few days I'm just left with a bitter taste in my mouth regarding some of the high-level directional choices that Unity are making.


Unity Merging with IronSource:

https://twitter.com/sh4na/status/1547220546458361859


Unity Game Developers obviously not being happy about Unitys Direction

https://twitter.com/gamemakerstk/status/1547313023236427777


Unity decided to shut down Unity Anwers and then went back on their decision [Support forum for Devs]
(they decided to shut it down, community hated it , because its obviously a bad decision.)

https://forum.unity.com/threads/unity-answers-shutdown-canceled.1293360/#:~:text=On%20June%2023rd%2C%20Unity%20Answers,on%20the%2023rd%20of%20June.


Unity CEO calling its user-base "Fucking Idiots"

https://mobilegamer.biz/devs-not-baking-monetisation-into-the-creative-process-are-fucking-idiots-says-unitys-john-riccitiello


Unity Cancelling Gigaya


https://forum.unity.com/threads/introducing-gigaya-unitys-upcoming-sample-game.1257135/page-2#post-8278305


I think the cancellation of Gigaya is somewhat of the last straw for me, because Unity has issues for medium and large scale development. It's the number one complaint from its game dev user-base, Unity doesn't have a flagship game that push their own tech forward, that makes the engine better for everybody, that inspires its users to push onwards. Game development is hard and costly, and they cancelled it because of these reasons believing that they've learned "enough" and its not worth pushing further. It's just proof of the fact that Unity can't even push through their own issues of their own game development.

They don't believe in game development enough to even support their own internal game dev team financially. In the end, they make it really hard to defend them or Unity as an engine you want to stand behind.

in fact, it's so hard to defend that most successful games don't even advertise the fact that they are made in Unity and most devs actually pay to remove the Unity Splash Logo in their game. It's even advertised as the first feature of their Unity Plus subscription.

^ Right there, the first feature in the list of features of the Plus subscription.

So yeah, it's hard to defend them at times like this. Does this mean that you can't make great games in Unity? No, of course you can. But you're also making games in a "Game Engine" for a company that seem to care little about games.

So where does this lead me in regards to what I was planning in terms of evaluating their toolset, tutorials and what not. Well essentially this:

  • I will not continue the Unity Evaluation Based Series
  • I will not continue to make art in Unity
  • I will be sharing what I've learned so far as free resources on here
  • I will be spending my focus on Unreal again

As for the wonderful devs that use Unity, keep on working hard! It just sucks to be spending so much effort on a company that doesn't care about its core-users.

Outcast by Appeal - Innovation before the year 2000

Article / 19 June 2022

Outcast (1999)

Outcast is one of my favorite games of all times, getting somewhat annoyed by the fact that very few has played this game and me having to tell people why all the time, I decided to actually breakdown and show people why its great and part of its greatness coming from the fact that its a game from 1999 doing incredible things.y

So Why is it great? A quick breakdown of one of the most innovative games of before the year 2000

Outcast is a an action adventure game made in 1999 for PC.

  • The US government sends a probe to an alien world in parallell universe, there the probe is discovered by an un-identified lifeform that attacks it causing an energy backlash that causes a blackhole to start forming threatening earth
  • You're tasked to travel into the parallell universe and to  investigate/survive and try to fix the probe.
  • The game got good reviews back in the day and was lauded for it's technical achievements. The game was way ahead of its time.

Sadly , few ever played it.

Other notable games released in 1999

  • Shenmue (City Open-World)
  • Silent Hill
  • Final Fantasy VIII
  • EverQuest
  • Counter-Strike
  • System-Shock 2

Enter the Remake


  • The remake of Outcast is called Outcast : Second Encounter and is the game I’ve recorded all my footage from. 
  • The remake is a purely visual remake where all the original ingredients, gameplay, animations & sounds are intact.
  • They are even using the exact same world footprint and even navmesh.

Features of The game

  • A zone-based open world featuring several Zones with enemies and friendlies occupying and moving around the space.
  • Fully Voiced & Fully orchestral score
  • Dialogue options
  • Third person action combat & stealth with a variety of weapons
  • A mount you can ride and shoot from

but what is really cool about the game are mentioned below:

FYI: ALL THE VIDEOS HAVE AUDIO 

Language Learning

Appeal spent a lot of time making sure that "investigation" part of the game is actually about Learning about the world and its people and cultures.

In this example, I just arrived in a major city speaking to one of the first Talans (natives) I found , he mentioned the word " Bok "  in a sentence and I thought what does that even mean? And in the next dialogue choice I get the chance to ask the question.

  • When you first arrive on Adelpha (the world the game takes place in) and travel to the different regions of the game, you’ll inevitably end up speaking to the native population. However, you’ll realize it’s a mix of English and their own native language that you don’t understand.

  • To gain an understanding of their culture and language, you have to ask the natives NPCs what specific words mean and learn about their culture and important locations.

  • Once you learn the word, phrases or location the Codex is updated with the Talan (natives) word and meaning.
  • Not all NPCs have all the information. You have to walk around and ask several NPCs to get their point of view or their specific knowledge about people/locations/history.

  • Knowledge is local to whatever region is in, NPCs might not know about what is beyond their own home region.


NPCs scripted to walk to other locations

This type of feature isn't uncommon in modern games but it's still very impressive for a game released in 1999. They walk across the open world, potentially dealing with weird terrain and enemies.

  • There are instances in the game where you ask NPCs to accompany you to places or ask them to help you out with tasks

  • Here is an example of me asking & following one of the Shamaz (shamans?) to heal one of the Riss (rice?) workers in the fields. This would have happened even if I wasn't currently present at the location.


NPCs scripted to work

These features aren't necessarily uncommon in modern games but it's hard to find a game these days where transactions in games will have the NPC actually hand you the item in question. Again, this is 20 years ago. Amazing stuff

  • Walking around in the villages/cities you'll notice that there are plenty of NPCs that go about their daily lives doing work and walking around.

  • This add a lot of life to the game having both NPCs and Named NPCs not staying around in the same space all day.

  • Here is an example of NPCs carrying boxes around the city.

  • In the game you will also notice that both the player and NPCs can sometimes hand each other things during dialogues. Which is a neat and nifty feature since most of the items you pick up during the game can also be held in your hand when taken out of your inventory. Like keys to open doors.


NPC Events - NPCs giving the player messages

This is a good way to let the player know that there are NPCs looking for you in the game and a much better way to let the player know that there are available potential quests without having the player always approach everybody or look at some town board for quests.

  • Since the game is quite open-ended without objective markers, appeal (game developer) has made a couple of interesting choices regarding how to give the player information.

  • Travelling around the world NPCs will sometimes call for you to approach them.

  • Giving you information about certain things OR letting the player know that other NPCs are looking for them.


Localize NPC feature - Far Away

This is something that might seem mundane and simple but even today this doesn't happen. The player is basically triangulating the position of the NPC he's trying to find. It also gives the world and its people a more connected feeling.

  • Without objective markers or a good map it can be quite tricky to find people. Appeal however added an interesting feature to the NPCs called "Locate Talan (Native species)"

  • You can ask friendly NPCs to help you locate specific people. Since they're moving around in the world.

  • If the NPC is far away, the NPCs will state something like  "He is to the west of me, but I saw him moving that direction so he might be even further West."

Localize NPC feature - Close

This is something that to do this day isn't happening in video-games since usually an objective marker or a UI map help you find everything you need. And it's always somewhat disconnecting the player with the world he's supposed to inhabit. This however, is a brilliant and simple solution.

  • When you move around the world you keep asking NPCs where the specific one you're looking for is, you begin to triangulate their position.

  • Eventually you will be rather close to the NPC you're looking for. Then the NPC you're asking will simple point in the direction of the NPC you're looking for and say something like: "X is over there" and point in that direction.


Growing more powerful

  • One of the more interesting aspects of Outcast is the fact that the game focuses less on player power growth and more on weakening your enemies by sabotaging their resources.
  • Resulting in the enemies being less tough, have less powerful weapons and low morale.

Actions including:

  • Shutting down Riss Production (Plant based foods)
  • Stopping the main food production / animal catching (Meat based foods)
  • Stopping weapon production by shutting down the mines that gather resource for weapon production.
  • Lowering morale, by going through steps to affect soldiers wages.


Gathering a resistance


  • Eventually by undermining the efforts of the bad guys, you end up creating local resistances that in each region will start training and eventually fight.

  • Which is also shown in the game, when you come to a certain point they will setup training camps in the different regions.

  • The game concludes when you've helped the regions gain independence from the oppressive soldiers, weakened the enemy army and eventually take the fight to them.


Final Thoughts

  • For such an old game I think there are many things that are way ahead of its time and there are plenty of good lessons to be learned.

  • The game was released two years before Grand Theft Auto III and featured open-world zones, fully voiced dialogue, dialogue options,  a mount, fully orchestrated score, combat & stealth.

  • The game was also created during a time where the hand-holding wasn't really a thing. There were no objective markers or maps telling you where to go, so the developers created in-game contextual ways of giving the player information. It's honestly a great way to make you feel more connected to the world you're in.

  • To be able to actually succeed in the game you'd have to actually put an effort into understanding the culture, what words mean and what meaning they have to the natives.

  • Oh and if you have time one rainy night, it's definitely worth a try, but at least maybe this breakdown gives you enough information about what's good about it.

Thank you Appeal for such a wonderful game!

oh... and Outcast 2 is on the way


That's it for me! 

Until next time!
Warping out

//Chris Radsby
 

Unity 2021 - Impressions from New User

Article / 14 June 2022


Unity Impressions - Part 1 - Default 3D World Building Toolkit 

So I'll just start off with this, a few months ago I decided to learn Unity, I decided to evaluate it as an engine of choice for development with the focus obviously being on the 3D Art and 3D World-Building aspect. We as game developers and studios wanting to make games, evaluate the product and what It has to offer. Which means, we evaluate the core set of features it provides, at least initially because it's  really hard to convince someone to use a product when you have to often have end it with: "Yeah we don't have that, but you can find it on the marketplace". The marketplace shouldn't really be in the calculation in my opinion that said however, there are some crazy talented developers on the Unity Marketplace that are worthy of mentioning.

I've been working with large world games my whole career, as both a professional environment artist, tech artist and essentially tools designer/developer. That's essentially the basis of my perspective and I'm basically writing this to just get my thoughts down on paper but I also hope to help some people who are interested in this stuff realize what is good/bad with Unity and what they need to do to compensate for some of these things.

I also want to say that even though I have some negative things to say about Unity WorldBuilding Toolkit , I don't want to undermine the incredible work each of the engine/tools developers put into lately. It's already a great product, proven and viable for a wide-range of genres & scopes. I'm just trying to point out what I feel could be done better for the sake of the dev community.

I have only used Unity for a short while so I'm bound to have totally misunderstood some things or be plain ignorant about stuff, feel free to correct me :D

I've been using Unity 2021.3.4 URP


General Development


Unity uses C# (very straightforward language for programmers, pretty easy to get into for Tech Artists)

Unity uses Scenes

  • Scenes are the equivalent of a levels in Unreal

Unity uses "Game Objects" for everything

A Game Object is like a container for anything

  • It's component based, you can add components to the game object.
  • Place a mesh renderer component inside of a Game Object, and its an actual Mesh Object that you can place in the world
  • Example: The Terrain is a Game Object with a Transform Component, Terrain Component & Terrain Collision Component.

It's pretty useful and straight forward way of working. Though in the heirarchy / outliner, you also use Game Objects as Folders to child other game objects under it. Which is pretty messy visually. Apparently there are marketplace addons to add folders to the heirarchy however, with performance increases as well.

You can Create Prefabs out of multiple Game Objects

  • Game Object with mesh renderer component & collision component = Mesh Asset
  • Game Object with Particle Emitter Component = VFX Asset
  • Game Object with Scripts Component = Whatever you need it to be a tool, utilities or game mechanics.
  • Put them all together into a prefab and you have for example: Barrel mesh, fire particle and scripts dealing with whatever gameplay mechanics need to be attached to it for heating the player up.


Above = URP , 100% not out of the box though.

Unity Render Pipelines

Multiple Render Pipelines

  • Built-In - General Purpose Render that has limited options for customization
  • Universal Render Pipeline (URP) - Scriptable, customizable and optimized for a wide range of platforms
  • High Definition Render Pipeline (HDRP) - Scriptable, cutting edge, high-fidelity graphics for high-end platforms

In general it's confusing

  • It's hard to keep track of what render features are for what render pipeline
  • It feels like the Unity team is divided in their goals
  • It forces you to constantly look twice or thrice if marketplace items support your choice of pipeline
  • Different workflows sometimes for implementing the same thing
  • Unity releases a lot of versions, the documentation becomes out of date very quick leading to very confusing moments


Unity is Small Games Focused?

I would say that the default toolkit in Unity forces you to create small games.

  • If you want to create medium sized or large games you will have a bad time with the default toolkit.
  • Medium/Large games will definitely force you to use the Marketplace Addons to fix functionality that Unity is missing
  • Then you are at the mercy of 3rd Party Tools made by potentially solo developers that are already supporting a lot of studios out there.
  • The issues can be mitigated obviously if you yourself is a good tools programmer or have people in your team to develop tools for you, but the reality is that we want to make games not focus all of our attention on Tools.

A lot of tech/tools developed for Unity are developed individually with little to not considerations of other systems or how people want to work

  • It seems a lot of people rely on marketplace content to get production up and running
  • It makes it feel like Unity Tools team are focusing on the wrong things

Does that mean you shouldn't use Unity as your game-development tool?

Heck no, Unity is still a very good option to develop your game in, the important thing with any game-development tool is to know what it's good at and bad at and adjust your game project and expectations accordingly


Art/Tech & World Building


Terrain System

https://www.youtube.com/watch?v=-kzXjaQLmTc

Unity developed a new terrain system a while back, it comes with some really nice sculpting features. The rest however is pretty bad in my opinion.

Roadmap:

https://unity.com/roadmap/unity-platform/3d-world-building

Terrain Sculpting:

  • Destructive Workflow (ie you sculpt ontop of your already work, no layers)
  • It's pretty quick overall
  • Lots of useful sculpting tools
    • Erosion, Masks, Ramps, Filters, Stamps, Terraces, Transforms,
  • Sadly no Clay-based brush (sculpted from the bottom up , makes it easier to make natural stuff instead of weird blobby shapes)
  • No spline based modelling out of the box (ie no paths/roads/rivers)
  • Support for Multi-Terrains
  • Very little bad things to say about the sculpting tools, they are really good.

Terrain Painting & Layers & Materials:


Layer Painting Brushes / Features

Leaps and bounds better than Unreal Engine for painting out layer masks.

Allowing for Terrain Filters for painting (very good)

  • Slope, Height, Concavity/Concave
  • Math operations (Abs, Add, Clamp, Max, Min etc)

PBR Setup (Albedo, Normal map, Mask (Metallic, AO, Height, Smoothness))


URP Allows for 8 Terrain Layers

  • Uses an RGB Control mask for each layer painted (Typical RGB splatmap)
  • You can use Shader Graph for the Terrain Shading, however it's not officially supported and it's definitely tricky to get things working the way you want to. I also have no idea how to access more than 4 layers in Shader Graph.
  • I think one is supposed to be able to do 8 Layers in URP, and I definitely have no idea how to access a second splatmap using the terrain system to add more. (Unless I add stuff manually in the shader)

Custom Terrain Shading

  • if you want custom, you either have to figure out how to make a Shader Graph version of the terrain shader or create something from scratch in HLSL (or use whatever is provided for you in the marketplace)
  • If you create a custom Shader Graph terrain shader, I personally don't know how to access a second splatmap for painting a second pass on the terrain.


Foliage / Object Placement (Trees & Detail System)

Overall impression, it's very bad. 

They call it Trees & Detail, but in reality its only meant for straight trees and grass. I have a lot of bad things to say about this system, it's a major reason why it's hard to consider Unity for medium & large game projects.

Tree System

Painting out Trees

  • Simple painting brush
  • Individual Tree Properties are really limited though
  • Has option for scale variation
  • Has random rotation on the up-axis(y)
  • No Align to Terrain Normal (ie you can only have straight trees)
  • This also makes it hard to use the Tree System for any other of kind of prefab you want to paint out like rocks.
  • No options for painting on specific terrain layers.
  • No species/container options
  • For species or randomization of a set of objects to place
  • It becomes really messy if you have a lot of different objects/trees

Automatic Billboarding

  • Only works if your tree is using their shader (fair enough but cluttery) 
  • Not sure how to disable the billboarding
  • Chances are that you'd want a custom solution for this anyways

Automatic Bending of tree + wind

  • Only works with their shader (fair enough but cluttery)

Details system

The details system is meant for "details" but the reality is, its a grass placement tool that isn't very good. You attach a texture to the system and it allows you to populate the terrain with billboard grass. You can use it with custom prefabs but it has issues, more info below:

Default Setup:

  • One polygon square grass/plant that will face the camera direction.
  • It looks bad and very few games these days use this technique so it's pretty old too

Custom Prefab for Grass/Rocks etc (custom mesh / custom shader)

  • It works but not really
  • Placement Options 
  • Width and Height Scale Variation
  • No rotational options, No align after terrain normal
  • Results in a lot of floating grass
  • No procedural way of placing it
  • Doesn't support LODs
    • This is a pretty huge deal.

Here is my test scene in URP + Grass Mesh, does not align to terrain

Here is the Unity HRDP Terrain Sample Demo Scene, with grass not snapped / aligning to the terrain normal


So how do you populate the world with rocks and debris?

Honestly there isn't a great way to do it with the original toolkit available. Neither the Tree system nor the Detail provide good and flexible placement options or object avoidance and if you want to use the grass system to place custom prefabs it doesn't support LODs. 

Here is an image from a 3DBuzz video from 2011 in Unity 3, showing the Terrain Detail System. That's more than a decade ago mind you. It seems that even after 10 years this system works the same way with the same flaws. So yes, in general, I would say that this system would need a complete re-haul and Unity needs to take workflow & tools development a bit more seriously for the sake of the production of any future games made in Unity :D

To sum it up: To build bigger worlds you need the Unity Marketplace or your own tools programmer.


Shader Graph

Shader Graph is pretty good, overall.

That said though some part of me feels like this should be a given already, ShaderForge, Amplify etc... there is a decade of work gone into Unitys options for node-based shaders already. What Unity themselves are offering are barely better than the other options.


Though at this point it might still just be better to use Amplify since Shader Graph is still very early days and not implemented across Unitys Systems (All the points above + some below).

You create Materials and assign what Shader Graph it should reference

  • It's equivalent to the Material -> Material Instances in Unreal Engine
  • You can create sub-graphs to encapsulate shader code for re-use in other Shader Graphs
  • Hard-Coded variables in some systems can be accessed with the Reference if you create a Property in the BlackBox

Has a set of decent default shader templates to start out with for very basic usage

Complex Lit, Lit, Simple Lit, Baked Lit, Unlit, Particles Lit, Particles Simple Lit, Particles Unlit, Decal

No Cheap Subsurface / Foliage Shader out of the box

  • Pretty big deal if you are an artist wanting to make foliage for Unity
  • Have to find something on the marketplace or go have to go digging online to find a solution in URP

No Default Access to Light Direction, Shadows or Additional Lights

  • Ties together with above problem, if you want to create your own foliage shader solution from scratch.Good thing there are some very nice people online that share their knowledge, here is what worked for me:
  • https://chulin28ho.tistory.com/690 

2021 Doesn't support Shader Graph for Post Process Effects

  • It seems to be working in HDRP Newer versions

Sometimes buggy, I can't really explain it.

Sometimes inputs stop working, you can be getting Vector3 values out of one node and then not be able to connect it to a Vector3 input on another node. You have to re-create the whole chain.

  • Sometimes when creating pin-nodes, for example I have a Float value coming out of one node, then I create a pin to organize my graph, the pin itself forces the float to become a Vector3 or 4.


Where to go from here?

I guess you might want some kind of summary of mine so I'll just give my answers in the form of questions that I answer.

I'm an Artist , should I use Unity or Unreal Engine? 

Using Unity as an Artist, is a lot harder than using Unreal Engine. The reason is because you have to jump through a lot of hoops to get what want. UE5 has more features and is overall more user-friendly for Artists. Unreal Engine is exploding in popularity, which means its not hard finding resources and tutorials for it none of which are out of date.

Unity on the other hand lack so many things sometimes that you have to crawl through the dark web to find solutions for custom things that you might need.

What does this mean for Unity? Well to get the artist community on your side to create promotional work for free (essentially) Unity should focus on improving the approachability of Unity. Ie Ease of Use to get what you want/need on the toolside especially.


I am a Solo Developer should I use Unity or Unreal Engine?

I would say that it depends on your game scope and what you prefer coding in. C# is very straight forward, it's pretty easy to get up and running with some simple stuff in Unity. If you look at the issues I've listed above, Unity definitely has some issues when it comes to building worlds but it can most likely be fixed with marketplace addons.

Unreal has its own issues especially UE4 + Dynamic Lighting. I think one thing that is valuable for a solo dev to look at is up easy it is to make stuff yourself with the different tools and how well equipped the marketplace is to handle anything you might need. The unity marketplace is fantastic for example, so many crazy tools for world building there which are a lot more in-depth and intricate than the tools offered on the UE marketplace (in my opinion).

Don't trust me? Check Atlas out. You don't really see that kind of stuff on the Unreal Marketplace.

Why are you learning Unity?

  • Initially I just liked the look of Unitys Bloom Post Process, it looked soft and magical

  • My interest grew and I decided that I wanted to make a portfolio piece in Unity and at the same time learn how to use Unity

  • I realized that there aren't a lot of learning material for Unity or guides on how to make art for it and what you need to know as an artist moving from other engines into Unity. (Even though there are a lot of studios that use Unity)

  • That eventually grew into me deciding to take a C# Course for 3D Games in Unity

  • One thing led to another and now I'm evaluating Unitys current World Building Toolkit & Tech since I might want to try and build a portfolio project that is a bit more organic and bigger using Unitys tools + Marketplace Tools.


What do you like about Unity?

  • Unity URP is really light-weight. I love that, you get crazy high frame-rates, it feels really good.

  • The renderer looks different from Unreal Engine, Artstation is over-saturated with Unreal Rendering looking projects. I think Unity has a nice look to it because of the differences in the renderers.

  • I like C# , it's a bit more straight forward than UE4 C++. I've had a lot of fun coding in it though I havent had a chance to try Bolt or the Animation systems yet. They seem pretty solid at a glance though.

Here is a current WIP of my scene I'm creating whilst learning how to make art for Unity:

  • Some part of me like that its a bit more elbow grease to get stuff done, but it's not really a good reason to put in an evaluation haha!

What do you dislike about Unity?

  • I dislike that their world building tools are made for a singular purpose. For example the Terrain Tree and Details system. it's so specific that it should be called Straight Trees and Billboard Grass System. It's not flexible at all, plus the systems are more than a decade old.

  • I dislike that there are several render pipelines, they are developing features that people want for different pipelines and the delivery of those are might or might not show up for the pipeline you are using. It's confusing and the whole thing feels divided in attention.

  • From what I learned, They keep changing things: UI , Animation, Render Pipelines, Input Systems..etc, it essentially means the original design for these weren't future proofed enough or able to scale up to meet with the demands of modern workflows. It's too bad because so many changes has essentially led to making lots of resources out of date.

  • To be blunt and borderline mean: Essentially it feels like the Unity team hasn't created a modern game themselves and all of their tools reflect their inexperience in the needs of devs & larger productions.
    • I say this because in direct comparison you have Epic, who actually make very successful games in their own engine. Driving the development forward improving the lives of all the developers using Unreal.

    • That said though, their latest sample game Gigaya seems awesome and definitely 100% in the right direction and I fully approve of this approach to things.


What Unity Marketplace items make up for Unitys weaknesses?

This is a bigger topic of discussion that I will probably cover in a future part of the blog.
Mainly because since Unity is lacking in some areas it has made the Marketplace Community prosper into something amazing. So there is always something good and bad with everything so I'll definitely go through some Marketplace stuff when I can :D


What do I have left to talk about?

Lots of things!

  • Scenes / Collaboration in Teams
  • World Building Tech
    • Streaming
    • Scene Management
    • Lighting / Interior / Exterior / Open World
  • Marketplace Addons
  • And lots more... I honestly can't think of everything right now xD



But for now I guess this is it!

Until next time!
Warping out

//Chris Radsby

UE4 4.27 - RTX GI - Quick Production Viability Analysis

Article / 15 February 2022

Nvidias RTXGI is a dynamic global illumination solution for UE4. I spent this weeks stream investigating if it would be viable to use in game production and what it's good at / bad at. That said, I only spent 30 minutes or so tinkering with it so take what I say with a grain of salt. It could be that I'm missed settings or doing something wrong, and I definitely think you should check if the points I'll be writing below are right or wrong.

Setup:
- Download RTXGI plugin, place it in the plugins folder of 4.27
- Following the common setup, enabling DX12 & Raytracing
- Using r.globalillumination.experimentalplugin 1 & r.rtxgi.ddgi 1 CVARs
- Testing DDGI Volumes out in a completely new made scene.
- Directional Light, Sky Atmosphere & Skylight (All Movable)
- Post Process to check Raytracing Settings for Reflections

I could totally be missing some kind of settings or plugins or whatever to make all this work but yeah this is the stuff I found with the brief moments I spent with RTXGI this evening. I thought it would be a good idea to document my thoughts, it's not like Nvidia will be putting the flaws of their tech on their feature list on the website xD.

RTXGI

Overall Impressions:
- Very good diffuse color bounce
- Seems somewhat performant though I haven't thoroughly checked it yet.
- Lots of flaws right now (in my opinion)

Density:

  • Low Density Probe Counts create visual artifacts in spaces between the probes
    • Can be mitagated to some extent by changing view bias & normal bias.
    • Below is a higher density of probes, somewhat eliminating the artifact problem as well.
    • Definitely needs more environment props/materials to hide whatever the artifacts that come with the GI.
    • Low Density Volumes should probably be used in outside areas?

Volume Blending:

  • One of the bigger selling points is that you can use multiple volumes with varied density for your needs in your levels/art-scene.
    • Creates a pretty harsh blend between volumes
    • As far as I know there is no good fix for this. One would have to carefully control the transition areas and hide the seam in doorways or with props.

Skylight / Atmosphere Support:

  • Skylight blends nicely in outside areas, but the this GI system doesn't support any sort of skylight occlusion.
    • Skylight Intensity set to 1 in inside areas will still globally light the environment, like you can see in the above shot.
    • The result will be a little bit better if you divide up your volumes into Interior Volumes and Exterior volumes. Thus limiting the interior volumes to the skylight already.
    • It could definitely be better though since the skylight still applies its intensity on the indirect lighting globally. Like you see here where the skylight is still lighting the back area of the room.

Reflections:

  • Bounce GI from Any Light are not properly reflected (Raytracing Reflections Nor Screenspace Reflections)
  • Manual Cubemap creation doesn't work with Raytracing or this GI Solution. (Why would it, it shouldnt need to , its raytracing)


Ending thoughts:

  • At least from my own short experience with it, it doesn't seem to be a good replacement for Lumen. Currently the RTX GI tech lacks proper communication with the Sky Atmosphere and Skylight, and from what I can tell can't actually see the bounce lighting in screenspace reflections, raytraced reflections nor do you even have the option to make your own manual cubemaps to solve this issue.

  • As for the Sky(light) Occlusion, you can still do it the old-school way by controlling SkyLight Intensity with Trigger Volumes or line-tracing the sky. That however only works around the character itself, so it would only really work properly once you enter dark areas for example, not looking into them.
    • Seperating Volumes does mitagate this issue somewhat, by it's not a great solution. since it's hard to get really nice blending between volumes
  • Would I rely on this for a game production? Probably not in its current state. When I'm looking for a dynamic lighting solution I obviously want it to work with all the other tech.
    • I have a hard time believing you could make a really good convincing reflective environment with lots of bounce light.
  • Please prove me wrong! :) Would love to see this tech work , so if you guys wanna confirm or deny my suspicious, please go ahead!

I opened up UDK/UE3 again and repaired an old broken scene.

General / 06 January 2022


aaand check it out people !

it's running in UDK/UE3. This scene was made back in 2013-2014 way before...any fancy rendering or tools. (photoshop ftw) but now I can see it in high-resolution in the viewport (from which I grabbed these shots below) and in ultra wide as well because..why not since I have the monitor for it :D

Hiding seams with tilable textures

Tutorial / 14 November 2021

Heya!

So I've been going through techniques to hide seams on tree trunks and roots during using tilable textures on my art-streams (Tuesdays 8pm CET).

Here below is a snippet of what I'm doing in my own scene:
(you can find the progress videos on my patreon:  http://www.patreon.com/chrisradsby)

I thought it would be useful to write these techniques down for you guys so you could have a look and learn from it.

So usually the issue when you're working with tilable textures on organic shapes such as roots or trees you always end up with seams wherever the branches end up connecting to the main trunk.

Solution 01 - Adjusting the UVs to create a seamless look from particular angles


This technique is probably the most straight forward one.

Essentially it just means that you would have to strategically place the seams in and weld the UV shells together in areas so that the seam become less visible from certain angles. In this particular example above, the seams are actually above and below the branch, but the its perfectly seamless from the side, since the UVs are welded to the trunk UVs and then skewed in the direction of the bark (upwards) to slowly transition from the bark going upwards to the bark going up along the branch. 

Solution 02 - 2 UV sets and material blending

This technique uses two UV-sets. One main one which would be a regular unwrap of the whole trunk, adding seams where the branches connects to the trunk.

Then you do a second UV-set where the seams aren't placed in the same area as the first and vertex blend between the two to create a seamless result.

- where its black its using UV0 (where there are seams on your original unwrap)
- ie where red is painted its using UV1 (where there are no seams)

Here is a simple shader-graph to set this thinking up.

Solution 03 - Mesh Shell around the seams to hide the transition:

This technique requires that you first to the proper UVing and uwrapping of your mesh. Then after its done, you create a shell around the seams you want to hide.  Align the UVs of the Shell Mesh to go in a similar direction as your branch and vertex paint the edges of the mesh where you want the blend to happen.

This is a very straight forward technique and potentially easier to wrap your head around. Here above in the graph you can see the Mesh Shell Material, which is using the same Bark Material but also blends the result on the edges using vertex color (could be any color).

 I hope this was helpful and if you wish to support me in future tutorials or my art/game dev streams then you can do so here for 5-6 USD.

http://www.patreon.com/chrisradsby

Legacy Game Project Update 01

Making Of / 15 July 2021

Hello There!


Here is some insight to what I've been doing during my spare time. The last few weeks for me has been waking up at 6am, work until midnight with breaks for taking care of the puppy, eating and occasional outside activities :P

In general I've been relearning how to code (ue4 c++ and blueprint), rig/skin, animate, sequences, VFX etc.... basically all facets of game-development so that I can basically just try and do stuff by myself as far as I can go time-wise.

I also decided to reboot my old UE4 project, scrap the old code and in with the new. Rewrote locomotion, got proper state machines for my locomotion states (not the animation graph stuff, actual state machines so that I can properly encapsulate the code for when you're in different states and not rely on millions of bool checks).


Generally code-wise, the project is in a much better and organized state than the previous one, which is a great.
and then I started adding in the basics again.

(all actors interact with the water (ue4 water plugin), playing sounds and particles now)


Such as:
- Creating State Machine Functionality for Locomotion
- Character Movement (3rd person movement + strafe aim mode)
- Character Actions (Jump, Sprint Jump, Mantling, Interactions)
- Interactable Objects (Pickups, Readables, Weapons, Switches)
- World Interaction (Sounds, Particles, Music, Water Shader + FX/SFX)
- Combo System State Machine (Attack classes + tweakable modifiers)
- Combat Juiciness (Hit FX/SFX, Hitstop, Screenshake)


It's hard to put everything on a list without it growing into a huge thing of tiny specifics.  Essentially what I want is a decent foundational framework that I can use to get started.


Doing this of for the last month also made me realize how little time I actually have spent concepting the world or the characters..


(character water sounds + splashes)


I do have some idea about what I want it to be but doing concepts (not that Im good at it) or creating 3d or levels can kind of come after I've created the basic functionality of most of the things. Like yesterday when I started making the basics of the enemy base class and I started thinking about what kind of enemies I want, and then spiraled into thinking conceptually what I want but also production friendly stuff.. 



(interactable objects basic features)


I realized that at some point soon I have to kind of decide on what bone-setup I want for the different enemies, it'd be good if I could rely on a minimum set of skeleton setups (4-5?) would be awesome so that I could reuse most of it and model/retexture characters. 


I guess I have to think about that some more or start dividing up my days during  summer for different department tasks XD Right now I'm just going off my own Trello board of every basic thing I need to get in before I get started blocking out the starting areas.


(fooundation for combat, combat state machines, hit-timing etc)


Oh well, the next thing I'll probably hop on will be basic AI Behavior Logic & States and it'll probably just be the weird straw-man idling , picking new locations to walk to within his zone and then following the player around trying to attack him if he enters the detection radius (and potentially sightline?) :P

Eeeeeither way, that's the update

If you've made it all the way to the end, congrats :P If you're interested in what I'm doing you can always join my patreon or twitch streams, follow me on twitter or here on artstation.

http://www.patreon.com/chrisradsby
http://www.twitch.tv/chrisradsby
http://www.twitter.com/chrisradsby

Until next time !
Warping Out!

//Chris Radsby

Hobby Game Dev & Progress

Making Of / 23 June 2021

Hello!


It's been a couple of months since I took a break from programming, however I'm back to it and actually decided to reboot my own project and make sure the foundation is actually better and less messy. There were a couple of decisions for this:

  • I went to fast into programming detailed game-mechanics (free climbing system with IK, Physics based ropes swinging)
  • The Foundation was bad. The walking, running, jumping all felt kind of crap
  • The foundation for some of the programming was bad

Here are some old gifs of that:


Onto the new

So I went back to basics and made sure the locomotion went from Basic UE4 

but I had to do some update to my character, so I redid the skeleton, rigging and skinning
(it's definitely not a fun part of this whole thing)


To this below, which generally allows the user to move around more smoothly. I also have an aiming mode so the character can strafe and aim. Later on I'm intending this mode for stuff like a rope-hook or something like that or throwing things.


With the basic "feeling" of the locomotion in I had to deal with the biggest issue I had in the last iteration of the project which was that my movement states or any state for that matter was handled by either UE4 Enums or by pure boolean checks. Making new functionality really messy.

https://gameprogrammingpatterns.com/state.html

Here is a good read if you like this kind of stuff, but essentially it boiled down to, whenever I made a new function for my character I had to manually ensure that the player couldn't access other functions whilst doing something else. Example, not sprint  when jumping in the air. This meant that generally I spent a lot of time just bug-fixing things.

The solution for this is to make sure that when a character enters a state , he's accessing functionality that only exists in this state , the easiest way to do this is to use a Finite State Machine. The main issue is that UE4 doesn't actually support it natively, so you have to rely on kind of a messy workflow using Enums, which work but it's a bit annoying to get a good overview of what you're doing.


So I got to work and actually got my hands wet with a code plugin called Logic Driver Pro and with the help of a kind soul (Alzahel) on discord I started to learn how to work this plugin since it's definitely not a plug and go type solution, however when understood it's pretty straight forward.

My character now enters the right state (as shown on the preview visualisation) allowing me to run certain function upon entering, In the state and when the state is exited. Which is perfect, whilst making sure the transitions to other states are limited. Extremely powerful and very helpful.

After this I decided I kind of disliked looking at the gray character so I made sure I brought over the cel-shading and my eye-tracking solution from the previous project.


That's pretty much it for the last few weeks of work, if you're interested in this stuff then you can always follow me on my Patreon to get more insights , check out my livestream on twitch where I stream Art and will eventually move over into more game-development as I go ( I want to hit a good foundation before I start streaming game dev stuff).

oh and if you have any questions just ask em below! 

Until next time!
Warping out

//Chris Radsby

[UE4 Abandoned] Stalker inspired scene

Making Of / 08 June 2021

Hello!


I thought I'd do a little update here as well, I've just posted my latest environment. You can see it here:
https://www.artstation.com/artwork/lxWZL5


It was the environment we created during the 10 sessions of the www.twitch.tv/chrisradsby art-stream. Where we started completely from scratch and set this up. It's mostly using asset packs from the Unreal Marketplace and the main point of it was to teach composition and set-dressing. We did our own water-shader and mess around with particles. Setting up characters in the scene etc. It was all quite valuable stuff and videos are available on my patreon. www.patreon.com/chrisradsby if you're interested!


Next thing up will be a stylized interior made in UE5, which I'll be updating on here later this week.
Until next time!

Until next time!
Warping out

//Chris Radsby 

Winning the Artstation Challenge & Moving Forward

General / 30 March 2021

Hello!


It's that time again for another update, so what has happened in my life lately? Well!


We got ourselves a puppy a while ago, her name is Ginza. It was slap in the middle of the Artstation Challenge which severely hampered my motivation in the middle of the whole thing but I did spend the last week pushing more time into by forcing myself to do it even though I was exhausted by taking care of the puppy.

and I ended up winning.. somehow.

(alternative banner shot)

Generally if you didn't check my art-station challenge post, I've uploaded the final work here:
(https://www.artstation.com/artwork/nYBz4o)

The main purpose of this piece was to explore my ability to create soulful and striking art whilst limiting my color-range, and as usual with these challenges I tend to focus on very specific things I want to learn or explore for it. I also decided to go with my own concept design, the reason is because personally I feel like there is definitely value to learning how to create your own designs and not always rely on copying someone elses concept. At some point in ones artistic journey you'd want to make things that are solely your own and I hit this point for sure maybe 3-4 years ago where I started focusing way more on just...becoming better at doing this. 


Progression Shot:


So what is happening next? Well, as soon as my life calms down a little bit more I can start making art again, generally I'd want to put more of an effort back into game-development so I guess that is the stuff you'll see in the future.

I guess I'll give a shoutout again to my Twitch & Patreon. I guess if you're interested in my thought-process when I make art or learn some of the tricks that I use when working then maybe it might be a good choice for you to check out.

(Or if you wanna see the puppy on stream which is the reason most people come to it) 


and if you're wondering what we're creating on stream, here is a quick work-in-progress screenshot of that:


It's a bit different from other things I've been doing , we're making something STALKER like and we're focusing on composition & mood. We also talk about how to set things up from scratch as we go. The thought of it is to create several areas of interest which can be moved through with a camera that ends up inside of this abandoned military base, and we create composition and ideas on the fly by talking through things.

I usually stream on Tuesdays at 8pm CET and if you end up missing the stream I always update the videos to my Patreon page, I also update the Patreon page with secret sauce knowledge articles written by myself.

 So be sure to check it out!
Twitch & Patreon


Until next time!
Warping out

//Chris Radsby