I created a project for Advanced Higher Computing, it is worth more than half of the final grade. It must be one section of the course linked to another. I chose a Software that would integrate with a database. I came up with a few different ideas spanning from 2D puzzles to fast paced driving games. The one I expanded on was Dodgy Double Decker.
My initial idea for this was a London double decker red bus picking up passengers in a
fast-paced game akin to “Crazy Taxi,” from a top-down point of view, an ongoing timer from about 5
minutes. Delivering passengers to their location will add points. Crashing into walls and other cars/
falling over will increase your time either naturally or by adding onto timer. The camera would follow the
bus and the floor/city would move and scroll. Bus would be controlled with arrow keys/WASD and space to
brake. Camera rotates to face bus front. An arrow points from centre of bus to passenger destination so
you know where to go. Bus would flip over if going too fast when turning. A UI will show you what
destination to go to. The destination will be calculated with the greatest number of passengers wanting to
go there. Stores username, highScore, fastestDropOffTime, avgDropOffTime.
Before I continued, I made a feasibility study analysing economic, technical, legal and time constraints.
In conclusion the project is economically viable as none of the required programs cost money and any
documentation is free. All required hardware and software are readily available, and both the school and
my personal computer can run any needed software. The project is legally feasible as I am not selling it
or distributing it to a wider audience. I will have enough time to complete this project accounting for
holidays prelims and extra time for unforeseen situations. Overall, this project is feasible.
The idea eventually evolved into a 3D bus driving game with 1 predesigned level, object-oriented program
with an array of objects. This game will be able to calculate movement from the keyboard and each wheel,
taking into consideration of gravity and other objects, while inside the level. The user must be shown the
game through a camera which hovers over the bus in 2 different ways depending on a toggle. When the bus
enters a bus stop the game must allow the user to pick up passengers and add their destinations to an
array. The user must be shown an arrow, pointing to the direction of the bus stop with the most
destinations. The game must calculate money based on the distance between the passenger’s collection point
and the passenger’s destination. The game must count down from 3 minutes and when it finishes it will end
the game, displaying the final score and a leader board of everyone who has played the game. The leader
board must display a name and their fares along with bonus values such the game must have a main screen
with a play, quit and leader board buttons. During the game the user must be able to exit to the main
menu, the user must be able to change the camera view from a racing perspective to a top-down arcade
perspective. The user must also be able to see the time ticking down, the money they have and the list of
destinations that the passengers want to go to, sorted from most passengers to least passengers with
insertion sort. This is not the final idea as I am constantly iterating and tweaking it.
I created a functional requirements list split into inputs, processes, outputs/ user interface. I
conducted a survey with eighteen responses about the colour scheme, art style, inputs, technical features,
level design, sounds, and non-player characters. Once all feedback was collected, I got the end-user
requirements.
Next was the design section, I must design the user interface design, advanced higher concepts, and the
database design and queries. Lucid chart was used to create my UI with readability for further screens in
mind while still maximizing the viewing experience for the game.
I am currently still working on the database connectivity as I am using Unity and C# to make the game and
I have no experience with integration with SQL for it.
There is over 1500 sections of documented implementation and fails and more than 5000 lines of code, so I
do not intend to explain it all here so I will list them: