top of page

Go Back

Penanggal

Project Info

Project Status

Project Type

Project Duration

Game Engine

Language(s)

Platform

Primary Role(s)

 

Team Size

Closed

Group Project Studio 2 (GPS2)

3 Months (September 2023 - December 2023)

Unity

C#

Android

Gameplay Programmer, VFX Programmer, UI/UX Programmer

10 (3 Designers, 3 Artists, 4 Programmers)

About

Penanggal is a 3D horror game for Android, where players take on the role of a pregnant woman returning to her childhood home, only to become trapped within its haunted walls. To survive, players must evade a malevolent ghost by hiding in wardrobes and solving environmental puzzles that unlock pathways through the house. In this project I focused primarily on the visual aspects of the game. I deepened my understanding of lighting techniques. I was also responsible for creating particle effects and applying post-processing techniques, which enhanced the game's polish and atmosphere. This way my second experience working in a collaborative, studio-like environment, with 3-6 months of Unity experience at the time.

Roles and Responsibilities

  • Designed and Implemented Gameplay Mechanics, including:

    • Player head bobbing (Polish)

    • Integrated scripted events to guide narrative progression and create scares and immersion

  • Developed and Integrated UI Elements, such as:​

    • Main menu, options menu, pause menu

    • Level loader with fade-in and fade-out transitions to enhance scene transitions

  • Implemented Visual Effects:​

    • Created candle flame particle effect and flickering effects​

    • Dust particles in the environment

    • Blood splatter when player is attacked

    • Baked lightmaps for bright and dark settings, dynamically switching based on candle light​​

    • Applied post-processing effects, including tonemapping, color adjustments, bloom, depth of field (DOF), vignette, chromatic aberration, and film grain for a cinematic horror look.

  • Implemented Audio System for:​

    • Ambient noise, sound effects (certain sound effects are 3D audio)​

  • Level Design and Optimization:​

    • Built all levels according to designer's mockup​

    • Imported and implemented 3D models, 2D textures, and animations

Player Head Bobbing
 

Head Bob scripts creates a head-bobbing effect while walking by adjusting the camera's position with horizontal and vertical offsets based on sine and cosine calculations. The camera smoothly moves towards the target position, and snaps to it when close enough to prevent jittering.

Scripted Events
 

I implemented most of the environmental scripted events such as scripted event: 2, 4, 6, 7, 8. (Watch the gameplay video to see.)

  • Scripted Event 2:

    • Triggers a woman's crying sound (3D audio) when player step foot into the hallway.​

  • Scripted Event 4:​

    • Break all lights in the house, plunging player into darkness​ when they picks up the lighter.

  • Scripted Event 6:

    • Glass-breaking sound will be triggered from a distance when player burn their first cursed paper.​

  • Scripted Event 7:​

    • TV will turn on by itself and play a song in the background when player picks up the bedroom key.​

  • Scripted Event 8:​

    • Initially, the pocong face forward, toward the player. After the player burns the last cursed paper and walks past them, a sudden sound of chairs moving fills the room. When the player turns back, they see that all the pocong have turned to face them.​

UI / Menu
 

  • Main Menu

    • ​Options Menu​​

    • Credits Menu

  • ​In-game HUD:

    • Pause Button​

  • Pause Menu​

  • Game Over Screen

VFX

Candle Light with Flickering

Flickering effect done by adjusting a light source's intensity over time. Using a sine wave, it varies the light's brightness based on flickerIntensity and flickerPerSecond, with speedRandomness adding subtle speed variation for a more natural flicker effect.​

Dust Orbs

Blood Splatter

Post Processing

Applied tonemapping, color adjustments, bloom, depth of field, vignette, chromatic aberration, and film grain to enhance the visual quality and intensify the eerie atmosphere of the game.

Without Postprocessing

With Postprocessing

bottom of page