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)
Final Fantasy VIII
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
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
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.
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.
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.
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
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
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.
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.
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
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)
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:
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
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 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
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:
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
Lighting / Interior / Exterior / Open World
And lots more... I honestly can't think of everything right now xD
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.
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)
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?
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.
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)
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!