Posts

Garden 2 August updates

Image
August felt pretty slow in terms of progress probably because of only working on pixel assets. Anyways... The gunship sprite is now finished along with separate sprites for the hard points. The gunship sprite. The hardpoint sprites include a rotating turret and a rocket launcher that rises up opening the launch pods.  I also made sprites for the beams fired by the turret and explosions from the rockets fired from the launcher. Next up is importing the sprites into Unreal and putting them into use. There are also a couple of character sprites to do before I can start working on the remaining level sequences.

Garden 2 June & July updates

Image
  June and July blog posts are combined into one, because of how little progress there's been due to me taking some time off during summer. The remaining level sequences The second boss' introduction sequence was a pretty straightforward process, with the most important thing being to disable the boss AI when the sequence begins and re-enable it with a delay once the sequence ends, so the boss doesn't immediately rush on the player. The sequence leading to the first boss fight. While writing the sequences involving the second boss I wanted to have all the assets involved in the sequence done. So I booted up Aseprite and started working on the pirates' spaceship. Other assets required would be the boss and a couple of characters that show up later on. Pirate gunship assets I spent a good while figuring out how I wanted the gunship to look. My initial thoughts on the shape were something similar to a turtle, a round-shaped middle section with a pair of wings. Before proce...

Garden 2 May updates

Image
Sprites I started out May by creating individual NPCs from the existing base class and adding some necessary animations before I could tackle the cutscenes by using level sequences. Finishing up the animations for rest of the characters will be done after I know what each of them are doing during the cutscenes. Princess Unu's walking sprite. Level sequences The level sequences turned out to be pretty straightforward to use for my purposes, though there are lots of options and adjustments to make which take most of the time. The sequences in Garden 2 mostly control camera movement and trigger events from the actors usually for moving or playing dialogue. The sequences play out at the beginning of the level and when the player reaches a certain areas in the level, for example a boss introduction sequence plays when the player reaches the boss room for the first time. A take from the sequence that plays at the beginning of the level. Speaking of bosses, I had to add all of the dialogu...

Garden 2 April updates

Image
The second playtest The second playtest took place in early April, it featured all of the playable content that was planned for the game. A separate post about the test can be found here . Character sprites As I began to shift more focus on building the storytelling in the game, I needed characters to tell the story, which meant it was time to create some sprite assets. Most of the characters retained their design from Garden: Urada Chapter, so the design process itself required only a little bit of sketching. The sprites used the main character's sprite as a base, with each character having a unique silhouette and color scheme. Most of the characters have only idle sprites for now, as I'm figuring out which kind of sprites each character requires for the story. The sprites of the main cast. Dialogue Another key feature of storytelling is dialogue during cutscenes and when the player interacts with NPCs (non-player characters). I wanted to try to make a system where the dialogu...

The second playtest

Image
The second playtest included all playable content of the game: the level as a whole, character progression, enemies, treasures, functioning shortcuts, and two bosses.  The test itself went much smoother than the first. It was conducted on the same PC as the first so I could see if the performance had improved. The game's default graphic scalability is now set to epic instead of cinematic and I assume that my custom-made materials are more lightweight than the prototyping materials I used earlier. The graphics card's VRAM ran short once again, but only by around 100 megabytes. The frame rate doubled compared to the first test's and the input lag was gone.  The playthrough of the level went smoothly without any issues or difficulties. Both of the bosses took several attempts, which was within my expectations. I was initially worried that one of the first boss' abilities was unclear. The boss jumps and slams the ground causing an earthquake that damages the player if they...

Garden 2 March updates

Image
Enemy respawn when resting at a save point To make enemies respawn when the player rests at a save point, I went back to the enemy spawner and created an event that spawns new enemies in place of defeated ones. It simply goes through an array of killed enemies checking if they should be respawned and then removes the enemy from the array. The event that respawns enemies. To prevent duplicate enemies from spawning when resting after loading the level, I created a second event that clears the respawning enemies from the array when the level is loaded. Clearing respawning enemies from the killed enemies array. I noticed that removing an item from an array that is being looped through caused the next item's index to drop by one and it would not be included in the loop, always "skipping" the next index after an item is removed. So any changes are made in a temporary copy of the array and after the whole loop is finished the original array is updated with the information from t...

Garden 2 February updates

Image
Custom damage event One thing I wanted to do for a while was to create a custom event for applying damage to actors. This allows passing more detailed information about the damage than Unreal's default Apply Damage event. The custom event passes a structure of variables. One key variable is the type of incoming damage, which is based on an enumeration that contains all the damage types. Damage info structure is created and sent to the actor receiving the damage. The actor receiving the damage parses through the structure and for example, uses the information to determine what type of defensive stat should be used to reduce the damage. The defensive stat is selected and whether the attack can be avoided is based on the received damage info. The damage info is passed via an interface for combat actors, so any actor not participating in combat can't receive damage. Player respawn Previously, when the player character died it would simply get restarted at a designated location, but...