Skip to main content

Global Game Jam

· 3 min read

Global Game Jam! I have been looking forward to this jam for a month.

So, how did it go?

The game we made was a failure. But you do not learn much from a success, which meant I learnt a lot. This was my first time working in an informal team, and everyone gave their best. In terms of getting a good playable build I could have done a lot more by starting on mechanics earlier. I guess I did not learn from my last jam and got carried away with art. I realise now that the general rule about working feature-wise also applies to teams. We also had a lot of new experiences, it was the first time my team was working with godot and, for a few them, git. Taking that into account our scope was too broad.

We had planned to make a character that can transform into the alien species using a mask (Masks was the theme). We wanted to incorporate narration and a lot of different characters for the environment. Our developer managed to make this happen, unfortunately we ran into problems while integrating the art animations. The rig did not work with the code used for the transformations also I realised there was a problem with the scale used, this shows a problem in communication. Another big problem we ran into was systems.

Some of us were using mac and some were using windows, which meant that the system files and configurations for godot were different. I guess the only solution to this is involving regular merges at the start of the production so we can include the neccesary folders and filetypes for our .gitignore file.

A simplified explanation for my less technical readers is:

Imagine each team member works in a different room with different sizes and placement of doors, and we constantly have to move furniture from one place to another. This means that everytime we move the furniture we have to place the furniture in different locations. Now this doesn't happen with the tool we were using and we have to step in and place everything where it belongs, which can get a bit annoying. We can however tell that tool to ignore certain stuff in the room so it makes the changes needed a bit easier to manage.

While there were a lot of problems with the game and development I still enjoyed my time at the jam and will definitely participate in this jam again. I want to thank IICT and underDOGS studio for facilitating this jam.

Here is a short demo of my contributions: Instagram Reel

By the way this was the first project with some real sound engineering, it really changed the game. Give this guy some love: Tanay.

~sailboat642

Lollapalooza

· 2 min read

This week I am in Bombay. I had the pleasure of attending Lollapalooza, a music festival that features a variety of Indian artists as well as a few international hits like Kehlani and the headliner Linkin Park. The festival took place in Mahalaxmi Raceway, a horse racing track. The venue was huge and they managed to put 4 stages in it. At once there were at least 2 artists performing with no shortage of liquor and food. It was organised well. Although some artists, I felt, sounded much better off stage in clubs and bars. I had the chance to hear baalti at such a club and on the stage, and the stage performance did not do them justice. Linkin Park though was phenomanal, I had a great time!

The second reason I am in Bombay is to attend to Global Game Jam. They released the theme today and I went and watched the theme release stream. The theme includes, 'Masks', and optional diversification sub-themes. These diversifications are there to give the games some variety and include themes like, Cartridge Ready (games under 10MB), Many Hands Make Lightwork (games meant to be played by 4 or more players), Out Of Sight (games that can be played by both sighted and blind players), etc. There are also some diversification to promote the sponsors. Epic encourages developers to try UEFN, an engine I enjoyed working with in the past. Another sponsor, Games for Change (G4C), encourages developers to build socially impactful games, they can encourage environment preservation, road safety, or appreciate the hard work behind producing food resources.

~sailboat642

Festivals in the Pink City

· 2 min read

Last week I travelled to Jaipur to observe Makar Sakranti. The mid-winter harvest is popular in Jaipur and is one of the biggest celebrations. It marks the transition of the sun from the zodiac Saggitarius to Capricorn. People celebrate by flying kites in the day and lighting fireworks and lanterns at night. As a result most people spend the day hopping from one terrace to another.

I tried my hand at flying kites as well, although I had little success. It is a very instinct based skill, a bit like surfing. You need to flick the dor (the string attached to the kite) in quick succession so that the kite moves in the direction the nose is pointing to. By keeping a keen eye on kite you can move it as intended. While some people fly kites for leisure, there are certainly more competitive folk who compete by having the last kite in the sky. They do this by cutting the dor of the competition leaving the kite to submit to nature and fall down like a leaf. There are also mischievous cretins who cut kites purely for fun (it is a bit fun). One such person was bullying our neighborhood and preventing other kites from flying high, frustrating my cousin brother who was out there trying to teach me the skill.

Following Sakrant was the The Jaipur Litfest, name is pretty self explanatory. It is a cultural event celebrating authors and poets. Authors from all over the world come and talk about their books as well as subjects of interest. I only attended the first day where I sat through an interview of Jimmy Wales, the founder of Wikipedia. He was there to promote his book 'The Seven Rules of Trust', the talk was interesting and I ended up buying his book. I am halfway through and defenitely reccomend the read. The book is informative and easy to read. There are many anecdotes about Wikipedia and other historic events that make it easy to follow.

Next stop this week is Bombay. I am going to attend Lollapalooza as well as take part in the Global Game Jam.

~sailboat642

1 Bit Jam

· 3 min read

This blog came in a bit late so let me get you upto speed. This week I took part in 1 Bit Jam. The premise of the jam is that you only use 2 colors, on and off. I stuck to the basics; black and white. The theme that won the most votes this time was 'Into the Depths'.

Design

This was a great theme which lead to some fun ideas. My idea was that you are a mosquito who gets eaten by a person, and now are trying to survive The Depths of Hunger. In this 2D platformer you get to explore the various parts of the digest system.

The main scene is the stomach, a vast canyon filled with acid. Here the player has to survive and explore the burning acid to find a way out. You will fill find fibres that you can use to strengthen your armour and shells which will upgrade your armour to last longer in acid.

Once your armour is strong enough, escape the stomach from the backdoor win the game.

The Jam

I managed to put together a team with a sound designer and a game designer who helped me with collecting resources and finalising the design. I had a lot of fun with the art for this jam, the animations for the main character were a bit tedious, but I also drew a variety of assets for the game: two types of gates, diferrent spikes for hazards, floating platforms, title screen, game win animation and of course the tileset for the level.

As the Jam Deadline grew close, I realised I had spent quite a bit of time on Art and needed to focus on the platformer. I decided to make build for the game with less than a day from the deadline. I had managed to implement a basic platformer with a start and end scene. I ultimately submitted to the Jam.

I was a bit dissapointed that I had not completed all the features I would have liked include, especially since I drew the artwork for a lot of them. I did learn a useful lesson in time management and it has to do with the approach of my game developement.

For the last few jams I chunked up my workflow, I would draw the art for all the assets, implement it in code, and finally add audio. Which means that the last in line would always suffer, not for one feature but for many of them as many of them would fall short. But alas, I have learnt my lesson, I will collect resources and take action feature wise so everything that is included in the build will be as bad as the next.

There is still a lot work left in this game including the main feature. Water! so I do plan on working on it a bit more.

Upcoming

At the end of this month, I will be participating in Global Game Jam! I am really excited as this will be my first in person jam. After spending a lot of game development solo or on the internet it this will be a welcome new experience.

~sailboat642

New Horizons

· One min read

Happy New Year to everyone tuning in! We have found the Jam of the Month, or rather two different jams: the first which starts tomorrow night, 1-bit Jam. The second is another Bezi Jam, which is towards the end of this month. The premise of 1-Bit Jam is pretty simple, you can only use two colors, on and off, black and white. While it started of as black and white they allow any two colours red and blue for instance. Some entries go so far as to use 1-bit audio.

I haven't decided which one to take part in yet, Bezi has very juicy prizes, cash and also a chance to showcase at GDC. However, 1-Bit is a very fun challenge. I am going to wait for the theme to drop and decide then. Also, might see if there are keen team members for Bezi to have a better shot.

~sailboat642

New Years

· One min read

This week I focused on sharing my latest jam entry. snowmanic turned out to be a very fun project, both to playtest and make. This enthesuiasm encouraged me to make a short gameplay video to showcase the game. The editing took me about 5-6 hours, however now that I am more comfortable with Premier Pro and the workflow, I think the next showcase will be easier to make.

I also managed to port the game to my steam deck. Still haven't figured out remote deployment, but I transferred it using a hard drive. The game worked smoothly, and as intended. I did forget to program some navigation for the menu's but since the deck has touch I was able to navigate and play it. The handover and gameplay was pretty smooth, and I will definitely try and integrate it in my workflow in the future.

This is a pretty short post, so enjoy the reel.

Happy New Years!

~sailboat642

Christmas Chaos

· 3 min read

This week I participated in Secret Santa Jam. Like I explained last time, this was a Secret Santa Jam. Credits to @sheepolution from discord for organising such a kick ass jam. There were no prizes this was game jam made for the christmas spirit of giving. It was organised beautifully. In secret santa, every participant get's assigned a giftee who they are supposed to gift. Which means everyone gets a gift, normally the person gifting knows the giftee (if they want to prepare a personal gift) while the giftee has no idea who their secret santa is. The system placed by sheepolution through the discord bot worked beautifully.

I received the profile of Snax McGee. There were many things in his profile but I focused on his love for synth music, legos, and shooter games. As added bonus I incorporated a picture of his cat and a guitar, as he has a cat and plays the guitar.

The Design

For the game, I decided to make a top-down shooter as the animations would be fairly simple and I enjoyed playing a similar mini-game in Stardew Valley. The person would turn enemies into blocks and snap them together to form different patterns that emerged to be 8-bit images. I decided to stick to the theme of christmas and made everything frosty. He fired a snow canon, the enemies were snowmen who got frozen into blocks of ice. Originally, I planned to make it feel like the main character of the game was ice-skating (improvement for later?).

I decided to use Godot as a game engine as my next big project will be on Godot. I really enjoyed the editor, it's modular design allows you to drag, drop, and jump to different related objects on the editor. This feature was very powerful and made design intuitive.

The Effort

I had been designing and brainstorming the game for weeks. I decided to start development on the 18th Thursday(The Jam ended on the 21st) with Art. I spent the whole day making different assets I was done with all the essentials the next morning. Throughout the weekend I worked on mechanics. I managed to incorporate all the mechanics by Sunday night however, I had not included any sound effects, the game was too plain and was missing audio cues. However, the deadline was 30 minutes away so I decided to make a Web Build.

The Terror

I was developing on my mac. Which meant Apple had to get in the way. I was not able to run the web build locally and did not want to upload it without testing. So I decided to finish adding sound effects and polishing the game a bit more, before I upload it.

The Success

I managed to complete it 24 hrs from the deadline, I hope my giftee did not mind. I am very happy with how it turned out as it included everything that was planned, plus a bit extra. I have not heard back from the giftee but I hope too soon!

Game Link: https://sailboat642.itch.io/snowman-apocalypse

With the end of the jam, I get to go back to my video project.

~sailboat642

Content Creation 30 hours to 1 min

· 2 min read

This week I started curating all the content I had from Bezi Jam. I had recorded and streamed most of the Jam so that I could get started on content creation. It was a daunting task. To start with I have zero experience with Premiere Pro which was the reccomended tool that Gemini came up with. I had over 30 hours of content that need to be sized down to less than a minute - because who will give more than that.

Thanks to AI and modern tools, in 7 short hours I managed to take 30 hours of footage that got chunked down to 1 hour and 50 minutes. Still a lot of footage but I managed to make two different tracks. The first one has 30 hours of footage, but with key breaks that help me find the most visually appealling elements. The second track has 1 hour 50 minutes of me talking, which is hard for me to listen through.

Thanks to these tools I feel a storyline comming into place, and regular content seems like a realistic goal. Speaking of which, there is another Jam in production.

I am taking part in a Secret Santa Jam, there are no prizes but the premise is appealling. I write a letter to Santa with my personality and interests, and a Secret Santa might make a game for me. And ofcourse I will be a Secret Santa for someone else. I have drawn up the plans and am excited to see how this game turns out. I have incorporated a mechanic I hope to use in Pal's Burger Dash, but more on this later.

Ofcourse due to this my video project is on pause, so bear with me.

Waves and Boards

· 2 min read

I wanted to write this blog earlier, but in the last few months I have been caught up with the waves. I picked up surfing this year, and I am thrilled by the sport. After my first trip to Thailand in June, I got a taste of surfing at Kamala Beach, Phuket. I cannot remember much of that experience, I caught 2 waves and the instructor took me to try some bigger waves deeper in the ocean. I was in Phuket at the beginning of the season so it was perfect to dip my toes in.

I was hungry for more and I took my cousin Amartya's advice and made a trip to Udupi in Karnataka to join the Shaka Surf Club. This was a place that had taken on the culture of surfing in India. The camp had a skate park where residents and friends could surf-skate and skateboard. The atmosphere was friendly just like any other camp environment with activities like kayaking, board games, skating,frisbees, and of course surfing. Everyone once in a while a musician would pop up and everyone would sing along.

Over the next six days I learned a lot about ocean waves. How waves come in sets, searching for the peak, how coastlines and beaches create all this fun. I had developed an appreciation for fluid dynamics and waves, with so many forces in play that create a beautiful swell that breaks evenly or a giant that crashes with a roar. Maybe I might start a project that dwells more deeply into fluid dynamics and waves.

I learnt a lot of safety lessons from surfing as well, in fact my first lesson was taught by a bloody lip on the very first day! I had surfed my second wave of the day, I felt ecstatic, I had forgotten all about the board that was tied to my ankle. In that moment the board had sneaked back between me and the next crashing wave. I turned around and immediately remembered thinking oh shit! The board was flat on the wave and was falling flat on my face. Now my first instinct after wiping out is to cocoon and surrender to the waves force and let them pass and then hang on to my board.

Thanks for tuning in.

Morning Brew - Bezi Jam

· 7 min read

I took part in a monthly game jam held by the people at Bezi. Bezi is an agentic AI tool made specifically for Unity. The platform reads your entire project folder structure, including the Unity files, which means it has access to your object heirarchy and the way things are setup in your scene. Further, it can interact directly with Unity to get logs from the console and see what you have selected in the editor. I joined this jam as I thought it would be a great integration to my workflow.

This was a monthly Jam that lasted 5 days (Thursday 8pm to Tuesday 12:30pm). There are three requirements, use Unity, use Bezi (somewhere in the development -even to test it out), and build for the web. This month's theme was Cozy Games with a twist revealed at the begining of the Jam.

Before the Jam I thought of different cozy things that could be part of the game. Finally I stuck with a game about coffee. Holding a cup of hot coffee on a cold rainy morning is the coziness I wanted the player to experience. But just sipping coffee is not enough, I wanted to lead the player to fix their own cozy cup of coffee and get to enjoy it.

I was thinking of mechanics I could add in these short 5 days empowered by bezi. I was always satisfied by the latte art that came on an occasional latte. This mechanic satisfied my curiousity, I had never integrated drawing into any of my projects.

Thursday

Bezi's twist was to keep the gameplay loop under 6 minutes. This limitation did not have any effect on my plans. I decided to stick with my plan on making a cozy latte art game. I managed to find a team (a composer and an artist) on discord that was on board with my plan. I started out by sketching out some design plans for the coffee game. The loop was simple: pull a shot of coffee, make latte art, and enjoy drinking it. I decide against having any scoring system.

The rest of the day was spent ideating and setting up version control for my project.

Friday

I dove into development, I prioritised the latte art mechanic as that was key ingredient for my game. I discussed the design implementation with Gemini, a tool I was comfortable with. It suggested a few different strategies and I went with the Render Texutre for Drawing on Textures option. This was a completely new area for me.

A render texture can be thought of as a film that is placed upon the image that can change the rendering of the image. The key feature is that it can be changed dynammicaly at runtime. The process for drawing involved detecting inputs, accurately translating them to the texture coordinates and detecting bounds, and then drawing.

I fed this strategy into Bezi, and let it cook! Bezi generated three files including a shader for the brush, the latte art painter component and a scriptable object for to store brush settings. This was a lot to take in and inspect, and suprise suprise it did not work. Since I am no expert at textures and shaders, I figured it was better to clean the slate and go step by step.

I prompted Bezi to do the same, keep the implementation simple start by detecting inputs and testing the coordinate system. This prompt was key! Bezi setup some helpful debugging logs and painted a white dot on the texture. Things were still going wrong, but I could see visible progress and that was motivating.

Bezi was having a hard time translating the coordinate system. There were numerous things that needed to be fixed like the scaling, inverting the Y-coordinate, making sure it painted within the bounds of the circular coffee sprite, etc. I iterated through them and by the end of the day Bezi and I had made it to a point where the input and coordinate systems were working smoothly.

Saturday

I managed to get the rest of the painting mechanic to work in the morning, and decided to spend the rest of the day improving upon the coffee and latte art (make it more realistic add some shaders/post processing) I was excited as this was an entirely new domain. The plan was to use my own custom brush texture to paint and add some bubble and wave effects to the coffee. I spent the entire day tinkering with Bezi, I made sure that Bezi created new scripts so that I would have a fallback.

There were different things I tried like changing the render pipeline, changing the setup, many of which I did not understand the reasons for. There were a lot of issues popping up while rendering and Bezi tried fixing them by making functions that show in the context menu of the component, I was not happy with this as it felt duct taped, also it did not work. The day ended with no progress.

Sunday

I probably should have moved on and completed the gameplay loop at this stage, but I was still eager to improve my latte art scene. I decided to use only Gemini for development. There was this annoying bug where the render texture showed up as a white box in the middle of my scene, that Bezi was not able to resolve. Gemini removed it. But again no significant progress. I could not get into the code and fix it as I had not researched render textures enough. I did see a youtube video that used a second camera, and I was considering doing that but I had had enough.

I ended the day by working on the start scene of the coffee shot being pulled from the espresso machine. I was still using gemini, and managed to add some camera movement and a small transition effect that faded in and out.

Monday-Tuesday

I spent these two days just polishing up the game. I found some sfx online for the coffee machine and sipping. Added the music track to the game. I figured it would be fun and easy to add a sipping mechanic where the player has to hold click to sip their coffee. I managed to add it with Bezi, Bezi even told me the type of art I would need to get it to work well, which I appreciated. I added another transition when the coffee was finished, this one was for a clock ticking.

It turns out that it is not easy adding video files to the scene, so I had to get all the frames from the clock ticking gif (over 300 frames - also found online). Bezi made a gif processing script that worked well, and there I had my second transition.

There were 3 hours left to submit, I decided to submit this. There was not a lot I could do that would have made a significant improvement to the game, mostly because I did not want to mess with the latte art scene.

Comments

I realised later I could have improved the game by introducing new mechanics instead of losing time trying to polish the one latte art mechanic.

I found Bezi to be a helpful tool. It was quick at resolving errors and could pinpoint exactly what went wrong. The code it generates is sometimes overly complicated and I was uncomfortable publishing the final scripts.

I think the key takeaway here is that Bezi will speed up your process but you cannot let it guide into the dark. Next time I would research the mechanics and systems I am implementing before using Bezi or other Agents to code it through.