Posted October 27, 2022 by Hrtz
Hi!
I'm working on the second level and two thirds of the tasks are done.
I wanted to make level 2 much simpler, but eventually decided to add more details, tiles and functionality. I was missing doing pixel art because of all the rewriting of code so I made much more details to the level and at the same time I tried not to make it look "too busy".
Here are the elements I've implemented:
Level design of level 2
Game logic:
Art and animations:
Sounds:
Tileset collisions
Because of adding more layers of tiles I've decided to use a special grid level for collision. That way there will not be too many collision-objects to check while the player is moving about. Terrain tile-set is still used for collision so I don't need to change the first level by adding new, and also terrain tile-set has slightly different collision boxes because some terrain tiles are not boxes and have some rounded corners.
Collision grid level is shown in green. During gameplay Tilemap renderer is disabled.
Enemy scripts
I've changed the Enemy Trap type script so I can create enemies which use patterns of attack and are not activated by a player entering the area.
Script is rather simple and controls the animation, sound and bounding box activation.
Enemy trap script
There is also a new script used for Enemy turret types. It will be updated for future levels, but for this enemy I needed just projectile creation since for level 2 I will be using only the Acid drop enemy.
Enemy Turret script
This script generates projectile object, in this case it's an acid drop.
Projectile has its own characteristics. It will always impact/collide with objects tagged "player", but can collide with some layer masks, as visible here - it will collide with terrain and water layer masks.
Acid drop object uses gravity / mass to "move" so it just falls down.
Upon impact, a projectile can generate another object. In this case it will generate an Acid splash object.
Projectile script
Acid Splash object is a simple Effect object and has a script that will play one random sound and be destroyed after its animation is finished.
Effect controller script
I use this script for other effects too, like water splash and respawn.
And here are the elements I still need to do before level 2 is finished:
Game logic:
Art and animations:
Sounds:
Write and implement:
Maybe:
Skip text in cut scenes could take a long time to develop if I decide to rearrange the whole cutscene control system which in fact uses three separate logics - dialogue, objects control (player objects for example) and camera control. All of those have their own time control.
Simpler way would be to just skip dialogues and the rest to reduce time accordingly, but that would not make the entire cut scene segment to be skiable.
I still need to think about it...
And I still have to make a lot of sounds! That's somewhat difficult for me, and always was - I start losing feeling for the sound if I'm tweaking it for a longer period of time. There is a mess in my head and I just don't know what I'm listening to any more.
I did a lot of sounds in my life but I would rather hire a professional to do that... once I get rich!
And that's all for now!
Thanks for reading and stay tuned!