Engine Focus
Unreal Engine
Gameplay prototypes, interaction systems, and camera/game-feel experiments built in C++ and Blueprint-driven workflows.
CRT Display and Font-Corruption System
The CRT system is a modular Unreal Engine UI-effects framework that recreates the visual behavior of analog displays. It combines CRT material processing - such as scanlines, glow, flicker, distortion, chromatic separation, and signal instability - with a font-corruption layer capable of altering displayed characters dynamically. The system is implemented in C++ for reusable runtime control while exposing its primary parameters and functions to Blueprint, allowing artists to build effects without modifying shader or gameplay code.
A central CRT controller provides a consistent runtime API for changing effect intensity, corruption state, and material parameters. These properties can be driven from Blueprint events, animations, sequencers, or gameplay systems, enabling effects to react to damage, power loss, interference, proximity, narrative events, or player interaction.
Dolly zoom / Vertigo effect
A dolly zoom is an in-camera effect that appears to undermine normal visual perception. The effect is achieved by zooming a zoom lens to adjust the angle of view while the camera dollies toward or away from the subject in such a way as to keep the subject the same size in the frame throughout.
ColorShooter
This is a small First-person C++ project. The goal of this game is that every time we shoot an object it shrinks and disappears under a certain threshold hits, when we hit the cubes we get feedback by changing its color. You can check the main functionality written in C++ below
Source Panel AFPSProjectile::OnHit
void AFPSProjectile::OnHit(
UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit){
// Only add impulse and destroy projectile if we hit a physics
if ((OtherActor != NULL) && (OtherActor != this) && (OtherComp != NULL) && OtherComp->IsSimulatingPhysics()){
OtherComp->AddImpulseAtLocation(GetVelocity() * 100.0f, GetActorLocation());
FVector _Scale = OtherComp->GetComponentScale();
// Make it smaller
_Scale = _Scale * 0.8f;
if (_Scale.GetMin() < 0.5f){
// We cant to destry the whole Actor not just the component
OtherActor->Destroy();}
else{
OtherComp->SetWorldScale3D(_Scale);}
UMaterialInstanceDynamic* _MatInst = OtherComp->CreateAndSetMaterialInstanceDynamic(0);
if(_MatInst){
// Change the RGB color, stored in a vector
_MatInst->SetVectorParameterValue("Color", FLinearColor::MakeRandomColor());}}}
Interacting systems
Interacting system components that can be attached to any actor, apply physics forces to components that are detected through tracing.
