Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

arti32lehtonen's DevLog

A topic by Arti Popov created Oct 02, 2022 Views: 546 Replies: 20
Viewing posts 1 to 20
Submitted (1 edit)

Hi everyone!

My name is Artem. I have been working as a data scientist and a python developer for a long time. Two years ago I understood that I didn’t like my job as much as I used to. After that, I decided to try something new. Several weeks ago I started to learn Unity. I had zero experience with game engines, but my experience in programming helped me a lot.

One of my biggest problems was the desire to create only ambitious and cool projects. I had been trying to start such a project for weeks, but every time I felt frustrated and quit. Finally, I decided to create something small but meaningful for me. I was determined to stick to the concept of a small game without turning it into a monumental task. 

I want to create a minimalistic 2D city-builder. My inspiration is the games Tiny Islands and Islanders. The distinctive feature is that the placement of a new building could destroy other surrounding buildings. I have thought about the appropriate setting a lot and I have concluded that the wild animal theme could work.

My starter pack is:

  • A player can place animals on a game field
  • Species eat each other according to food chains and their area of influence
  • The more a specimen eats, the more points the player gets

I have already started working on this project. For the next few days, I will be sharing here all that I did before and then I will post actual news.

This game jam is something I am very excited about. I hope to finish my project and get feedback from you, and also believe that everyday posting helps to improve my English a little :D

Submitted (3 edits)

1: Grid system

I started with the implementation of a Grid class for my game field. The functionality of the standard unity grid class wasn’t enough for me, so I decided to implement my own. I watched several tutorials on YouTube and understood that it is a doable task.

What do I want from my Grid class?

  • Size in terms of cells should be dynamically set in the inspector
  • Unity world coordinates should be easily transformed into grid cell coordinates
  • Grid cell coordinates should be easily transformed into Unity world coordinates

After I had finished the Grid, I implemented a building button. When you push the button, the circle appears near your pointer, and you are able to put the object on the grid. The color of the circle depends on its position. The color will be red if you can’t build the circle and blue otherwise.

Awesome!

Submitted(+1)

Thank you :)

Submitted

2: Influence areas

Each animal in my game should have an area of influence. When a player places an animal on the game field, it consumes all available food sources in its influence area.  

I like to have flexibility in all systems which I develop and that’s why I wanted to be able to change the influence area right in the Unity inspector. To implement it, I use a plugin from GitHub, which allows editing 2D arrays in the inspector.

Then I added visualization. During that, I resolved a lot of bugs. For example, the influence area shouldn't cross the boundaries of the game field, which was the case before the refactoring. 


Submitted (1 edit) (+1)

3: Food chains

I took time off coding and thought about food chains. I want my game to be simple, that's why the total number of different species should be around 5-7. After some thinking, I drew this chain in the picture below. Arrow from one specimen to another represents the possible food source. If specimens aren’t connected, they will not affect each other directly.


The main question is how the predators can disappear as no one eats them. I did research and found out that hyenas and lions could kill each other in a fight. So, my solution is that predators affect each other. Also, this decision specialized my animal setting to savannah animals.


Submitted

4: First specimens & Score

I have implemented the food chain functionality and the score system. Each animal has a list of feeding options defined by three parameters:

  • type of a target specimen, which this option affects
  • damage to the target specimen
  • amount of score points, which the player will get after this option is activated

I have created two types of specimens to test the new systems. I am not sure if this graphic style is final as it doesn't align with the vibe I want from this game.

Submitted

5: Full pack of funny animals

I finally was able to play my game. I configured a whole pack of animals. Now I have grass, a bug, an African rat, an Antelope, a hyena, and a lion. I drew temporary sprites for all animals, as I wanted to have an approximate view of the final game. 

I also played with the size of the game field. The 10x10 size is too spacious and makes the game session duration too long. I choose a 6x6 size and it feels like just the right vibe.


Submitted

6: Button Panel Design

I have tried several designs for the button panel. My favourite one is a button panel which is enframed by a circle. The circle position shows the number of score points that the player has already got. I also have replaced the text on buttons with animal icons. I haven’t implemented scoreboard animation yet and will do it a little later. 

Submitted

7: Balance

I started to work on game balance. My goal is to make each of the species valuable. In the early stages of the development, I noticed that a player could ignore bugs and rats and invest only in antelopes, hyenas, and lions.

I have counted the number of points earned by the player for each type of animal. Based on this information, I have changed several things.

  • I have increased the number of points earned by rats and hyenas. A rat can earn 2 points for eating a single bug and a hyena can earn 3 points for eating a rat. This makes rats the most useful animal in terms of scoring points. 
  • To balance rats, I have also increased the influence area for the hyena and the lion. I have used the chess concept. The area of the lion is similar to the area of the rook, and the hyena's area is similar to the bishop's.

You can see the average points for each animal type after the rebalancing in the attached picture.


Submitted

8: Progress Design

I don’t have much to share today as I have spent time refactoring code and designing the progress system :)

I have added counters to the building buttons, which show how many entities the player can build. When the player achieves the predefined score, the counters increase and a new requirement for the score value is set.

Submitted

9: Balance again

After I finished the development of the iterative game progression options, I started to work on a balance again. I designed all building options, which are opened to the player step-by-step. I configured how many entities are available for the player to build on each step. I also added random generation of the next building option. This feature will be used if the player overcomes all set challenges.

I also added random initialization of the map. Now, the map is randomly filled with grass at the start of the game.

Submitted

10: New style

Finally, I have changed the graphic design of the animals. I have bought pictures of the animals on Shutterstock, as I hadn't found any fitting the casual style in free access. I have recolored them and changed some details to make the art more distinguishable. The result you can see in the attached picture.


Submitted

11: Major graphical changes

I haven't been posting anything for three days, that's why this update is quite huge.

  1. I have added a background to the game screen. I have used assets from <wtf>https://simon-develop.itch.io/game-background-savannah</wtf>
  2. I have changed fonts.  
  3. I have added button images for the building buttons. Thanks for free assets, https://pauboeg.itch.io/ui-starter-pack  
  4. I have implemented a ScoreBoard animation. Circular ScoreBoard fills up slowly when a player achieves the current aim value. Also, when you are in the middle of choosing a position for a new animal, your possible impact to the score is shown on the ScoreBoard.


Submitted

12: Main menu

I have been working on a menu. I added the main menu (some buttons still don't have full functionality) and the exit button for the game scene. I also have worked a lot on a game process. My idea that damage to the animal is equal to the given score points doesn't make the game simpler. I am still thinking about a solution.

Submitted

13: Music, sound & game design

I have added several features.

1) I have been looking for music since the beginning of the jam. I have finally found the theme that I like (https://vtakinovmusic.com/product/this-is-africa/).

2) I have started to add sound effects to the game. 

I also worked on simplification of the game process.

  • I have decided to set all damage from all animals equal to one.
  • I made the maximum amount of hit points equal to three for all animals.

Submitted (1 edit)

14: New UI & undo button

I have completely revised my UI elements for the displayed damage. I have created a simple blinking heart animation for the moment when some specimen attacks another one.


I also have introduced an undo button. After that, the player can undo all the moves he made after the last building option refill. This makes the game much more interesting as you don't need to plan everything very far ahead. You can always go back if something doesn't go as expected.

Submitted

15: 7x7 field and initialization

After spending a lot of time playing my game, I have understood that a game session with the 6x6 field was too short. An average player couldn't even see all the animals in action. It felt too crowded and compact. I have decided to increase the field size from 6x6 to 7x7.

I spent some time working on the initialization of the game field. My initialization was completely random, and sometimes it led to a situation when a player couldn't beat the score regardless of their tactics. I have chosen another approach. The field initialised randomly based on a set of prepared initialization fields.

Also, I have tested the WebGL build for the itch.io page. It turned out much easier than I thought it might be.


Submitted

16: Tutorial & Hints

I have added a short tutorial to my game. If you choose “Tutorial ON” you will see four tutorial windows with basic information about the game. Also, I have added popup hints showing the information about the species. 

I am at the final stage now. I have sent my build to some friends for testing. I want to work on an itch page now and prepare my code for an open-source release.


Submitted

16: Tutorial & Hints

I've spent the last few days fixing bugs. I have fixed at least four major UI bugs. I have also finished the itch.io template for the game page.  As I don’t like working during weekends, I'm going to put all my strength to finish the project and write post mortem today.

Submitted (3 edits)

17: Final

Finally :) I have finished the game and written a post mortem.

You can find links here:

I also want to publish code to the open-source repository. It needs some additional work as some of my assets can't be published due to license terms.