[THE DEVLOG]


[DAY 1] (The Planning and Preparing Day)

Before the theme was announced, I already had in mind that it would be a movement shooter (I'm a bit addicted to Ultrakill lately, got inspired). And when the theme was announced, I stared at the screen until my brain came up with some ideas. I don't remember the discarded ideas, but I decided that the "power" in time is power would be interpreted as energy.

Then it came to mind: "What about an inverted world?". So I inverted "time is power" to "power is time" and realized it could also be a mechanic that links both themes together.

At the end this is the idea: You have a battery that stores energy, in one world it charges (time is power) and on the other it drains (power is time), the more power you have the more time you get, and in the inverted world, the more time you stay there, the more power. And just to not stay still in the inverted world while your battery recharges, why not add some enemies and guns?

Later that day, I began adapting an old basic movement script I had, which included moving the camera, walking and jumping.

First thing I wanted was for the player controller to be physics based, so external forces could affect the controller.
Day 1 was basically me figuring out some spaghetti code the past me prepared and implementing all the movements I had in mine like wall running, dashing and sliding.

And here is my first error: Although it is a game jam and you are supposed to code faster, you shouldn't do it TOO FAST, mainly when you are making the core mechanics that will be adjusted many times during the development... The future you will be grateful for your beautifully named variables and lack of magic numbers in your code.

Anyways, the player does some sick moves now.
(I implemented the battery mechanic too but it`s just a float that goes up or down with time, if charge <= 0 then game over)

[DAY 2] (The Programming Day)

Most systems where implemented here like: enemy spawn, enemies itself, player gun, and all that is needed for a basic gameplay loop.

The biggest issue was figuring out how to make the world warp system work. It had me wondering how could I do something that changes the entire map textures, sky box, add enemies and enable some systems?

The solution is a World Manager script, it inverts the world with an input, and changes all variables and run functions for each world type. (e.g. input calls world manager, which calls the Material Changer, Enables player gun, calls Enemy Spawner and so on)

It lags the game a bit when inverting worlds, so a warping "animation" was added for 1 second to make those changes. The animation is the camera FOV going from 90 to 180 then back to 90 again, which creates a trippy warping effect.

[DAY 3]) (The Graphics Day)

Tried to think of any game near to what I`m making to get inspired, remembered about Neon Boost.

All platforms would have some neon grid, like the vaporwave aesthetic.

I could do different grid patterns/colors to indicate a different type of platform, which will be done in the future.

I started playing with some shader graphs, but I'm still very new to them. Unfortunately, I couldn't get them to work properly. Here are some of the best results, but there was always some graphical anomaly.


So I stuck with simple things. I just made a square with white borders and set it as the emission map of a ProBuilder made object, and BAM!


Now some Post Processing bloom: 


For the scenery, I just made a big platform for the ground and some mountains in Blender, a big round emissive sprite for the sun and two skyboxes for each world:


The gun is not a brick anymore:


And made the enemies more menacing:


[DAY 4] (polishing graphics and adding sound/visual feedback for things, game feel)

Many small things done, which together impact the game A LOT, i will just list some of them here:

Screen shake + recoil animation + sound + particles + line renderer for the gun, so it feels powerful.

-The gun does an awesome spin after warping.

-The WIN you need to reach becomes LOSE in the inverted world, and you actually lose touching it.
-Some UI for when you can use dash/warp.
-Improved enemy AI so it is less dumb, and added a attack animation and sounds to it:

I got a little inspiration from Post Void, and now the battery instead of a percentage on the screen is something that the character holds, it has a little face that changes depending on your percentage, or if you win or lose:


And I made many other small changes involving sound and visual details that I felt were missing.

[DAY 5] (Music and sound day, some details too)

I need to learn how to make music, but until then, I'll have to search for some good music. This was probably the moment with the worst progress-to-time ratio, as I had to listen to a lot of music and find ones with licenses I could use. Thankfully, I found some that I really liked and that fit the game. They are credited on the game page with links to the artists.

After having music, gameplay, enemies, graphics, I added some things that where missing:
- A win animation and screen, featuring an energy explosion with particles when the player crosses the finish line and a voice repeating the name of the game, similar to SUPER HOT.
- A game over screen.
- A pause menu.
- A main menu.
- A basic settings system, implemented using PlayerPrefs.

[DAY 6] (Polishing more and better controls)

Day 6 my internet wasn't working so I could just do things I already knew, without searching.

- The battery changes its color and face, and the screen shakes when taking damage.


- Better responsiveness all around, added jump buffer and coyote time.
- Increased synergy between skills, like dashing while wall-running, jumping while sliding...
- Discovered many bugs in the controller during this part of development, which have mostly been fixed.
- Balanced the speed, forces, and acceleration of movements.
- Created a jump pad, that if you dash could be used as a boost pad too.
- Created a tutorial, the game has so many mechanics that I needed to split it in two parts, one for movement and other for the warping mechanic. I wanted to make the tutorial feel natural and not rely on text too much, but it would take a lot of planning/testing and I haven't even started working on the levels yet.

[DAY 7] (Level creation day Bug fixing day)

While creating levels using ProBuilder, many bugs were found and 70% of the day was spent fixing them. Bugs that you just find when exploring the mechanics while designing levels.
Made some things to facilitate the creation of levels, like prefabs.
Noticed the player has a LOT of movement abilities and it makes hard to create map designs to support all of it, you can dash long distances and basically climb any surface.... So I created two new platforms, "No Climb" and "Unstable",  the no climb is very simple, the player cannot climb or wall-run these, and the unstable ones do not exist while in the inverted world.
These two platforms made level creation a bit easier and added some complexity to the game.

No Climb:

Unstable:

[DAY 8] ("I really need to make levels, I just have like 4 of them" day)

In my time zone, the jam would end at 10:30 PM, so I slept for just 4 hours and started making levels. Not much to say, I just made a lot of levels this day: 18 levels and 1 really big one as the final one. 

I didn't have much time to test the game, but I called a friend and he tested it quickly. What I got out of this test is that the level path was a bit confusing. So, a quick fix for this was to add some arrow sprites in all levels showing the direction and some arrow variations as a tip for when to dash. 


Then I finished the settings system (which I hope has no bugs) and did some stress tests on all mechanics, quickly fixing some minor problems.

And that's it, the game was ready. I zipped the files and submitted it :)

Lots of fun (and a bit of adrenaline at the end) in this jam!

Get INFINITE POWER

Leave a comment

Log in with itch.io to leave a comment.