Module 1: Arduino
Thomas along with his partner learned how to use an arduino. They used various sensors, such as ultrasonic, to complete various tasks that were provided. They also learned more about circuitry and wiring.
Module 2: HTML
Using a guide, Thomas along with his partner learned the absolute basics of using HTML. They created basic websites by writing code in Notepad, as well as experimented with CSS a little.
Module 3: Soldering
Thomas and his partner used a soldering kit and followed the
instructions to learn about soldering. They learned how to solder and how to use wire cutters to strip the insulation off of wires.
Module 4: Unity & Blender
Thomas along with his partner learned the basics to unity. Thomas had prior knowledge in another programming language, LuaU, which shared some similarities with C#, the programming language which unity uses. This made it much easier for him to learn the language. He created a basic movement system, a dash, and a ranged attack. He also made a short level to go along with it. Within this module, he also used his multi-year experience in Blender, a free 3D modeling software, to create basic assets as well as teach his partner.
Module 5:
Roblox RogueLite
Thomas and his partner worked on creating a RogueLite game on Roblox. He learned how to make GUI in Roblox, as well as many other things, such as writing enemy AI, playing animations through code and troubleshooting lots of Roblox-specific issues. He used his knowledge and experience of Blender to create assets for the game. Despite his prior knowledge with LuaU, the programming language which Roblox uses, he still learned a ton of new things, such as TweenService, UserInputService, Player service, Task.Spawn() and more. By the end of module, they had a functioning RogueLite game with 4 different types of enemies a miniboss, a combo system for player attacks, 2 different weapons the player can use, and a system for invincibility frames. However, there were only 4 upgrades that the player could use.
Module 6:
Genetic Algorithm
In this module, Thomas followed a tutorial on how to create a genetic algorithm demo. The demo was written in Python. Here, Thomas learned more about Python and also learned about Genetic Algorithms. By the end of the module, he had a functional generational simulation where rectangles would gradually improve at reaching their destination while using a fitness value to gauge how well they did, and how to influence the next generation.
Module 7:
Roblox Pizzeria Game
Thomas and his partner worked on creating a Pizzeria game in Roblox Studio. He learned how to use PathFindingService to generate path waypoints that an NPC can follow. He also learned about using module scripts to create a more optimized modular system. By the end, random customers would spawn and then move to the nearest seat before then taking a seat. After takng a seat, the customer will then randmly generate a order out of a table of possible options.
Module 8:
Parry-Based Combat Boss Fight
Thomas worked on creating a Parry-Based boss fight in Roblox Studio. In this module, he learned many things such as using DataStores service to save data, and BadgeService to award badges. He also learned about animation markers, as well as honed his shaky GUI skills. By the end of the module, he had accomplished a fairly basic, yet dynamic combat system with multiple attacks, dodging, parrying, sprinting, and healing, even accompanied with different follow-up attacks depending on the current action the player was doing. On top of that, he had also made a fully functional boss multi-phase boss fight from scratch. He used his knowledge of Blender to expertly craft models from scratch, and his experience in animating to quickly create the animations used for the project, as well as many more things he learned along the way.
Link to the game: VISAGES