itch.io is community of indie game creators and players

Devlogs

Journal Entry #3

Project C
A downloadable game for Windows

This project was deadly silent for some time but now it's back. The biggest change since the last journal entry? The game is done! Yay! I know I probably should have updated you on its improvemets more regularly but to compensate it I will cover my entrire development jorney in this entry. So let's get into it. (If you don't like reading then just skip to the bottom of this page, download the game and have a great time.)

Searching for assets

I didn't know that looking for the assets will be so hard. As much as big internet is there are only few sites where you can find some free game assets. And of course you will not find exactly what you are looking for. For example majority of added assets come from this site . But since there is no food assets on this site I have to look somewhere else. But elsewhere (like itch.io) are mainly pixel art assets. At the end I found everything I wanted without interchanging the art style of the assets much but if I was to create some really good looking game that would correspond with my ideas I would have to create the assets myself (but I lack experience in this field) or find some skilled artist. Overall I think I did the best I could and the game looks pretty nice.

Basic implementation of the levels

Since I already build a few levels in my other projects this was not that much complicated. But I definitely encountered a few problems. The biggest one was the creation of new game object. After a few levels already done I noticed that the initial value for Z direction is not set to 0 but rather some random negative number. I fixed some of the objects (where it didn't break the whole thing) but unfortunately some were left behind in this weird Z value land. Also I didn't know that duplicating the entire scene doesn't add it to the project build and so it can't be selected in thecomponents pop up menus. Unfortunately I discovered it after I rebuild one of the scenes that was just a copy of other scene with different building and NPC. Overall building of the levels wasn't that hard. I just had to adjust the layers so the background, architecture, NPCs and player don't overlap each other. After fixing this I had a nice looking levels. Then I added level transitions. That seemed to be easy until I get stuck on an error because the scenes had already one transition point form the start. And when I changed the player object that should be transported these default transition points caused an error. But after solving this issue I had a nice looking world.

Inventory implementation

Inventory

The inventory itself consists of two parts UI and script. For the UI I borrowed options scene that was already part of the kit. I just slightly moddified it. Scale it a bit and added text boxes that represent individual resources. It was not that hard. Then I just wrote the script that represents players inventory. It's just a simple Dictionary that is holding all the various items. And after that I wrote another script that updates the inventory UI at the start so it displays the actual values.

Items

To make items pickable I wrote a simple script that checks if player is near the item and that the item is spawned. If so player can pick it up. After that a random time interval between 5 - 30 seconds is generated and when it expires the item is respawned. Simple yet efective.

Time implementation

Implementing time was pretty easy. I attached a script to player (because that's the object that is moving between the individual screens) that just counts the elapsed time. Then this number is converted into a 24-hour ingame format in which 1 hour takes 120 seconds = 2 minutes.

Environment

Background

The asset paskage that I found contained only day time backgrounds. So I had to create the rainy day and night time ones. Fortunately the asset pack contained not only the final .png images but also vector files in which you could edit the backgrounds. So I just opened them in Inkscape (with which I have a little bit of experience) and edited those backgrounds. I make them a bit more greyish for the rainy day and dark blue for the night. In the end I was really satisfied with the result.

Sky objects

The sun, moon and clouds were part of the assets I downloaded so luckily I wasn't required to make them. I just added them to the scene and wrote a script that switches them as needed (sun = day, moon = night, clouds = rain) and changes their position so they actually follow the player as he moves through the level.

Rain

At the start I was not sure how I will implement it. So I looked it up on the internet and found this super nice video tutorial. Not only it's very well executed, but it's also pretty short. I was really amazed that you can create such a good looking rain in just a few minutes. Now I just wonder what other cool default objects are in the Unity.

Minigames

Fishing

I started with implementation of this minigame. At the start I was a bit worried how I will do that but it went out quite smoothly. Just a simple box colider that informs a player when he can fish and navigates him through the whole process. The only snag that I run into was that the kit detects the key press by its own script which may be beneficial for the demo game but was not good for me since it caries over the button press detection into upcoming Updates. This was not good for the minigame since it is controled by just a single button. So I had to use the Unity's default Input class. 

Gold Panning

The basics for this game were just duplicated from the fishing minigame. What was new here was the implementation of the swirl with the pan. My idea was that the player will alter presses between two different keys in order to simulate the motion.  At first I thougt that I would use keys Q and E. But since at the end of the game you can replay it by pressing E it just didn't work because you could accidentally start a new game. So I moved a little bit up on the keyboard and used keys 1 and 3 instead. After this problem it was nessecery to set the right reward value at the end of the minigame (which takes 10 seconds). I realized that the best solution for this will be just simply counting the key presses.  After a few tests I realized that at pretty "normal" speed you are able to press keys approximately 25 times so I set it as a upper limit after which player is penalized for pressing too fast. After another batch of tests I concluded that it's pretty balanced and I keeped it that way.

Dialogues

When I was planning this I thought it will be done in like 3 to 5 hours. Oh boy! How much I was wrong. It took me whooping 12 hours and at the end I was really out of energy. At first I redefined dialogue interface that was part of the kit so it would fit my needs. Then I created a base dialogue script in which I defined support methods that will be later used to construct individual dialogue scripts. Then I wrote the concrete dialogue scripts. This was the part that took much more time than I initially thougt. Also it turned out that it isn't an easy task to just wrote a dialogue with multiple answers at each stage. When I was done with it I was really happy. Mostly because it was finally over but when I look at it now I think I wrote pretty nice dialogues that gives each NPC unique personality.

Playtesting

This was the part where I was just tweaking the game values and polishing some dialogues. I optimized the raining effect so it isn't that frequent. In dialogues it was mostly some text inconsistencies and stylistically bad written answers. But after this polishing I had the feeling that the game is quite nice and I enjoyed playing it.

And so this project is done. It was really interesting experience and I'm proud of the final product. So just download it and see for yourself if it's any good.

Files

  • Project C.zip 84 MB
    Sep 21, 2021
Download Project C
Leave a comment