Charcuterie Chaos
ROLE
Lead Gameplay Programmer | Assistant Systems Programmer
DESCRIPTION
A third person multiplayer puzzle adventure game in which the players controls various cheese character and their unique abilities to fight enemies and navigate difficult terrain.
PROJECT TIMELINE
Jan 2024 - April 2024
GENRE
Co-Op Puzzle Action Adventure
PLATFORM
PC
DEVELOPMENT
Unreal - C++ - Blueprints

TAKEAWAYS
Developing this game pushed my technical, creative, and leadership skills to new heights. I gained insight to the workings of a game industry project and the complex tools that are commonly found in games today.
PROGRAMMING
Programming the gameplay took the most time, but configuring the multiplayer components took the most effort. I became well versed in the Unreal multiplayer plug-ins and how to use them to properly replicate player actions and the surrounding environment.
DESIGNING
The unrestricted nature of the assignment allowed for a great amount creative freedom. Building character designs and abilities that complemented each other and contributed to interesting and fun gameplay was a wonderfully brilliant challenge.
LEADING
As the Lead Gameplay Programmer on this project I managed the tasks of several other peers as they worked independently to compose the game mechanics, animations, and systems.
THE GAME

Co-Op Multiplayer
Diverse Character Options


Engaging Combat
MY CODE
Cheese Ability CPP
Cheese Ability H File
Ability Replication
Ability Execution
Niagara Particle System
Downloads
#include "CheeseAbility.h" ACheeseAbility::ACheeseAbility() { PrimaryActorTick.bCanEverTick = true; bReplicates = true; } void ACheeseAbility::BeginPlay() { Super::BeginPlay(); } void ACheeseAbility::Tick(float DeltaTime) { Super::Tick(DeltaTime); } void ACheeseAbility::ExecutePrimaryAttack_Implementation(ACharacter* Character) { // Implementation of primary attack } void ACheeseAbility::ExecuteSpecialMove_Implementation(ACharacter* Character) { // Implementation of special move } void ACheeseAbility::Server_ExecutePrimaryAttack_Implementation(ACharacter* Character) { // Implement server-side logic for ExecutePrimaryAttack here } bool ACheeseAbility::Server_ExecutePrimaryAttack_Validate(ACharacter* Character) { // Perform validation checks here if needed return true; // Return true to allow the function to be executed }
#pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "CheeseAbility.generated.h" UCLASS() class CHARCUTERIECHAOS_API ACheeseAbility : public AActor { GENERATED_BODY() public: ACheeseAbility(); protected: virtual void BeginPlay() override; public: virtual void Tick(float DeltaTime) override; UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = "Abilities") void ExecutePrimaryAttack(ACharacter* Character); virtual void ExecutePrimaryAttack_Implementation(ACharacter* Character); UFUNCTION(BlueprintCallable, BlueprintNativeEvent, Category = "Abilities") void ExecuteSpecialMove(ACharacter* Character); virtual void ExecuteSpecialMove_Implementation(ACharacter* Character); // Server-side implementation of ExecutePrimaryAttack UFUNCTION(Server, Reliable, WithValidation) void Server_ExecutePrimaryAttack(ACharacter* Character); void Server_ExecutePrimaryAttack_Implementation(ACharacter* Character); bool Server_ExecutePrimaryAttack_Validate(ACharacter* Character); };



