Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

[DevLog] SkyCrawler, a platformer that challenges your notion of gravity

A topic by oneir👁️mancer created Oct 13, 2020 Views: 596 Replies: 17
Viewing posts 1 to 18
Submitted (6 edits)

Hi! I come here from Ludum Dare, and I’ve decided to join this jam because I really want to continue working on my entry. Which means that I already have quite some progress on my game and an MVP that you can check out.

What is SkyCrawler?

SkyCrawler is a puzzle-platformer, that is focused on breaking your stereotypical concept of gravity. It pushes you to think of gravity outside the box and use that to solve platforming puzzles. The core mechanics is elegantly summarised with this picture:

You can already check the game out: https://oneir0mancer.itch.io/skycrawler

Or rate it on Ludum Dare: https://ldjam.com/events/ludum-dare/47/skycrawler

Tools I use

  • Unity
  • Photoshop for art
  • Audacity for sounds
  • Guitar Pro for writing music (yep, I’m a wierd one)
  • ScreenToGif for making all those gifs

Quick progress recap

What is my endgoal?

At the moment I just want to tidy up and refactor the code, because right now it is a mess. Then, I want to start propeply implementing some stuff that I had to cut at the end of the jam, like an enemy that you see on the last level. In my head the idea has really grown from a simple gimmick to a full-fledged platformer with a lot more movement mechanics, combat, and a dozen of pages of lore. And while I am hoping to make it all come true, realistically, I aim to introduce at least one new mechanic and at least double the amount of levels I currently have.

Submitted (1 edit)

Day 1 (not really)

Today’s work was focused on reimplementing level transitions. I try to design the levels to flow one into another, which helps me to have a certain structure to the world:

During the jam I decided to choose a hacky solution of keeping each level in a separate scene. While it generally worked, it resulted in little but noticeable stutters when a new scene was loaded into memory. Plus, scene transition would eat all the sounds and particle effects that were playing (if they weren’t set to persist between scenes).

So, I was fixing just that.

Since I treat my levels as one continuous level, the obvious solution would be to keep them in one scene:

The transinion from one methon to the other went smoothly, except for some resetting issues that came naturally with reloading the scene.

Submitted

Day 2

So, it turns out it’s quite hard to do everything right on the first attempt. Transitioning to the next level worked like a charm, but restarting the level had a bunch of problems. Today I was fixing those: double animations, double sounds, resetting all the stuff that needed resetting, reenabling all that needs reenabling. I think I managed to make it again playable from beginning to end, but I still left a few hacks that need fixing and polishing.

Submitted

Day 3

Today’s, and probably tomorrow’s, work is reimplementing gravity. I actually had two “gravities”: first uses default Unity physics simulation, and it was used for player character only. Second one is a hardcoded gravity specifically for an enemy I added in the last day of the jam. I basically have two scripts that have almost identical code, plus a lot of hacky coupling with other components.

So I set to reimplement it and have one unified system, that is all clearly written in code and doesn’t use Unity physics simulation.

The idea behind my gravity implimentation is quite easy: find a collision point with a platform, get a normal in this point, use the tangent and the normal in this point as x and y axis.

For jumping I just fix normal vector until I collide with a platform. I also smooth “horizontal” movement in air, and to get horizontal velocity in local space I project character velocity on the tangent vector using dot product.

Submitted

Day 4

I’m just going to say it, refactoring game’s code is so frustrating. You deliberately break the game, and than work super hard just to get it to basically the same state it was at the beginning. It’s getting on my nerves.

So I took a little rest from coding, and instead worked on music and done some art for my game.

Submitted

Day 5

Focused on setting up gravity for this enemy dude. Plus some fixes to keep the momentum during air movement.

Submitted (1 edit)

Day 6

Not much done today. Mainly playtesting, bug-fixing and polishing the new Web and Standalone build, and publishing it on Itch.io page.

Submitted

This looks like a cool concept!

Submitted

Day 7

Working on pause menu. Not sure yet how the whole UI thing will be working, right now I’m just testing the ideas.

Submitted

Day 7

Working on some new mechanics - rotating platforms.

Submitted

Day 8

Worked on more new mechanics:

Gravity reverse

and the ability to fall through platforms

I’m really in two minds whether I need to be improving platforming elements or focus on enemies.

Submitted (1 edit)

Day 9

SkyCrawler didn’t really have any plan for a post-jam development. The game was designed as a jam game - something I can finish in 3 days of development, something that people can play through in 5-10 minites. And up until now I kinda went with the wind, fixing bugs, inplementing some cool mechanics I came up with.

So that’s what I was doing today. Planning. Deciding what should I change to make it into a 30 min long game instead. Deciding which design elements confine me, and which help me add new levels and iterate on mechanics.

Submitted (1 edit)

Day 10

Done some coding stuff, but mostly been sketching new levels with new mechalics:

Submitted

Day 11

Working on the new flow of the levels, that won’t rely on one single base platform that is present on all levels (like it was in jam version).

Submitted (3 edits)

Day 12-14

Working on new levels. Trying to squeeze out everything I can from the mechanics I had before I move to the new ones.

Submitted

This is like a whole new concept to platforming, this looks cool!

Submitted

Day 15

The levels, that I planned for, are done. I still need to make some more graphics and probabily extend a song which feels too repetative right now. After that - playtesting, playtesting, playtesting.

Submitted (1 edit)

Post-Mortem

Oh boy, what a month it was! And not just this month, I think I’ve been doing games for gamejams for 3 month non-stop. And so far SkyCrawler is my favorite game to work on!

What went right

The Ludum Dare jam was a great jump-start for the game! 72h constrains pushed me to focus on essentials, to come up with the strong hook and just work it to the bone. And then the rest of Devtober I could just work on those little features I discarded because they were time consuming, and just polish the game.

But then I remembered that I want to add some more levels and some new mechanics because the game is like 5 min long right now…

What went wrong

The scope of the game was a little too small, and yet most of the time I was just fixing and polishing what was already there, or experimenting with the new mechanics I just came up with. I didn’t have any plan in mind and just went with the wind.

And that’s why the last week was really straining for me. I had to rush a bunch of new levels, planning as I go. Naturally, I didn’t have nearly enough time to properly polish them. It was “last day of the jam” all over again.

Conclusions?

I was just making a game at my own pleasure. It’s not bad, but when you have a time constraint, you gotta do some planning. Otherwise I just lose my track.