Table of contents
Brand New Week
So this week was honestly probably the best week I've had working on Cerebral so far and I'm feeling quite good about the future of the project. I worked primarily in editor this week as I did a lot of code in the previous milestone and was busy building out the skeleton of the tutorial level in this weeks build 0-alpha.4
This included:
- Dialogue and subtitles,
- Objectives
- UI changes
- More bug fixes and improvements to fit the game's actual feel.
0-alpha.4
For this milestone this was the initial objective I wrote on the SCRUM board
๐ก This milestone's primary focus is the first level gameplay and a few other core mechanics
Here is a quick breakdown of what was implemented this week:
Created an interactable base class for future implementations of interactable and their events created in mind for possible future inventory items or just interactable components to fire events like opening a door or pressing a button.
Added a cooldown for sanity after the player is in a safer area
Added a max health cap so as sanity increases and it increases your health it still has a cap it cannot go past.
Fixed: Max health increases were not translating to current health changes
Added walking and running sounds with a base for physical surface setup in the future to change surface sounds.
Built the tutorial level with features including objectives, dialogue and subtitles, level managers, and more.
Interactable Items
These were designed with multi-functionality in mind and meant to be used or have the ability to be inventory items later on when the player inventory system is implemented which I can confirm will be in Cerebral. With this in mind I added some basic properties to make the base class a bit more dynamic so that the inherited objects could have custom actions and events without rewriting the interaction code.
UPROPERTY(VisibleAnywhere)
bool CanInteract = false;
public:
virtual void Tick(float DeltaTime) override;
void CleanupFromScene();
void OnInteract();
UFUNCTION(BlueprintImplementableEvent)
void OnInteractFireChild();
// Config
UPROPERTY(EditAnywhere)
int32 NumberOfUses = 1;
UPROPERTY(EditAnywhere)
FString HintText = TEXT("Press F To Use");
UPROPERTY(EditAnywhere)
bool InventoryItem = false;
Although this is an ugly example, this is an example of what an interactable-item that is a non-inventory item looks like. In this case the base class notifies the inherited blueprint that the player has interacted and the blueprint can run it's personal code.
Objectives
With the prototype objectives I have the player try out some basic movements. To verify completion I setup triggers and other events to track the player's progress like this one for example. The very first objectives is for the player to walk around. For this I used a basic calculation. To avoid showing all of the code here is pseudo code of what I did.
if((GetWorld()->GetPlayerCharacter()->GetActorLocation() - StartLocation)->VectorLength > DistanceToMeasure)
{
// This is a completed action do ____ etc...
}
With this I decided to add some identifier to where the player should be going for these objectives. For the tutorial this was fine however this will not be a common theme throughout the game. Leaving exploration and curiosity with a mix of difficulty is important to creating a good player experience.
Next Milestone
Because this milestone was a bit hard to talk about I wanted to take a minute to talk about the upcoming milestone already in progress. With milestone 0-alpha.5 I have a lot of cool features that I will be able to show and explain in the next dev-log. Here are some of the things you will see next week and my primary goal.
๐ก This milestone's primary focus is to create some of the supplemental level features, block out layouts and improve post processing and lighting effects
Complete blockout of the first tutorial area and it's gameplay structure
Adjustments to post processing and lighting to create a prototype base for the game's future rendering.
A document system including notes and other important files the player may need to read to solve puzzles or learn more about themselves. With documents they will be called brain notes and they represent memories or thoughts but brought into the non-existent world of your virtual brain as physical items like documents.
A document compendium for reading and keeping these documents.
Adding light gun effects to the darkness volume so that the light gun's effects are being used in the alpha build.
Adding basic sounds to things like crouching.
Conclusion
I hope you enjoyed reading this devlog and I hope showing you what is to come has you excited for what is to come! With this I am also announcing we are forming a team! Starting in the next few milestones we are looking for a few key positions to develop this project.
Community Manager (Lead marketing and Community Engagement)
3D Artist
Sound Designer/Producer