Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

KANAMedia

71
Posts
4
Topics
6
Followers
13
Following
A member registered Jun 29, 2022 · View creator page →

Creator of

Recent community posts

(3 edits)

I wrote my Post-mortem for my personal blog, because the itch forum limitations drive me insane. For the best experience and all my fancy videos go here -> https://kana.games/post/flashIT-MFGJ-24-post-mortem


The Game

Imagine you are in an elevator with a random person, and they tell you:

FlashIT is an action puzzle game set in cyberspace. You are the last line of defense against an army of evil AI bots. Use your special flash device to banish them from the digital realm. Be resourceful, be nimble, be quick.

What picture would this evoke in your mind? Would you leave the elevator on the next floor?

Now, here is what I came up with after two weeks of game jamming at My First Game Jam 2024.

Play it right here right now!

The Idea

We spent the first two days brainstorming ideas. The jam came with the optional theme: ☀️ Light ☀️

Here are some highlights:

  • Weak golfing
  • Puzzle game where you have to flash all your teammates
  • A person (or all people) lighter than air, so everyone is just floating around
  • Light bulb with burnout

Guess which one made the cut.

Puzzle game where you have to flash all your teammates

I tried really hard to avoid building a straight-up puzzle game because I thought it would be way too hard to design fun puzzles. But for unknown reasons we chose this idea over all the deep and thoughtful ones 😄

We created a small Game Design Doc in the hope of keeping us focused.

Here are the game mechanics we wrote down and what we ended up with in the final game:

  • Fixed Player Position: The player cannot move from their starting position in the arena. They can rotate and aim freely within their view.

    • Instead of not allowing the player to move, we restricted the player to a predefined area. The player can jump and move around while throwing, allowing for more variety in approaching a level.
  • Flash Grenade: The primary tool, with one use per level.

    • It is the primary tool, and that’s why the default amount per level is variable now 😄
  • Teammate Visibility: Some teammates are hidden from direct sight, requiring players to use the mini-map and environment to reach them.

    • Well, the teammate part fully went away because it’s a lot easier to explain the premise of destroying your enemies than your teammates (at least for people who haven’t played competitive shooters with flashes). The enemies are almost always behind cover, so we got that part covered. The mini-map didn’t make it, but the enemies can be seen through walls.


  • Throw Mechanic: Physics-based, allowing for strategic bounces and throws. The player must consider angles and surfaces to reach out-of-sight teammates.

    • I added an additional light throw and the option to “cook” the flash by holding the mouse button.
  • Arena Design: Includes walls and other objects that influence the flash’s trajectory and spread.

    • The levels currently in the game are very simple. I think a lot more can be done where the flash has to bounce on multiple walls to hit the desired spot.

    • We ended up with a single wall prop that can be modified in size. Turns out you can build a lot of things with a rectangle 😄 Maybe in a later stage of the game, some rounded surfaces would be nice, but for the jam purposes, the rectangle does the job.


  • Scoring System: Points awarded based on the number of throws, time taken, and any additional objectives.

    • Made it in. But I’m not sure if it was worth it. I spend two days adding it into the game.
  • Levels: A progression system with gradually increasing difficulty.

    • I added a simple system to lock and unlock levels, but it wasn’t used in the jam because I didn’t want to block anyone from trying all levels. In a more developed version I might block of chunks of levels based on a global score.

Building the Game

You can check out the full dev log with progress GIFs here ➡️

Week 1

The first two days were spent in the concept phase, building out ideas. After deciding on the flashing game, I started creating my to-dos. I keep it very simple at the beginning, once I tackle a point, I add more details. I worked my way through the points and created FP Controls, the flash, and the first 3 levels. My plan was to have a feature-complete MVP at the end of week one so I could spend the second week fully working on polish, visuals, and sound.

Week 2

It turns out building a point system can be quite a heavy task, so I kept coding for two additional days before I was able to focus on visuals. On day 11, I started working on the cyberpunk/cyberspace and added a lot of particle volumes in the process. The last two days I spend on ambience, SFX, UI icons, scoreboard and the possibility to restart the game.

Looking Back at It

Now, a good week after the jam, I’m very happy with what we accomplished. There were no major scope missteps like in my last submission for MFGJ-23. So we were able to produce a complete package.

Things That Worked Out:

  • Made some early reasonable scope decisions like:
    • Enemies don’t move
    • Player is heavily restricted in the play area
    • Only one key gameplay system
  • Also, a level-based structure is great because they are naturally decoupled. That allows, in theory, for multiple people to work on different levels, and levels can just be added or left out based on time constraints without the whole game breaking apart.

Things to Improve on the Next Run:

  • Focus on the core gameplay loop more, and add fluff later or cut it.
    • Like the point system
  • Think about visual style and theme earlier.
    • The art direction and theme came in pretty hot, so there was not much time to refine them.
  • The plan to enter feature freeze after week 1 is a good one, so try to reach that goal next time 🤞

After Jam Updates

I have lot’s of ideas:

  • Level replay system
  • Flash follow cam
  • Extra points for hitting enemies directly
  • Modulation areas:
    • Area where the flash detonation timer is increased or decreased
    • Area where the flash explodes instantly
    • Area where the flash is duplicated

Also, playtest feedback:

  • Make level completion more clear.
    • Maybe by adding a level complete camera transition (might get annoying), or by changing the exit portal colors. Even toggling the portal based on flash and enemy count would be something.
  • Add a top view or mini-map to give the player a better overview of the level.

So, lots of possibilities, but I’m currently still working on my previous submitted game, Circle Pusher and I’m more excited about couch co-op or multiplayer shenanigans than single-player puzzles. Even if the open points sound fun to work on!

That’s It!

If you have any questions, you can find me on Twitter @KANAjetzt 👍

Thanks for playing :D

That's good to know. I'm sure I can find a way to make it clearer when a level is completed.

Yes is it different than 4.2? 😄

Hi, congrats on submitting!

I love the art, music, and sound design! 

I highly recommend exporting for the web so people can play directly in their browsers. Many won't bother downloading something.

On the gameplay side, sometimes I couldn't jump onto a platform that looked like I should be able to stand on. At the start, it was a bit hard to tell what was background with no collision and what was foreground with collision.

Yey survived on the second try 😄

Great entry! It definitely created some tension. 

Maybe you could add a red glow to the enemy to make it more visible in the distance. The first time, I was a bit surprised by the game-over screen.

A small tutorial about hiding and using the inventory would be a nice addition as well.

(1 edit)

Great sound design and visuals. The controls feel nice as well 👍

The mine puzzle seems to rely a bit too much on trial and error. At least for me, it was difficult to anticipate where a mine would be or how to avoid it without first running into one.

It's to much pressure I can't do it D:

Thanks a lot for making this I learned a lot about time :) 

(3 edits)

Thanks a lot for trying and letting me know that it is not working!

Very cool and polished entry! I didn't manage to get back safely to the surface, so I can't comment on the full experience 😄

I really like the mood and sound design. It truly immerses me beneath the water's surface. The anglerfish enemy is amazing and creates great tension in the levels.

I often found myself waiting for the floodlight to come back online. Maybe you could add a small hint about where the other enemies are, so there's at least a chance to move without light.

Backtracking all the way to the surface wasn't very engaging since you’ve already overcome all the challenges. Maybe the game could just end underwater, where you find a portal to the surface? 😄

Nice work! I really like the art and writing.

I just wonder how tipsyGnostalgic can say that look is not offensive 😄

Maybe you could check if the player actually changes outfits the next day, and if they don't, give them fewer followers or better yet, reward the player more if they do change. 

Unlocking new outfits over time would be a nice addition for an after-jam update.

Congrats on your first game jam submission! 🎉

(1 edit)

I start - here is my score and time 😄

Day 13 - 10.08.2024

Had a final push today—started working early, took a nice long outdoor break, and then accidentally pushed through until morning.

  • Sound:
    • Implemented ambient sounds
    • Added sound effects for:
      • Portal
      • Enemy explosion
      • Level completion
      • Reworked the flash explosion sound
  • UI:
    • Created and added icons for:
      • Remaining flash counter
      • Remaining enemy counter
      • Score
      • Game Time
      • Level Time
    • Added 3D labels above the portals to display the final level score and time
    • Added 3D labels to display the current and previous game time and score
  • Visuals:
    • Replaced the prototype material with unlit particle volumes used for the walls
    • Used the same particle style to rework the player character
      • Did some additional tweaking to hide and show the particles once the camera is in first person
  • Point System:
    • Fixed a lot of bad math and bugs in the point system. I heavily underestimated the work required for this feature. Next time, I would skip it and just be content with the time trial aspect.
    • Added the missing text displays for the time and flashes used score.
  • Game Restart:
    • Made it possible to rerun the game
    • Added time-efficient code to restart the game while keeping some level data for each run
    • Added a new green portal type that shows up once the game is completed to start again
  • Exporting the Game:
    • I knew I might wake some dragons here because I chose to use Godot Jolt as the physics engine, which doesn't support web builds currently. However, there is a pending PR that enables this.
    • It works really well (at least for me). I grabbed the zip mentioned in the PR, copied it over the Jolt addon, enabled GDExtensions in the Export settings, and done 👌

I think that’s everything I did. Submitted two hours before the deadline, and everything seems to be working at the moment 👀

Day 11 - 08.08.2024

I really need to focus on finding a style for the game now. Maybe I should just keep the prototyping textures and write some lore around it 😄

  • Discovered Complex emission shapes in Godot and used them to create volumetric particle walls.
  • Had some trouble getting the scaling of the emission shape right.
    • There was a translation on the mesh I used to generate the emission shape that messed up the scaling. Resetting it to 0 and then generating the emission shape fixed the issue.
  • Experienced major performance issues with transparent surfaces, but only if that surface is the only thing on screen.
    • Initially, I thought the particles were the problem, but it turns out Godot sometimes struggles with transparent surfaces :thinking:
    • I don’t have a proper fix for this yet. For now, using an unshaded material works.

Plan for today is to make things less ugly 😄


Day 12 - 09.08.2024

Had a lot of work to do at work, so there was little time to focus on the game.

  • Managed to come up with a style that works with the new particle walls.
    • Realized that particles alone might make it hard to find "fixed spots" to align flashes.
  • Started working on some ambient sounds.
  • Oh, I also added test level four. Not sure if that happened today or yesterday 😄
(3 edits)

It's live now - play it!

The full Devlog with progress videos of each day now on my blog 🥳

Day 1 - 29.07.2024

  • Objects kept dropping through the physics body, so I enabled Continuous CD on the Flash.

Day 2 - 30.07.2024

  • CSG does not work with Raycasts, so I can’t use them for gray boxing.
  • Raycasts with normal Static Bodies are now working.
  • Enemies and the player now register if they are flashed or if the flash is blocked by geometry.
  • Added Level Selection with teleporters.
  • Did some data management by adding LevelData and organizing Global so I can store the start_position and level_name in one place and pass it around wherever I need it, for example, to the porter.
  • Created a Base Level Template that the other levels can inherit from.

Day 3 - 31.07.2024

  • Added a second test level.
  • Added a quick flash sound effect after figuring out how to download the SFX library I bought on Humble Bundle a while ago.
  • Fiddled around with Reaper for a while to get some plugins for sound modulation to work.
  • Added particles to the flash.
  • Changed the World Environment to look darker and added fog.
  • Added a custom flash model.
  • Added a level complete state and level unlock.
  • Added right-click to throw the flash.

Day 4 - 01.08.2024

Day 5 - 02.08.2024

  • Fixed Test Level 1 and 2.

    • I changed the parent node of all structures in the parent scene of the levels and destroyed them in the process. 😅

    • I created a new Wall Scene that incorporates everything I need from a structure in a level. I exported width, height, and depth and updated the size of the mesh and collision boxes with those values. (I should be able to use this even if I get a custom wall model.)

  • Added Phantom Camera for fancy camera transitions.

  • Added “Player Area Walls” that block the player.

  • Spent way too long fiddling with the shader for those walls 😄 I had a shield shader lying around that reacts to nearby objects, so I adapted it “real quick” to react to the flash.

Day 6 - 03.08.2024

  • Reworked the enemy.

    • Replaced the basic capsule with prisms that fall apart if the enemy is flashed.
  • Levels are now added and removed from the scene based on the currently active one.

    ## level_data.gd ## True if currently the active level @export var is_active := false :     set(new_value):         is_active = new_value         if ref and not level_id == 0:             if new_value == true:                 Global.level_container.add_child(ref)             else:                 Global.level_container.remove_child.call_deferred(ref)  
    ## global.gd var current_arena: LevelData :     set(new_value):         previous_arena = current_arena         current_arena = new_value         current_arena.is_active = true var current_arena_index := 0 :     set(new_value):         current_arena_index = new_value         current_arena = arenas[new_value] var previous_arena: LevelData = null :     set(new_value):         previous_arena = new_value         if previous_arena:             previous_arena.is_active = false  
  • Added better camera transitions to Test Levels 2 and 3.

Day 7 - 8 - 9 - 04.08 - 06.08.2024

Day 7

  • Had a good run on Sunday.
  • Added flash cooking 🧑‍🍳 - the flash is now thrown once the button is released, so the player can “cook” the flash, allowing the detonation timer to increase and providing more flexibility in level design (I hope).
  • Added a customizable flash limit for each level.
  • Disabled player input during camera transitions.
  • Added HUD with:
    • Remaining flash count
    • Remaining enemies
    • Level time
    • Game time
  • Added a settings menu (feels a bit out of scope, but anyway 😅).
  • Added a skip camera transition action.

My plan was to enter feature freeze on Sunday so I would have a week to concentrate on content, sound, and polish. However, I didn’t manage to add scoring on Sunday, so I had to postpone that.

Day 8

It's Monday 🙃 After a long day at the office, I didn't have much energy left to work on stuff, so all I did was set up the scaffolding for the scoring system.

  • Added all required variables to hold the score data:
    • Score for enemies flashed
    • Score for level time
    • Score for flashes used
  • Added a global Resource to hold the points rewarded for each of these types.

Day 9

A little bit more energy on Tuesday allowed me to complete the scoring system.

  • Wired up the scoring system and fixed all bugs I created in the process (hopefully).
  • Also added a setting for displaying the Level and Game Time on the HUD.

Day 10 - 07.08.2024

Not quite as planned, it looks like I worked all day on displaying the scores on screen 😶‍🌫️

  • Score is now displayed when an enemy is flashed.
    • Currently, a lot of points are still given at the end of a level, so I have to figure out how to display them without cluttering the screen. However, I think I will keep it as is for now, as sound, visuals, and levels are a higher priority at the moment.

Great work! My brain is not very multitasking compatible, but I think there is no real penalty for missing a note? At least I was able to just spam one button until I won the fight.

The submarine could do with a bit of telegraphing before an attack (or maybe I missed a cue in the music?).

The wall jump before the drum level is not obvious at all. 

The dialog after the cherry fight got stuck in an infinite loop for me.

Great entry! It definitely hits the NES vibe very well.

thanks for playing :D

Wups - just found the devlog post - so scrap that point.

Great update!

- The Quit button on the pause menu should be more distinguishable from the Resume button (give it a bit more visual weight or less alpha). I accidentally clicked Quit.

- Could we also get a screen shake toggle? :D

- It takes a while at the beginning for the enemies to arrive, maybe you could spawn them closer at the start?

- Also, adding a short patch note about what you changed in the update would be great!

Wow, that's a lot of content you have here! Love the art style and colors. It's surprisingly uplifting considering the topic. 

I recorded some of my playthrough and can upload it if you're interested (my solution to the puzzle with the 3 buttons will probably bring tears to your eyes, I'm pretty sure! :D)

I encountered one bug that required a restart. The first time with the portals, I managed to grab 2 of them and while ducking with 2, it managed to teleport me into the ground where I got stuck.

I think I was close to the end, but I had to call it early. I might jump back in tomorrow to see the end. :)

Yes! Great times :D Thanks for playing!

thank you so much for checking it out :D

Sweet - Now I can play :D

Great work! :D

It's a bit hard to tell on which surface you can run, and some of the birds  are hard to find. (And level 3 is just impossible to beat?!)

thanks for playing :) 

I like it! 

- Maybe tune down the shoot sound effects a bit or add a sound slider.

- Cool particles!

- "Hold to shoot" - very nice 👍

- Do enemies do very little damage?

- I got pushed out of the fence by enemies and wasn't able to get back inside 😅

Can you export this for web?

Interesting - but instructions unclear 😅

Oh and for your issue with Windows flagging the exe as malicious. I did not had any prompt about that on my Windows 10 machine. 

Very impressive! I'm not a big story game person, but I will come back to this and continue where I left off.
Only one small thing - I got a bit stuck when I clicked on the door and was looking at the keyhole. It took me a bit until I found the arrow to go back ^^

I don't have a joystick connected, so that's why I wondered about the message that 4 were detected ^^.

Maybe you can add the controls to the description on the page?

Very cool!

Great art and an interesting mechanic.

I had some weird double jumps here and there.

I'm just curious why is "X" the jump button and not space? Same with "Reset" on "Z" vs. "R". These are just the keys I tried without reading the instructions 😄

Very nice!

- Holding the button for shooting would be great. I missed all the upgrade popups because I was hammering away on my LMB. 😄

- The fisheye lens effect made me a bit dizzy. Maybe you can add a toggle to turn that off?

- Fun game, well done! 👍

Perhaps the circles could appear a bit earlier, and a game over could trigger when the boxes are not hit?

Great work!

- I enjoyed the dancing monster 😄
- First thing I noticed is that the is something invisible the character is colliding with when starting the game? 


- The character looks really cool 

- I like the setting and the atmosphere with the background music.

- The ambient music stopped playing after a view minutes 

- Looking forward to see a full level of this game 👍 :)

(1 edit)

I tired to play it but I can't jump :(

It says for Joystick detected but I have 0.

 

Game Title

🔵 Circle Pusher 🟢

Pitch

Play as a rocket-powered spinning glowy circle and fight against your opponents in a best-of-5 Battle. Each round, you can equip new parts and install powerful modules to improve your chances for success.

I'd like feedback on

  • Can you see potential in the current version?
  • Can you see yourself playing this against a friend?
  • Do you think it's a good idea to keep player controls tied to an item?
  • Any cool ideas for parts or abilities I can add?

I need help on

Music and Sound Design - if you are interested in helping me improve this, let me know :)

(7 edits)

Hi everyone!

First of all here is the Game -> 🔵 Circle Pusher 🟢

I didn't manage to write a Devlog for the past 2 weeks, but I'm taking the time now to write this Post Mortem.

I tried working with the Cycles Theme, and like many others, my mind first went to bicycles. While I do like my bike, I didn't come up with a solid idea for it. The first thing that I added into my notes then was 

"Ideas: Two spheres trying to push each other out of a game zone (another sphere)." 

So, that's something to work with.

I pulled up the gamer socks and started prototyping.

Goals

I didn't set many goals for this jam, having a good time and avoiding an all-nighter on the last day was all I aimed for 😁.

Week 1 - Pushing Circles


I aimed to keep the scope as minimal as possible because I knew I wouldn't have much time in week 1 and wanted week 2 mostly for polish, balancing, and fancy neon visuals. At this point, there was a chance to stick to "Two spheres pushing each other out," but, needless to say, I completely failed on that objective.

Week 1 summarized:

- Struggled to decide whether I needed a RigidBody2D or CharacterBody2D for my circles. In hindsight, it's pretty obvious that all movement is based on physics, so RigidBody is the right call.

- Center force based on a surface texture gradient. Probably the most interesting thing in the game 😄. Using a 2D Gradient to define the "slope" of the arena to force the circles towards the center. I had a bit of a struggle converting the circle positions to the texture space, but I got it working in the end 👍 (I'll make the source code public after writing this, if someone is interested).

- Making things glow in Godot 4. This turned out to be a bigger issue than I was prepared for. But I learned the following things:

   - Godot 4 renders all 2D games currently in SDR, so increasing a color property above 1 does nothing. You have to reduce the HDR Threshold below 1.

   - There is now a PR to improve glow for 2D games 🎉

   - Godot 4 always uses the Compatibility Renderer for web exports. There is no glow or any additional shader passes for web exports, resulting in a broken arena outline and no blur effect for my title/end screen.


Week 2 - Scope issues

I've been playing a lot of Brotato, and I'm deep into modding there as well. So, I kind of just went and added a shop system to the game. Much of what's required for this isn't visible. I added an "effects" and "parts" system that allows creating resource-based items for the game.

This is what the data for the Control Panel looks like. Brotato modders will probably recognize this pattern 😅

This is very likely the cause of why the game isn't finished at the time of writing.

I now had to make all the properties of the RigidBody variable and ensure that these values work with each other and the play area. If you give the game a shot right now, you will see that this has not happened yet. The only thing I managed to add is the weight of each part.

Conclusion

I once again realized how easy it is to fall into the scope creep pit. But I regret nothing 😄. I'll continue working on this for a few more weeks and hope I can make it at least a bit fun, so I can play a round or two with friends and have a laugh at my top-notch sound design. If you're interested in following the progress, maybe give me a follow, and I'll keep you updated on how it's going :).

I at least achieved all my set goals: I had a good time and went to bed early yesterday (there was no way to fix this in one night 😄).

Cheers for organizing this Jam 💚


Great fun! :) Maybe you can add some padding on top by adding a banner? Would be nice if the game is a tat more centered :)