td-narrative
td-narrative
Theos Narrative Stuff
51 posts
Don't wanna be here? Send us removal request.
td-narrative ¡ 5 years ago
Text
Evaluation
What Went Well
I think the place I did best this project was when it came to the side content, as I was working I managed to solve a lot of the issues which had plagued me in previous projects (in relation to ue4) such as casting, fixed by my RF Wrapper that allows for communication between scripts.
I also took a dip into C++ and while the waters cold I was glad to finally try it out. I also put more focus into research which helped shape my project more naturally rather than having an idea and attaching outside ideas to fit it.
What Could Have Gone Better:
While i’m happy with the final story I produced and feel as if it had some strengths in how I used game design to emphasise story which I can legimitly be proud of. I also took to long to finalise my project and especially wrestled too long with minute to minute gameplay, never coming to a sound conclusion.
What Would you do differently:
If I were to do this again I think i’d instead of trying to finalise all of my story and making a polished final product in one swoop, do  the research and then make lots of little experiments off them which I can then reflect back on instead of getting washed away on a sidequest to solve xyz or make abc look just so.
0 notes
td-narrative ¡ 5 years ago
Text
Custom Crouching
Introduction
I’m really not a fan of ue4s default crouching and while playing the game realised it was a small change that would really impact the players experience, often finding myself reaching awkwardly in positions where crouching would be of use.
Execution
In an effort to improve crouching (instead of jumping camera height, gliding) I built my own. To do this I used a combination of Timelines, Player Inputs, Offsets and variables.
I really wanted to make this as streamline as possible and only rely on a single timeline as such we do some calcualations to manipulate the result, as shown below:
Tumblr media
This sets whether the player is crouching or not,
if they are we take the result of the timeline as it updates and multiplies it by -1 to make it a negative, otherwise we leave it as is.
This value is then passed in as a “AddWorldOffset” so we don’t have to store the players height - instead just applying the crouch to their current height.
0 notes
td-narrative ¡ 5 years ago
Text
C++ on this project
Introduction
Tumblr media
(photo from blog I used to research finding variables via input)
I used C++ on this project sparingly, initially intending to write many of the systems in it but after struggling to get to grips with it following  implementing a system that returned the relevant varaible name (so you don’t have to hard code) proved harder than expected, especially on college computers where classes wouldn’t appear visible in the content browser, compiling issues etc.
Conclusion
As such I scaled back the amount of C++ work on the project and am looking into Unreal specific C++ work during the christmas period, having previously practised C++ over the summer break.
0 notes
td-narrative ¡ 5 years ago
Text
Track Player Position for Rotation
When I was still figuring out what I wanted the game to be, and was considering having some form of NPC in the game; I thought it’d be a good idea to let the npcs head track the player. In doing so, hopefully adding to the immersion.
Tumblr media
I got this idea from Cyberpunk and Portal where NPCs will keep the player in sight. To achieve this we use a very simple equation typically used for raycasting shown above.
Tumblr media
This translated into codea and then converted into a rotational matrix ue4 can actually understand looks like this.
0 notes
td-narrative ¡ 5 years ago
Text
Network Wrapper
Introduction/Background
One thing I put a LOT of time and effort into was on my network wrapper - figuring our a better alternative to casting that allows you to easily call functions between scripts.
Frameworks
Before this project i’d been learning a lot about organising code with frameworks and proper communcation wrappers etc and wanted to try my hand at one in roblox.
This started as me trying to figure out a way to easily communciate between the server blueprint and the individual blueprints (where I succedded but it ended up with proper and simple communication between any script and function.
Attempts
Tumblr media
I spent a excrutiating amount of time trying different systems to find one which worked - especially between level blueprint and other blueprints from events to dispatchers, special functions and blueprints etc but near the end stumbled across the blueprint “Network Blueprint” which allows you to communicate between client and server.
Final Product
Tumblr media
In the above example we use these exposed functions to save and load data from different functions, this is just a service on the level blueprint which in term saves and loads the data as well as updating the relevant story data.
0 notes
td-narrative ¡ 5 years ago
Text
Making Spawning Ballots Efficient
One of the issues with the small nature of ballots is you have to spawn a substantial amount of them to appear realistic. As such, this means higher poly counts and slower rendering time.
Idea 1: To fix this, I first tried changing the LOD of the ballots which improved it substantially, improving the fps by a large amount. To do this I overrided the default LOD system and set the LOD number to 1, then modified the poly count on this one - using UE4s built in tools to keep the geometry shape.
Idea 2: Reduce the Poly Count via Maya, the ballots all have highly bevelled edges, going back and reducing this also helped increase the FPS as it never had to work as hard to begin with.
Idea 3: Going back to something I used on my last project, Instanced Static Mesh I looked into using it for this system but there was one major issue - they were static, i.e non of them had any physics properties.
I had two fixes, I could either go to one of my collegues whos a maths wizz and ask him to help me create a custom CFramed system but this would mean rewriting a lot of other system such as grabbing.
Tumblr media
The second option was to modify UE4 source code, luckily code was already open source on github which I could fairly easily grab!
https://gist.github.com/versusvoid/4d30c3b965ade9686778
0 notes
td-narrative ¡ 5 years ago
Text
Spawning Ballots
Tumblr media
One of the core elements of the game mechanics itself was spawning ballots.To do this we needed to:
Run Of ‘Event Tick’ with a ‘Delay’ Variable
Find a random position in an area (the spawn location, shown above).
Spawn Ballot in this area
Set a random velocity to the relevant Ballot (so they’re not all uniform in their acceleration)
The code for this system, looks a little something like:
Tumblr media
Event Ticks
Unreal Engine, unlike other engines, puts a more heavy focus on Event Ticks (which run every frame) and as such rely often on delays. As such, unlike other languages where each tick runs in it’s own thread - you are able to have a delay() which affects all ticks until it’s complete.
Tumblr media
This is superbly helpful and slightly confusing having come from an event first programming background but to allow for the expected behaviour you can use something called “Retriggable Delay” which allows you to overrite the previous code executing - no longer having to wait for any hanging code to complete.
0 notes
td-narrative ¡ 5 years ago
Text
Niagara and Fire
Introduction
Tumblr media
Something I was set on having before the end of the project, was my opening cutscene complete, not just the main game. As such I modelled th car, road and all other neccesary objects but got stuck on - the fire.
Development
First of all, I wanted this to be easily customizable (and I didn’t want to have to draw something in photoshop so, part following a youtube video, I made a fire texture using nodes:
Tumblr media
Issue
Where I got stuck was with Niagara, a system I had little to no experience with - I got some advice from Peter who had been using Niagara for his entire project and was a huge help but at the end of the day I didn’t have enough time to wrap my head around it.
0 notes
td-narrative ¡ 5 years ago
Text
Generating Stories
Idea and Problem
When I first started looking into deciding on story paths, I really wanted to make it as ludicrious as possible, starting back in the Nixon era, as i used twine to plan it out I realised just how convoluted the code would become, with so many different possible paths - to fix this I went back to one of my old ideas..
When I was first deciding on what I wanted to do I looked into self generating stories but decided this didn’t fit with my source/inspiration but coming back to it, I used this idea within my satirical political game; Randomly generating the result of their actions.
Execution
Tumblr media
To accomplish this we assigned the effect of the two candidates policies/agendas an integer value, -10 - 10 (going back to an old measurement we used for world building which makes programming a little simpler) to measure how they’ll affect the game world.
We then create a list of candidates etc, each fitting within this number structure, for instance Vladimir would be around a -8, Augmented Crocidile -10 etc.
Then comes the human element, I wrote up a number of messages which a news host may say with gaps for adjectives, nouns etc. that can be filled in using the number system with some simple random!
The hardest part of this is translating this to a voice, or so you’d think but in fact there are a number of plugins and open source repos which make this process really simple (although I never got around to implementing it):
https://www.unrealengine.com/marketplace/en-US/product/google-texttospeech
https://www.unrealengine.com/marketplace/en-US/product/text-to-speech
https://github.com/yar3333/text-to-speech-ue4
0 notes
td-narrative ¡ 5 years ago
Text
Exposition - Immersion
Introduction
As the player jumps from election to election, with the result of the election visible in the world the player still needs some more exposition to understand the result - as such we use a speaker that usually plays slightly offbeat music (to bring a slight sense of unease, with the speed picking up as the game does) cut in with dialog - like a host on the radio reading out the news.
This way we can dump exposition on the player without disrupting their experience or locking them in the game, something many games are guilty of.
Inspiration
I play a lot of “walking sims” and puzzle based games and this is a tool some of my faviourites use to drive the underlying lore and/or story, while RPGs usually lock you in a cutscene which takes a way one of the sensory inputs to the player, interaction - in doing so, pulling you out of the experience.
youtube
In my opinion cutscenes are used as shortcuts to create “high quality” games, using them as a crutch. Something reiterated by many in the industry:
https://venturebeat.com/2010/12/17/are-cutscenes-ruining-video-game-stories/
https://www.gamasutra.com/view/news/121360/Analysis_Skippable_CutScenes_And_How_Words_Work_In_Games.php
That said, they can be powerful, for instance - if you want to make the player feel helpless in a key story moment, removing player input can have a strong effect in enhancing the story.
0 notes
td-narrative ¡ 5 years ago
Text
World Impacts - Immersion
One of the other ways we give the players actions depth is by representing their actions in the physical geometry around them, each path has a integer attached to it from -10 to 10 (0 being nutral) the lower into the negative numbers the more broken the game world becomes.
-10 Wasteland
0 Neutral - player start
10 - Uetopia [Never Built]
I intentionly decided to make the world as small as possible as it allows these big changes to be made without a huge amount of work, it also gives the player a more passive view of the game their playing.
Inspiration
Tumblr media
Part of the Inspiration for this was from a somewhat suprising place, Stranger Things in which the world has two sides - the ‘upside down’, and here. Where one side is left crumbling, forgotten and unattended while the other lives out the 80s wonder we know from bob dylan and music of that time.
0 notes
td-narrative ¡ 5 years ago
Text
Perspective - Immersion
youtube
Near the beginning of the project I put a lot of work into soft body physics and soft body players in general to create something similar to 'Totally Reliable Delivery Service’ which i’d been playing a fair bit at the time but I soon realised doing this really takes away the players feeling of consequence.
Seemingly the perspective change, changes how the player thinks and plays in the world, something highly reported on and (covered in it’s own post):
http://mohabkhalifaunit40.blogspot.com/2015/03/video-game-perspective.html
http://etd.fcla.edu/UF/UFE1000166/taylor_l.pdf
http://imranunit40.blogspot.com/2015/03/video-game-perspective-perspective-is.html
First Person is more immersive and personal , often used in horrors for this reason, while 3rd person gives you some distance from the person your inhibiting, more keenly used with open world and sandbox games.
Result
Over the course of my project, I did a 180 on my thoughts regarding perspective as my game design evolved. At the start of the game I wanted the games to feel intimite but having done some of the visual art for the game and story design which naturally lead to some absurd game paths, I decided I wanted to go back to 3rd person for the very reason I left it.
The sense of ditachment just made it funnier and supported the story paths and aesthetics stronger.
0 notes
td-narrative ¡ 5 years ago
Text
Giving Actions Depth
One issues video games often struggle with are with consequences to your actions, giving the players actions weight. This often plagues open world games like RDR2, GTa, Watch Dogs, Cyberpunk etc. where you may choose to play some way which is juxtaposed to the story.
Open World Games
In my opinion the reason for this is due to the lack of control a developer has to curate their experience which makes issues like this near impossible to solve - you can do stuff to discourage players but if there’s a bazooka and a highway with a perfect shooting platform - nothings going to stop them, at least if you want to give players freedom.
http://www.megabearsfan.net/post/2016/06/09/Mad-Max-game-review.aspx
youtube
This has even been a critique in story games like the Last Of Us but that’s a whole another subject and more down to the types of game mechanics that games rely on.
Working with, rather than against player interaction
To try and address this issue, as the hook of the game is ‘choices’, I use a series of tools to try and more fully immerse the player in the game and their story (hence actions).
Perspective - Immersion
World Impacts - Immersion
Exposition - Immersion
0 notes
td-narrative ¡ 5 years ago
Text
Transparency in UE4
In ue4 and game development in general you often have a singular mesh with multiple ,materials, transparencies, metallicness etc.
Tumblr media
One of the hardest and more cutting edges of graphical rendering is Transparency despite us taking it for granted. UE4 supports a variety of Translucency/Opacity and mask options all with their own drawbacks and use cases.
I wanted to add a slight transparency to just the windows of my van, while preserving the rest of my maps including Metallness & Specular, which required:
Transucent Blend Mode
UE4 has support for several transparency supported blends including: Translucent, Masked and Additive - each with their own quirks, I decided on the Translucent Mask as unlike Additive which is very much like the Lear Dodge (add) blend mode in phtoshop - by which I mean it adds the pixels to the background.
I’m also not using it for the same reason im not using Masked, it treats tranlucency as if it’s on/off. If it’s black it’s transparent otherwise it’s opaque.
Lighting Mode
Tumblr media
Finding the right Lighting Mode was really challenging as there are none built for my use, from what I could tell - with the majority being for affects like water and fire.
That said, I settled for “Surface Forward Shading” as it supports the rest of my maps while also allowing for selective transparency, and perhaps more crucially - as a gradient (0-1).
Multiply Texture Sample
I’m not entirely sure why this was required, but an interesting workaround all the same. The Opacity Map works from 0-1, if I were to plug in a float at 0.5 it’d be 50% translucent.
Interestingly, despite using the correct shading, my grey was cosidered a lot more dark than in fact it was so I had to multiply the RGB result by 3.95 to get the desired result.
Tumblr media
1 note ¡ View note
td-narrative ¡ 5 years ago
Text
[Motif - Title Screen] The Environment
https://www.artstation.com/artwork/dO6GDQ
Introduction:
Right from the start of the game we are reinforcing the idea that your vote may not matter - right from the title screen which is itself a ballot.
When the player joins the game they are treated to a very short cutscene, the camera is bobbing on a country road then a USPS truck flys by, leaving ballots in its wake - one of which hits the screen.
Task:
In this section I need to model the road for this in Maya as we’re following that low poly art style influenced by Human: Fall Flat. The car is going to follow the path up the road and if you wait long enough, make their way to the top of the hill and dumps the ballots in a pit of fire (Although Most Players Wont See This).
This is all about reinforcing those uneasy vibes, this can also be seen in the environment, with the juxtaposed nature of the green country road and pit of fire coexisting in the same place, with the only distinction between them being levels - something I learnt to use to my advantage years ago while studying film and drama.
Progress:
Tumblr media
Over the time on this course I’ve attempted this a couple times, i’m not very good at building landscapes - but I think I can see a significant improvement from my first attempt (shown above) and my latest (below):
Tumblr media
Method & Inspiration
I think the main difference I made was  by, instead of doing everything seemingly at once. Building the world around the centerpieces such as the pit and roads, that way I had something to build around.
I also looked at inspiration and by far the most helpful work was by Kyle Carpio:
Tumblr media
https://www.artstation.com/artwork/dO6GDQ
0 notes
td-narrative ¡ 5 years ago
Text
[Motif - Title Screen] The Van
Tumblr media
One of the main parts of the Title Screen is the USPS van - instead of grabbing one of the store I really wanted to try and make one; Outside of college I work I’ve been hard at work making the car system for some really cool models which lead me to want to try my hand at this myself.
Talking to one of my coworkers who made the cars they kept going over the importance of both Topology and UV Wrapping. I’m still fairly amateur's at them both, especially on the UV side but was really happy with the outcome.
Model & topology
Tumblr media
I was really happy with the design outcome and felt I made great strides in terms of poly count and topology design, managing to stay true to my low poly style without seeming overly blocky or amateur.
To Achieve this final outcome I:
Used reference images/planes inside maya which was super helpful for getting the shape and placement right and found to be a huge improvement over flipping between a web browser and maya.
I was super careful on positioning, using a range of tools in Maya to lock vertices at heights, align them etc.
Used the mirror tools; Modelling one half then mirroring the other side helped in both time and accuracy.
I completed this in about one and a half days, which in reflection is a long time but compared to my usual it’s an improvement by a long shot.
UV Mapping
Tumblr media
One of the most painful parts of this entire process was doing the UV Mapping (I have all the maps in the dropdown below); A great help in this process came from Paulh Paulino who made a great blog post on the more nitty gritty processes:
http://www.paulhpaulino.com/6-tips-to-improve-your-uv-mapping-workflow
In the end, after hours of work, I managed to make some nice looking UVs although I gave up on making them completely seamless at Sams suggestion as doing so would have doubled the hours despite getting fairly close - little things can take exorbitant amounts of time.
My UVs (hidden):
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
[All Current UVs]
0 notes
td-narrative ¡ 5 years ago
Text
Motif - Title Screen
From the very start of my game I want to introduce the motif/idea that your vote may not matter - straight from the title screen. The game starts with a camera zooming in, stopped by a USPS truck zooming across the screen. 
Out of the back of the USPS truck come a stream of ballots, one of which flys into the players screen as it’s picked up by the “wind”, this allows you to pick your save. In the background the USPS truck winds it’s way up the hill, to a bombfire and drops the ballots.
A Title card pops up that used to say “You’re vote counts!” adds “..?” periodically. The same happens once you select your choice., then the screen fades to white.
0 notes