All righty ladies and gentlemen; here is the mechanic that I have been extremely excited to show you all for a while. Introducing Juda's new ability: Windsurfing!
After a ton of tweaking and a lot of problems, I finally have the windsurfing mechanic working and it feels sooooo satisfying going up and down with the waves. This was a huge beast to tackle so I will boil it down into the basics of how it was achieved. 1. The water shader is an asset from the unreal marketplace 2. The water shader comes with a function that tells me the wave height at any given time 3. Unfortunately, the material itself does not match where the collision of the plane happens, so colliding (having Juda stay atop the waves) was simply not working 4. Therefore, instead of having Juda collide with the material, I added a separate plane that is invisible but does have collision. Additionally, I added a volume on top and below the water to determine if Juda is above or below the water. 5. Whenever Juda is close to the water, the function fires frequently enough to move the invisible plane up and down with the water material. 6. It took a ton of tweaking to make it feel right, but now it works great! Now I can simply drag and drop the water bp into my levels and have it automatically work
0 Comments
Now I have added super cool pushable platforms. There will be some functionality for reseting for certain puzzles but I haven't decided how I am going to do that quite yet. Anyway, here it is:
These ones work very similarly to the push blocks I posted about earlier. However, instead of enabling physics when the player enters the space, I check to see if the player is still pushing for a full second and, if so, I add an impulse for the floating platform in the direction the player is facing.
A quick video showing the different types of platforms that I have currently developed for Juda.
YELLOW: For this moving platform, I basically lerp an actor location for 100 units every second. From there, I have a public variable exposed to the BP that tells how many times I should loop through that iteration before doing it backwards. Essentially, this lets me control the distance that the platform travels. PURPLE: There is a hitbox on top of the platform and when the player enters it, I have the platform actor continually loop through a function which lerps its actor location. Whenever the player jumps off, I lerp back to the original starting location of the platform RED: The hitbox on top of the platform now enables gravity for the actor and lerps between two colors (the default gray and red, and the new black). After an amount of time (which is a public variable exposed to the bp), I lerp the location back to its default.
I added a new block pushing system which I am quite happy with. Also pretty happy with the cute pushing animation. You know when you try to get out of a pool on a ledge and you flail your legs around to help push you up? That's kind of what I imagined it would be like for a winged creature to push a large object... them flapping their wings to give some more push force.
Added a simple tip system in Juda to help give the player some advice as they go through the game. With this new system I developed, now all that is required to add a tip is to drag it into the level, size how big of an area you want for it to be shown, and add the text for it! New tips made in under 20 seconds now!
It took a while to get the system working how I desired it, but I think it will be fairly smooth sailing going forward! Although the loading screen itself will be remade to look much better (maybe will add a cool fog effect like the skyrim load screen), I am super happy with how the system works so far.
I used level streaming here. Whenever I transition to the next place, I load a few variables into my game instance which tracks what level to open and where the actor should spawn, also fading out the audio for that level and fading the screen to black. I have a persistent level which adds a widget to the screen and I call for the next sublevel to be loaded. Once that sublevel is loaded, I place the player where I want them, give an extra second for any pesky grass to spawn in and fade out the widget via an animation. Works like a charm so far!
Although Juda is light as a feather in the air, he does have trouble underwater somehow... in fact, he sinks like a rock! Watch the video below for a brief look under the waves with a nice blue post-process effect and slowed movement.
All righty wonderful peeps; time to give some insight into my goals and game design plans for Juda. So far I have plans for 4 basic objectives in each of the twelve levels:
1. Primary goal: obtain the major light (one per level) 2. Secondary goal: obtain the minor light (one per level) 3. Tertiary goal: collect all mini lights (many per level) 4. Quaternary goal: Save any endangered creatures in that level (one to three per level) In each level, there will be some sort of boss defending a major light. Once Juda obtains a major light, he will get a new ability (or a significant improvement on an old ability). Juda will have to collect twelve major lights to defeat the final boss. There will additionally be a minor light in each level which again grants Juda an improvement on an old ability (the entire game will be completable without getting any of them). Although the world is immediately open, a great deal of the world will not be navigable until Juda gets a major ability from one of the previous levels. I.e., one level entrance might be too high too jump to, so Juda must have the Spring Wing ability before he is able to reach it. There will also be friendly creatures in each level. Juda is a peaceful guy and loves the friendly animals around him. For the player, there will be optional mini-quests to help save these creatures in each level. This will likely have no effect on gameplay, but will effect how the story plays out in the end, depending on how many creatures Juda saves in each of the twelve levels. Lastly, there will be many mini lights collectable in each level (maybe 20ish?). If Juda collects all of them in a level, something good will happen, although I haven't definitively decided what that will be (likely a small health boost, like collecting heart pieces in Legend of Zelda games). Oh, and one more thing. I have plans for a companion that Juda will find after the first two or three levels. In some of the levels, the minor light will be an additional companion ability (instead of improving on one of Juda's abilities). I have this companion upgrade planned for three of the twelve levels.
Mini Lights - Lots per level so collect them all
Minor Lights - One per level (improve an ability) Major Lights - One per level (get a new ability or a significant ability improvement)
Just a quick glance at the localized fog particles I was working on today!
|
AuthorOur genius Reky Studios blogger extraordinaire, mmmmGoodDinner. Archives
August 2019
Categories
All
|