Projects
This page showcases some of the stuff I work on from time to time. The projects are not in any particular order. You can find work on GitHub.
C++
One of the first language I learn, back then it was still C++ 11. We built our own games and engines back in Digipen, here are some of the stuff we worked on. If you are interested, do check out the gallery links to our games.
Super Combo Time
My first game project, you play as a pirates, ahoy mates. Cooperate with your other fellow mates and bring home the good old treasure, aye aye.
Genre: Twinstick shooter, Co-op
DigiPen Gallery: Super Combo Time
Tech: C++, Project Fun(Provided by DigiPen)
Discharge
This is our second game which we build using DigiPen's Alpha engine (which is a graphics framework). You play as discharge the robot as you figure the way out, beware of those pesky moleman who might just wants a piece of you. This is a turn based puzzle game where you solve puzzle and make it to the end of the level.
Genre: Turn based, Puzzle
DigiPen Gallery: Discharge
Tech: C++, Alpha Engine (Provided by DigiPen)
Basket Brawl
Welcome to the sports of the century!! This is a 2D platformer fast-paced sports game where players fight against one another to score as many points into the hoop as possible.
Genre: Action, Sports
DigiPen Gallery: Basket Brawl
Tech: C++, Imgui, DirectX 11, Custom Engine
The Last Defender
Our final year project, we built a 3D third-person tower defence game.
Genre: Tower defence
DigiPen Gallery: The Last Defender
Tech: C++, Imgui, OpenGL, Custom Engine
Encrypted Mail Fetcher
I wrote a command line interface application to fetch emails from Google mail using Google's C++ sdk. After which it uses openssl library to encrypt the messages.
Link: gitlab/MailFetcher
Tech: C++, openssl
Python
One of my favourite language to use, I have used it for multiple web scraping projects and also together with Jupyter Notebook to do some data visualization stuff. Some of my projects are as follows.
My Blog
Howdy, the page you are seeing is a work of mine, albeit with a little help from Nikola for generating the page and gitlab and github for hosting it.
Tech: Nikola, reStructuredText, Python, HTML, CSS
WhatCard Scraper
One afternoon, I decided to scrape all the Merchant Category Code (MCC) data from this page, WhatCard and I decided to write a script to fetch all the data. It was my first time that I have encountered a website that loads data using websocket. Hence I wrote a simple Python script to simulate the interactions between the web browser and the server to see how the data was being requested.
Link: gitlab/whatcard_scrape
Tech: Python, Websocket
3D Buzz Scraper
I posted about this some time ago, when the popular 3D content website 3D Buzz was going to be shut down. They released most of their contents for free download for a limited period of time, I took the liberty and wrote a script to download all of that contents.
Link: gitlab/3dbuzz_content_scraper
Tech: Python, BeautifulSoup, requests
Packt Downloader
Packtpub has released weekly free ebooks for download, I decided to write a Python script using requests and aiohttp library to download all the titles I have in my library. I no longer use the script and is currently unmaintained.
Link: gitlab/packt_downloader
Tech: Python, aiohttp, requests
Housing visualization dashboard
There was a period of time where I got interested in data visualization and also I wanted to play around with building a dashboard of data visualization. I got to building a dashboard for fun. The data are provided by data.gov.sg, using the Housing Development Board (HDB) resale price. Using the Dash library to build the dashboard and the visualization, currently the project is hosted on my Heroku.
Link: gitlab/hdb_resale_visualization
Tech: Python, Dash
Golang
Uniswap transactions backend
Given as a task for one of my interviews to build a web backend for parsing crypto pair prices on Uniswap. I used Go to build the web backend and uses etherscan's and Binance's api to get the price data for the blockchain data.
Link: gitlab/uniswap_transaction_service
Tech: Go, Sqlite
Java
Teacher Database
This project was built in a couple of days as a project to teach one of my student Java. It teaches student a few things, from displaying a text menu to state management as well as saving/loading files from disk to displaying those data on the screen.
Link: gitlab/teacher-database
Tech: Java
Chess
Building a (simple) Java chess game in Java to teach myself some basics of Java as well as to use it as a teaching material to teach my student about Java. The game is very simple with no AI and is meant to be played with 2 players. The chess program accepts inputs to move the pieces, it supports some basic chess moves like castling and pawns moving 1/2 spaces at the beginning.
Link: gitlab/jchess
Tech: Java
Tic Tac Toe
Building a (simple) chess game in Java to teach myself some basics of Java as well as to use it as a teaching material to teach my student about Java. The game is very simple with no AI and is meant to be played with 2 players. The chess program accepts inputs to move the pieces, it supports some basic chess moves like castling and pawns moving 1/2 spaces at the beginning.
Link: gitlab/jtictactoe
Tech: Java
Dlang
Space Invader
Saw an article about making a space invaders game from scratch, at that time, I was into the programming language D, and I decided to write a simple game with it. it makes uses of the OpenGL binding library, derelict.
Link: gitlab/d_space_invaders
Tech: D
Chip-8 Emulator
I got interested in this programming language D, and decided to write a fairly simple application to learn more about D and emulations in general. I strongly recommend for anybody who's interested in emulation to write their own Chip-8 implementations.
Link: gitlab/d_chip8
Tech: D
FTP client
A simple FTP client written in D to recap and learn more about sockets programming. This is also an exercise to understand more about the capability of D. Allows connecting to FTP server and allow of downloading of files.
Link: gitlab/d_ftp_client
Tech: D
Nim
Devour (Port to nim)
Useful scripts for hiding all x windows when opening certain applications, check the original devour repo for more info. This is just a port of devour to nim, because why not?
Link: gitlab/devour_nim
Tech: Nim
Haxe
ZE2D Game Framework
This project is my attempt at learning to build my own game framework using Haxe programming language and the OpenFL framework. I think it consists of simple state management and entity management in the framework. Currently the project is being archived, maybe one day I will go back and explore Haxe.
Link: gitlab/zE2D
Tech: Haxe, OpenFL
The Little Astronaut
My friend Kelvin did the awesome art & design while I do the coding for the game in this game jam. I believe this is our first game jam together.
Tech: Haxe, OpenFL
Sombre
Another DBS game jam where my friend Kelvin did the art & design for me again while I did the coding for the game.
Tech: Haxe, OpenFL
Flash ActionScript 3
Flash is a thing of the past, it used to be one of the more popular way to make games and interactive media. Nowadays it belongs to the museum. I started making games for Flash.
Math Digger
One of my many school projects, this was built with Flashpunk library. It was great fun, the art was drawn by me and music was generated with sfxr or bfxr, I can't remember which. The game was largely inspired by motherload (another flash game) about digging for treasures.