Introductory
I will introduce you to my personal projects in this section. I think personal projects are a
necessary part of finding fulfillment. I see them as an opportunity to not only work on something that you enjoy
but also develop your skills in that area. Everyone should have their special project that gets them out of bed in the morning.
Personal projects are very important to me because they are a way of breathing life into what I've studied in academia.
I wrote a lot about each of them because I am passionate about them, so I hope you understand.
Below are each of my personal projects summarized for conciseness. If you wish to read about them in greater detail,
please click the buttons to the right.
Video Game Solo Development: Play as a Thresher Shark
I am solo developing a game in my spare time using Unity game engine and Blender. The game will allow players to play as a thresher shark that can whip its tail to defend itself and sense the electricity given off by enemies' heartbeats.
This Website
I built this website from scratch both to display my talents and help in my job search. This website was a learning experience that helped me master good HTML structure and CSS positioning. I am planning to add more features in the near future such as new personal projects and a Three.js showcase.
Motivation
Have you seen the shark in the photos above? This is a thresher shark, and it is my favorite shark by far. Its huge tail that might appear to be a burden at first is actually its greatest weapon. These sharks hunt small schooling fish by accelerating towards them and whipping them with that tail. The strike is strong enough to slash the fish in half and even generates a small shockwave that stuns fish that weren't hit directly. They also have the face of someone who just reached into their pocket and didn't feel their phone or wallet. It upsets me that there isn't a game where I can play as this shark, so I am setting out to develop one using Unity game engine and the Blender 3D Modeling app.
Setting
Because you'll be playing as a shark, you will naturally be in the ocean. But of course, just swimming around
in endless blue would be incredibly boring. In this ocean, I want to have 4 distinct environments, each with their own
rewards and challenges. The coral reef, the safest and the most beautiful area, is the place where players start the game
and can return to in order to admire the beauty. Next is the kelp forest that forms a ring around the reef; still relatively safe but some
dangerous creatures may be using the tall kelp to conceal themselves. Beyond the wall of kelp is the open ocean, a vast expanse of blue
teeming with schools of fish that are the shark's main food source. But predators lurk in the deep, waiting to attack from below
while the shark is distracted by the fish. Players that manage to succeed in the open ocean despite the dangers can swim down to find themselves in the trench. It is by far
the most dangerous area with poor visibility hiding mutated horrors, but players must eventually venture here to complete the game.
Maybe this is a future where humanity succumbed to rising sea levels, and the sunken ruins
of what was once a busy metropolis are waiting to be explored. Perhaps the leaking radiation from the long-abandoned
nuclear power plants has caused sea life to mutate into something sinister. Though the ocean is a shining beauty
of blue during the day, at night it becomes a veil of darkness in which merciless hunters hide. To create a safer future for both itself
and its family, this shark must set out to restore the deteriorating remains of humanity's infrastructure.
Mechanics and controls
This is the part of my game that needs the most planning. I have been so caught up in coming up with a good setting and
plot that I don't have too many gameplay mechanics and controls planned. With that said, I have a few ideas.
It goes without saying that one of the attacks I'm going to implement is the thresher shark's signature tail whip.
Players will be able to whip their tail at small fish to kill and eat them to fill their hunger. They will also be able to use it
defensively by whipping enemies and stunning them for a few seconds. In this way, players can attack enemies from a distance
with the tail while keeping the shark's head and body out of the enemy's reach. I want this mechanic to
be somewhat difficult to master, but a highly important and reliable tool once players do get the hang of it.
Did you know sharks are capable of detecting electrical fields? Because muscle contractions generate small amounts of electricity, sharks can use this ability, called electroreception, to detect
the movements and heartbeats of animals that are hidden from their other senses, like a fish buried in
the sand. I want to simulate something like this by adding a radar system which enables the player to sense
electricity given off by enemies. This will be especially useful in dark environments like the trench where
the water is too dark for the player to see approaching danger. By detecting the electricity given off by an
approaching enemy's heartbeat, the player gets a little extra time to react.
In order to repair the city ruins, the shark must first gather the proper resources. These can range from easy-to-obtain
and common resources like pieces of rock and coral to the body parts of large and aggressive animals that the player must battle
and bring down. Some will involve solving puzzles deep within the city ruins. These puzzles will involve electricity and will be circuit-based, and players
must use their electroreception to determine which way the electricity is flowing and to avoid getting electrocuted.
Progress
Current Progress
I started this project in early August 2024, and I should confess that I haven't made as much progress as I would
have liked. In between coursework, preparing for graduation, and my job search, my game has been put on the back burner
as I consider it the lowest priority. That being said, I have been learning Blender and Unity whenever I have the time
and have set some basic foundations to my game.
What I have so far is a basic untextured model and fully animated rig of a thresher shark, a smooth third-person camera, and input controls for
slow and fast movement. I also have a cube that cycles through colors depending on a random value that is generated every couple frames.
I want to use this for the electrical radar system and the color changing is meant to imitate the constant 'crackling' of
electricity. I'm proud to show you a video of what I have thus far:
Future Plans
Here is a timeline detailing my future plans for the near future:
Write UML architecture diagram
Add attack animations to shark
Implement inventory system
Associated Skills
- C#
- Unity Game Engine
- Game Development
- Object Oriented Design
- Debugging (Lots and lots of debugging)
- 3D Modeling with Blender
- Computer Graphics Concepts
- Game Art / Graphic Design
Motivation
Of course, this website is also a precious project of mine. It's an outlet to share my creations and my skills on the internet, and in my biased opinion it's more rewarding than just posting on social media. A good friend suggested this idea to me as a tip to help in my job search and said it shows employers that I am willing to go the extra mile to stand out. Besides, can I really call myself a good computer science graduate if I don't know the first thing about making a website? So I set out to make one, and here it is. I think it turned out well, and now I have a solid understanding of HTML, CSS, and JavaScript. Overall, I really enjoyed the journey my friend's advice led me on.
Progress
Current Progress
So far, I have just been focused on making the website look nice and writing all the information about my academics and career. Of course, this is mostly done with CSS, and most of my time making this website was spent with CSS, specifically trying to get the positioning and media queries working. But a good CSS workflow depends on good HTML structure, and assigning IDs and classes correctly to HTML was also a challenge at first. At one point I decided to restructure my entire home page. There is also some basic front-end JavaScript used to add more life to the website, as seen with the title fading into view and being able to change the background image and color on the home page. Everything works as intended thus far except for an issue concerning the background image's size on mobile devices.
Future Plans
The website you see is not the finished product. As my career, personal projects, and character all grow, this website
must grow as well to reflect those changes. There are so many things I want to do after graduation, not just for
fun but also for my own development. There are also a few projects that are in progress right now that I would rather show
off in a finished state, like a certain certificate I am currently working towards. In addition, I was originally planning to
add a basic server and database for a login + registration system with user authentication, just to show people that I can. But of course
that costs money, and I don't think spending money on a simple personal website while I don't even have a job is a good idea. But maybe I may change
my mind and add some cool backend features once
I get a steady income. You may have
also noticed that only the home page has a translation for Korean. That one is admittedly due to my own lack of knowledge. I am fluent
in conversational Korean, and in my experience people generally don't talk about stochastic policy or object-oriented programming in everyday
informal conversations. It'll take me a little more time to get the rest of the tabs fully translated.
Here is a timeline of my future plans:
Fix background image size issue
Translate remaining tabs
Update academic status to graduated
Progress update on solo developed game
Associated Skills
- HTML
- CSS
- Frontend JavaScript
- Frontend Development