Nicholas Mason >_

Projects

  C#   

 

Hoc Talk is a peer-to-peer video confrencing service that focuses on a simple, dedicated interface, non-intrusive behaviour without requiring sign-ups or giving away personal information, and ease-of-use.

This is my first time delving into WebRTC communications and Socket.IO. It is written primarily in JavaScript, CSS and HTML. This has been an educative experience working in RTC and I am excited to learn more about it as I add new features. This has also been a good chance to develop skills in JavaScript and in writing something using both client-server paradigms and peer-to-peer.

The goal for the app is to have a web service that allows ad hoc video confrencing. The idea is not to have lengthy, intrusive sign-up processes and in the future to allow dynamic formatting for convenience and flexibility. Users will be able to use multiple inputs for situations where they want to show their face on webcam and stream their desktop at the same time. Dynamic formatting comes into play through organizing video feeds such that confrences with many people on one camera can be displayed in a large format, and conferences with multiple users each with their own camera can be displayed in a smaller grid format. I am at a stage where the app is functional and useful, and further development will be focused on non-intrusive feature implementation.

I was inspired by my university experience working in group projects. Often we would need to hold group meetings online, and had some trouble deciding which service to use. Skype, Discord and Facebook were the popular choices, but all of them require signing up and/or downloading the application to work. Those of us who avoid using Facebook and other invasive social media platforms were out of luck, and had to capitulate if the group voted to use such services.

 

In Siege Engineer, the player controls a lone engineer defending against an army attacking his/her castle. It is up to the player to gather resources and repair structures to hold out until the end.

I worked on this project in a game design class in university with 4 other students. My role was game director and programmer for the project, and I worked alongside two other programmers, an artist and a level designer. We completed the project over the course of the semester and submitted this as our final project. It was shown to judges (developers in the games industry in Vancouver) and received praise for its fast-paced management gameplay and accessible art style.

This project stretched my abilities as a team leader and also taught me valuable lessons in game development. For this project I had to manage differently skilled team mates diverse temperaments and learning styles, and direct them towards a time frame and vision for the completed game.

This was a challenging project and I am happy with the result but, in the interest of self-criticism, there were things I would do differently. The team needed an easier concept to grasp as this was a game style outside our previous experience, and game design meetings took much longer than needed as a result. This meant less time for implementing features as major game systems had to be designed on paper first. That said, the project turned out nicely and the game can be played from start to finish.

 

Meme Machine is a Discord bot that pulls Youtube videos from the user's chosen subreddit and posts them to the assigned discord channel. It simply uses the RedditSharp library in combination with the Discord api to post a simple text message with all the urls of the videos, which Discord automatically formats into clickable videos.

This was my first time really delving into C#.NET, and it was fun to write this simple program that does something fun. Future plans for it would to have it always running on a home server and posting videos every 6 hours or so. Other ways I'd like to expand on it would be to allow it to read the discord chat to respond to commands in a variety of ways. I worked on this in collaboration with a friend of mine.

 

Solar Wind is a story-driven 2D platformer developed in the Unity engine. Inspired by the likes of Super Mario, Castlevania and Hollow Knight, it has the player making their way through a dying space station, saving (or sacrificing) others in order to make it through.

I worked on this game with a small team of 5 as game director, programmer, level designer and story writer. Using C# in the Unity engine to build out the game's controls, collision, levels and platforming systems, my team and I worked diligently on this game for a short period of the semester as our final project.

This project taught me some valuable lessons in programming and game development. Alongside the skills built in C# and Unity, it taught me how to lay out base systems smartly so they could be expanded on and wouldn't slow down work in the long run.

 

This is a project I worked on for University with two other students.

My main job was building the form pages and ensuring that the code was well formatted and error-free. This was not my first exposure to HTML and web site building as I had some experience with it from secondary school, but it was one of the most impactful since there was a chance this would be selected to be the new Burnaby city website.

We approached this project by looking at existing problems with the burnaby city site and thinking of ways to improve it. We narrowed it down to a few core issues. Among these issues was the fact that the categories set up for different services were not well formulated. They had different services in a few different places, and they also had some services under the wrong categories altogether.

Other issues were that the categories themselves were not descriptive, or grouped together in ways such that it wouldn’t make sense. Other general problems were that there was no clear indication to the user where they are in the site, or how far along in an order form they are. As the person primarily in charge of the information forms, I had to make sure that the user understood what was needed from the site alone, without needing extra help.

 

The idea behind this project is to make a simple URL parsing program that transforms any valid Youtube video URL into one that allows the user to view the video without logging in.

I wrote it in PHP because I wanted to start building my skills in backend web languages (I only had some experience with PHP from a university class, and that was only the bare basics).

I started this by thinking about how I would want the program to work if I came here as a user. I decided that the site should basically eat a youtube URL and spit out a simple plaintext URL in response as quickly as possible. This meant it had to work on one page only. The way I went about this is by using regular expressions to parse down any potential youtube url into just the 11 character video id, then put that in a form that works without logging in.

If i were to expand on this project, I would make it a more comprehensive program that would allow downloading videos, reverse-searching the video via Google, or looking at the tags to find related videos.