Week 2 Basic Level Blocking and Improved Movement


Week 2 DevLog - Basic Level Blocking and Improved Movement 

The itch.io version of this document is limited by restrictions on the size of images. Some images are missing from this version but can be viewed in the document attached at the bottom of the page.

Tile Palettes and World Sprites

This update commenced with the creation of several tile palettes, each featuring sprites for different biomes. A new palette was added for each subsequent level, aiming to establish distinct visuals for each stage. Level 1 introduces two palettes. The base palette includes ground and grass sprites, likely to be recurrent in all levels. The other palette, the temple palette, was selected for Level 1 due to its compatibility with the intended visual style, representing the base of the game's tower.

World Palette

Please note that none of the sprites featured in this devlog are my own. They are created by Anokolisa and are available on itch.io as part of the Legacy Adventure Pack. Links to each respective asset pack can be found at the bottom of the devlog.

Game world – Level 1

The inception of the Level 1 game world serves as a tutorial area, instructing players on basic movement, jumping, as well as wall sliding and wall jumping mechanics. The level employs a separate tile grid for ordered tile rendering, facilitating the placement of certain sprites in front or behind others. This creates an illusion of depth in the world despite it being a 2D game.

Level 1 World

A plain-coloured object was inserted into the level as the furthest rear layer, with two cloud assets positioned in front to depict the sky.

Level 1 Sky

Progress was initiated on constructing the main part of Level 1, but during testing, I realized that the current implementation of player movement was subpar. Specifically, wall jumping was not enjoyable; in fact, it was quite frustrating and visually unappealing. While a degree of challenge is intended in this game, as players are expected to gain skill with the movement system to succeed, it should still be enjoyable. Consequently, the remainder of this update primarily focused on rewriting the entire movement system. This had to be addressed before advancing further with level design, as the latter is contingent on the constraints of player movement.

Player Movement Version 2

Instead of switching to a different player sprite to simulate changes in movement direction, the new version simply flips the player sprite when horizontal movement changes. This facilitates easier management of sprite changes during wall jumping, which was quite restricted in the previous movement implementation. It should also simplify the implementation of new movement abilities or power-ups in the future.

While the actual jumping movement remains unchanged, options for user input to jump have been altered. Now, tapping the jump button executes a half-height jump, while pressing and holding the jump button for the duration results in a full-height jump.

The new movement handles wall jumping entirely differently. Rather than jumping onto a wall and removing gravity on the player, the player will now slowly slide down the wall. This necessitates quick reactions from the player, making wall jumping more challenging. Additionally, it appears more realistic compared to the player simply adhering to a flat wall.

 

Instead of using a raycast to detect if the player is on the ground or wall, the new method utilizes an object as a child of the player to detect collisions with the aforementioned types of objects. While ray casting was a valid option for this functionality, it was much more difficult to work with than the new method, particularly for someone with my limited knowledge on the subject.

The velocity applied to the player when performing actions is largely handled the same as in the first implementation. However, the management of the player's action status has been refined somewhat. Determining when a wall jump action should be performed has also been improved, resulting in better initiation of wall jumps upon the player's input, making wall jumping feel more enjoyable and less frustrating.

 <New_Wall_Jumping_Demo.gif>

Power-ups & New Movement

Efforts were made during the creation of the new movement system to set up the script to allow for easier implementation of power-up functionality by having the logic for each power-up as its own discrete function within the code. To that end, a simple double jump ability was implemented to test its ease of implementation.

 <Double_Jump_Demo.gif>

A second power-up, the dash ability, was implemented, providing the player with a boost in the direction it's facing when the shift key is pressed. This power-up was highly enjoyable to use during testing and moderately alters gameplay, allowing for some creative thinking in its usage. The ability includes a trail effect that follows the movement of the player's dash.

 <Dash_Demo.gif>

Further Iterations

Although I am quite pleased with the new player movement and do not anticipate any major changes, there might still be some minor adjustments in the coming weeks. A top priority at the moment is sourcing sprites for the player that I am content with using and integrating their animations into the movement. While the core animation functionality has been completed, the code for updating animation states needs to be integrated into the new movement script.

By the end of next week, my goal is to have completed the integration of animations and at least the first couple of levels, while also implementing new distinct environmental challenges for each level.

Assets Sources

Assets featured in this devlog are owned and authored by Anokolisa and are used with permission - 

https://anokolisa.itch.io/.

Ground and temple packs -

https://anokolisa.itch.io/sidescroller-pixelart-sprites-asset-pack-forest-16x16

https://anokolisa.itch.io/pocket-pack-black-temple

Files

DevLog Week 2 Basic Level Blocking and Improved Movement (Full Version) 40 MB
May 05, 2024

Get Skybound Ascension