My greatest passion is to write code. Nothing beats turning an idea into reality with nothing but a computer. My strength is in creating efficient and effective solutions and I maintain a high standard of code quality and cleaniness as well as highly scalable code. One of my interests lie in writing code that benefits other people.
Beautiful and responsive websites inspire me to strive to better myself in web design. I aim to stay at the forefront of web design technology, such as AngularJS and Node.js
One of my interests lie in digital special effects and art. Much like programming, creating masterpieces from scratch with just the brush of a few applications is exhilarating.
Through many different projects I have done over the years, I have familiarized myself with many software and technology stacks - these are some of the more widely used ones I am very comfortable using.
Integrated a powerful, widely used search engine (ElasticSearch) into the platform, allowing for users and companies to search and filter content.
Integrated social media account login features into the platform, opening up more options for users to sign up.
Added various visual and functional features to the user dashboard to improve the user experience.
Developed a rule engine that govern all content progression for clients to create infinitely scalable rules for all elements in the game, allowing for a much more immersive user experience.
Developed data analytics framework for clients to view usage statistics.
Created database-agnostic SQL query builder for scalability across different database types.
Comprehensive revamping of code for better scalability and maintainability.
Set up environments for clients to host and administer the Gametize application.
Supervised all annual projects, such as the Freshmen Orientation Week, to ensure that the budget, logistics, manpower, and programme were robust.
Planned and coordinated Rag and Flag for School of Computing, as well as several induction activities for interested freshmen.
Pioneered and implemented an algorithm for Unmanned Ground Vehicles that used SONAR to determine its location by using relative positions of obstacles around the vehicle.
Expected graduation: Dec 2016
Building Virtual Worlds
Bachelor of Computing (B.Comp), Honours, Computer Science
Specialized in Interactive Digital Media and Visual Computing
Cumulative Average Point: 4.29 (Second Class Upper)
Digital Media Productions Software Engineering Computer Graphics General Purpose Computation on GPU Computer Vision and Pattern Recognition Networks Interaction Design Operating Systems
3D Gesture Recognition with the Leap Motion
Context Based Newsfeed
Do you have a project, ideas and you want to get started ?
Don’t hesitate feel free to get in touch with me.
A series of scripts useful for an aspiring game developer to make games on Unity. These scripts include a Singleton interface for C# on Unity, an time-based Event Manager to queue and trigger any number of functions ordered by execution delay, a checkpoint system, and more.
Over the course of designing and engineering games throughout the Building Virtual Worlds course, I created a set of generic game scripts and improved on them over each game I made, and they can be applied to and used in many of the other games created in the course. These scripts benefitted several of my peers greatly, not only shortening the amount of code they have to write, but also helping keep their architecture organized and clean.
The scripts are found on my GitHub.
A competitive arcade-styled game, Pong Pong Frog pits between 2 to 4 players against one another, each competing to be the reigning player. Played on a Jam-O-Drum platform - a custom built machine with 4 turnable discs and pads - each player controls a frog by turning the disc to steer the frog and hitting the pad to make it jump.
The game takes place in a pond, with several lilypads scattered around for the players' frogs to leap onto. The objective is simple: To knock other players' frogs off their lilypads, in which they earn points for a successful attempt, and to avoid getting knocked off tbemselves, in which they lose points. It quickly got popular as players picked up the game easily and started challenging their friends to the game.
Created in one week by a team of five of us, Pong Pong Frog was designed to be simple, brainless, and fun. With two programmers on the team and one week to create the game, I designed the code architecture and logic flow behind the game while the other programmer worked on the algorithms.
Toilet King takes on a different style of the popular genre of rhythm-based games. Rather than using popular controllers such as the keyboard or instruments such as the guitar, Toilet King uses commonly found objects in the toilet and turn them into instruments.
The game is set in the back stage of a rock concert hall, where a popular rock band is playing their gig. Guests play as aspiring rock stars, there to demonstrate their skills to the band manager. The band manager tests them by having them pit their skills against one another using "toilet instruments", allowing them to choose between the following sets of instruments:
The players will then listen to a music track and look for their respective symbols to appear on the screen, to which they will have to "play" their instrument according to the beat of the music. Points are awarded on the accuracy of the players' performance, and the winner is the one with the highest score.
My role in this team was to design the structure of the code and to build the props needed for the game. Being the fifth and final game I made in the Building Virtual Worlds course, a large portion of the code I contributed was reused from previous games. Programming-wise, I designed the mechanic for the game to match the rhythm of the music to the players' performances. I also designed the game such that the "beatmaps" (files containing the details of the beats each player has to play) could be loaded on runtime and be dynamically changed by the sound designer, easing the workload on the programmers.
A game focused more on storytelling than gameplay, Fiore tells the story of a mystical bird learning how to fly. Along his journey, he faces some trials and tribulations, ultimately overcoming them and becoming an adult.
My role as one of the two programmers on the team was to design the logic and flow of the game.
Additionally, I helped in the construction and of the harp, which was then painted by the rest of the team.
Being a story-based game, it was heavily event-driven, which led me to design a event manager.
As a personal challenge, I designed the event manager to be easily understandable, which enabled the rest of my team to help add and polish the events happening throughout the entire game.
Shock Ninja is a 2D platformer puzzle game where the player is a person made out of wires. He/she can conduct electricty, thereby powering up circuits by connecting them to a power source with his body.
In the game, a power station in the city has failed, and the player is called to help restore power. The player is then tasked to connect broken circuits with his body and finally charge up the main power core to bring the power back.
I was the sole programmer on the team in this game. Most of the two weeks given was spent designing the mechanics behind the game and streamlining the level creation process, where I made Unity prefabrications for all game elements, allowing for quick and easy creation of new levels by dragging and dropping the elements into the level.
Space Escape is a 3D puzzle game using the Oculus where the player is a friend of a robot on board a space station. A meteor strikes the station while the player is on-board, throwing the entire station into disarray. The player has to use his/her tractor beam to shift around floating platforms in order to make a path towards the exit.
In this project, I split my work evenly with my fellow programmer, with him working on the architecture and the floating platform system, while I worked on the AI of the robot, a pathfinding algorithm, and the tractoring system.
Disney's Imaginations is a design competition hosted by Walt Disney's Imagineering team annually. This year, the theme of the competition is to design a travelling experience that will tour small towns across the United States, operating for two or three days in each location and takes less than a day to set up and break down.
My team came up with a concept of a mobile theme park, named "Big Hero Unlimited", with the idea of it being a mobile training academy for budding young heroes, and the trainers are the 6 heroes featured in the Big Hero 6 movie.
The theme park concept consisted of several collapsible attractions that can easily fit into container trucks for transportation, such as a large bouncy castle on Baymax's stomach, 4D rides, or live shows. In the competition, we detailed implementations of all the attractions, feasibility, finances, and logistics.
As part of a bid to learn how to use a *nix system, to get comfortable working with command line, and to address the growing need for space, I decided to build a home server that served as a Network Accessed Storage (NAS).
As the primary purpose was to have as much space as possible, I went with an ultra-low power build with 6 SATA HDDs, all within a tiny mini-ITX casing. The whole project took me one day to build and a few days to configure.
Pioneered a 3D gesture learning and recognition algorithm for Leap Motion, using a modified k-Nearest Neighbours algorithm. The algorithm can reliably recognize up to 60 gestures, and works for both temporal and static gestures.
As Facebook users' social network expands, the relevance of the content shared on their newsfeed may get less relevant to them. This project used machine learning approaches to find content relevant to each user based on their browsing habits.