#MechanicTest
Explore tagged Tumblr posts
Text
Giant Spinner of Death: Obstacle course
youtube
Finishing off the year 2023, I decided to try something a little bit new and simple to see how far I come, I made a simple little obstacle course to see if I was missing anything that I already should have learned and improved with making mechanics before making more complex mechanics and design in games.
For the first time, I decided to simply use Cinemachine to test out the smooth virtual camera to follow the player.
The goal of this game is to reach the goal while avoiding obstacles as much as you can before time runs out. Don’t collide too many obstacles, or you lose!
I did the best I could to not overload the player with so many obstacles at a time, otherwise, it would be overwhelming and difficult for them to dodge the obstacles.
I needed to make sure the was enough room for the player to move around and dodge obstacles, especially the dropped obstacles which I intentionally put close to walls so the player can navigate around them a little easier after being dropped. The giant spinner of death I wanted to be the main threat to the player so the player is forced to keep their eyes on it at all times otherwise it will collide with the player and knock them towards another wall or obstacle.
I put a timer in the game to challenge the player to get to the end goal in time before it runs out. It would be a little too easy and not as challenging for the player if there was no timer since they could just wait a long time before all obstacles are dropped and go slow and steady around obstacles.
WHAT I IMPROVED:
Combining 2 strings and an int making into one sentence with a number countdown which is “you have” + “seconds” + “secs left”.
Got into the habit of making code much cleaner to read by separating some code into functions to avoid writing the same code again, So instead It calls certain functions at appropriate times ( e.g if the player loses by colliding too many objects or time ran out, it calls the function “displayLoseText” to display lose text.
WHAT I LEARNED:
How to set up the virtual camera from the cinemachine package.
How effective it is to make the cinemachine virtual camera smoothly follow the player.
How to turn on and off gravity on game objects by code.
It’s a good idea to start variables with lowercase letters.
Get axis movement is a method.
Delta time makes updating independent by making the time of frames consistent with the user’s computer. It uses the getaxis value multiplys by delta time movement value speed consistent with the user’s computer as it creates a single value.
The spinners that move without using delta time when timescale is 0 will still move. Possibly due to the fact it's not accessing time as it moves on its own.
Using Enumerators to drop obstacles in certain periods of seconds instead of using Time works best if the game level needs to be played again if players lose or win, otherwise the obstacles will not reset is drop counter and drop too quickly because Time has not been reset to zero when replaying the level.
Can change game objects tag names in code.
Tag is actually a property.
OnCollisionEnter is a callback.
Collision is a variable while "other" is a parameter. “other” stores information about what the gameobject might hit and what it might do with that information. I’ve known OnCollisionEnter for a while, but it's good to know more details about it.
Rotate (transform.Rotate) is a method. Methods are in capital letters.
The difference between defining and calling a method.
WHAT WENT WRONG? WHAT I COULD HAVE DONE BETTER?:
I couldn’t get the walls to always stop the player in its tracks, it is a difficult problem to solve. It could be because the player is moving so fast that it can pass through thin walls. I could have made thicker walls.
The player can also pass through walls by holding a move key as soon as the play button on the unity editor is pressed. The player can pass through corners for some reason, I tried to cover the corners as best as I could, but there was no luck succeeding. Thick walls wouldn’t be right for an obstacle course since most of the walls needed to be avoided by the player. So, the easiest solution I did was to add a timer that would pause the game and offer the player to try again if time is up.
When the player moves towards the wall, it shakes rapidly. I tried to see if I could give it a physics material to reduce the wall shaking, but for some reason, it had no effect, so sadly I had to let it go. I will need to find out more about creating physics materials to make it work as intended depending on the game mechanics and player collision.
OVERALL:
Even though I knew most of these data types beforehand, I learned some new details about them which is important for me to understand and how they work so I can work with them (or around them).
I need to get an understanding of some knowledge I may not have known 100% before (e.g. How player cube is not so bouncy on walls) and may need to research more to prevent or reduce the unwanted executions from code.
I could have tested it with a player, but I thought it wasn’t too important for now. The intention was to be more of a programming exercise to see what I know and what I don’t know, not a playable commercial game that the public can play.
#pc#gamedev#gamedevelopment#indiedev#soledevoloper#australiangamedevoloper#indiegames#indiegame#indie#pc games#indiegamedev#indiegaming#casualgames#Lookingforwork#casual#GameDesigner#MechanicTest#Unity3D#SoleDevoloper#indie games#Youtube
1 note
·
View note
Text
Getting a 98% on my MechanicTest is probably the best thing I’ve done all year.
0 notes
Video
tumblr
A short minigame project exercise to kickstart for the new year, This time comes a Frogger clone. I usually prefer not to make game clones, but I decided to do a short exercise to warm up my skills for this year since I'm doing more complex projects later this year and then looking for work as a game tester or game designer. I did not make these assets, they were provided to me by AwesomeTuts. What I learned - to move the player character 1 unity without using delta time. - Getting The player to move to the starting position without using a vector 3 variable while executing it from another script rather than the player controller script. What I could've done better -Even though the background "roads" is not mine, It doesn't look pretty and is uneven with the player moving from unit to unit. So I could have made the roads and grass( safe area) follow unit by unit rather than be uneven which would cause the player to be hit by cars more easily. Overall -It was a nice warm-up for the beginning of this year.
#project#designer#nostalgia#arcade#clone#frogger#gamedevelopment#unityengine#indiegames#australiangamedevoloper#indiedev#soledevoloper#cars#projects#indiegame#gamedev#unity3d#mechanictest
6 notes
·
View notes
Video
tumblr
This time, I decided to do a programming exercise of a simple boss battle which will prepare me to make more complex boss battles for my future games. Normally I would prefer making it into an fps project battle boss, but I decided to do it similarly to a tank shooter-styled game to learn different ways of mechanics to use for my future games. WHAT I AM DEMONSTRATING: • Player can move backward and forwards and rotate around. • Player can shoot orbs from in front of him instead of using ray casts. • The turret boss can aim and shoot cannonballs at the player wherever he is. • The turret boss randomizes a minimum and maximum shoot force and fire rate. • Both the player and the turret boss have health which determines the win-or-lose factor of the game. WHAT I LEARNED: • Assigning game object variables with nulls is a good way to reduce errors when starting the project, except when they are called by in script by methods, awakes, or updates. • Making game objects flash by mesh renderer when damaged then back to their original color which was stored in the awake function. • Getting object references from projectiles by using their game object name instead of tags. • Made simple particles for the cannonball and magic orbs. For the orbs, they combine lots of particles to make 1 orb. • Adding relative force to Cannonball’s rigid body relative to its coordinative system. • The difference between PlayOneshot audio parameters compared with play Audios. • Getting the turret to randomize with Random.range with fire rate and force of cannonballs respectfully. • Not getting the UI methods in the update function otherwise it wastes performance in the game manager. • Static variables can be saved in the game Manager and be updated whenever called from other scripts. • For orbs, I can use the audio length to play a certain sound before self-destroying the game object. Making sure the audio plays its full sound without cutting off. OVERALL: It was a nice and short exercise, I think usually boss battles are a bit more complex than this one, but I learned different ways of making mechanics that will be useful for my toolbelt in future development. #gamedevelopment
#gamedev#unityengine#AustralianGameDevoloper#indiegame#BossBattle#MechanicTest#SoleDevoloper#shooter#actiongame#indiegaming#indiegamedev#indiegames#project#development
3 notes
·
View notes
Video
tumblr
I decided to make a short 2D Street Racing styled game similar to some of the minigames I made before. In this mini-game,, You must race down the freeway avoiding as many cars as you can, otherwise, if you crash, you will start over.
What I learned
How to offset Textures by code. Meaning the road texture scrolls or offsets down without psychically moving in world space.
Game objects can move by referencing their own transforms which explains their smoother movement with delta-time.
The difference between 2D collision of kinematic and dynamic which seems to act differently with collision.
What I could do better
I could add actual cars to race with laps.
I could have added the mechanics for the player to accelerate forward rather than the player's car automatically accelerating forward. The player can only move left or right and does not go backwards.
The sound could sync with the player's car's movements more instead of being scripted knowing when to play a different sound by timing with a coroutine.
Overall
It was a nice exercise programming, I am happy I learned a few more tricks up my sleeve.
#cars#programming#racingcar#racing#indiegaming#indiegamedev#indiegames#indie games#soledevoloper#mechanictest#Unity3D#gamedevelopment#gamedev#indiedev#australiangamedevoloper
1 note
·
View note
Video
tumblr
Along with the Frogger clone, I made not too long ago to warm up my game dev skills, I decided to experiment with some simple C# coding to basically make a balloon popper prototype.
In this prototype, if you click 5 times on each green balloon, it will pop.
WHAT I LEARNED:
• A basic use of transforms with position, rotation, and scale.
• A reminder of how I can click on certain objects with a collider with the mouse.
• Variables with the same type can be nested into each other.
• A little more basic understanding of Mental illness and smoothness for materials.
OVERALL:
It was a good warm-up.
Yep, that’s about it. Now time for more complex projects, like finishing the MANIACS game.
#gamedevelopment #gamedev #UnityEngine #AustralianGameDevoloper #indiedev #projects #coding #SoleDevoloper #MechanicTest #indiegamedev
3 notes
·
View notes
Text
This project is a simple alternative to the Humanoid Animation project I did last month, but still, good practice to get a hang of the Animation Controller so I can better utilize its visual programming in my future games I build in Unity Engine. Unlike the previous project, I tested with a golem without moving it forwards or backwards. Instead, I am trying to execute smooth animations transitions with its attacks and skills in its Animation Controller
Not many newer things I learned from this practice project, but at least the familiarity with the transitions to me is much more straightforward than before, that way I know what I’m doing much better and have fewer struggles with the Animation controller.
I did not make these 3d assets or animations, they were given to me by AwesomeTuts to experiment on.
WHAT I LEARNED:
· Some animations are a complete collection of individual animations like walk, run, attack, sleep, etc in one whole animation that you can cut out and make separate animation clips to make animation transitions and editing easier. Some Animators even give you a list of which in between keyframes the character's animations to cut out.
· A simple addforce in velocity and one animation clip to make the Golem jump.
· Use about 2 or 1 animation bool on each state “true” or” false” to make sure the animations go in the right transition and no get stuck on one causing the character to be unplayable.
· Detecting whether being grounded or not when the golem lands on the ground with a collision instead of a raycast.
· Using an array to check if Golem along with the collision to detect ground while checking it to be grounded.
WHAT I COULD DO BETTER:
· I could have got the sleep animation bool on any state or planned it in advance as I did for walk, attack, and idle rather than adding it at the last min before I finished the project.
OVERALL:
It was an excellent overall 2nd exercise for Animation control, when the time is right, I will be doing more advanced animation control like blend trees and responsiveness of animations which will be useful for making characters in action and fighting games. I must learn more about Animation control for my future games to make my original characters look and feel alive.
#project #animation #future #editing #programming #gamedevelopment #gamedev #unityengine #indiegames #AustralianGameDevoloper #indiedev #indiegame #indiedev #gamedev #indiegames #SoleDevoloper #MechanicTest #unity3d
#indiegaming #IndieGameDev #indiegames #gamedesigner #animation #characters #rigging #HumanoidCharacter #3d #pc
0 notes
Photo

Completed another online course that focuses on Humanoid Animation control!
More info: https://lnkd.in/gyASi7qD
#gamedevelopment #gamedev #UnityEngine #indiegames #AustralianGameDevoloper #indiedev #indiegame #indie #indiegames #SoleDevoloper #mechanictest #Unity3D #indiegames #animation #characters #rigging #humanoid #characteranimation #pc #gamedesigner
1 note
·
View note