Welcome to my website




Hello! My name is James and I am a computer programmer. I have been fiddling with computers since I was a child and I enjoy taking on interesting and challenging development projects through work and in my off time.
While I do not have much industry experience right now, I have a strong drive to improve my skills and gain more experience to further my career.

This website is a repository of some of my notable projects in chronological order. This is not a comprehensive list of my accomplishment but it provides a general timeline of my learning process throughout my whole programming career so far, from my very first projects to my latest and greatest acheivements.

Project Timeline




This website is currently under construction so not all projects have their own page yet.


2011



Wong Pong
A basic pong clone

Arduino
Various mechatronics projects


2012



Prelude
Sidescroller with parallax scrolling

Wongcraft 2D
A Terraria clone

Deep Space Wong
A space shooter with generated terrain, and boss fights

Clouds
A calming game with a smooth interface

Pokewon Alpha
A text based RPG with a combat system


2013



Sotring Simulator
Demonstrates different sorting algorithms

In Search of Darkness
A clone of Thomas was Alone

Android Development
Various Android OS projects


2014



Timetable
A timetable manager for my highschool

Raycaster
A textured single layer raycaster

Classic Arcade
Three classic games with a retro style

Crappy Bird
A Flappybird clone


2015



Hexagon
A project for UNI extended with many animations

CPU 3D engine
A basic pure CPU render engine


2016



Facebook Bot
Responds to messages and posts generated content

Markov chain bot
A machine learning text predictive bot


2017



Quantum Simulation
Zenos paradox quantum simulation

Raytracer
Light ray simulation renderer


2018



NES Emulator
6502 and NES emulator


2019



OpenGL 3D engine
3D game engine from scratch

This Website
New website built from scratch

History




I originally wrote this section in 2012 so it's a little embarrassing to read now as an adult, however I think it gives a good insight into my my mindset at the time and it reminds me of how far I have come since then. Thus I have left the text un-edited for your reading displeasure.



Starting Off

It all started halfway through 2010, I think I was twelve or thirteen. I must have been reading something on the internet about programing or maybe I was bored. At the time I was aiming for an iPhone app. I remember immediately going to the Apple developer page and signing up. I then downloaded Xcode and all that good stuff and got my first program up and running, it was the famous “Hello World!”, I did this with the help of TheNewBoston’s Objective-C programing tutorials.

The want to make games excited me so I partially printed out a copy Apple’s get to know Objective-C documentation. I took it to school the next day and remember reading it in my English lesson instead of probably some tedious task. From what I can remember it was a little overwhelming as it was targeted at people who knew all about programing beforehand, this booklet thing spent a few months in my locker.

A few days later, after I had written a few more simple programs like “enter a number then add it to another”, I approached a friend, we shall call him George, with the idea of game development. George was enthusiastic about the idea and the two of us talked about the subject for a few days. Naturally our goals were high, we knew almost nothing about programing and we were already dreaming up games that I can’t even make now! Our first(good) game idea was a RC racer where you drive around a little car in a 3D world. After a day or two we both agreed that this would be much too difficult and decided to learn the language first.

I think by this time I ditched the youtube tutorials in favor for a book “Objective-C for dummies” I followed along quite happily for a chapter or two but I soon got overwhelmed and stopped reading the book, in fact I still haven’t finished it.

I then moved back to the youtube tutorials, but I remember not actually following them because I just wanted to finish the tutorials and actually make something resembling a game, this was because as a beginner you have no idea how the basics they teach you actually apply to a game and I was frustrated about that. I then moved onto iPhone app tutorials and making two of them but because I wasn’t paying much attention to the base Objective-C tutorials I got lost quick.

During one weekend I called George and asked his progress on programming, he told me that he had basically given up because it was too hard, I don’t remember much else from here but I believe that I soon gave up too.



The Break

I did try to write some programs in the time between what I call the reboot and when I “gave up”, I did make some very simple stuff like a program that calculates the area and circumference of a circle with a entered radius and I did manage to make a working GUI for the iPhone. Incidentally this was when really got into Minecraft.



The Reboot

I properly got back into programming when I got the Arduino Uno fun kit thing from Sparkfun in early August of 2011. The Arduino is a open source micro-controller board which basically means that you can interact with sensors, servos and stuff like that to make a working thing. The Arduino environment ran on what I believe to be a library on top of C++, having worked with Objective-C I saw familiarities and felt at home. I managed to make a few cool things with the Arduino like a Programmable combination lock and a little car that drove itself around while avoiding hitting walls. When I wanted to interface the Wii classic controller with the Arduino I came across a demo which used a IDE called Processing to visually graph data from the Arduino. I downloaded it and with a little research I discovered it was java based with a library on top. This library made it very easy to display items on screen and I used what I had learnt to make a game! finally, after a year since I was first introduced to programming WongPong was born. Being my first game the code was an absolute mess, it was completely procedural but it would have been much easier if I had know about objects. WongPong took me about a week to make, it was in the holidays so half of it was dedicated to making it. Anyway it didn’t get much attention, a few people played it and I that was fine with me. When I finished WongPong I felt like I had accomplished something worthwhile and was proud of myself and soon after I realised I had the “Programming Bug”.

I continued to experiment with Processing making a few half finished games and then I saw Notch’s 48 hour Ludum Dare Stream where he made a game in 48 hours for a competition, I was amazed to say the least. Notch has always been kind of a inspiration to me and after the stream, even more. So since I was already working with Java and wanted to release things on both windows and OSX it was logical to follow in Notch’s footsteps.



The Move to Java

I remember when I first moved to proper Java, things confused me like Static or public but after watching some of TheNewBoston’s Java tutorials the confusion started to clear up.

It was now around October 2011 and I was still hesitant to move from Objective-C to Java as my main language and during a trip to Sydney I bought two books “Java all in one for dummies” and “Programming in Objective-C” I read the Java book first and to this day I haven’t touched the Objective-C book. My second game was written only using Java, it was a text based adventure game. The following two games were written with a 2D graphics library on top of Java.


Yun Wong 2019