Jason B. Bishop

Software Developer

  A Message From Me

Jason B. Bishop

Software developer, gamer, traveller

Welcome...

I am an aspiring software engineer interested in developing software across a variety of platforms. I have experience with programming languages such as C++, Java, and C#, as well as web development with HTML5, CSS, JavaScript, PHP, and more.

I am interested in almost all applications of software, but I really love gaming in particular. I have played on countless platforms starting with the Atari 2600, up to the current generation of consoles. I mostly game on PC now, as it has the widest variety of titles available. I am really excited about the current indie revolution in gaming, and I am trying to develop my own projects.

I am also an avid traveller and photographer. I have visited 45+ countries, and I am always looking for new adventures. Meeting people and experiencing civilizations from around the world provides a rich tasting of culture and perspective on life like no other endeavour. Feel free to check out my pics or ask me any questions.

So come on in, explore the site, and feel free to contact me. I look forward to hearing from you.

  Programming Portfolio

Software

I've developed software in both C++ and Java. One project is a simulated interface for a gaming console which concentrates on UI elements of a well designed system. My most recent project is a small flashcard application for the Android platform.

Games

I've made a number of games as school projects during my studies. I have learned all kinds of gaming related techniques, including basic gameplay, 3D drawing techniques, and AI behaviour patterns. Additionally, I created and designed all the graphical elements from scratch.

Web

I've created and developed at least 5 websites including this one. Currently, two of them are active and managed by yours truly. I have dealt with HTML5, CSS, PHP, JavaScript and more. I am also familiar with website builder and creation tools such as WordPress.

  World Travels

Places I've Lived

Living in another country is a great way to really experience a culture. I've lived in Korea, Taiwan, Thailand, and Mexico. Each one has left it's own unique and indelible mark.

World Trip I

My first trip around the world lasted for over a year. It really opened my eyes and changed my persepective of the world. It was sincerely a dream come true.

World Trip II

The second trip mostly focused on South and Central America, but was still a very valuable experience. It was again unforgettable, and full of even more new experiences.

Other Travels

Unsurprisingly, I've travelled even more! Countries like France, Japan, Australia, and more have also been fantastic individual adventures, with hopefully a lot more to come.

  My Latest C.V.

Could not display .pdf file!

  More Coming Soon...

Android Application: MemCards

To get my degree, I completed a final project that takes advantage of several of the many skills I learned over the duration of my studies. At the time, I was learning Spanish in Central and South America, and I wanted an app to help me study vocabulary. This application allows the user to create flashcards with a front and back term, and organize the cards into sets. Another key feature of the application is the testing algorithm, which allows users to test themselves on a set schedule so that they can study at a pace that is best for learning. I also included a simple matching game for some fun. If you have ever used the TinyCards app from Duolingo, this is a similar application.

View the flashcards

Organize them into sets

Play a matching game


User Interface: Amazing Game Console

During my studies, I took a course on human computer interaction (HCI). The task was to design an interface based on sound user-interface and user-experience (UI/UX) principles. I created a basic layout similar to what one might find on a console such as the Xbox or Playstation. Menus are designed for readability and quick access, with prompts and other information displayed with varying colors, shapes, and sizes to allow users to navigate easily through the system. I learned a lot about the needs of users when using an interface, such as: learnability, efficiency of use, and the 7 principles of user interface design.

The main interface

Play games from the disc

Select media stored on the device

Purchase content by entering your info


Robotics: Mobile Alarm Clock

One of my favourite courses, this course dealt with embedded programming and robotics issues. I learned about the history and current status of robotics and robotics programming. I gained insight into robotic features, control mechanisms, emergent behaviour and robotic learning.

This course featured the use of the Arduino, using it to build the simple circuits available in the SparkFun Inventor's Kit provided with the course. I was able to explore rob0tics concepts hands on and gain a lot of practical hands on experience.

For my final project, I created a robotic alarm clock. The idea was to create an alarm clock that would run away from you so that it would force you to get up and shut it off, thus enabling you to get up and start your day without hitting the snooze button a million times. I bought parts to add to the basic Arduino kit, including a chassis, motion sensor, and ultrasonic distance detectors. The batteries ran out VERY quickly, but overall it was a great experience, and sparked an interest in robotics in me that I never knew existed.

AlarmBot Project

Setting up the SparkFun Inventor's Kit

Building circuits with the SparkFun Inventor's Kit

Creating a Robotic Elbow Circuit

Vertical-Scrolling Shooter: Space Fighter

A genre that is very dear to my heart, of course I had to make a game like this. Space Fighter has the player fly through space in their awesome ship, shooting enemies for points along the way. It featured a scrolling background and 3 unique enemy types. Each enemy had a different flying behaviour and particular firing pattern. The player had 3 lives to try and see how many points they could get.

I programmed this game in C++ using the Allegro game software to help create the scrolling backgrounds. I learned a lot about game design and functionality. I also had a lot of fun designing the graphics, which I created by myself.

Pilot your spaceship

How many points can you get?

Featuring 3 unique enemies


Flash-Based Game: BattleSpace

A BattleShip-type game I programmed in Adobe Flash. Players would place their ships on the game board and attempt to fire on the enemy position. There were several unique levels and enemies, with a boss fight at the end. One level has a meteor shower, another had a space station to defend. Enemies had different abilites. The enemy AI would randomly guess at player positions until a hit was made, then it would hone in on the area. Even though Flash is no longer a popular platform for games, I was able to learn a lot more about game design and programming.

Save the planet from the evil aliens

BattleShip in space!

Unique ship types


AI Movement Behaviours: Pizza Madness

My first game to implement more than basic AI, this pizza game uses some advanced AI movement behaviours. The object of the game is for the player, a pizza, to move around the screen and collect toppings for points. The enemy chef is throwing his weapons at the player, and once the player is hit enough times, the game ends.

The movement of the player follows the player's mouse around the screen. The pizza moves toward the mouse target using an "arrive" behaviour. Essentially, the pizza is always looking to arrive at the mouse position, but can only accelerate to a certain maximum speed to get there. The enemy chef uses a similar behaviour to move up and down the edge of the screen.

The weapons use a similar "seek" behaviour. The knives fly in a straight line through the current player position (at the time the knife appears) to a point off screen. The knife tries to go to this position at a set speed. The pizza cutter weapon will seek the player position for a short time, then fly in a straight line in the direction it was currently travelling to a point off screen.

The most advanced behaviour is displayed by the toppings that follow the pizza around. They use a combination of the simpler movement behaviours discussed above, plus a couple more. This combination results in a "flocking" behaviour where the toppings act like a flock of birds, always trying to head in a direction directly behind the player pizza character.

Use your pizza to collect toppings

Watch out for that nasty chef!

How many points can you get?


AI Pathfinding Behaviours: Ant Colony

Not games as such, these two programs display behaviour that could be used in games.

The first program has the user specify a start and end point, then create a terrain filled with various tile types. When the program starts, you can see the process of pathfinding using the A* algorithm from the start to the goal.

The second program has the user specify the starting number of ants in an ant colony. The board is randomly set up with various 4 types of tiles: open terrain, food, water, and poison. The ants will randomly look to get water, then randomly move to find food. They then use the A* pathfinding algorithm from the first program to get back home. Once home with the food, another ant is added to the colony. If an ant hits poison, it will die. This process continues until all ants are dead (poor little guys!).

A* pathfinding

Ant colony


AI Decision-Making Behaviours: Connect 4

This is a simulation of a Connect 4 game with the player in white vs. the computer player in black. The player can introduce chips from the top row of the game grid, where the piece then falls into position. The first player to have 4 chips in a row is the winner. The game implements alpha-beta pruning with a depth limit of 4 for the computer in a mini-max search.

Website: Rajnesh Sharma

A website I built for my fiancee using WordPress. She is a documetarian and the site features her portfolio of work including videos, audio, and written articles. It is based on the Bouquet WordPress theme, with additional changes made through CSS and additional widgets and WordPress add-ons.

Website: Jason Bishop

This website I built to show of my programming portfolio and as a future platform for any information about me that I would like to put out on the web. It features my resume, programming work, and my travels. I built it from scratch to hone my web development skills using web platforms such as HTML5, CSS, JavaScript and PHP.

Systems Analysis and Design

A course I took during my academic studies introduced me to the concept of analysis and design of software. I learned about the software development life cycle, methods of development, diagrams and tables used in design, and a whole lot more. A very useful introduction to use in development of my own software both personally and professionally.

Designing Use Cases

Modeling System Output


Design using an Entity-Relationship Diagram

Introduction to Database Management

My first real experience with database design, development and maintenance. I used UML diagrams to design databases. I learned about SQL and how to create and update databases. And finally, I learned about database security and access to be able to create faster and more robust systems.

Composite Usage Map to Model the System


Use Case Diagram to Determine System Requirements

State Machine Diagram

Software Engineering

Continuing my learning about the process of software engineering, I feel like I have gained a lot of knowledge of the design and implementation of large-scale software products. Through hands on experience I have learned about requirements analysis, specification, design, coding and development, debugging and testing, and maintenance of complex systems.

  COMING SOON...

  COMING SOON...