Tumgik
rangomdaem · 11 months
Text
Procedural generation
A lot of sandbox or free roam game uses procedural generation to create a new world for the player to explore anytime they want to. It uses an algorithm to randomly generate landscape within certain bounds, this means there are an infinite amount of possible worlds.
youtube
Tumblr media Tumblr media
No mans sky uses procedural generation to create star systems for the player to explore. The use of randomisation here provides the player with a unique experience each time the play which is extremely important for games of this genre as without anything new to do, they can become stale quickly.
youtube
Tumblr media Tumblr media
Deep rock galactic is a mining game in which the caves are procedurally generated. This is quite important for this game in particular because it thrives when the players are lost or confused.
youtube
Tumblr media Tumblr media
Don't starve is an intense top down survival game. Procedural generation is a common feature of most survival games to keep gameplay fresh and fun for as long as possible, which this does very well.
Within procedural generation, you can have seed. This is a set number generated whenever a world is created containing the worlds data, this allows players to find specific world generation or share their own.
youtube
Tumblr media Tumblr media
Minecraft's seed generation is used more by speed runners or people looking to create a world for building in. It can be important for people who want a world that looks nice and who don't want to keep walking around their world trying to find somewhere to build a house. Most casual players wont need to change their seed.
youtube
Tumblr media Tumblr media
Seeds in terraria are infinitely more important than those in minecraft because terraria has chests, the contents of which translate into the seed. If you want to find a specific item you can find a seed for it. Seeds in this game can also be good for people who like building and want to find a good world.
youtube
Tumblr media Tumblr media
Civ 6 is different as it isn't a sandbox game. The seed can directly influence advantages and different advantages depending on where you are.
0 notes
rangomdaem · 11 months
Text
Endless Runners
It goes without saying but endless runners need random aspects to be fun. If you played subway surfers but the obstacles came by in a pattern it would be incredibly dull. Because of this its important to look at other endless runners to get a better idea of how they achieve their obstacle generation.
youtube
Tumblr media Tumblr media
Arguably the most popular endless runner at the moment, subway surfers randomly generates trains, signs and construction boards to try and stop the player, it moves chunks of a plane towards the player and randomises which lane and which obstacle will spawn creating the sense that you are running and trying to avoid trains.
youtube
Tumblr media Tumblr media
A bit different to some modern endless runners and very similar to most 2D Mario games, this is essentially Mario but he's forced to move to the right constantly. The randomness is what level gets selected for you and in the reward system.
youtube
Tumblr media Tumblr media
Crossy roads is also different to modern endless runners. It sees the player trying to navigate through traffic as far as possible in a procedurally generated world. The randomness comes in with the car spawns along with the rivers, logs, trees and coins. This game also has an option to purchase capsules unlocking character skins which is randomised.
0 notes
rangomdaem · 11 months
Text
Data tables
As part of this project I need to learn to use data tables. They allow you to hold multiple variables and call them whenever. Like an array but you can use any data type with any other data type. and store multiple sets of them. I am researching this to get a better understanding on the power of data table and what examples there could be in games that you would otherwise miss.
Tumblr media Tumblr media Tumblr media
Its extremely common for RPG games to use data tables to store class information, character stats and experience levels. Its more common for it to be done like this so you can store the variable for the stat names and the level of that stat. You could also store weapon or armor names and their statistics.
Tumblr media Tumblr media Tumblr media
In FPS games, data tables are used very similarly using them to display attributes names and store a variable for the value of them. The level of the gun and loadouts are all stored the same. In a FPS game this is important to differentiate between guns and create a readable version of these variable whilst still having their attribute names.
Tumblr media Tumblr media Tumblr media
With RTS games, the data table is used to store a variety of information about the materials and their usage. Definitely the most important use of data tables out of the three.
Data tables are used a lot more often than you could notice as you don't usually think about them when playing a game but behind the scenes they help with variable storage very significantly and there would be certain thing that would not work without them, such as trying to store a materials max value, the actual value and potential value.
0 notes
rangomdaem · 11 months
Text
Dice roll games
A less common use of randomisation games is a dice role. I personally think this mechanic is extremely fun as I have played a lot of Dungeons and dragons, a lot of these dice mechanics can stem from it.
youtube
Tumblr media Tumblr media
Baldur's gate in particular uses D&D's dice system to decide outcomes in different situations. The player will be given a situation and will have to roll a dice, how well this turns out its determined by how high the roll is. I believe this is a great way of making the gameplay feel more immersive and fun and should be explored more with most modern rpg and open world games.
youtube
Tumblr media Tumblr media
This game still follows similar rules but it uses six sided dice. You can put your dice into different sections to do different things. The mechanic that allows you to push the random aspect into your favour making the game a lot more enjoyable.
youtube
Tumblr media Tumblr media
The best part about this game is that it completely negates the need for skill, utilising luck like this puts anyone with any amount of experience with video games on the same level. This is done a lot to make family games.
0 notes
rangomdaem · 11 months
Text
Randomised loot in games
Random loot in video games can create variable gameplay. Although this mechanic can create anger as some people think it isn't fair, randomised items actually makes the game more enjoyable.
Tumblr media Tumblr media
In fortnite, loot comes out of chest spreading random loot over the floor. There is also an aspect of probability in that you are more likely to get a grey weapon than a purple or gold. This mechanic can add variety to battles but also encourages new players to constantly loot chests and people that are good at the game to kill people for their loot. This can me that newer player can end up with better loot which can make fights slightly more fair.
Tumblr media Tumblr media
Borderlands loot works similarly to fortnite, though in a single player format. This type of randomisation is not commonly used in a lot of single player games. Open world games usually have set items in set chest so they can control progression. The random loot amkes this game better as its created with fun in mind.
Tumblr media Tumblr media
Another different take on randomisation in video games, loot packs. This creates a slight layer of gambling to any game in which the player can purchase something with a probability of getting something good.
Randomisation in games
0 notes
rangomdaem · 11 months
Text
Digital TCGs/CCGs
Collectable and trading card games have been popular for decades so it's only natural they got made digital, and they've only gotten more popular. For the most part, the randomisation comes as a player picks a card up from the deck.
youtube
Tumblr media Tumblr media
Hearthstone might well be the most popular digital card game available. It sees player battling with their deck of cards and carefully utilising mana to use them. The randomisation comes in to play with what card shows up at the top of deck. In this case, the randomisation is used to give players an even footing not to mention, if you could pick any card from your deck its an unfair advantage for players with better cards.
youtube
Tumblr media Tumblr media
Inscryption is a blend of horror and ccg/tcg games. The player has to match the mans card with one of equal or more attack power to kill the card. The cards also feature lines of dialogue and personality which makes losing the cards that much worse. The randomisation is used similarly to hearthstone. Random cards at the top of the deck.
youtube
Tumblr media Tumblr media
This game mixes a rogue like rpg with ccg/tcg games. The cards you draw in this game can be used to defeat enemies. At the beginning of each battle you get a random hand of cards from your deck. The other random aspect that occurs in this game are the outcomes of encounters as you climb the spire which can add a fun intermission between battles.
Randomisation in these card games is crucial not only for them to feel like actually card games, but also to make sure everyone that's playing can enjoy the game and feel like its been fair for them.
0 notes
rangomdaem · 11 months
Text
Photography games
My game is going to see the player taking photos and selling them for money. There are a few games that use a similar mechanic to me, most notably viewfinder, which also uses an instant camera.
youtube
Tumblr media Tumblr media
Viewfinder is a perspective puzzle game based around an instant camera and the photos it produces. The aim is to take pictures and use them to progress through a level. In one of the puzzle the player has to take a picture of a bridge and then place it in the gap to cross it. The ability to zoom in with the camera is something I want to explore when it comes to making my camera mechanics as it provides the player with some sort of separation from their actual view and the camera view, necessary for immersion. The movements and animation of the camera feel natural and smooth so I'll have a closer look and use them as reference for my own.
youtube
Tumblr media Tumblr media
Lushfoil is a photography simulator that aims to emulate the beauty and explorative aspects of photography. This game was clearly created as an experience more than it was a game. I love the rich landscapes and sheer realism. Although my game will most likely use styalised art, I would love to get anywhere near this level of world creation. I love the atmosphere this game brings as well, it really brings its scenes to life.
youtube
Tumblr media Tumblr media
I love Nintendo games already so the fact that there's one based on photography means I have to research it. This is a perfect example of a fun, highly polished photography game which would most likely make it the best example of one. The atmosphere this game gives off is of pure comfort and joy. I'm going to try and emulate this through the colour pallet and textures withing my game as it will most likely be confined to one room.
youtube
Tumblr media Tumblr media
Pupperazzi is a photography game about dogs. This game reminds me somewhat of indie games like pikuniku. Nothing makes much sense but its fun and really well polished. I love that its just a massive island filled with random activities, it reminds me of a playground. The warmth this game gives off is inspirational and something I hop to achieve with mine.
youtube
Tumblr media Tumblr media
Seasons is an incredible game. I first saw it on sale on the epic games launcher and it's been in the back of mind ever since. Th art direction and progression of this game is immaculate. From the photography stand point, the mechanic is executed really nicely and it actually feels like you're capturing memories.
I think the consensus as far as this style goes, is that the game is going to be a calm, cozy game to get the most out of it, although it would be very possible to adapt it to a multitude of different genres, none of them would work quite as well as these.
0 notes
rangomdaem · 11 months
Text
Finished project
I have gotten to a point in the development of this demo where I am really happy with how it turned out. I think I'm starting to give myself realistic goals and work outside of school more which is enabling me to create more enjoyable games.
youtube
Although I started with the intention of creating a world for the players to take photos of, after realising that the mechanics I ahve added are all quite unique, I decided to try and polish them as much as possible and release the game as a demo.
0 notes
rangomdaem · 1 year
Text
Finishing Up
It's the last week of development so I have to get all the bugs fixed and the game working as intended. To help with this I'm going to compile a list of issues in the game.
Can't import new animations
The Dialogue from the NPC stays on screen constantly
If the NPC deletes a photo because it's not the right one, the NPC can no longer detect that you have the right photo
You can pull the photo up to your head but not put your hand back down.
To fix the dialogue options, I deleted all of the previous code and started again because a lot of it ended up not working together.
Because of this new dialogue system the rest of the problems were fixed
I also added the ability for the player to throw photos as a way of getting rid of the wrong photos or abusing pete.
0 notes
rangomdaem · 1 year
Text
NPC Requests
This project needs to feature some aspect of randomness and the way I'm going to achieve that is by making the requests for photos a random object. First I needed to find a way to detect all the objects a player has taken a picture of, get the tags from those objects and check if its the object the NPC is looking for. If it is the player can sell the photo.
Originally I was going to use a multi box trace but couldn't figure out how to collect multiple objects within the box; I opted for created a box trace out of a lot of line traces. This uses the for loop and the line trace to make a scatter of line traces out of the player.
Tumblr media
This takes the trace result and adds the tags to an array making sure to ignore the objects that have the tag NONE (no tag).
Tumblr media
This uses those tags to set up a captured tags variable in the cam snapper.
Tumblr media
And this passes the tags from the cam snapper to the photo giving the photo the captured tags.
Tumblr media
This uses the contains node to check with the request to see if the right tags have been captured.
Tumblr media
The Scatter trace in action.
Tumblr media
0 notes
rangomdaem · 1 year
Text
Finishing up the tutorial
The first level the player will be put into will be the tutorial and before I move on to making the first level, I want to get the tutorial to a place where the player can learn how to take and sell their pictures. To do this, I'm going to need to add an NPC, add either voice lines or dialogue boxes, an inventory mechanic and some post process effects to finish it off.
I'm going to start with the easiest of these, which would be the post processing. Because my game will aim to explore different art styles in each world, I thought a thick outline around all of the actors in my scene paired with a plain white material could give a hand drawn look which would be perfect for the tutorial level. I will be following this tutorial.
youtube
The general idea is that I will be making a material that checks the depth difference in an object surrounding pixels and adds an outline to the middle of them if it detects that variations. To add outlines between different shades, it will detect the variation in normals instead.
Tumblr media
This code gets the coordinates of the center, left, right, up and down pixels. It's kept in a function ready to be called to see if a pixel needs an outline or not.
Tumblr media
This compares the depth of the values from the previous material function with a threshold, returning 1 if the depth exceeds the threshold and 0 if it doesn't.
Tumblr media
I then went back to the post process material and added this code which applies the formula to the material.
Tumblr media
This code is used to get the normals variation.
Due to the way this formula works, looking at a shape from certain angles can make the entire face of said shape into an outline. to fix this I can add a material grazing function.
0 notes
rangomdaem · 1 year
Text
Taking Pictures
Obviously, the photography aspect of my game is the most important so the feel and look of the mechanic has to be perfect. As a start place for how I wanted this mechanic to work, I found this video.
youtube
Essentially what I want to do is have the player be able to take and print a picture of something and sell it for money. By looking on reddit posts and various UE5 forums, I thought the best way to replicate this would be to use a scene capture component to.
I started by creating a material that I called the capture material, the material that would have it's parameter changed to hold the picture of the scene.
Tumblr media
I also added some gloss to mimic the look of polaroid pictures.
This chunk of code creates a render target so the texture can be set to it. It then spawn my photo blueprint using that texture.
Tumblr media
This code creates adynamic material so I can change it while the game is running so I can change the material to the scene capture at a button press.
I added a render target and a render material which was using the render target as it's texture sample. This is used in the cam snapper to set the texture of the photo.
Tumblr media Tumblr media
1 note · View note
rangomdaem · 1 year
Text
Grabbing Stuff
My game is about exploring an environment where anything you can take a picture of will spawn randomly, the request you get to take these pictures will also be random. Because of this, the player really needs to be able to move props in case they get a request for two items that thy can't get in the same shot. I was originally going to add a sort of toggle grab where you click and the object would stay in front of your face and you could throw it or place it down, but I wanted to make this mechanic fun as possible.
0 notes
rangomdaem · 1 year
Text
Models
My games going to rely heavily on the models I produce for it. As a result of this I have to make a lot of models. I'm not going to document the process of making each one, instead I'm going to document the process of me making one and then put a picture of a render of each model on this post.
To start creating a model, I begin by finding some reference images. These are extremely useful as they provide all of the angles needed to create the model. These are the images I used to create my polaroid for my game.
Tumblr media Tumblr media Tumblr media
I start by adding a cube and stretching it to the general shape of the reference images. Making the polaroid took a bit longer because I was experimenting with different ways to add the little crevice's at the front and I didn't want to start again. After I have this cube, I start adding loop cuts with ctrl-r to add extra edges or vertices to move around. I then start moving the edges and vertices to the points of the reference images to get the general shape down. Next I add all of the parts that require extra shapes, for this model it was an extra square for the eyepiece, cylinders for the lens, focus wheel and button, and some squares for the details that pop out of the camera.
Next I used the boolean tool to create extra detail. I like using this over extruding into my model because there's less chance of the faces going weird. I do a bit more work on the shape of the model and now it's time for a material.
Tumblr media
I usually use one png to house all of the colour I'll need. This is because I almost exclusively make low poly models so a complex material wouldn't go very well. Having only solid colours means I can store all of the materials I'll need on one image. I'm sure there is probably a more effective layout than the one I've done for this model but it works. Another good thing about using solid colours is that it doesn't particularly matter if you UV unwrap it because you can grab all the faces you want and shove them all into one colour. The only part I had to add seams to was the front because of the iconic rainbow down the middle.
Tumblr media
And this is the finished model.
0 notes
rangomdaem · 1 year
Text
Data Tables
Tumblr media
I added three variables to my data structure
Tumblr media
I created a data table using the data structure for the row structure. I then added three rows in the data table and filled in the three variables for each row.
Tumblr media
I've made a placeholder mesh and some text above it, eventually there will be code to pick a random value for each one out of the data table.
Tumblr media Tumblr media
0 notes
rangomdaem · 1 year
Text
Environment
A game environment is one of the most important aspects of a video game. If the environment doesn't reflect what you want from your game, the player wont feel that way about your game either.
Landscape is important for making the player feel like they're actually exploring an area. My environment isn't going to be huge because I would have to fill it up with my own models which I am definitely not ready for.
Tumblr media
This is the landscape menu. After creating a landscape, Unreal lets you edit it with different tools, brush types and materials.
Tumblr media
The sculpt tool increases the height of the landscape in the brush range.
Tumblr media
These settings allow you to change the shape and drop off of your sculptures.
Tumblr media
The smooth tool finds a medium between the highest and lowest point and moves each point of the landscape to it. Because the highest and lowest points are lower at the ends of the sculpture it makes it smooth.
Tumblr media
The flatten tool flattens the landscape to the height of the brush. If you used the tool on some elevated terrain it will drag the areas around it up to the same height. If you used this brush on flat terrain it will flatten everything to where it was before.
Tumblr media Tumblr media
The ramp tool lets you select two points and create a ramp between them.
Tumblr media
The erosion tool erodes the landscape as it would from the bottom up.
Tumblr media
The hydro erosion erodes the landscape like rain would.
Tumblr media
The noise tool adjusts the heightmap by a random value.
Tumblr media
I decided to use all of these tools to create a dessert. I started by usng the sculpt tool to make ripples in the terrain. I then went over with the noise brush to add a bit of texture and then finished by using the erosion tool.
Tumblr media Tumblr media
Next I opened quixel bridge to find this ripple sand material.
Tumblr media
To add foliage I switched to foliage mode and dragged some models into it. The paint tool paints foliage onto the landscape, the single tool places a single model and the erase tool erases them.
Tumblr media
Cutscenes are also a great way to introduce a player to their environment and they are made using a feature in Unreal called sequences.
Tumblr media
I added a cinematic camera and changed my perspective to its view to get into the position I wanted.
Tumblr media
I then set a keyframe for its start position and moved it to where I wanted it to end adding another keyframe.
Tumblr media
I added a sphere that when collided with will play the sequence.
0 notes
rangomdaem · 1 year
Text
Random Code
Random integer
Tumblr media
The random integer node selects a random between 0 and the maximum. The maximum will always be one lower than the inputted maximum because it starts at 0 and not 1.
Random integer in range
Tumblr media
This is very similar except you can pick the minimum value.
Arrays
Tumblr media Tumblr media
An array is a type of variable that can contain multiple variables in it. This array will hold 'Heads' and 'Tails'. I added some code to display either heads or tails when tabs pressed and pressed it 50 times noting how many times it was tails. It ended up being heads 19 times and tails 31 times so not 50/50.
Tumblr media
I split the pins on the spawnactor so I can randomise each transform.
Going into the scale, there's a random float multiplied by 2 which will randomise the scale of the spawned object.
To randomise the mesh that gets spawned, I made a new static mesh array in the player character and added the meshes that could be spawned to it. Off of the spawned actor I set the static mesh of the random object to be a random mesh from the array.
To randomise aspects of the mesh's material, I added a Vector3 in a new material and converted it to a parameter. I split the struct pins of a set vector parameter value and plugged a random float into each value apart from alpha. This is setting the value of R, G and B to a random value meaning the colour will be completely random.
To randomise the location I started by creating a new actor which will be the spawn radius.
0 notes