2015 - Present

Roblox Development

Star Wars Simulator

Star Wars Simulator was a game my friends and I began creating over the Summer of 2022. The end goal was to have a game where players could immerse themselves in the world of Star Wars, playing as an anonymous citizen of the galaxy. Although the game is still in development, I do want to take a moment to highlight some of the gameplay abilities I have developed for it.

The force push and pull abilities both rely on spatial queries in front of the player to search for any parts within range of the ability. I then iterated over all of the parts found using that boxcast, determined their appropriate network owner, and then signaled that owner to apply an impulse to the appropriate part. To avoid repeatedly pushing/pulling an assembly composed of more than one part, I made sure to keep a temporary list of affected assemblies that I could then check before applying force to a part. This was particularly important when dealing with pushing and pulling other players, as player characters are commonly multi-part assemblies.


Kamil's Surfing

Kamil’s Surfing is a racing game in which players go head-to-head trying to outsurf each other. Players can earn coins by placing highly in races, and then spend those coins on upgraded boards.

To accomplish this, I utilized Roblox’s DataStore service, which allows developers to maintain persistent data for players across servers and play sessions. I used this service to save the player’s cash amount every time they left the server, as well as what boards they have already unlocked. In addition to simple data persistence, I used the DataStore service to communicate between the main hub server and the servers where the races actually took place, allowing the player to select a board in the main hub and then see that selection reflected in the race itself.


You can ride the waves in this Roblox experience!

Blackjack

A big fan of the card game, I’ve made two virtual renditions of the popular casino game Blackjack on Roblox. The more advanced rendition has support for multiple players at a table, and features a relatively well-polished UI display that provides intuitive and accurate player feedback. It also utilizes a proper deck with a limited amount of each card, providing players with an experience that is true to the real game.


You can try the game out here!

Weapons System

With shooters being one of the most popular game genres, I found it fitting that I should try my hand at creating some guns of my own.

The weapon system I created utilizes a raycast from the end of the gun’s barrel to the player’s mouse to determine where the bullet should travel, as well as detect any intersecting parts (these are “hitscan” weapons).

To detect when a gun should fire, I utilized Roblox’s RemoteEvents, which allow for communication between the client and the server. When a player clicks with their mouse while they have a gun equipped, the client activates a RemoteEvent, which then runs code on the server to handle the raycasting logic described above. This was done to prevent hackers from being able to change important data about each fire, such as the amount of damage to deal if an opposing player is hit.


In addition to coding the guns, I also tried my hand at animating them. I utilized Roblox’s built in animation editor to create firing, reloading, and idle animations for each of the guns I scripted.


You can try the weapons out for yourself in this Roblox experience!