Scott Davidson's profile

Portfolio - Scott Davidson

Portfolio - Scott Davidson
Portfolio files available at: https://github.com/Scott316/Portfolio
Programming
Mobile Platform Development Assessment
The above video was a mobile app I created for my Mobile Platform Development class in my final year at university. The app was created over 12 weeks using Android Studio and a combination of Java and Xml files were used. The app parses data from a website to display information on recent local earthquakes. The data is then displayed on a list that is colour coded based on the magnitude. The user is able to search for information between specific dates and can see all earthquakes pinned on a screen that is linked to Google Maps. The MainActivity.java file used to create this app is shown in the video below. 
Mobile Game Development Code
The above code is from my Mobile Game Development class assessment. The snippet is from the MainActivity jave file. The purpose of the code is to set the dimension of the webpage that will be displayed and also set the content that will be displayed. The sound is also loaded when the game is started.
Gender Based Violence Game Unity Scene
The above video is from the group project I completed in my third year of university. We were tasked with creating a mobile game that handled the subject of gender based violence. The game was developed over the course of one academic year using Unity software and Visual Studio. I was the lead programmer of this project which included the development and maintenance of several Unity scenes, testing and fixing any bugs and making sure the team stuck to a detailed schedule. In the scene above, I was responsible for assembling the scene, programming the changes in UI and dialogue and implementing the interactive objects at the end of the scene. The code for the scene above is shown and discussed below. 
Gender Based Violence Game Project Code
The above clip shows the code involved in the scene. The scene was developed using C# in Visual Studio 2019. The software uses the UnityEngine.UI component, UnityActions and several methods to alter the UI in the required order. In Unity, the UI elements are designated positions in the appropriate arrays and the code is used to designate the order in which they appear on screen. This is one of several similar scripts I created throughout the game. 
Honours Project Unity Scene
The above video shows a scene from my Honours Project. For this project, I conducted research into social anxiety and used Unity and C# to create a mobile app to determine how effective a mobile app can be when used to treat social anxiety. I implemented Cognitive Behavioural Therapy techniques and Relaxation techniques into the project. The final project was uploaded to the Google Play Store for testers.

I received a 2:1 for this project. I used a Google Forms questionnaire to collect data from my testers. The video shows how I received the data by storing it in the question boxes and having the user press the submit button to send it to the Google Form. The code below explains how I implemented this.
Honours Project Code
The code above shows how the Unity project links to the Google Form. The app first checks that the user has entered data and submits it to the questionnaire using the URL specified. Each set of data is then assigned to the appropriate question using the entry box IDs provided in the code. 
Twitter bot code
The above clip is from the twitter bot account I made as part of my Artificial Intelligence assessment. In my team of 2, I was the lead programmer and team leader. The bot would check the account's notifications for new mentions and then save the data from them offline. The bot would then scan the language used in the tweet to determine the polarity and decide if the tweet was positive, negative or neutrally toned. A randomly selected reply would be sent from one of three stored text files depending on the emotion predicted. This was created using Visual Studio Code and was programmed using Python.
Graphics Programming assessment
The above clip shows my Graphics Programming assessment. OpenGL and C++ were used in Visual Studio 2019 to complete this project. This project first involved creating a Skybox shader around the field of view. The next task involved a reflective shader on the car model and a fragment shader on the monkey model. Finally, I was tasked to create an original shader and apply it to a third model. For this, I created a shader that uses coloured lines to display the tire model's vertex normals. 

As shown below, the vertex shader transforms normal vectors into view-space normal vectors and passes it to the geometry shader. 
Vertex Shader
A normal vector is then drawn from each position vector using the geometry shader. 
Geometry shader
Finally, the fragment shader is used to choose the colour. In this case, yellow was selected.
Fragment shader
3D Models
Captain America shield
The above photo is of the Captain America shield I created for my 3D Animation class coursework. It was created using Autodesk Maya. Every layer of the shield was created and textured individually before being grouped together. The model took around 2 hours to create and render.
Axe
The above photo is a still from the trailer I made as part of my HND 3D Animation class assessment. The handle and the blade of the axe were created, textured and shaped individually before being grouped together. The project was developed, planned and rendered over 12 weeks. Also in the project were a sword, a throne and a crown that rolled across the floor. The axe was created using Autodesk Maya software. 
Level Designs
Basement Level Design
The above photo is a still of the basement area from the level I designed for my HND Game Customization and Scripting Class using Unreal Engine. The player's objective in the level is to find the key and escape to the final area, defeating enemies along the way. Throughout the level, there are health and ammo collectibles for the player to pick up. The level also uses trigger boxes to make the doors slide open when a user approaches. Finally, the level makes use of lifts to transport the player between areas. This level took 12 weeks to design and implement.
Outside level design
The above photo is of the upper area of the same level. This area contains the mission giver plus access to ammo, enemies and the key needed to open the next area of play. 
Alien level design
The above photo is from a game I am currently developing in my free time. The camera is pointed to give the perspective of driving through a destroyed post-apocalyptic town. The level is completely dark to make the headlights the only way to see in front of the car and to project a scary atmosphere. Particle systems are used to display the fire on the building and the light shining down from the UFO. 
Game Music
Game music
A music file I composed and created for my HNC Object Oriented Programming class. It is the theme music from the first level and was created using MuseScore2 software
Show reel
Portfolio - Scott Davidson
Published:

Portfolio - Scott Davidson

Published: