Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

6 Games in 12 Months Game Jam Devlog

A topic by Cedar Cat Studios created Jul 12, 2021 Views: 4,367 Replies: 73
Viewing posts 1 to 65
(42 edits) (+3)

6 Games in 12 Months

Summary

I’m a hobbyist game dev and love making games for the fun of it. However, I continually strive to improve my skills. This challenge is just for that. 

This Devlog is quite simple. I want to do a year long game jam which will require me to complete 6 games in 12 months. There are no rules or themes other than completing the 6 games in 12 months... and having fun of course! 

The purpose of this game jam is to hold myself accountable to completing 6 games and having fun throughout the process. This Devlog will be used to keep me on track throughout the jam as well as help myself keep record of what I am working on and new things I am learning in my game development experience.

Progress

See the latest post here!


Join the Fun!

If you would like to join the challenge or just hangout and chat about games with me then I would be happy for you to join the Cedar Cat Studios discord server. I also have been posting frequent updates and chatting with others on Twitter. Follow me @cedar_cat and we can chat more about games and my progress on this game jam.

Thanks and happy game developing!
(1 edit) (+1)

I have currently been able to tackle the 1st of the 6 games I will be completing in this year long game jam journey. 

The game I created was developed alongside another official game jam "My First Game Jam" which had the theme "Free". I decided to make a short but fun survival game about being a mother hen that must save your eggs/chicks from the humans in order to live life as a free range chicken. You can check this first game out here: https://cedarcatstudios.itch.io/free-range

I was able to record myself when I put this game together and will likely be posting a time-lapse of my work on this game and possibly some commentary as well. I look forward to my next post and my continued work on this game jam.

(+1)

As promised I have been able to put together an overview video of my work spent during the development of "Free Range".

(+2)

Game 2 Development Begins!

Fast Typing GIFs - Get the best GIF on GIPHY

Game Idea

I enjoy sticking with the quirky animal theme, so I will be making tennis game where you play as a dog and you must try and defeat your opponents in games of tennis. The game name will be Terrier Tennis where you play as the titular terrier and will play against an assortment of other breeds.

Focus Areas

I am planning to focus this game on really nailing down the sound effects as that has been a feature that has really lacked in my previous builds. Additionally I would really like to try and build out a new feature that I have never tried to tackle before, couch co-op! This will undoubtedly be difficult, but I feel there are a good number of tutorials on the world wide web that I can follow to help implement co-op and single player functionality into the game. Building out a dumb -> smart AI for the opponent on single player will be tricky too, but I am excited to work on this! 

Timeline

Work is pretty busy at the moment so I imagine this one will take me a while, but I will try and reuse a lot of the scripts from Free Range in this game to help on development time. Additionally, I have found a few asset packs within the Unity Asset Store that will help on my modeling efforts. However, I do really want to try and model a few assets to help flex those muscles. I will attempt to finish this game by September 5th. This will give me a full month and some extra time to help focus on really making a polished game. I will also try and post some frequent WIP updates here to show my progress as the weeks go by.

Other Projects?

I am a big fan of Brackeys as that channel helped get me into game development and I saw they are having their game jam take place in the middle of my Game 2 timeline. I may end up taking a week break from this game in the middle to work on a submission for the Brackeys game jam as those are always fun experiences! I highly encourage anyone else to join once the jam is open. Happy to collaborate with anyone as well on this game jam!

(2 edits) (+1)

Terrier Tennis Update

Base Mechanics

The mechanics of the game current are pretty simple. The player is able to easily move around the court and faces off against a bot (both just primitives currently) in a match to simply keep the ball from hitting the net or the out of bound walls. The player is able to aim by holding down the space bar and moving an invisible aim target. When the player comes into range of "hitting" the ball then an animation will trigger and the player will hit the ball towards the position of the aim target.

Improvements

I would like to improve on the functionality of bot as it is currently a bit too good. I need to factor in some imperfections into the bot. Additionally, the bot will only move on the x axis and has a fixed aim point. To make the game more exciting I will want to add some more dynamic movements to the bot. Additionally, there is no game manager currently. The player and bot simply try and not hit the walls or net. I will want to add an actual out of bounds to the court and integrate a score counter UI witch will keep the match score. Also, I have not built in any sound effects yet! However, I feel this will be good to add during the polish phase of game development when I also am able to swap out my primitives for good looking assets.

Finally, I would like to add a multiplayer functionality to this game. I think that may be extremely out of scope; however, if there as a feasible way to integrate that then I would like to pursue it. Multiplayer is a feature that I will undoubtedly want to integrate into future games, so why not start with this game?!

What I Like

So far the movement of the player feels incredibly nice! I have moved from my old hacky input system from Free Range to actually integrating it as a framework within Terrier Tennis. The controls feel way more responsive and it has so far been a lot easier to integrate other input actions in sine I built a framework from it, opposed to the "Get Key" type process I was attempting previously. Also, the performed and canceled methods with this new input system framework are also much more responsive. See below for a quick snippet of this method I am using. I find it much better than what I have used before:

public void OnSwing(InputAction.CallbackContext context) {
        if(context.performed) {
            Debug.Log("The player has swung");
            hasSwung = true;
        }
        if(context.canceled) {
            Debug.Log("The player stopped swinging");
            hasSwung = false;
        }
    }

Moving Forward

Work the last few weeks was keeping me from progressing on the base mechanics. However, I feel the last few days I have been able to make great progress and I still feel on track for my estimated completion date for this game. I may not be able to tackle the Brackey's game jam as well, but I will be hopeful! In my next update I hope to address some of the points I highlighted above and move into the polish phase of this game. Thanks for reading and stay tuned for more!

Final Note

I am going to finally try and illustrate a logo for Cedar Cat Studios to take place of the photo I have of the titular cat himself. I hope to have this illustration done before the next Devlog post!

(1 edit) (+1)

Terrier Tennis Update 2

Game Mechanics

Since the last post I have only made a few updates to the core mechanics. For the player I included the ability to perform a high hit or a low hit. These types of hit are performed by the player inputting the relevant keys to perform either of these actions. I currently have the keys locked to "G" for low hit and "H" for high hit. I will most likely change these before release. Additionally, I included the same functionality for the bot so there can be some variety in their hits. Further, for the bot I added a few more aim points to add variety in their hit locations. The bot still seems to be "too good" and I will need to make some improvements to allow for the player to be able to actually beat the bot. 

In addition to adding functionality to the player and bot, you can probably see from the gif above that I also included a cinemachine virtual camera to take on a more grounded camera angle instead of just the static floating camera. I set the camera to follow the player but to look at the ball so the player should not get disoriented about where the ball is at any point in time. This works, but as you can see at the end of the gif this becomes somewhat strange once the ball goes behind the player. I also noticed that at some points it was hard for me to see where the ball was when it was on the other side of the court. I may want to add a glowing effect or make the ball a bit bigger to help with this in a future update.

Finally, I was able to add a sound effect when the player and bot hit the ball! It is just a punch sound that I picked up free off the asset store, but I was able to mess around with it and think it adds a lot even though it is a sound effect that doesn't necessarily fit the game. I will no doubt update this in the future, but wanted to test this out before looking for the right sound effect.

Environment

One aspect you will probably notice that was a huge improvement from the last update is the addition of some environment assets! I think this is really starting to add to the game and I cannot wait to add animations to my player and bot to make it feel more alive. I would also like to add other dogs and cats to the bleachers to make it look like a real stadium. 

Another subtle touch you may not be able to pick up on in the gif is the addition of post-processing effects in my scene. I have never worked with these effects, but I am already starting to see a drastic upgrade in lighting and atmosphere. I have never been able to find a good tutorial on post-process lighting, but I watched a tutorial by LMHPOLY and found it incredibly helpful. I really enjoyed messing around with the color grading and used ACES for the very first time!

Improvements

There is still a lot I need to do to this game before it is ready for release. I would like to add a UI so the player can see who they are playing against and the current score. On the topic of score, I need to add in a game manager to track when the ball goes out of bounds and when to add score for the player or bot. I will also need to make sure to code in the tennis feature of making sure they win by two. I would also like to add a title screen and some additional environment assets to the foreground to really sell the experience. Finally, I will want to add all my animations and accurate sound effects to work more on that skill.

Bugs

For some reason the ball will randomly clip through the ground after the player or bot hit it. I have not been able to come to an understanding about what is happening here, but will need to rectify this bug before release.

Final Note

I don't know if you noticed, but I was able to illustrate a logo for Cedar Cat Studios! As someone who knows nothing about vector art, I am quite proud of it. Additionally, I started up a discord server to chat with anyone if they want to talk about any and all things video game development. I was fortunate enough this past week to meet a few individuals who are hobbyists in the game dev space and thought it would be great to meet more. Feel free to join the server if you like. I will probably use it as a method to post interesting videos and articles I find as well as talk about random topics I come across in the development of my games. The server is completely empty right now, but maybe we can grow a community in the future!

(1 edit) (+2)

Quick Update: Animation and Style

I added a toon shader and adjusted the color grading to be more poppy and to give it some more character. I also was able to create my animation blend trees to make controlling the terrier a bit nicer. The character still seems a bit floaty, but I think it is a good start!

I am now starting to work on populating the crowds in the bleachers (you can even see the start with the corgi's on the right bleacher).

(1 edit) (+1)

Crowd Simulation Overview

Summary

This will undoubtedly be a long week at work, so I wanted to get as much into Terrier Tennis in before the weekend is over. The last bit I wanted to add was the crowd simulation (hinted in the previous post). I decided to not look up any tutorials for this and try my hand at creating this on my own, and I think I did a pretty solid job with just over an hour worth of work!

How It Works

Essentially I purchased all the low poly dog prefabs from a fantastic asset pack on the Unity Asset store by Red Deer 3D. These dogs all came with animations already created which made my job a lot easier! My idea was the create a crowd simulation script that essentially just iterates through an index and will pass the index through to a parameter in the animator. This integer would then dictate the animator to play a random animation. This random integer selection would then take place every 5 seconds to make sure there was some good variety. Below is the script I mentioned:

using UnityEngine;
public class CrowdSimulator : MonoBehaviour
{
    Animator animator;
    public int randomAnimation;
    public float repeatRate = 5f;
    void Start()
    {
        animator = GetComponent<Animator>();
        InvokeRepeating("RandomAnimation", 2.0f, repeatRate);
    }
    void RandomAnimation()
    {
        int randomValue = Random.Range(0,randomAnimation);
        animator.SetInteger("RandomAnim",randomValue);
    }
}

I then applied this script to each of the dog prefabs. I then selected one of the dogs and created an animation tree within the animator. This tree has five selected animations which I felt would fit in at a crowd for a dog tennis match and created an entry and exit transition for each back to an idle animation. Each of the five animations have a random integer which I selected to trigger the animation. Therefore, if the script above passes a 2 to the animator, then the "Attack_1" animation will play, and if the next integer is a 5 then the "Aggression" animation will play. The exit transitions are then simply a "RandomAnim NotEqual [integer]".

I then added this animator controller to all the dog prefabs. The remainder of the work consisted of me putting some good tunes (if you are curious what my random collection of "good tunes" is, then I would recommend checking out the Spotify playlist I tend to stick to) on and randomly populating one of the stands with the variety of dogs. Once the stand was populated, I just copied it three more times and added it in place of the previous stands. 

The end result looks pretty good and really adds to the atmosphere of the game. I look forward to adding some soft barking from the stands in a future update.

(+1)

AI Bot Opponent Improvements

Previous AI Bot Build

The original state of the bot opponent was configured to be locked on the Y and Z axis and follow the ball on the X axis. This meant when you played against the bot it was not very lively and the bot seemed to be extremely stationary. Additionally, with this build the bot was way too good as it always new the perfect calculation to remain on the Y and Z axis which meant it rarely missed the ball. To make the bot more lively and act more like an actually opponent, I decided to take a page from my previous game (Free Range) and leverage the Unity AI NavMesh.

Current AI Bot Build

As mentioned, I decided to leverage the Unity AI NavMesh for the bot to act more natural. I started by selecting my tennis court and configuring the court to be a static object, I then baked the NavMesh as a walkable area. However, I don't want the opponent to walk on the player side. So I created a new plane that only exists on the opponent side and created a new navigation area "BotSide" and baked the newly static plane. I then deactivated the mesh renderer of this plane. Now I have two objects (seen as colors in the gif) with the NavMesh applied: Green where the player can walk, Red where the bot can walk.

Now that I have the NavMesh set up, I simply added a NavMeshAgent to the opponent and set the area mask to "BotSide". I also set the Angular Speed to 0 so the bot didn't rotate all over the place.  with the NavMeshAgent set up I was able to rewrite the opponent movement script to move towards the ball. However, when I did this the opponent just B-lined it right to the net when it was on the player side. Therefore, I created a cube on the player side, set it as a trigger, deactivated the mesh renderer, and applied a script to the ball to change a public boolean if the ball enters and exists this cube on the player side:

using UnityEngine;
public class BallManager : MonoBehaviour
{
    public bool isPlayerSide;
    void Start()
    {
        isPlayerSide = true;
    }
    public void OnTriggerEnter(Collider col) {
        if (col.transform.tag == "PlayerSide") isPlayerSide = true;
    }
    public void OnTriggerExit(Collider col) {
        if (col.transform.tag == "PlayerSide") isPlayerSide = false;
    }

With this "isPlayerSide" variable configured I am able to call it within the opponent bot script and if the ball is on the player side then the bot will go to the back line and simply follow the ball on the X axis. However, once the ball crosses out of the isPlayerSide then the opponent will run after the ball to hit it across the net. 

using UnityEngine;
using UnityEngine.AI;
public class BotManager : MonoBehaviour
{
    public Transform ball, botResetPosition;
    void Start()
    {
        navMeshAgent = GetComponent<NavMeshAgent>();
    }
    void Update()
    { 
        if (ballCheck.GetComponent<BallManager>().isPlayerSide) {
            navMeshAgent.destination = new Vector3 (ball.position.x, botResetPosition.position.y, botResetPosition.position.z);
        }
        else {
            navMeshAgent.destination = ball.position;
        }
    }


After testing this out the bot plays a lot more like a real opponent and makes mistakes and is a lot easier and more fun than before. The gif above (sorry if there is an orange light filter applied) details how the opponent interacts with the ball on both sides now. I still need to update the animations, but I feel this is a great improvement from the previous build!

Random Tidbit

I thought it was more accurate (and more cute) to get rid of the tennis racket animation and instead have the dogs jump and hit the ball with their snout. You can see a rough start in the gif. It is much more on brand here and I love it!

why you dont make a 2d or 8 bit game that so much easy

Thanks for the post @Arlzoliptus! I may make a 2D or 8bit game for a future game in this jam. I mainly enjoy working on 3D games more and wanted to try and get better at developing in 3D. I am trying to use this 6 Games in 12 Months game jam to get better at areas I have struggled with in the past. What better way to learn than in a scenario like this :)

(+1)

maybe you can make game bet em up like we can don't fight enemy but we can talk or negoitation on enemy 

(+1)

Gameplay Adjustment

Summary

I was finding the game to not have a very fun gameplay loop. The act of aiming was very clunky and I felt like I didn't have any control over where the ball was going on the opposite side of the court. I wanted to fix that by providing the player with more control over their hit returns. I felt the most natural progression was to create a "bullet time"  (we can call it super slow ball time) mechanic and then allow the users to direct their shot during the brief window of slow motion during the game.  Super slow ball time is initiated by a cube that is a child of the player that triggers the super slow ball time once the ball enters the trigger.

I was able to achieve this relatively simply, but more improvements will for sure be made. The gif above showcases how the player experiences super slow ball time as well as a crude sphere (which will be an arrow eventually) allows the player to direct where on the other side the ball will be hit. I had to change up the button layout in order to achieve this. The player now uses the arrow keys to move and WASD to move their aim target. The aim target is only able to be moved during super slow ball time and resets when they leave super slow ball time.  

Conclusion

This makes the game already way more fun to play. I just sat against the bot for a few minutes screwing around and genuinely had fun! There is still a lot to improve, but I think this will lead to a much more satisfying gameplay loop.

(+1)

I love this concept, ngl.

(+1)

I’m so glad you love the concept! It’s been a lot of fun so far and really enjoy how it is keeping me to working on these quirky quick games. 


I am getting close to finishing Terrier Tennis and already excited about my next challenge!

(+1)

Terrier Tennis Update 3

Status

Overall I am quite happy with the progress I have been making on Terrier Tennis! The gif above (apologies if giphy cut the frame rate in half) highlights the current state of the game. I have been able to add a scoring mechanic into the game as well as properly position the titular terrier on either the right or left side after a point has been made. I also was able to model a score board to keep the track of the score as the match unfolds. Keen observes of Cedar Cat Studio games will see the infamous Stinky Cat hanging out on the score board! In addition to modeling the score board in blender I was able to also model the arrow to show the direction of the players hit. I also was able to animate it to add a bit more flare! 

While progress is going great, I will unfortunately be on the road for the next week and will not be able to work on game development in Unity until next week. While this is the case, I still have a lot of art and sound work that I want to get done which does not need to be done in Unity. I will continue to post here with updates outside of Unity for the next week. Finally, I have some days off work the following week and I am confident I will still be able to release Terrier Tennis by the deadline of September 6th!

Features Still Needed

  • True tennis scoring: 13, 35, 40, Game. As well as the "must win by two" rule.
    • I also would like to make the games be best of three so there will be a series of matches before the game is truly over.
  • I need to add a feature to allow a player and opponent to score if the ball hits in bounds and then out of bounds.
  • Main menu and opponent selection screen. I would like to add the ability for a player to choose who their opponent is (based on difficulty) and run through the gambit however they would like.
    • Unfortunately multiplayer or couch co-op are far out of the scope currently.
  • Opponent serves.
    • Currently the opponent only receives and never serves. I would like this to not be the case and to play like an actual round of tennis.
  • The opponent animator needs finishing.
  • Final background environment modeling.
  • More sound effects and theme music.
    • I will be working on this all next week :) 

Bugs That Need Squashing

  • The ball will still sometimes clip through the court for no reason. I still need to look into this.
    • Similarly sometimes the ball will hit the court and just stop in place.
  • The jump animation on the Terrier can be delayed for some reason sometimes.
  • The arrow will slowly shift further to the right as the match goes on and I do not know why?
  • I have a bounce counter which counts the number of bounces the ball takes after it is hit, and it only records in increments of two for some reason.
  • Frame rate fixing
    • I need to do performance tweaking as sometimes the frame rate can be pretty bad.

Final Notes

This has been a blast so far and I hope anyone reading is enjoying the progress on Game 2 of this game jam. Please feel free to comment on any suggestions you may have for Terrier Tennis or the game jam as a whole.

(+2)

Terrier Tennis Banner

Summary

First order of business during my week away from my computer was to flex the my “art” skills and put together a banner logo for Terrier Tennis. It’s not much, but I’m pretty happy with the outcome of this banner photo! I used Vectornator on my iPad to put this together and hope I was able to capture the titular character along with the mood of the game in this banner. I will likely use this in the official itch release banner and logo as well as on top of the score board to add some whimsy to the game. Overall this was a fun exercise, and I now need to focus on putting together some sounds for the later half of this week.

let me know what your thoughts are on the banner especially because I am extremely new to putting together this kind of art!
(1 edit) (+2)

Hey, the logo is already very cute (especially the details on the dog, the paw coming towards the viewer is amazing, haha, very dynamic), but I’d suggest playing with shadows and layering of text and image a bit, especially vectornator and similar apps allow for that very efficiently! Here’s an example I did with a vector app:

(+1)

Wow the shadows add some much more life to the graphic! Yours looks awesome! I definitely saw some easy shadow options but had no idea what I was doing. I’ll try and fool around with those and see if I can make my graphic pop more. 

I also love your colors. I kind of want to add more than just the green background now too!

(+1)

still not as good as yours, but I definitely tried to take some of the points you made to add more depth and make the banner feel way more dynamic and pop better! I’ll probably still tweak this some more, but I’m liking this way better!


(+2)

It’s already a lot more dynamic, good work! I’m sure you’ll get the hang of it faster with each game. :) You’re already doing great and I’m excited to see the other games you’ll come up with!

(2 edits) (+1)

Title and Menu Screen


Summary

I was itching to get back to game development after a week away, but I am glad I was able to take the previous week to dive into the vector art for the game. As you have been able to see in the previous posts, I arrived on the title text and a cute image of the titular terrier. I really enjoyed the process of creating this vector art and I wanted to incorporate it into this game, and future games. So I felt the natural progression was to build out the title and menu screens with these features included!

A title and menu screen have never been my forte. I usually just skip over this and do a quick and easy intro to the game, but putting more time and effort into this was honestly a lot of fun! I learned how to export my vector art graphics and text using the proper resolution to unity and convert to a 2D sprite while retaining the sharpness. My previous games all leveraged TextMeshPro, but I always felt the resolution was really bad. I am so glad I was able to figure out a better pipeline using my vector art.

In addition to the vector graphics being included in the title and menu screen I really wanted to add some more flair. The silly animation on the title page was super easy, but I feel it sells the fun of the game. The opponent selection was a bit more difficult, but learned a lot about render textures and how to render out another camera in the scene. The end result I think is pretty snazzy and is by far the most polish I have put into a title screen. Finally, I have never done a scene transition before but it is astonishing how much of an effect it has.

Final Note

This was a lot of fun to spend more time on the title and menu screen, but I still have a lot of gameplay tweaking I need to add in order to complete this game by my deadline of September 6th. I look forward to posting more here!

(+1)

The Home Stretch

Almost Done!

This evening marks the completion of the first full level against the German Shepherd! I purposely made this level to be able to be copied and easily modified to fit the remaining five dogs and their difficulty levels. Today I was able to create some vector art for the game over screen and also add some fun background music to the title menu as well as the game itself. Tomorrow I will be finishing up the game by creating the final levels and applying whatever remaining polish is needed. 

In an effort of time I actually ended up cutting a lot from the final product. I decided to make it so the player will only ever serve and in order to win you just have to get to five points. This is something I would enjoy fleshing out more if I wanted to spend additional time on this game. But that is the beauty of the 6 Games in 12 Months Game Jam. I am able to spend time working on a game and learning, to then move onto the next.

I have had a lot of fun with Terrier Tennis and think this may be the most polished game I have done so far, and have learned more than I honestly expected. I hope to release the game this weekend and I also hope you all find some enjoyment from it. I will plan that my next post will be the itch page link to the in browser game. I look forward to you all playing the game soon!

(+1)

Terrier Tennis Completed!

https://cedarcatstudios.itch.io/terrier-tennis

Summary

I'm excited to have finished Terrier Tennis before the deadline I set for myself! Putting this game together was a lot of fun and I learned more than I would have thought. While there are still many things I would like to improve in this game, I felt it was time for me to upload the build and enjoy completing the game. I hope you find some enjoyment from the game, and I can't wait to get started on my next project in the coming weeks. It would be great if you would be able to play the game and let me know your feedback so I can improve when going to my next projects.

Things I Like:

  • The player movement and aiming
  • The title card and opponent select menu
  • The scene transitions 
  • The music
  • The vector art throughout the game
  • The code (I did a purposeful job to spend time working on making elegant code)

Things I Don't Like:

  • The frame rate (the build frame rate in the matches is sub par and I just don't want to spend more time tweaking performance)
  • The opponent animations are quite harsh and limited
  • The sound effects could have been greatly improved
  • Limited to desktop html build (I would have liked to do a mobile build)

Conclusion

Regardless of the features I like and don't like, I learned a lot making this game and that is all I can ask for during this process. I can't wait for the next project, and I hope you are able to play my game and find some enjoyment from it. Thank you for watching my progress over the last month. I hope you stay tuned for my next games! 

(+2)

I ended up fixing the poor frame rate by moving the build off of WebGL/HTML5. For some reason this build had quite unplayable frame rate and the only way to fix it in this time was to move the build to PC/Linux/Mac. I wish I would have been able to make it playable in browser so it would be more accessible, but I would rather allow people to enjoy it rather than be frustrated with a poor build. 

Maybe in my next game I can work more on performance tweaking so this doesn't happen. Regardless I hope you enjoy!

Terrier Tennis Break Down Video

Similar to how I broke down "Free Range", I wanted to create a post-mortem analysis of my work on Terrier Tennis. Again, I had a lot of fun putting this game together and looking forward to working on the third game in the jam!
(+1)

Game 3 Development Begins

Summary

On October 3rd he asked me what day it was and I told him it was the day I started development on the third game in the jam! This time I found a game jam that coincides with with my own self created game jam. The game jam I will be taking part in along with for the third game is the One Game A Month game jam. The theme for this jam is shapeshift and I will try my best to make a game that goes along with the theme, but since completing my last game I have had some fun ideas that I would like to run with for my third game.

Game Idea

This game I would like to focus on making a fun little mobile game. My intention will be that the mobile game will have a very simple game play, but with the addition of a multiplayer functionality. This way I can focus on some of the complicated backend aspects that will go into making the game have a multiplayer feature. However, I will want to limit the scope of the multiplayer feature. Possibly I would like to maybe just have a leaderboard feature. 

The core game play I am thinking of is you are a cat that needs to tap some yarn to keep it in the air before falling below the screen. This way I can get a simple leaderboard just showing the user with the highest amount of yarn taps. I could possibly fit some of the shapeshift theme ideas into the yarn itself, but that is a concept I will tackle later on. 

In Conclusion

I am super excited to start working on the third game and love that I found a game jam (and a community) that I will be able to develop with. In addition, I am supposed to be traveling for work quite a bit this month and it will be hard to develop being away from my computer. That will allow me to focus my efforts on the unique art of the game and also the backend architecture that will make up the multiplayer leaderboard feature. I hope I will be able to update this devlog and keep you all up to date on the progress of the game!

Also, I figured out how to integrate my development with git! I have been trying to figure this out for sooo long and happy I finally go the integration working with Unity.

Basic Touch Controls Added

Summary

I was able to figure out how to simulate and add the base touch controls for the game! I simply added the Terrier Tennis sprite as a place holder and was able to change the position of the Terrier based off my touch input. I will eventually want to replace the Terrier with a cat paw and some animation showing the paw travel across the screen to where the player last touched. 

This was a lot more difficult than I was expecting and ended up following a fantastic tutorial by Samyam on how to properly implement touch controls. I also learned about Singleton classes and how to actually leverage  {get; set;} for the first time! In order to figure this out effectively I leveraged a gist I found on github that provided the great details on the Singleton class. I also provided the link below for anyone that wants to just copy and paste.

using UnityEngine;
// https://gist.github.com/mstevenson/4325117
public class MonoBehaviourSingleton<T> : MonoBehaviour
    where T : Component
{
    private static T _instance;
    public static T Instance {
        get {
            if (_instance == null) {
                var objs = FindObjectsOfType (typeof(T)) as T[];
                if (objs.Length > 0)
                    _instance = objs[0];
                if (objs.Length > 1)
                    Debug.LogError("There is more than one " + typeof(T).Name + " in the scene.");
                if (_instance == null) {
                    GameObject obj = new GameObject();
                    obj.hideFlags = HideFlags.HideAndDontSave;
                    _instance = obj.AddComponent<T>();
                }
            }
            return _instance;
        }
    }
}
public class SingletonPersistent<T> : MonoBehaviour
        where T : Component
{
    public static T Instance { get; private set; }
    public virtual void Awake () {
        if (Instance == null) {
            Instance = this as T;
            DontDestroyOnLoad (this);
        }
        else {
            Destroy(gameObject);
        }
    }
}

Using this Singleton and actually leveraging the Input System I feel I am truly using it in the way Unity intended instead of the "hacky" way I had in the past. I hope I can keep on this track of using this method as it seems to scale a lot better than what I had done in previous games.

Struggles

While I am able to get the simulated touch controls working great, I can't seem to get the touch controls to work on Unity Remote 5 on my phone. I did some digging and found out the reason is because I have not turned on developer mode on my phone, yet I do not seem to have the ability to or find any good resources online for how to turn this on. I believe I should just need to link my phone up to a mac and allow this functionality. In the meantime, I am comfortable that the touch controls will eventually work on the phone since I have no mouse inputs allowed yet. This shows the simulated touch is working and it is just my phone that is being the pain. I will want to figure this out asap.

Next Goal

Work on adding in the cat paw to follow the last touch position and add the yarn with physics so the player can try and keep it alive!

Improved Player Movement

Summary

I frustratingly spent over two hours tonight trying to figure out how to get Unity Remote 5 working on my end, but realized too deep in that the new Unity input system is actually not yet supported on Unity Remote 5 as called out in this forum post I came across. Since I realized this wasn't possible I decided to focus on trying to improve the core movement of the player while working with the player touch inputs.

I was actually able to get this working pretty well, but had to do some funky maneuvering on the backend. Instead of now moving the player when you click, I have it set to move an empty object when you click, and have a simple script that then moves the player sprite towards to empty object. To then have this empty object move back to the center I have an empty object that sits on the bottom of the screen where the empty player object will always move towards. Essentially I have three objects (one being the player sprite and two empty sprites) that are all interacting together in order to get the player touch and movements to work together.

Something that I did need to build out though is a coroutine that will wait for a half of a second after the player clicks somewhere so the player sprite can make it to the input location. Previously the player sprite would never even make it close to the input location.

Weird Bug

I noticed for some reason on the first input touch event the location is always (0,0) in the game world. I don't know why this is, but will definitely want to try and address this in a future update as it gets a bit annoying and I could see this really frustrating players.

What I Want to Add

I got the movement and input controls to work well, but I think it would really sell the experience if I can get the player sprite to rotate on a pivot so it will rotate back to the center. This will make the player sprite (which will be a paw) look more dynamic and alive rather than just move on the x axis. This will be a feature for another day though!

Ball and Paw Addition

Quick Update

I was able to spend a few minutes tonight working on the game and was able to add a crude cat paw into the game as well as the beginning functionality of the ball bouncing around the screen. I still want to play around with the ball size and how the paw interacts with the ball, but I think this is a good start for now! 

Additionally, I was able to leverage some code from an unfinished game I worked on last year to help rotate the paw to always look at the invisible center point at the bottom of the screen. This way there is a bit more life to the paw when you tap around your screen. I think I need to make the paw movement a bit faster to respond quick to your inputs, but I am really liking this so far!

Scoring and Pawer Ups

Improvements

Today was a great day for Cat Tap game development! I was able to import a new sprite in for the cat paw which makes it look less like a detached cat limb and more like a super long and extended cat arm. Additionally, I fiddled with the gravity physics of the balls and speed of the paw to make gameplay a bit more fun. One final improvement I was able to make was in the form of how the paw actually punches the ball.

Previously I just relied on the 2D collider of the paw and the rigidbody of the ball to act as the opposing forces. However, that never worked the way I wanted when I would actually punch the ball with speed. After some digging and investigating on some discord servers I decided to scrap the collider and rigidbody and go for the trigger route. I know have a trigger associated with the paw and when the ball enters this trigger an opposing force is applied to the ball. Then once it exists the trigger the score increases.

Additions

As you can see I was able to include a rudimentary scoring system on the bottom left. I will plan to make this more exiting and maybe add some flare when the score goes above your high score or in 10s, but for now it will do. Another exciting addition is in the form of the "Pawer Ups"! I am exploring scriptable objects, but made my first one where after 5 taps the pawer up instantiates above the screen and allows the player to punch it to duplicate the balls. This adds a lot more gameplay variety and chaos. I actually found myself playing around with this more than I thought. I think the core gameplay loop going forward will reside in the variety of these pawer ups.

Further, I added some quality of life improvements in the form of the off screen arrows. The logic for these was pretty simple. I essentially have them as a child of either the ball or pawer up and have a short script to always follow them on the x axis and follow the offset of the ball and an invisible bar I set above the screen. This creates this effect. I especially like how the arrows come far down and then back up to show the illusion of how fast and soon the ball will be returning to the screen. The simple script is below:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LookAtArrow : MonoBehaviour
{
    public Transform topBar;
    private Transform ball;
    public float ballDistance;
    void Update() {
        transform.position = new Vector2(transform.parent.position.x, (topBar.position.y - transform.parent.position.y + ballDistance));
    }
}

What's Next?

Next week I am going on a work trip so I won't be able to do any involved game development. However, that leaves me an opportunity to explore some more pawer ups and create some more vector art for the game. I really like these break points as it is a nice change of pace and allows me to focus on other aspects of the game which I usually tend to leave to the last minute. Now if I am able to spend this next week working on art and pawer ups it could hopefully help fuel better game design and development when I return!

Initial Leaderboard and Player Profile

Summary

After a week away for work I was able to get back to the game dev grind and focus on the part I was dreading the most.. The multiplayer aspect of the game. I was able to take today to put together the framework for the leaderboard functionality as well as capturing the player profile so the scores can persist across playthroughs as well as eventually show a leaderboard of other player scores. While this was in fact tricky, it was a made a lot easier by leveraging a backend leaderboard tool. I did quite a bit of research and found a lot of tools out there, but the one I found that fit my low effort use case the most was one called LootLocker.

Before ultimately choosing this backend I decided upon it because I found it had pretty solid Unity API documentation as well as a discord server where others can chat and ask for support. This discord server ended up being the best part because I was stuck on an API call for the high score, posted a question about it, and got a response in minutes! That helped unblock me and then finish this basic outline of the leaderboard. The current functionality simply displays the player name, player score, and high score as well a simple button for the player to retry if they would like (I love how the paw technically pressed the button).

What is still needed?

  • The leaderboard on the end game menu
  • A start menu that will allow the player to change their name if they would like and also see the current leader board if they want
  • Better cat tap physics (I think I want to add some logic to stop the paw if you click passed the ball so the physics work better)
  • More Pawer Ups!
  • Better UI sprites
  • Improved ball physics
(+1)

Small Updates

Small Updates

This morning I fooled around with some more of the gameplay mechanics over the leaderboard and really started to have some fun! First off I found it a bit too easy leaving the paw in the middle as you could get a lot of taps easy by just doing nothing and letting the ball continue to fall on the not moving paw. Therefore, I moved the paw to the left side to make the player tap and made the paw a bit quicker on tap. To then fill in the gap in the middle I added some eyes (where the cat face will eventually go) and applied a simple follow script to the eyes so they will always follow the ball. However, this script became more involved than I was expecting (see below).

public class EyeLookAt : MonoBehaviour
{
    Transform ball;
    GameObject[] foundBalls;
    public float eyeSpeed;
    private void Awake() {
        foundBalls = GameObject.FindGameObjectsWithTag("Ball");
        ball = foundBalls[0].transform;
    }
    private void FixedUpdate() {
        if (ball != null) {
            Vector3 dir = ball.position - transform.position;
            float angle = Mathf.Atan2(dir.y,dir.x) * Mathf.Rad2Deg;
            transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
            transform.up = ball.transform.position - transform.position;
        }
        else {
            foundBalls = GameObject.FindGameObjectsWithTag("Ball");
            if (foundBalls.Length > 0) {
                ball = foundBalls[0].transform;
            }
            else {
                transform.Rotate (0,0,50 * Time.deltaTime * eyeSpeed);
            }
        }
    }
}

I really do not like using the `FindGameObject` functions, but I felt I optimized this script enough to only search for the balls on awake and when the original ball is destroyed. I then make the eyes spin in circles when the player loses all balls which is quite fun to see on the game over screen.

More Pawer Ups

After learning how to take advantage of the scriptable objects, I discovered how to scale this and use them to their full advantage. Because of the scriptable object framework I was able to add in just a few minutes a completely new Pawer Up that will decrease gravity for a short time... the Pawer Up is called "GraviKitty"! So far I now have two Pawer Ups that will drop at every tap that is divisible by 5. I will probably extend this out for real gameplay. These Pawer Ups though really add some fun variety to the game and I am looking forward to coming up with more ideas!

(+1)

Titular Cat Added

Summary

Not a heavy development evening, but had fun adding in the titular cat and eyeballs to the gameplay to make it a bit more fun and build out the world some more! Next on the world building (lol it is just a cat tapping who knew I would want to build a world around it) is to add a capitating background. The key will to have the background not be too distracting, but to enhance the overall experience of the game. 

Let me know if you have any ideas for what would make a good background!

(+1)

Art and SoundAdditions

Summary

Today was a fun game dev day where I was able to do a mix of gameplay adjustments, adding more art (background and ball of yarn), and adding music and sound effects. You are not able to hear the effects and music in the gif above, but I ended up going with a lofi beat track softly playing in the back and I recorded myself punching a stress ball for the sound effect of the cat tapping. Further, I think I finally got the gameplay and movement down so that it actually feels good and you don't feel like you are being cheated anymore. This game is actually pretty chill and fun to play now with the music/effects, gameplay, and art!

In the end I really like the scene I have in the background. I was able to generate the background by finding an picture online and making some adjustments of my own in Krita to get the effect and other little touches that I wanted. Similarly, the ball of yarn is a vector image downloaded online and I made some adjustments to allow myself to change the color of the ball if I would like. I am really happy with the progress I am making and hope to release a first version soon!

v0.1.0 Release

As I am having a lot of fun working on this project, I would like to continue development past October. Therefore, I will plan to release v0.1.0 by October 31st so I can submit it for the "One Game A Month" Game Jam, and then work for a few more weeks on the game to allow myself to submit the game to the apple and google play stores.

Still To be Added

  • More Pawer Ups
  • A start screen that allows you to input your player name
  • The full leaderboard
  • More cat and yarn skins (will be a nice to have if there is time)

Menu and Leaderboard Update

Summary

I haven't posted in a few days, but I have been able to apply quite a few updates to Cat Tap! Below are a few big ticket items I have been able to accomplish in the last few days.

  • Finally get the leaderboard to work and populate
  • Allow the game to recognize a returning user
  • Allow the user to update their name if they want
  • Create a main menu where the player can get used to the controls of the game
  • Create a shortcut to the leaderboard and the main menu
  • Fully leverage my GitHub integration and install my game on my mac!
    • This is what I have always struggled with, but happy I was able to easily clone my project and setup on my Mac
  • Create my first development build and play the game on my iPhone

What's to Come

I can sense the end coming soon for the initial release of Cat Tap. Before the initial release there are a few features I would like to add:

  • More PawerUps and CatTraps (the inverse of PawerUps to make the game more challenging as time goes on)
  • Integration of an "options" menu
    • Allow the user to adjust the volume of the music
    • Allow the user to change the music if they would like
  • Cleaner graphics on the menu
  • Cleaned up ball color to match the scene better

Final Note

Unfortunately I missed the deadline for the One Game A Month jam. However, I am still having fun with this build and looking forward to finishing the game in the next few weeks!

(1 edit)

Volume Slider and App Icon

Volume Slider

Although I only worked on game development for a short period tonight, I accomplished a task I have been trying to do in all my previous games but never knew how to accomplish... Creating the volume slider! I have always loved games that offer this as a feature, and I feel like my games have always been ones that need this. My music is either way too soft or way too loud. Now a user gets to decide how they would like to set the music volume!

I was able to do this by leveraging posts from other developers and getting an initial understanding of how the Unity audio mixer works. I had never used it before, but now that I kind of understand what this is, I will use it in all my future games for sure. If you want a good write up on what the audio mixer is then I highly recommend you read Ray Wenderlich's article "Audio tutorial for Unity: the Audio Mixer". This article was a great guide on how the mixer is used and why it is used. For the slider itself, I followed an extremely simple write up from John Leonard French in his article "The right way to make a volume slider in Unity (using logarithmic conversion)" which was suspiciously easy and makes me wonder why I was scared to implement these in past games.  So happy I was able to find those two articles to help make this be an easy addition!

App Icon

Last night I fooled around a bit and made my initial draft of the app icon for the game. Let me know what your thoughts are!


Music Selection

Summary

Tonight I was able to put together the first working version of the song selection within the options menu! I have been grooving to some great Lo-Fi beats while developing this game, so I thought it would be fitting to put a few Lo-Fi tracks as selections in the options menu. All songs for this game (so far) can be credited to Fesliyan Studios who have a catalog of royalty free music. Specifically, music that really is great also!

The hardest part of this integration was getting the buttons to stay selected after leaving the options screen. I was able to do this by leveraging a combination of a public float and the Unity.EventSystem to dynamically select the correct button when the options menu is loaded. Essentially, I when the button is selected in the menu the `musicIndex` float is updated based off the respective index of the song. Then that float is passed through as an argument when the options menu is opened and the EventSystem selects the button based on whatever the musicIndex float is.

The above took me longer than I would like, but glad I was able to get the system working! I think next I will try and find a few local artists to contribute their music to allow users to select from a variety of songs if they would like. Regardless I may be done with the UI for now and want to go back to adding more gameplay elements before release.

Almost There!

I have finished the first stable build of the game!! I added a bunch of neat new features to the game that I think will make it fun for all who want to play the game when I release it soon. You can expect at the end of the week for the official release of the game on the following platforms:

  • Apple Store
  • Itch.io
  • Google Play (maybe?)

This has been my favorite game to develop so far and I really hope people enjoy it once I release it. Thanks to anyone that has been keeping up with this journey. I would have liked to post a better update here, but I was focused too much on development and didn't have enough time to put together a thoughtful devlog. Hopefully once the game is released it will make up for this!

App Submitted for Review!

Overview

Finally... after a long arduous process, I have been able to submit my game for review to then be put on the Apple Store. There were quite a few hiccups I came across in this process. I highlighted a few below:

  • I realized at the last minute that Cat Tap is trademarked... So my game is now Tip Tap Cat (new name curtesy of my fiance)
  • There were way more legal and privacy questions I encountered when preparing my game for review. I did quite a bit of digging and found the safest route would probably be to restrict the app to only US individuals and make the game free to play.
  • There was A LOT of work that went into provisioning certificates and profiles for the Apple Store. I highly recommend anyone that is curious to upload a game to the Apple Store to take a view of Epitome's video on how to do this. It really helped me out.
  • I came across some weird xCode build bugs. I never was able to isolate what the issue was since these bugs seemed to fix themselves out randomly.

Promotion Pics

Here are a few promotion screenshots I submitted with the game that I thought you may appreciate.




In the End

The first release version of the game is ready and the Apple Store version is being reviewed as we speak. I will hopefully respond back here once it is live on the app store! In addition to the game being on the app store, I am planning to build a version for itch.io browser so all can play it here as well. Hopefully I will be able to provide an update in a day or two!

(+1)

Tip Tap Cat Completed and Live

https://cedarcatstudios.itch.io/

Overview

After what feels like more than a month and a half, I have been able to fully release my third game Tip Tap Cat! I have been able to release the game on my itch.io creator page as well as the Apple Store and Google Play Store. It is free on all platforms and I hope anyone here wants to try the game and let me know your thoughts. This game was a lot of fun to create and it made me realize why I love doing this game jam and being a hobbyist developer so much. I look forward to my next game, but hope this one brings anyone that plays it some enjoyment :) 

I will eventually do another video where I break down the Unity project for Tip Tap Cat, but a few things I would like to highlight about what I was glad I was able to include in time and also what I was not able to implement. Below are a few of those thoughts.

What I was able to implement

  • The leaderboard mechanic
  • New Unity Input System touch controls as well as mouse controls
    • Wow the new input system is great now that I have figured it out
  • Using scriptable objects saved a bunch of time and something I will use more often
  • Creating my own classes
  • A color pallet 
    • A criticism I received on Terrier Tennis was the color pallet was all over the place. I spent a lot more time on this game making sure the colors didn't clash
  • A refined UI and music options plus a volume slider
    • I really liked how the slider only affects the music and not sound effects. I had to leverage the Unity audio mixer for this and it was pretty great.
  • Optimizing performance. 
    • Previous games I never had to worry about this, but it was great having to focus on this for mobile and making sure the game performed well on all platforms
  • Releasing on the Apple and Google Play Stores
    • Wow this was a lot of work. After finishing the game it took me at least a full week to figure this out. There are a lot of tutorials online for how to do this, but none show how difficult and frankly scary this is. There was a lot of legal information I didn't know how to navigate. Because of this, I ended up just releasing the mobile versions of the game in the USA and made it free.

What I wasn't able to implement

  • Persisting user data
    • Loot Locker was a great tool to leverage, but I could not figure out in time how to identify a device as a unique user and call that on game load. I did a lot of research into this and found you would need to write to the device a string and retrieve it on game load. This required higher permissions the app needs on the device. I did not want to go that far this time, so I decided to just skip it.
  • Music from local musicians
    • I was able to use free-use music for this game, but I would love to find local musicians in my city and allow them to get a credit in my game. Maybe another game will feature their music
  • More customizations
    • The different colored balls and music was a start, but I would like to add more features (and maybe unlockables) so users are excited to keep coming back 
  • The opposite versions of the Pawer Ups and more Pawer Ups
    • I had a lot of ideas to add more Pawer Ups and create bad versions of them. However, with the time constraints I had I ended up not including them. This would be something I could see myself coming back to and adding just for the fun of it. Especially if people actually end up playing this game.

What's next?

I think I would love to make a console game as part of this game jam, but in an effort of time (since the holidays are coming up and this jam will be over before I know it) I think the next project for me will be another mobile game that will be more story and gameplay driven than Tip Tap Cat. I was able to figure out touch controls, but now I would like to try and take it a step further and see if I can make a 3D mobile game with more involved touch inputs. 

However, I would like to take a break for the Holiday's and maybe go back to a good book for a bit before jumping back into development. Stay tuned though, as I will make another video soon breaking down how I developed Tip Tap Cat.

This just in! Tip Tap Cat is now live on both the Google Play Store and the Apple App Store!

Okay, So What's Next?

Tip Tap Cat Updates

Since completion of Tip Tap Cat I have actually received a lot of feedback from family and friends who have been playing it. Surprisingly, most of the feedback has been complimentary mixed with some much appreciated constructive points. Therefore, I would really like to spend the remainder of November taking it easy on the game dev side and maybe push an update or two to Tip Tap Cat based off the feedback.

Additionally, I would really like to understand more about how to increase my games presence and reach. This is something I am not too concerned about right now with Tip Tap Cat (especially since it is a free game that I made in a month for fun), but this is something I would like to have a better understanding of once (more like if) I decide to try and make a full fledged game and want to release it commercially. The route I will probably be going with this is by leveraging Apple Search Ads and Google Ads to try and increase the reach of my game to other people outside of my friends and family. Further, I just created a Twitter account @cedar_cat where I will be posting my dev logs from here and some other updates as I go. This will be to try and boost my presence online and see if anyone is interested in what I am doing.

The social media aspect of game dev is one I truly do not like to take part it. However, it seems this is the ideal way for people to get to know what you are making. I hope these steps turn out to be worth it for my development efforts. Maybe then someone else can use them as tips for helping to boost there game dev presence as well!

New Logo

Very small, but I don't really like how the logo for Cedar Cat Studios looks from afar. I may want to update it a bit to be more friendly and attractive to they eye when glanced at on a phone or computer and it is a small icon.

What's the next game?

As I said above, I would like to take the remainder of the month of November to just do relaxed updates and try a few non-gamedev things in this jam. However, I did find a perfect Game Jame to take part in for December, Game Devcember. I am really looking forward to this jam, especially since it seems really low key and has a small but welcoming community to get to know during the jam. 

Until then, I will post back with any updates I make to Tip Tap Cat and look forward Game Devcember!

Game #4 Development Begins



Summary

Fresh off the release of Tip Tap Cat from Game #3 of the 6 Games in 12 Months game jam, I am excited and eager to begin work on game #4! As I had mentioned in the previous post, I have joined an outside game jam for Game #4. I will be taking part in the Game Devcember game jam. As of December 1st the theme for this jam is Recovery.  My goal will be to create and complete a game revolving around the recovery theme by January 1st. 

I am a bit skeptical of my finishing the game by then, especially with the holidays and work being busy around this time of year. However, I want to try and really challenge myself with creating a game without any scope creep and still fully featured as well. The real challenge is going to be figuring out what game to make that will be both limited in scope and fun to play.


Game Idea

The idea that I have come up with is a game titled Planet Recovery Force (work in progress but I kind of like it). This will be another 2D Vector art game that I will attempt to have playable with mouse and keyboard, mobile, and gamepad controls. The cross platform controls is what will truly be the most difficult part of the project for me.

In terms of concept, the game will focus on a planet (which you will name) that has just been wiped by some catastrophic event. What was a lush green forest planet, is now a dry and barren wasteland. It is the players job to go in the last remaining spaceship to try and heal the planet back to health. This will be the advent of the Planet Recovery Force which specializes in working to recover and heal the planet back to health!


Gameplay

Gameplay will consist of flying around in space to capture seeds and bring back to your planet to plan, grow, then heal. However, there are plant eating space bugs all over the solar system that are trying to feed on your plants. You will need to juggle bringing the plants back to your planet, warding of the space bugs, and ensuring your planet recovery bar is slowly refilling. 

The only way you will be able to ward off the space bugs as well is to actually shoot a seed you have at them. However, once you shoot the seed at the space bug, it is no longer viable for your planet. Therefore, you will need to be extra careful with inventory management to save the planet, but also ward off the bugs. It will be a juggling mechanic at its most basic.


Your Thoughts

What are your thoughts on this game idea for the game jam? Feel free to post below on anything you think I should take into consideration. Or feel free to be one of the first people in my discord server and we can chat more about this game, or other games that you are working on!

I’m excited another game is ready to be developed and can’t wait to show you all more!
(+1)

Excited to see more from you!

(1 edit) (+1)

Initial Player Controls

Overview

Wow... getting the initial player controls for this game was way more difficult than I was anticipating. I felt like I was banging my head against a wall for about two days just trying to get the placeholder spaceship to look at the mouse. I think I watched about five youtube videos on how to do this with the new Unity Input system, but alas there was no luck.

The only way I was able to get it to work was by looking at a game I had never completed about a year and a half ago on my old computer and lift the code to work for my specific player controller of this game. The below code is what I ultimately used to get the controller working.

void Update() { 
      Vector2 moveInput = playerInput.player.movement.ReadValue<Vector2>();
      rb.velocity = moveInput * speed;
      mouseScreenPosition = playerInput.player.mouseposition.ReadValue<Vector2>();
      mouseWorldPosition = main.ScreenToWorldPoint(mouseScreenPosition + Vector3.forward * (main.transform.position.z * -1));
      Vector2 targetDirection = mouseWorldPosition - transform.position;
      transform.up = targetDirection * -1f;
}

I hope this helps anybody else trying to figure this out on their own. I feel like this is a pretty straight forward task that most games implement, which made me feel more defeated than ever when it was taking me so long to figure out. Haha but in the end I was able to get it to work (see the above gif) and wow have I never been so ecstatic! I quite literally jumped for joy when the space ship started following my mouse!

If this taught me anything, it is that I should really learn to step away from my computer and take a break when I hit a wall. I can be so stubborn sometimes, and this leads me to keep trying and trying and trying. However, this fix was a simple case of me stopping early last night and then not coming back to my computer until after work today. Coming in with fresh eyes really helped me see what I was missing and fix the code appropriately. 

Next Steps

I would like to start adding the following features to this jam game next:

  • Parallax for the space background
  • Create more worlds in this "open" galaxy
  • Create more vector art for the game
  • Find some cool galaxy tunes
  • Create the actual shooting of the seeds mechanic
  • Created the AI enemy bugs
  • Implement the planet recovery mechanic

Now that I have gotten over this hurdle, I feel much more confident in continuing on with this game! I feel like there is always a hurdle like this when I am starting on a new game. Then once I get over it, it is just all I can think about regarding what more I can add to my game. I hope you all stay tuned to see more updates from me on this new game jam game!

(+1)

Seed Shot

Small Update

Tonight I was able to work a few minutes  on the game and implemented the seed shot game mechanic! In the game I will make the ammo only generate once you pick up a seed, but for now the main mechanic is working great. It is wild though how I was so stuck on the main movement mechanic for a few days, and now after being unblocked I am able to work on the game quicker and excited to see the game starting to come together.

Quick Question

How does the space background look? It is a placeholder that I just through in, but I think it actually looks okay without any parallax or anything. What are your thoughts?

Ammo and Seed Planting

Quick Update

Although it was a lot of fun to shoot a gazillion seeds from the space ship a minute, I thought it would be better to limit the ammo and customize the mechanic for this game. The update I applied to the seed shot involves limiting the ammo to only the seeds the player picks up. I plan to add an ammo counter in the UI eventually. I still have not decided how many seeds the player will be able to hold at once.

Additionally, as you can see (in the crude animation) that the player is able to shoot the seed at the planet and plant the seed. Planting the seed then triggers an animation that grows the tree in scale. However, I am planning to only grow the trees once they are watered enough. Weirdly enough, I think the watering will take place after you squash a bug with a seed. The bug guts will then water the seeds and help the trees grow. 

> I know that is super strange and weird regarding how the seeds grow. But I kind of love how weird and gross it is haha

On Deck

I was able to get the core mechanics of the seed shot and tree planing/growing in place, so now I want to work on the enemy mechanics. I plan to work on the bugs themselves, the AI, and the bug guts watering the tree mechanic. Honestly looking forward to working on the creepy crawl bug guts in the next update!

(+1)

I just discovered this, keep up the good work! :)

Thanks so much :) I hope you enjoy my updates and there is always more to come!

(+1)

Quite A Few Mechanic Updates

So What's Been Added?

The last two days have been extremely productive in terms of adding/modifying the core game mechanics. A few mechanics I added in this update are:

  • Added a bug spawner and "bug portal" (which is where the space bugs will go after stealing a seed).
  • Added a placeholder bug to be instantiated once a seed is planted and try to steal the seed
    • I built in logic to have the bugs be instantiated in waves to make the later game more exciting and difficult.
  • Ensure the bug will drop the seed if destroyed, otherwise the bug will take the seed through the portal to never be seen again!!
  • Added a laser shot to the space ship. This made gameplay way more exciting and added a health to the bug so they take three shots to be killed
    • I will still keep the seed shot mechanic, but will probably make it a one hit kill. It will be kind of a trade off. You lose a seed, but clear out a bunch of bugs.
  • Included the unfortunate feature that your laser shots can destroy your own trees!
    • I found myself shooting however I pleased when play testing, I found the strategy level went up once I realized I needed to be careful with my shots and need to move around more than just sitting in place and shooting.

So quite a bit was added! I found this time around that play testing has been super helpful in figuring out what does and does not work. I feel in some of my earlier games in this jam I had an idea and just ran with it. I never stopped to think "is this fun?". I am trying to think that with every step of the way in this game. Surprisingly I think I have already made some fun improvements by just taking a step back and thinking if the game is fun. If it isn't, then I try to think of a way to spice things up for the player (and myself!).

Up on Deck

I would like to finish up the core game mechanics so I can start adding more flavor to the game, and actually start putting more of the art together. What I will like to finish up next:

  • Add a "cool down" for the laser shot. This should help balance the mechanic some more.
  • Allow a seed to destroy a bug in one shot.
    • Need to figure out if it will flow through multiple bugs, or just destroy the one bug and bounce off? 
  • Add the planet health bar to show progress and completion.
  • Add some sort of health identifier for the trees.
  • Start working on the UI

What are your Thoughts?

How do you think the game is coming along so far? I would love your feedback as I put this game jam game together so I may make it a better end product. Let me know in a comment and I can try to incorporate feedback into the game as I go. Thanks again for reading along and I hope to share more updates soon!

(+1)

the mechanics are there so itd be better to start making visually apppealing.

(+1)

Starting to Come Together

Summary

New Space Ship

I've made quite a few updates over the last few days on the game. The first update I made was actually making my own spaceship asset in place of the placeholder from before. Additionally, I started building out the universe more. I found that it fits the gameplay more by making the planet much larger and expanding the area the player will need to protect and recover with seeds. 

Seeds and Ammo

Speaking of the seeds, I added a new input action that will be separate from the shoot mechanic to actually shoot the seeds. I also added a placeholder UI (on the right) that will show you the seed ammo you currently have. At the moment the player is able to hold four seeds. These seeds will then be able to be used to help recover the planet, and shoot at the bugs for a quick one hit destroy shot.

Space Bugs

You may have gotten a quick glance at the end of the gif, but I found some simple bug prefabs on the Unity Asset Store with some great simple animations. I downloaded and installed the assets and have put them in place of the basic bugs from before. I currently have five variations of the bugs, but I would like to do more with them. I also need to work on the "wave" logic so the bugs come out in waves instead of all at once.

What I Still Want to Add

  • A cool down for the laser shot
  • Better assets for the seeds and trees
  • Ability for trees to sprout seeds after some time
  • Recovery meter for the planet
  • UI elements and a menu screen
  • More features that come up as I develop
(+1)

A cooldown would be good, adds some balancing.

Cooldown

Quick Update

The last few days have been pretty busy with work so I haven't been able to do as much game dev as I would like. However, based off feedback and my assumptions of keeping the game balanced, I was able to add a quick cooldown for the laser shot. With this laser shot cool down, I am now have all the core mechanics in place and can start piecing the game together! 

This part of the game dev is probably my favorite part. I have all the mechanics in place, so now I get to just start putting pieces together bit-by-bit to start making a complete game. I also have been working on more assets for the game so I can finally replace the seeds, trees, and UI elements. 

Small Progress Note

I am pretty happy with the progress I have been making in this game jam as a whole. The laser shot cooldown was added without watching a single tutorial! In the middle of game four, I feel like I am really making progress in my game dev journey. I look forward to more progress that I will make, and also looking forward to finishing up this game by the end of the month!

Tree Growth Animation

Animation and More

I wasn't able to get too much done this weekend, but I was still proud of the progress that I made. In the gif about you can see the start of the animation I created for the seed growing into a tree. For some reason giphy decided to cut the animation short in here, but in the linked version you can see leaves start to sprout as more time goes by. In total, the animation takes around 30 seconds and triggers an event once it is finished to add a tree count to the game manager. This then will help progress the game.

Speaking of progressing the game, you can see I have changed the planet sprite. That is because there are now six different versions of the planet that the player will see as they progress. Essentially, as the player plants and grows more trees, the planet will start to look more and more like a vegetated planet and "earth" like. The final "earth" like planet will then showcase the "recovery" aspect of the game and prove that the planet recover force was a success! 

Bugs

With the tree growth mechanic done, I can start fixing some of the bugs... lol... in the bugs themselves. Currently, they are able to go and look for the seed once it is planted, but it seems pretty unnatural if the seed is picked up since they just sit and wait for another seed to spawn. I would like to create some form of script (maybe using the NavMesh Agent?) for the bugs to naturally fly around in space if there is no seed for them to pick up.

Additionally, it is pretty confusing to understand where the bugs are coming from when playing the game. Do you think adding a mini map with enemy locations would make it too easy? Or would it be better to just show arrows on the screen where the enemies are? I need to make the bug battles more balanced, but still trying to figure out what would be the best way to account for the advantage the bugs have.

When Will I Be Done?

I am still hoping to be done by the end of the month so I can submit the game for the jam. I have some time off from work in the next few weeks, so hopefully I can use that time to finish putting this game together.

Realistically, the version of the game for the jam will not be mobile friendly, but I would still like to make a version of the game for mobile after I submit it for the jam. This way the game could reach a larger audience. It is pretty wild how many more play sessions I received for Tip Tap Cat since I put it on the Apple App Store in addition to launching the game on itch itself. 

Bug AI Update

Buuuuuuugs

After work I have been able to dive into the bug AI some more and feel like the improvements are really adding to the combat fun of the game! Unfortunately, I could not figure out how to get the NavMesh Agent to work with 2D games in Unity, and there really didn't seem to be a "wander" method that I could invoke. Therefore, to adjust for this I now have the bugs follow the player if there are no seeds in the scene. Otherwise, they will look through the scene for a seed and go to pick the seed. 

After playing around with this for a bit I started to have some more fun avoiding and shooting the bugs as they came towards me. It felt more "bullet hell" like and I was really enjoying it. I also turned up the spawn time and had a crazy moment with over 200 bugs on screen and it was pretty wild. I definitely need to figure out a good balance for how many bugs should be in scene and how often the should spawn.

Player Health

Since I couldn't figure out the wander mechanic for the bugs, and leaned right into bullet-hell, I felt it would only be appropriate and balancing to create a health system for the player so they have to keep moving. Currently the player has health (I will most likely add the health bar at the top of the screen) and each time a bug hits the ship the player will lose an integer of health. I also want to add an effect where the bug with bounce back maybe if it hits the ship to give some recovery time.

Let's Finish The Fight

I am looking forward to the next few days since I have off work and I can focus more on this game development before the end of the month. I feel like I have made "meh" progress the last few updates, but I am really looking forward to putting a lot of the final mechanics together and complete v0.1.0 of the game for the jam. Like I said before, I would like to iterate after the end of the month for a mobile deployment, but we will get there when the time comes. 

I look forward to sharing more in the next week and hope to have the game on my itch page before the end of the month!

Planet Healing

Animated GIF

How Progression Works

Today was an extremely productive day and I was able to iron out a lot of the core mechanics I had worked on in the previous weeks! Additionally, I finally got around to create the main progression system of the game. I built out the framework that will allow the planet to heal as more trees are fully planted. You can see in the gif above what one of the healing animations will look like.

There are roughly 8 planet variations that the player will experience as they are recovering the planet. Each recovery state will require more trees in order to activate. Further, I added a planet health bar in the bottom of screen (I will update the UI to be easier to interpret) so the player will have an idea of how far they have progressed, and how much longer they have until victory!

Player Health

You will also see that there is a new green health bar on the left hand side of the screen. That is the player health. I have updated the bug swarm to do damage each time they come into contact with the player. I also added a fun force field effect to repel the bugs after they have done damage. Before I added this the bugs would swarm you way to easily and it was easy to become overwhelmed. This way you get a chance to breath and plan your next move.

I thought long and hard about how the player would be able to heal. Ultimately I decided that the planet atmosphere will be where the player heals. Currently if the player is within the planets atmosphere, they will gain a single health point every 10 seconds. I found that this was the most balanced way to achieve these mechanic.

Oh yeah, I also added an orbit effect to really sell the world. It is wild how something as small as making the planet rotate helps elevate the game to a whole new level!

Last Tasks to Finish

  • Spawning seeds on the trees every so often.
    • This will make sure there is a good supply of seeds over time
  • Working out how frequent the bugs will spawn
  • Adding final sprites
  • Adding more plots for seeds on the planet
  • A game over and menu screen
  • A short cinematic in the beginning to set the mood and act as a tutorial for the player

Is there anything else you think would be good to add before finishing up this project? Let me know what you think would be good to add, or just let me know how you think I am doing on this jam!

Scene Hierarchy Improvement

What is this Screenshot?

I had noticed my scene hierarchy always tends to get incredibly cluttered by the time I am close to finishing the first build of a game. Therefore, I did some research on how other indie devs structure their hierarchies and found there are a bunch of Assets on the Unity Asset store that can help organize your hierarchy and make understanding your hierarchy incredible easy and pretty seamless.

I found a free Asset on the Unity Asset store called Colourful Hierarchy Category GameObject. Essentially it works by adding in an empty game object and applying a color and name. This then helps you break your hierarchy into logical sections. It has seriously improved my development in the latter half of this game. I highly recommend you try this asset out and see how much it improves your development experience.

Is the Game Almost Done?

YES! WAHOO! I am extremely close to finishing the first build of the game for the jam. It will not be the extremely polished version, but it will be fun and structured enough to submit for the jam. I can then work on it with less time restrictions after to port to mobile and add some more features if I end up wanting to work on it some more. 

Otherwise, this game has been a fun experience and I have loved doing a game jam again. The pressure and creativity is really something I love to take part in. However, I do sense that I am wanting to spend some time on a bigger project. However, that will be a task for after the 6 Games in 12 Months game jam.

The Final Push

Planet Recovery Force Logo
The icon for the Planet Recovery Force game

Summary

With December 31st close approaching, I have been working hard to finish the first version of the Planet Recovery Force game for the Game Devcember game jam. I have been able to close out a lot of the loose threads that I have mentioned in previous posts, but due to the time restraints, I have also had to cut a lot from the game. Notably, a part of the game that is currently lacking quite significantly is the main menu and the story elements.

I had originally intended for the game to have a dialog system (similar to Star Fox) where an NPC would give you updates and tell the player what is going on and how to play the game and inform the player on the story. However, I do not have enough time to implement that into this version of the game. However, I have added a “mission log” feature that displays critical information to the player when it is needed. This works for the first version of the game, but if I end up coming back to this game then I would love to add more to this mechanic. 

In the end, I plan to release the game on my itch page before the weekend. I do have a lot of fun playing the game when I am play testing it; however, I can’t help but feel there is more I can add and improve with this game. Nevertheless, the beauty of a game jam game is that you have to fully complete the game and that is something I do truly enjoy about this process. I hope you all enjoy the short jam game when I release it this week, and would love all your feedback. As critical feedback is what ultimately makes me (and all of us) better game developers.

Stay tuned for when the game goes live!!

Play Testing and Mission Log

Summary

With nearly completing the game, I decided to spend some much needed time play testing. One thing that was immediately evident was the lack of understanding of what the player is actually supposed to do. Therefore, I quickly put together a "Mission Log" that will appear at the top part of the screen for the player to refer to at key moments in the game. I also added a sound effect to notify the player that something happened. This has really helped highlight what the player needs to do and how they may recover the planet.

What are your thoughts on the mission log being at the top? I worry it may be a bit too noisy of a UI, but can't think of a better location for these mission logs to appear. 

 Another note on the mission log is the fact that I wanted to implement a true dialog system for the player to interact with. However, I was a bit scrappy with being strapped for time and used the below logic to implement the mission log feature. Essentially, I have a GameObject array with the various mission logs. I then have a few functions in the game manager that will be triggered at key moments. These functions then deactivate all the logs, but then activate the one I want. I just had to make sure I know where the logs are located within the array. The Coroutine is simply an IEnumerator to deactivate after the specified seconds.public void HealthHelper() {

  foreach (var helper in helperLogs) {
helper.SetActive(false);
}
logSound.Play();
helperLogs[0].SetActive(true);
helperLogs[3].SetActive(true); StartCoroutine(DeactivateMissionLog(7));
}

Sure it is quite scrappy, but hey it gets the job done!

Sound Effects

I found a sound effect pack on the Unity Asset Store that was discounted like crazy and I have had a blast adding sound effects to a variety of features in the game. I hope you enjoy the sound effects when you play the game after release. I truly think adding sound really elevates a game!

Planet Recovery Force Completed!

Nick dancing in space. (gif) | Funny pictures, Funny gif, Giphy

Achievement Unlocked

I was cutting it pretty close, but I finished and submitted the game for the GameDevcemeber game jam with 8 hours to spare. This is a pretty great way to finish out 2021 and looking forward to starting 2022 with more game development! With the completion of Planet Recovery Force I now only have two games remaining in my 6 Games in 12 Months challenge. I look forward to working on those games in 2022, and then trying to work on a larger project at the end of this challenge. 

Final Touches I Added

I spent the majority of today applying some final touches to Planet Recovery Force. A few of the additions/overhauls that I made are:

  • Play tested more than I ever have to ensure the difficulty was just challenging and fun.
  • Added a bunch of sound effects to really make the game feel more alive
  • Changed the game music to be more up beat and exciting to experience
  • Squashed a large number of bugs
  • Scattered the seed portal and bug portals around the planet instead of having them be on two separate sides. This evened out the game play a lot

Anything More?

I had mentioned earlier that I may want to add more to this game. After completing it, I don't really see myself spending more time on this game. This was a fun jam game, but I feel I have made better games. I would like to close this chapter of my game development journey and look forward to my next game. 

Play the Game!

I hope you take the time to play the game I created! I would love your feedback and thoughts on how I did in this jam creation. I look forward to my next challenge. Feel free to drop any comments below on a type of game you think I should try and tackle next!

Game Jam Results

Overall Rating

Yup, the bronze medal is correct! The Planet Recovery Force submission for the GameDevcember 2021 Game Jam came in 3rd overall place! Honestly this is better than I was even expecting for this game. There were not many submission in the game jam (around 30), but I am incredibly proud of the work I put into this game, and overwhelmed with excitement in grabbing 3rd overall place. I want to sincerely thank everyone who played my game and who submitted a review of the game before the deadline. 

This is the first time I have made the "podium" so to speak in a game jam, and I hope it isn't my last time! This was such a fun experience, and honestly the community of game developers in this jam were very helpful and fun to collaborate with. Although I did receive the bronze medal place for this game, there was a lot of incredible constructive feedback I received for the game. While I most likely wont be going back and updating the game, there were a few key things people pointed out that I wanted to highlight.

Feedback

Overall it seemed everyone enjoyed the gameplay loop of flying around the planet, shooting seeds, and blowing up the space beetles. I was extremely happy that people felt the sound effects really helped make the game feel alive. This is exactly what I was going for, and will be sure to continue to focus on adding relevant sound effects in my future games. This was also my first kinetic and action oriented game and it was great to see that people had fun playing this game. This sounds so obvious, but I didn't realize how important and hard it is to make your game fun. It can be so easy to be lost in getting the game to work as you imagine it in your head, but it is even more important to stop and play test your game to ensure it is actually fun. In this games case, I made sure to play my game as often as I could, and even had my fiance play the game to receive constant feedback. However, there were some areas of feedback I want to improve on in future titles as well.

Some constructive criticisms I received was that there were some aspects of the game that weren't very clear. Specifically, people were unsure what the portals were. They then spent time flying around trying to go in them, but nothing happened. I could have made this a bit more clear by having a more traditional tutorial section explaining what was happening. Additionally, people felt the bugs overwhelmed the player to quickly and should have been a one hit kill. After playing the game some more I 100% agree. The final plant state of the game is a bit chaotic (not in a good way). They also mentioned that the trees shouldn't have absorbed the bullets. Again, this is something I agree with. It makes the game harder than it should be and there is no feedback to the player that the trees will block shots. Finally, I would have liked to make it more clear when a tree is rooted and won't move. When all the trees are growing it can be confusing which trees you don't need to care about protecting.

With this feedback, I feel really great about what I will want to remember when creating my next game. Most importantly, some sort of tutorial experience for the player to learn how to play the game will be most important. I have struggled with this in the past, and it seems that is one of the main areas I need to spend more time on to ensure players are able to fully enjoy the games I create. 

Closing out Game #4

Thanks again to everyone in the GameDevcember jam who played, reviewed, and provided feedback for my Planet Recovery Force game jam submission. It was a blast developing this game, and even greater treat that it made 3rd place overall. To anyone reading these devlog posts, thank you! I hope you enjoy them, and I look forward to closing out the last two and providing updates to you on those as I progress. I wish everyone a happy 2022 and look forward to a year of more game development. Thank you!

(+1)

Wow a game a month, that's intense! Congrats on finishing another one. Managed to beat planet recovery force on my first try, although things got pretty hectic there at the end! I pretty much agree with the feedback you already got that you listed.

Terrier Tennis was really cute, especially liked the dogs in the crowd. A majestic shepherd losing to an inferior terrier though? Shocking!

What's Next?

Batman Sticker - Batman - Discover & Share GIFs

Looking Back

With games #1 - #4 completed, I took some time to think about the different types of games I have made and what I have learned along the way. I have been able to make 2 3D games and 2 2D games with new features added to each consecutive game. I feel like I have gotten a lot of good practice in making a suite of different types of games. So what is there that I still want to try? 

My Next Challenge

The one thing that was blatantly obvious to me when looking at my previous games is that they were all developed in maybe a month or so. I have been able to work quick and fast and release a rough version of a game. While that has been great for me to understand the entire process of developing a game, I haven't been able to make anything quite substantial. 

Therefore, my next challenge is going to revolve around working on a game for a bit longer than my usual month long sprint. I started this challenge back in July.. That means I still have roughly 6 month left to develop 2 more games. I would really like to approach this final half of the challenge working on a game for the entire remaining duration. I really want to make a full scale game in the future, and I believe this type of challenge will be a great way for me to get experience with working on a game and iterating on it for almost half a year! I am really excited for this challenge.

But You Still Have 2 Games Left?

You bet I do! I will plan to have the second of the #5 and #6 games be a game jam game (similar to the previous ones) that will be developed in the midst of the long developed game. The Brackey's winter game jam is in February and that may be a perfect jam to take part in and take a break from the long game while also knocking out another game in this challenge.

So What is This Longer Developed Game?

This is still being "noodled" on by myself. I know I want this game to have more character and substance. Therefore, this will likely be a 3D story first action/adventure game. Ideally, I would love for this game to be episodic as well. It would be great if I can get a working version of my game in three months time and release the first chapter of the game. Then continue to support and release more chapters as this challenge runs out. 

This will hopefully help drive more players to my game and keep interest alive. This will truly be a challenge and one that will help me with my next large project in the future. Stay tuned for more details on these next two games. I am super excited about them and I hope you are as well!

(2 edits)

Game #? Development Has Begun

Game Idea

Following my previous post, I have begun my development on the fifth game in my 12 month challenge! I spent the last two days "noodling" on the idea of what this game will be. While I am still thinking through a lot of what the game will be, I have a general idea. My general idea for this game is that it will be an story based action adventure game that plays like a rogue-like. However, I do not want the game to be a rogue-like. The best comparison of a game I am thinking about is the game Bastion by SuperGiant Games.

I am imaging the game will play out in levels where you progress through the map and fight off enemies. As you progress through the levels you also will uncover more of the story. I want to hold off on sharing components of the story for the time being, as I would like to share once I have a more concrete narrative. In the meantime,  I will share some game dev progress!

What's Been Implemented?

As you can see from the gif above, I have been able to implement a quick and easy dialogue system into the game. I actually lifted a majority of the code I used for my previous game Stronger To Gather for the dialogue system. I then overhauled it a bit to make it a bit more scalable and work for what my vision of this game is. Additionally, I added basic movement controls and a ball with a hover particle effect below. This is the rough outline of what I am thinking for a character, but more is to come of course!

Things to Learn

This time around I am really looking forward to learning some new skills with this game. For one, I am really excited to start doing some more 3D modeling to build out the assets of this game. In the previous games, I have primarily focused on 2D art or just purchased assets from the Unity Asset store. However, in this game I want to go for a low poly feel and really spend some time improving my Blender skills by making some of my own assets. Yesterday I spent some time with a friend just working in Blender and modeling assets and it was some of the most fun I have had in a long time. Looking forward to doing that more!

Additionally, I have not really made a 3D action centric game. I am really excited to try my best to make some tight and response action gameplay in this game. There is more that I am looking forward to working on, and I will continue to share all my updates, thoughts, and progress in these devlogs. Thanks as always!

Dynamic Camera

The New Camera System

In this update I was able to implement a few key features that I feel will be integral to this game down the road. Since this game is going to have an equal emphasis on gameplay and story, I wanted to make sure the two beats in the game had a very different feel. I didn't want the gameplay to have a dynamic isometric camera and then the story had the same feel. There would be no time for the player to get up and close with the character or have a moment to breathe.

Therefore, I really leveraged the Cinemachine State camera and created a blend state between two cameras that I set up. One camera for the gameplay and one for the story beats. Already, I can feel that this dynamic camera blend really creates an intimate scene with the character and allows you to be in their shoes for when unveiling more about the story. I also feel it makes the game seem really polished. It is wild how such a small feature can go a long way.

The Sandbox

Another task I worked on in the last few days was just putting together a sandbox environment to test out the various features I am planning to add into the game. The sandbox was created with Pro Builder and I have a series of rigidbodies, dialogue tests, and more. This will really help once I start implementing combat to the game and test out the various combat actions.

The Movement

You can't see it in the gif above, but I actually completely overhauled the movement system of my character since the first post. Initially, I had the character moving by modifying the velocity of the player. This worked great and was super sharp; however, I found it to be quite limiting when it came to interacting with the character rigidbody. For example, I wanted to player to have a dash ability. Sadly, I was not able to both manipulate the velocity AND apply an AddForce to the rigidbody. Looking down the road, I see myself wanting to affect the rigidbody for more features. Therefore, I decided to change the movement system to be build on rigidbody AddForce -> Impulse and it has been working great so far!

The Character

As you can tell I am starting to slowly piece the main character together. One feature that I literally spent an entire afternoon on (that you probably can't see in the gif) is adding a "jiggle" effect to the character when it moves. This was extremely involved and was done by altering the vertices of the mesh via a script. I actually really like how the jiggle works and may try and improve on the script down the road to sell the effect even more!


Adjusted Movement and Attacking

Movement Updates

I spent a lot of time the last few days working on making the movement feel more responsive, and also fit with the gameplay I am wanting for the game. Instead of being a choppy movement that can be hard to aim, I created a mix of Rigidbody AddForce for movement and directional mouse click for rotation. Now the player can zip around the environment and wherever they click on the screen the player will look for a moment. This momentary pause is where the combat action will take place. This momentary pause is also crucial for balancing the gameplay. In the small testing I have done so far, without the movement being paused for a quick second the player would be way to over powered. This pause will help ensure there is balance in the combat gameplay loop.

Attacking

As you can see in the gif, I was able to add a quick placeholder block to show where the attack animation will be and also applied a script that will lower health and apply a pushback on death. I obviously added way too much force in the gif, but it was a lot of fun to manipulate. The attack is also targeted in the direction the player clicks on the screen. This is a super small update to add a basic attack ability, but this made sandbox fun to play around in. I would be lying if I said I didn't spend 15 minutes just punching all of the objects in the scene.

Projectiles

Quick Update

As you can see from the gif above, I decided to add a projectile action for the player. How this action works is the player will press and hold the right mouse button to aim and then the release is what actually fires off the projectile in the direction you are aiming. Additionally, the player movement pauses momentarily when you aim to help balance the combat and aid the player in lining up the shot. Further, I added a quick particle system that produces arrows to show the player where they are aiming.

I am actually quite proud of myself for implementing this feature in only an hour or so, and also without any tutorials! I think I am actually getting the hang of the Unity input system pretty well and understood how to handle the press and hold, then release actions pretty seamlessly. For the actual code to fire off the projectile I was actually able to just lift the code I had in Planet Recovery Force for the laser shot and add it into this placeholder projectile prefab. All I had to do was change Vector2.down to Vector3.forward and I was good to go!

This is just a quick update, and excited to keep adding more to this game!

Some Updates

Summary

If you can't tell from the gif above, I started to get sick of looking at probuilder basic shapes whenever I would go into game dev mode. Therefore, I spent some time the last few days looks for some affordable asset packs to start populating my scenes with. I am imaging the intro level of the game will take place in an interior apartment complex, so I felt these assets fit the best! It still doesn't look great, but it is an iterative process.

I also spent some time trying to get the first version of the character model going in Blender. It is definitely not the final iteration, but it is great adding my own assets to my game. Finally, I thought it would be practical to spend time today focusing on the health mechanic. I did a basic 4 hit health system and added a placeholder cube to do damage anytime I touch it to test. Overall the health system works as intended and I was able to lift a lot of the work I did on Planet Recovery Force for the seed shot mechanic for this.

What Hasn't Gone Well

It has been a few days since my last post. Sadly the majority of those days were spent working on a feature that I actually just scrapped entirely. I was focusing way too much on a feature that actually would have had no impact on the gameplay and would have been a visual nice-to-have. Realistically I should not have spent that much time on that feature and should have waited until the game was further into development to try and build it out more. Therefore, I scrapped the idea and went back to trying to implement a few things into the game that NEED to be in the game (like health and a scene manager) rather than some visual features. 

While it may be that I did not implement the feature, I do still find the time I spent somewhat valuable. The feature dealt with the Unity Shader Graph and I had never worked with that before. I got to then spend about three days in Shader Graph trying to get an effect. While I never actually got it, I have a bit of exposure to that tool now and will for sure leverage that down the road. At least once more of the core game is developed of course!

More Mechanics and Some Fun

Mechanics Added

I spent more time than I would have liked the last few days adding more base mechanics for combat in the game, but essentially the base mechanics I have been able to implement for the game include:

  • Long ranged ammo capacity
  • UI feedback when projectile is fired
  • Projectile ammo pickup
  • Animation for feedback when projectile ammo is picked up
  • Improvements on health system and also added healing to the system

After these updated, I am going to want to work out the player attacks some more. I want to have a light/quick attack and also a slow/heavy attack that the player will be able to utilize in combat. With this, I will try and create some unique animations for feedback during these attacks to really sell the combat system.

Some Fun

I refined the player intractable script with the world and added physics components to the scene. Now I am able to go wild and see the destruction unfold in front of me. This makes testing the game more fun. Now if I am stuck on an aspect of the game and need to let off some steam I can destroy the entire environment!

Game Dev Update

Im Busy Social Media GIF by CBC

It's been almost two weeks since my last post. With this silence you may assume that I have given up on this initiative. However, I can assure you that is not the case! The past two weeks at work have been busier than usual and I wasn't able to develop as much as I would like. Although I haven't been able to allocate enough time to game dev, I have been trying to work on my 3D modeling and other art skills. You can see some of my recent nightmare fuel experiments on my twitter @cedar_cat

With this two week hiatus, I am now excited to get back into full game development! However, I am not going to jump right back into my larger project that is Game #5. Instead, I am going to jump to Game #6 which will be a game jam game for the 7th Brackeys Game Jam! I am really looking forward to kicking this project off tomorrow and will be sure to post regular updates here. Stay tuned!

(1 edit)

Game #5: Brackeys Game Jam

Overview

Taking a break from the longer project that is Game #5, I decided to jump back into the game jam world and have some fun with the Brackeys Game Jam. The jam theme is "It Is Not Real". I tried to think all morning about what I wanted to base my game on, when all of a sudden my fiance was telling me about this New York Times story she was reading about people backing a conspiracy theory about how birds aren't real. This of course fit the topic of the theme wonderfully!

I then brainstormed this idea quite a bit and came up with the following idea. You play as a bird who overhears some people talking about how they believe birds aren't real. This obviously upsets you, so you decide to make it known to the imbecile humans that birds are in fact real. So what do you do... you poop on them of course! 

Gameplay Idea

Playing off the idea of pooping on the humans, the gameplay loop will be to fly around the environment and poop on the humans to ensure they know that birds are real. Sometimes you may not have enough poop though. Therefore, you will need to ensure you eat some worms to refill your bowels for the ammo needed to poop. I also will try and make a background story to unfold as you fly around and poop on the humans. I haven't figured out this idea fully yet, but I feel like there is a lot of potential to tell a quirky fun story while you accomplish your goal of showing humans how real you are with your poop.

Progress

So far I have been able to buy a quick asset pack to put a scene together and also added the basic player movement and flight controls. Further, I added a "glide" mechanic so you can glide and stay in the air a bit easier. Next, I will work to make the stamina and poop meters. After those, I will start to try and put a non placeholder in for the bird and also add some humans to the scene. Looking forward to building this out futher!

Game #5 Completed!

Overview

The 5th game in my challenge and the Brackey's 2022.1 game jam submission Birds are Real is done! 

First off, I am sorry for not providing any updates on the Brackey's game jam submission over the course of the week. However, as it was a pretty quick game jam I didn't really have the time I wish I had to document my progress. That being said, I did try and provide updates on my twitter account. I highly recommend you take some time to look at my past tweets to see the progress I made over time on this submission!

This was actually a really fun game to work on and I feel like I have really improved since the last Brackey's game jam I did. I was able to complete this game with just a few hours to spare, but I feel really confident in the end product. I spent a lot of time working on aspects of game development I lacked in the past and feel I really grew along the way. For example, I spent a lot of time making sure I got the core mechanics built out before I started developing the game out further and I put a lot of care into creating a smart and effective tutorial to educate the player on the game. I also added a lot of sound effects and was able to effectively inject my humor into the game.

I do wish I was able to spend more time modeling for this game; however, I am not good at 3D modeling in the slightest. Therefore, I decided to opt for a Unity Asset Store pack for my 3D assets. It really helped me complete the game in time, but I wish I was able to work on this skill some more. I would like to see me work on this more in the future and try to become a better 3D modeler to support my game development journey.

All in all, I had a blast working on this game and I am really proud of the end product!

What's Next?

In deciding to take a break from the longer running game to finish this jam submission, I actually found myself wanting to scrap my original idea for the long running game. I think I was trying to stretch myself too thin and make something that I am not ready to at the moment. I still want to make an episodic game, but I think I need to rethink the scope and scale of this project. That being said, I am going to take this long running game back to the drawing board and see what I can come up with to scratch my itch to develop a longer and bigger game, while also being within my own capabilities.