Loot

For more technical details, please visit the itch.io link and download the pdf. The goal of this game initially was to extensively showcase my programming ability to achieve the highest possible mark.  At each step of the way, I tried to do something I'd never done before and push my limits as a programmer. 

Firstly, procedural generation which is akin to Terraria cave systems. This was a large challenge for me but after finding a few pseudo-code tutorials online I was able to translate them into C# and Unity to make it work. I was also even able to implement a seed system so that I could test with the same map over and over. In addition to this, I made it so that the player always spawned in an empty square and added an algorithm to make a % of something turn into something else. For example, 4% of air becomes exploding barrels or 5%  of blocks become collectable friends.

 Secondly, I did A* pathfinding. This was one of the hardest things I'd ever coded but I'd felt a huge sense of achievement upon completion. If you see the 'Bacterial Assault' project, that's the one that I used to test the pathfinding without compromising the state of my current project.  I'm aware that you can download scripts and assets for this type of algorithm but I wouldn't get any marks if I were to do so. Let the record show I would like to use things like Navmesh 3D in future.

 When I added the pathfinding to my game, it caused massive lag issues. Due to the sheer size of my map and the fact that I had multiple enemies pathfinding at once and at the time I didn't know how to use async functions, the lag was unbearable. I then decisively chose to sacrifice my game's optimisation to include the pathfinding that would get me the most marks. However, to make the game playable I also chose to massively reduce the map size and made it so that there are only 2 enemies on screen at a time.

 Finally, I did the saving and loading of files using JSON. This allowed me to read/write data to a file stored in the persistent data path. This knowledged pathed the way for all my future projects and I have this project to thank for that.

Prism Break - Grade: 77%

For more technical details, please visit the itch.io link and download the pdf. The goal of this game initially was to extensively showcase my programming ability to achieve the highest possible mark.  At each step of the way, I tried to do something I'd never done before and push my limits as a programmer. 

Firstly, procedural generation which is akin to Terraria cave systems. This was a large challenge for me but after finding a few pseudo-code tutorials online I was able to translate them into C# and Unity to make it work. I was also even able to implement a seed system so that I could test with the same map over and over. In addition to this, I made it so that the player always spawned in an empty square and added an algorithm to make a % of something turn into something else. For example, 4% of air becomes exploding barrels or 5%  of blocks become collectable friends.

 Secondly, I did A* pathfinding. This was one of the hardest things I'd ever coded but I'd felt a huge sense of achievement upon completion. If you see the 'Bacterial Assault' project, that's the one that I used to test the pathfinding without compromising the state of my current project.  I'm aware that you can download scripts and assets for this type of algorithm but I wouldn't get any marks if I were to do so. Let the record show I would like to use things like Navmesh 3D in future.

 When I added the pathfinding to my game, it caused massive lag issues. Due to the sheer size of my map and the fact that I had multiple enemies pathfinding at once and at the time I didn't know how to use async functions, the lag was unbearable. I then decisively chose to sacrifice my game's optimisation to include the pathfinding that would get me the most marks. However, to make the game playable I also chose to massively reduce the map size and made it so that there are only 2 enemies on screen at a time.

 Finally, I did the saving and loading of files using JSON. This allowed me to read/write data to a file stored in the persistent data path. This knowledged pathed the way for all my future projects and I have this project to thank for that.

C++ Snake

Prior to this project, I had extensive experience with Python, Java and C# but I had never tackled the beast which is C++. Took me 1 day to learn the basics of C++, 0.5 days to figure out how to install SFML then 1.5 days to make this game. It was lots of fun to learn and I'm beginning to see the benefits of using C++ instead of C#. It is so much faster and I like using pointers and references to maximise the efficiency of my code.

 While I like the comforts that unity provides, I enjoy my experience more when I fully control how everything works. The worst part about Unity is getting bugs that can't be solved because you didn't make the component. This allows me to build a game engine from scratch and work through each problem as it arises.

 However, the worst part of using C++ is the errors. if it's not a syntax error, these errors are incredibly hard to read and interpret. I would even go as far as to say that reading the error is a red herring and you should just look at your code and see if anything's wrong.

 Despite this, I've managed to do it and it has been really fun and I feel confident about taking C++ jobs in the future.

r/AliveByTwighlight

For more technical details, please visit the itch.io link and download the pdf. The goal of this game initially was to extensively showcase my programming ability to achieve the highest possible mark.  At each step of the way, I tried to do something I'd never done before and push my limits as a programmer. 

Firstly, procedural generation which is akin to Terraria cave systems. This was a large challenge for me but after finding a few pseudo-code tutorials online I was able to translate them into C# and Unity to make it work. I was also even able to implement a seed system so that I could test with the same map over and over. In addition to this, I made it so that the player always spawned in an empty square and added an algorithm to make a % of something turn into something else. For example, 4% of air becomes exploding barrels or 5%  of blocks become collectable friends.

 Secondly, I did A* pathfinding. This was one of the hardest things I'd ever coded but I'd felt a huge sense of achievement upon completion. If you see the 'Bacterial Assault' project, that's the one that I used to test the pathfinding without compromising the state of my current project.  I'm aware that you can download scripts and assets for this type of algorithm but I wouldn't get any marks if I were to do so. Let the record show I would like to use things like Navmesh 3D in future.

 When I added the pathfinding to my game, it caused massive lag issues. Due to the sheer size of my map and the fact that I had multiple enemies pathfinding at once and at the time I didn't know how to use async functions, the lag was unbearable. I then decisively chose to sacrifice my game's optimisation to include the pathfinding that would get me the most marks. However, to make the game playable I also chose to massively reduce the map size and made it so that there are only 2 enemies on screen at a time.

 Finally, I did the saving and loading of files using JSON. This allowed me to read/write data to a file stored in the persistent data path. This knowledged pathed the way for all my future projects and I have this project to thank for that.

Auto Debugger

Placeholder

Bacterial Assault

Placeholder

Mega Chess

Placeholder

Slimey vs Slimey

Placeholder