Posted March 14, 2023 by Alternativve
For this week, Vivien started defining and documenting each aspect of the art style, including the shapes, colours and textures for the Environment and the character. For that, we also explored concepts for our hungry costumer.
After some further research, we settled on the hand-painted stylized art style. A big inspiration for that was the game “Rayman Origins” and “Unruly Heroes”, which successfully combined 3D and 2D in a unique way. We also decided that our restaurant will be a small, cosy street restaurant with classical Chinese aesthetics.
The shapes of both models and sprites will have a sharp feel to it. Not to round, not to spiky. A good combination of both will give the feeling of an expressive and fun environment!
The colours are highly inspired by classic Chinese colours: warm reds, yellows and oranges in the front with contrast to the cold, blueish background. We want our restaurant to look like nice for a place for a midnight snack!
But then we also had to think about who is going to receive all the yummy snacks?
Our plan is it to create a big, friendly character with a round body and a big mouth. The goal is it to motivate the player to make this cute looking costumer happy!
At the end we decided to go with a big chubby dragon. A perfect fit for our Chinese inspired environment.
If we have some extra time by the end of our project, we’d love to add additional costumers!
For the implementation in our game we are planning to go with a more unique approach, similar to the characters in “Rayman Origins”. The achieve the painted 2D style, we will split up the 2D character in several parts. Then, after preparing the sprite sheet for our character, we will unwrap each part on separate 3D planes. The layered planes will give a 3D illusion and allow for puppet-like animations. To get an idea of the workflow we set up a quick prototype:
Hey. So last week I (Koen) attempted to implement soft body physics using both Unity and Unreal, and I quickly found out doing it in Unreal was going to be quite tough. Actually making the mesh physically deform, despite my efforts, wasn't working, so I looked into other options.
One of these options is Mesh Distance Fields (distance from one mesh to another).
Using this distance you can quite easily make a mask out of it, to then use this to deform a mesh
As you can see it's far from perfect, but it's getting there. It's missing one major factor though contributing to a convincing effect: Jiggle.
I managed to fake this using a hit event, which would then generate a mask on the mesh showing where it got hit.
If you inverted this mask (aka the bits of the mesh that didn't get hit), and then used a curve on this bit to deform the mesh in a smooth fashion, you can get a somewhat convincing jiggle effect.
I combined both the Mesh Distance Fields with the jiggle effect, and got a decently convincing fake soft body effect (still needs some fine tuning as you can see, but you get the idea)
Once spawning food and picking it up was no longer a concern, I moved on to making a conveyor belt upon which the food will spawn in and move across the screen for the player to pick up.
This was done by adding a triggerbox on a simple plane object and checking whether or not the object on top of the conveyor belt was a food object or not, I just checked the tag of the gameobject to deduce that.
It worked out in the end as seen in the gif below.
Howdy, Hovo here! Last week's prototype got a lot of approvals, so this week I had the opportunity to add more features to our wonderful game.
One of the requirments for this project is the usage of Unreal c++ instead of blueprints. So first I spent some time converting the previous prototype to c++. This was easier than I expected and I got the hang of the c++ workflow in Unreal.
During our last dev meeting me and Jonas discussed the food attachement, more specifically different approaches that could also work. If you remember, last week I had collision attached to the bottom side of the chopsticks. I tried something else this time.
Instead of having custom colliders, I let the chopsticks act as full on colliders.
As you can see the food just jumps to the middle. While this can be resolved by improving the math behind it, I preferred not to spend too much time on this. Instead I went back to the previous approach, but fine-tuned it. Now the custom collider covers 1/4 of the chopstick.
Next, I implemented the conveyor belt. It has a USceneComponent where food gets spawned. When the food reaches the end it gets destroyed. I tried to rotate the USceneComponent to make it's forward vector face the direction that I want the food to go to. Unfortunately the rotation could not be changed, so I hardcoded the direction for now. I will have to look into why the component can't be rotated.
The result is what I wanted to see, but sadly I couldn't test the food picking up from a conveyor belt. It's hard controlling 2 controllers at the same time, so I have to wait until our next meeting to playtest it with the rest of the team.
To finalize this week's prototype, I added the long-awaited customer that craves food. We decided to have them "eat" the food when we drop the food in their mouth. I check whether the food IsSimulatingPhysics and is inside the mouth collider. In that case, I destroy the food.