Skip to main content

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

The Still Journey | Safe In Our World Mental Health Game Dev Champions 2024

A topic by ConcreteBerry created Jun 04, 2024 Views: 475 Replies: 10
Viewing posts 1 to 10
(1 edit) (+1)

Hi, community!

I’m working on my second game while participating in the Save Our World Game Dev Championships. I’m competing in the solo 24+ category. I want to share my process for two reasons. First, rereading my posts from my previous project was very helpful in planning this much longer jam. I had forgotten some of the processes I used (it was almost a year ago), and those blog posts were my only surviving notes. Second, I hope to gain insights from the community that might help me with this project.

The game will be a cozy point-and-click story/puzzle inspired by my personal experiences. I started by choosing the tools I would use.

Managing work: I’m using Trello. I’ve built the main board for the project and plan to work in one-week sprints. I believe that setting a weekly goal to deliver some increment will keep me motivated and focused over the five-month period. I have a backlog, tasks for the current sprint, and will focus on grooming and planning on the weekends. I chose Trello because I have used it before and don’t want to invest time in learning new project management tools.

Game engine: I chose Unity because I want to learn it, most of my favorite games are made with it, and there will be master classes available. I plan to set it up with Visual Studio Code and Git.

Graphics: For my previous game, I used pixel art and Aseprite, which was very challenging and time-consuming. I decided not to use pixel art this time. Since I don’t have experience with other digital art techniques and programs, I did some research and decided to go with vector graphics. I chose Inkscape after watching some tutorials and trying to draw a simple sansevieria plant. I enjoyed the process. Here’s an example of an ugly paper draft and what I managed to draw in 30 minutes after watching just one beginner tutorial. I think I can manage. 

                                

UI and scene design, and assets management: I chose Figma, as I’m learning the basics for work.

I don’t yet have any ideas for the sound design. :)

My goal for this week is to create a title screen with a start button that takes the player to a screen with the first asset, which will be a gameplay area placeholder.

I hope to update this topic every Sunday!

(+1)

Week 2 Update

I now have a much clearer vision of the game mechanics. The main screen/board will have two states/views. Items will be placed on this scene, and when a player clicks on an item, a mini-game or short animation will open. Completing one mini-game will unlock new mini-games, with the flow of available games a story will be told.

Here’s what I focused on this week:

  • Creating tasks in Trello: I wanted to get a better grasp of how much work needs to be done. I have over 40 tasks, most of which are general and need to be split into more detailed ones.
  • Learning Inkscape: I made significant progress just by learning the pen tool and gradients. I used these two tutorials: Lines and Gradients. Here is the result of tracing over a random sansevieria plant photo. 
  • Learning the basics of Unity: I achieved my goal for the week. Below is a little demo gif.


For next week, my goals are to:

  • Code the switching between the two states of the main board.
  • Figure out how to open mini-game scenes.
  • Define what the MVP for my game should include, particularly in terms of the number of mini-games.

I look forward to sharing more updates next Sunday!

(1 edit) (+1)

Week 3 Update

This week, I managed to achieve all my goals, which makes me very happy. The hardest part was learning Unity. Before starting this project, I only knew a bit about navigating the graphical interface, creating sprites, and some basic scripting, such as creating serialized fields and swapping object sprites.

Here are the challenges I worked on this week, from hardest to easiest:

  • Managing clicks over the apartment layout: The biggest challenge was dealing with overlapping room colliders. I ended up creating my own raycast-based script to find the object with the highest order in the topmost sorting layer from the array that Physics2D.RaycastAll returns. To connect this to the room state logic, I created a super simple game events system by following this tutorial.
  • Instantiating prefabs: I learned how to instantiate prefabs so I can open a modal with specific content when clicking on different triggers. These modals will open mini-games and animations.
  • Switching between apartment layouts: I achieved this by activating and deactivating objects containing all the rooms.

Here's a little demo gif below.


My Unity challenges for next week are:

  • Adding a tool to manage hovering on elements.
  • Creating a UI for closing the game.
  • Starting to think about the logic of the main game loop, where the player progresses by solving different challenges that open in modals.

I also spent some time learning Inkscape. I found a cool method for learning: 

  • I watch a tutorial and follow all the steps (lots of pausing and going back). 
  • I try to do my own drawing (still tracing photos) using the skills from the video. 

This week, I learned how to create complex shapes from simple ones by cutting and editing paths. To sum up all I have learned, I drew my favorite stim toy. Maybe it will be in the game, maybe not; I’m still trying to figure out the art style for my game.


Stay tuned for next week’s update!

I'm curious about your demo gifs, is your game 2D or 3D?

(+1)

It is 2D. I plan to draw sprites in isometry :) 

Week 4 Update

I’m grateful to my past self for deciding to have a Trello board for each week of the jam. I sat down today thinking I had accomplished very little, especially since I struggled with art in the latter half of the week. However, when I looked at my Trello, I realized I actually completed what I planned to. I finished the logic for hovering over rooms (though I still need to adjust the pivot point of the sprites) and moved errand triggers inside the rooms. Additionally, the close button logic is already in place.


I also have a draft of the main game loop logic on my blackboard, and I will focus on coding this next. I plan to measure in-game time by the number of tasks completed, change the rooms' appearance accordingly, and spawn new tasks.

The second coding challenge this week will be creating the first mini-game. It won't be anything innovative, as it will be based on the 15 puzzle but with an image. This will give me the opportunity to tell a story through the pictures.

As for art, I created a sketch of the apartment rooms on paper (I’m not satisfied with the proportions of the current sprites). 


I gathered tons of reference images and made some decisions on style: I won't use outlines, I’ll keep my color palette small, and I’ll avoid using gradients much. Unfortunately, I made zero progress on character design. :( I decided to take a break and focus on completing an entire Inkscape course next week.

Next update on Sunday! I can not wait as in July I'm starting a long leave at my job and I can shift all my focus to this project.

Week 5 Update

This week, I didn't have enough time to focus much on the main project. However, I started building a small game featuring sliding puzzles. I plan to put it on itch.io as a separate project. I think it's a good exercise in putting together a complete game, including menus, sounds, and publishing. I hope to wrap this up within the week. Little demo below. The game will involve players solving puzzles that are images on a wall of travel photos.

Stay tuned for next week’s update!

Week 6 Update

Hi, everyone.

Unfortunately, I have no new progress to share this week as I came down with COVID-19 and spent most of my time in bed. It's been a tough few days, but I'm on the mend and looking forward to getting back to work on the project soon.

Stay healthy and safe!

Week 7 Update

This week has been incredibly educational. I finished and published my exercise game, Travelscape Puzzle Gallery. It’s just 12 photo puzzles, but I learned a lot in the process.


I did all the graphic design for it, so I picked up more Inkscape skills, such as bending text and working with shapes more efficiently while drawing frames. I experimented with color schemes, and the biggest takeaway from designing this game is that I need to find a good course on user interfaces and carefully design the UI for my main game.

I used some free sounds and learned about licensing. I couldn’t find a sound I liked for moving puzzle pieces, so I used my phone to record one and found online tools for cutting and editing sounds, like MP3Cut.net. I’m happy I did this because, for simple sounds, it might be faster to record them than browse the internet for the perfect one. I was surprised that sounds from a phone recorder can be good enough for my needs.

The most important part was my Unity development. I started with this example project and built on it. Here’s what I learned:

  • Materials
  • Lists and dictionaries in C#
  • UI panels and buttons
  • Saving data in user settings (I saved the IDs of solved puzzles as a simple save game mechanism)
  • Difference between Unity’s Start and Awake hooks
  • Using LeanTween to move objects, change colors, and fade elements in
  • Coroutines
  • Different approaches to structuring code

This last point is the biggest takeaway from Unity: I need to sit down and design my code architecture; otherwise, I will drown in spaghetti code. This is the hardest part, and I’m in the process of rethinking my initial idea for the main game loop logic.

Despite knowing my code isn’t perfect, I decided to make the repo public: GitHub - Travelscape Puzzle Gallery. Maybe I’ll get some advice on how to improve it in the future.

What a week!

Week 8 Update

This week was all about rewriting my code (it reminds me of this song by Dylan Beattie ). While working on Travel Puzzle Gallery, I had a hard time not getting lost in my own code, and that was for such a small game. So, I started learning about object-oriented programming to structure my code better. I think I rewrote about 90% of it.

One new thing I like is using interfaces. I created a simple one for room elements:

public interface IRoom
{
    void OnSelect();
    void OnDeselect();
    void OnHoverEnter();
    void OnHoverExit();    
}

Now, in my raycaster, I just call the appropriate method of the hit object instead of emitting an event and making all rooms listen and react. Inside the Room class, I have only those methods that change the room's appearance, making it a nice single-responsibility class.

I split the rest of my code in a similar way. It probably still needs improvements, but it is much easier to navigate through the code now. In addition to the raycaster, event manager, and room class, I have:

  • A class that stores game data/status - it keeps track of time and configures which mini-game should open from a trigger click.
  • A class for the main scene that handles the visibility of the main scene.
  • A class for triggers that handles their appearance and emits the clicked trigger name.
  • A class that handles dispatching mini-games.
  • Classes for each mini-game.

I still think there's room for improvement, so I'll probably continue polishing it while finalizing the main loop implementation (I’m about halfway there, I think).

I also decided that each mini-game will be another scene. This way, it will be easy for each game to have its own UI. I’m not sure if this is the best idea, but since I’m decoupling the code so much, it should be easy to change my mind later on.

Here's a little demo of how it looks right now:


Plan for next week: Finish the main loop logic and transfer the sliding puzzle logic into the main game. If I have enough time, I'll code the storytelling part – a feature similar to the mini-game but just a “slideshow” telling the story.

Thanks for reading!!

Week 9 Update

This week I only worked on pushing forward on my graphics designs. Still work in progress.