Rayjo has a passion for programming and developing games. He is always down to play board games. He loves eating spicy foods and reading light novels. His dream is to one day open up his own game studio.
Date | Sept 2023 |
Platform | Windows |
Unreal side project implementing the card game "Love Letter" built using UMG and Blueprints
Role | Sr. Software Engineer |
Company | Babeltime Inc. |
Team size | 9 |
Date | March 2023 - Present |
Platform | Mobile |
Website | http://www.babeltimeus.com/ |
Realm Defense is a tower defense mobile game with heroes.
Making improvements to the framework.
Role | Software Engineer |
Company | Babeltime Inc. |
Team size | 15 |
Date | Oct 2019 - Mar 2023 |
Platform | Mobile |
Website | http://www.babeltimeus.com/draftwars |
Draft Wars is a "tug of war" real-time strategy mobile game.
I helped shipped the game to soft launch, building mostly all of the meta UI.
Role | Software Engineer |
Company | SquareTwo |
Team size | 8 |
Date | May 2018 - Oct 2019 |
Platform | Android |
PlayStore | play.google.com/store/apps/details?id=co.squaretwo.boredwalk&hl=en_US |
Boredwalk is a free-to-play pocket-sized arcade. Players use tokens to play mini-games to earn tickets, and can exchange those tickets for real-life prizes that ship within days. It is the sister app to verydice which also uses the same redemption model to exchange earned tickets for real-life prizes.
I helped release 3 mini-games for the app: Run, George, Run! (procedural runner), Otter Bop (whack-a-mole), and Hammer Time (high striker). I also implemented the UI for daily quests, pvp match history and results, news, scrolling game-caraousel, toast notifications, and more.
Role | Game Programmer |
Team size | 20 |
Date | Sept. 2017 - May 2018 |
Platform | Android |
Website | anxiouspetsgame.wixsite.com/game?fbclid=IwAR3li4TmP5DnSyAcQmT9FzHdAZ4b32VTMVoMHNPqEZrSc3kclMYdt2C5WZg |
Anxious Pets is a Tomogachi-esque game where you adopt an anxious dinosaur pet, Dino, and help it gain back its confidence through meeting new townspeople, playing mini-games, and upgrading its house with cute furniture. It is one of the senior design projects of San Jose State University's Bachelor of Fine Arts program. I am one of the four programmers who volunteered on the side to help engineer the project.
I organized the Unity project and the Github repository. I was mainly responsible for implementing the start menu, menu UI, and town mode gameplay and townspeople interaction UI.
Role | Gameplay/Network Programmer |
Company | Narvalous |
Team size | 8 |
Date | Dec. 2017 - Mar. 2018 |
Platform | PC (Windows), HTC Vive/Oculus Touch |
Website | narvalous.org/clash-of-magic/ |
Clash of Magic VR is an online multiplayer strategy tower rush game with gameplay akin to Clash Royale. It is currently released on Steam for early access!
I joined the project during its late stages to help prepare the game for early access. My main responsibilities were to add features in Unreal Engine, work on the back-end (PHP, MySQL), perform QA testing, and fix bugs.
I worked on storing PvP match data. I created a bot game so that there would always be a game for players to spectate. I added stars to the campaign to mark player progress. I ported the game to Steam and made it compatible with HTC Vive (originally built for Oculus store). I created new methods to instantly and independently test multiplayer which significantly improved the efficiency of QA testing.
Role | Gameplay/Network Programmer |
Team size | 6 |
Date | July 2017 - Aug. 2017 |
Platform | PC (Windows), HTC Vive/Oculus Touch |
Website | team-spellcasters.itch.io/spellcasters-vr |
Built with the goal of creating a social online VR experience, Spellcasters VR takes the fantasy of the magic duels from Harry Potter, and turns it into a team based competitive experience. Players choose between 3 roles (conjurer, guardian, shaman) and use their wands to draw magical glyphs to cast offensive or supporting spells. Communication and strategy are necessary to obtain victory in this fast pace battle between spellcasters.
Initially, I was in charge of researching and establishing the multiplayer framework using Photon Unity Network. After that, I worked on many of the systems in the game.
I implemented the game loop transitions: making sure players were informed on what to do inside the lobby, putting players into teams, teleporting players to the arena and starting the round, placing players into penalty box before respawning them back into the arena, scoring, displaying match results, and teleporting players back to lobby to repeat the game loop.
I created the foundation for the lobby, the round countdown display, the scoreboard, and the randomly assigned usernames on top of players. I also worked on the power-ups, spell targeting, and the randomizing of arena maps.
Role | Lead Gameplay Programmer |
Team size | 5 |
Date | Jan. 2017 - June 2017 |
Platform | PC (Windows), Oculus Touch |
Website | tornado-tower.itch.io/tornado-tower |
Unlike the majority of VR games of which are in first person, Tornado Tower is a third person platformer where players simultaneously control the human adventurer Zaru and his wind spirit companion. The wind spirit moves through the rotation of the right hand and has the ability to create gusts of wind that allows Zaru to travel to higher and farther platforms.
Tornado Tower was also showcased in E3 2017 The MIX. See what Game Tyrant, Entertainium, and Concealed Gaming have to say!
Since there was a great lack of programmers on the team, I established a framework for level designers to design levels without any need to touch the code. I also created the UI for the main and pause menu.
I implemented the signature ability in the game, motion-controlled wind mechanic which allows the player to travel farther and higher heights as well as interact with the environment. I also implemented the camera control, circular spline-based movement, motion-controlled cursor, enemy AI behavior, cutscenes, ledge grab, boomerang, various puzzle mechanics, and the tutorial hints. I also helped work on the save system, character respawn, and traps.
Role | Gameplay Programmer |
Team size | 7 |
Date | Jan. 2017 |
Platform | PC (Windows), HTC Vive |
Website | globalgamejam.org/2017/games/pebble-lake |
Pebble Lake VR is a zen, meditative game where players skip rocks and create small waves on the calm lake as the environment cycles through day and night. The idea was conceived for the Global Game Jam 2017 for the prompt "wave" and created within 72 hours.
I worked on the rippling of the water when a pebble was thrown into the lake.
Role | UI Programmer |
Team size | Solo |
Date | Nov. 2017 |
Platform | PC (Windows) |
Website | github.com/rayjofu/LittleAlchemyImitation |
This is a small demo imitating an abridged version of Little Alchemy using PyQt and Python. The player must combine different components to discover all the recipes. Recipes are generated through an input file which can be modified for customized recipes. This demo was heavily modified from PyQt's fridgemagnet example. The event handler took a major overhaul in order to implement the crafting mechanic.
Role | Gameplay Programmer |
Team size | Solo |
Date | Dec. 2017 |
Platform | PC (Windows) |
Website | github.com/rayjofu/Asteroids |
This version of Asteroids is single player and is played with the keyboard. Press W to move forward, A to turn left, and D to turn right (the arrow keys can also be used). Press Spacebar to shoot lasers. The goal is to clear all the asteroids in the level with your lasers before losing all your lives. You lose a life when colliding with an asteroid. Be careful of large asteroids as they may split into faster, smaller pieces. Certain asteroids take two hits to be destroyed. Destroying an asteroid has a chance to drop a power-up to boost your abilities (increase fire rate, provide one-time shield, or provide invulnerability for a short duration). Levels progressively get harder with a linearly increase of asteroids.
This implementation of Asteroids uses a BucketGrid to handle collisions of a large number of objects. It also makes use of virtual functions in which all objects extending the GameObject class must use.
Role | Gameplay Programmer |
Team size | Solo |
Date | Nov. 2016 |
Platform | PC (Windows) |
Website | github.com/rayjofu/Breakout |
This version of Breakout can be played cooperatively with 2 players (one on keyboard, one on mouse). The goal is to clear all the bricks in the level before losing all your lives. You lose a life when the ball gets past your paddles, so keep juggling that ball! Levels are randomly generated with varying bricks. Red bricks get destroyed with one hit. Green bricks also get destroyed with one hit, but increase the speed of the ball. Yellow bricks require two hits to be destroyed. There are invisible bricks that only require one hit, but are very difficult to see and keep track of! How many points can you score?
Breakout is a great introduction to learning how to handle the collisions of a small number of objects using vectors, and can be easily adapted from making Pong.
Role | Gameplay Programmer |
Team size | Solo |
Date | Sept. 2016 |
Platform | PC (Windows) |
Website | github.com/rayjofu/Pong |
This challenging version of Pong is single player played against an insane AI (I dare you to try to score even one point). The goal, as the blue paddle, is to be the first to get the ball past your opponent's green paddle 5 times. You use the mouse to control the paddle. There are always two balls moving about and it takes just one to end the round. Every time the ball hits a paddle, it increases in speed so you must react quick!
Anyone starting game development should make Pong. It is a good introduction to implementing moving objects in 2D space, handling collisions, and creating the game loop. It is also a good project to learn how difficult it is to make games, even for a simple game like Pong.