- "Why are we here?" is a 3D animation satire on first-person shooters, heavily inspired by Halo and Red vs. Blue.
- It was developed over a few weeks in Unity using the HDRP rendering pipeline for a group project, where we used existing 3D models.
- Throughout the process, I gained hands-on experience with the complete 3D animation production pipeline,
- from storyboarding and pre-production planning to animation, lighting, rendering, and VFX.
- This project helped me develop a stronger understanding of motion analysis, character animation, and scene composition,
- while also giving me the opportunity to collaborate on production management and post-production tasks to deliver a polished final piece.
-
- This personal project involved creating a detailed 3D model of a house using Blender to develop my modelling, UV unwrapping, texturing, lighting and rendering skills.
- I focused on achieving realistic textures and materials by using my own photographs and free textures sourced online.
-
-
What I learned
-
- In the course of this project, I learned how to UV unwrap models, which allowed me to apply textures accurately and realistically across different surfaces.
- Working on lighting setups and camera positioning taught me how to enhance the final render, bringing out the model's textures and structure.
- This project helped me understand the end-to-end process of creating a 3D environment, from modelling and texturing to lighting and rendering.
-
- I developed an interactive online car rental system as a solo project, using HTML, CSS, JavaScript, PHP, AJAX, and JSON.
- The platform allows users to browse and search cars by type or brand, check availability, and make or cancel rental reservations.
- I implemented dynamic features such as asynchronous data loading via AJAX, session-based reservation persistence, and real-time availability updates using JSON and MySQL.
- User input validation and exception handling were built in to ensure a seamless user experience.
- For data management, I designed a structured JSON file to store car details and integrated a MySQL database to handle rental orders.
- The site was deployed on AWS Elastic Beanstalk, showcasing my ability to build and deploy full-stack web applications with rich interactivity and robust backend integration.
-
- Caved In is a cooperative first-person survival extraction game, developed over three months in Unreal Engine as part of a university group project.
- Set within a cave system, 4-8 players must collect plant samples and transport them back to the exit to open the elevator door and escape.
- However, while exploring the mine, players risk infection—forcing them to hide their condition from others.
- Infected players can secretly sabotage the team by laying traps to spread the infection further.
- We had the chance to collaborate with a sound design student, which helped us achieve our vision of an immersive survival horror experience.
-
-
What I contributed
-
- I developed the player inventory and character selection systems, along with their user interfaces.
- I also implemented nearly all the player items in the game, including both their functionality and animations.
- Additionally, I created the user interface for the lobby's host/join screen.
-
-
Difficulties in development
-
- The ambitious scope of implementing networked multiplayer presented significant challenges for us.
- This complexity extended the development time of each feature, as we had to address numerous edge cases in client-server interactions.
- As a result, our final submission wasn't as polished as we had hoped.
-
- Clash of Commands is a web-based educational game designed to help IT students at UTS master
- UNIX terminal commands through gamification. The Web Systems 31268 course is known for its difficulty, and this game makes
- learning more interactive and engaging. Inspired by Kahoot!, it includes points, leaderboards, and increasing difficulty levels to
- boost motivation. The game simulates a UNIX terminal, offering realistic command-line challenges that align with course content. Originally
- planned as a multiplayer experience, it was adapted into a single-player format with a high-score system. Future updates could introduce
- advanced topics like scripting, text processing, and command chaining. Designed for both classroom and independent learning, this tool
- enhances engagement, progress tracking, and knowledge retention.
-
-
What I Learned
-
- Developing Clash of Commands gave me hands-on experience in serious game design and gamification for education.
- I learned how to create targeted game mechanics to support students struggling with UNIX commands, ensuring the game was
- both fun and effective. The project strengthened my understanding of iterative design, as playtesting and feedback
- drove improvements. I also gained insight into ethical and user-centered design, focusing on accessibility and engagement.
- This experience has sharpened my ability to build purpose-driven interactive experiences that solve real-world learning challenges.
-
-
-
\ No newline at end of file
diff --git a/DualWield.html b/DualWield.html
deleted file mode 100644
index be2834b..0000000
--- a/DualWield.html
+++ /dev/null
@@ -1,96 +0,0 @@
----
-permalink: "{{ page.fileSlug }}.html"
----
-
-
-
-
- Dylan Archer Portfolio
-
-
-
-
-
-
-
-
-
-
-
-
-
Dual Wield
- {% NavigationButtons %}
-
-
-
-
-
-
About the project
-
- Dual Wield is a first-person shooter developed over three months using the Unity Game Engine as part of a university group project.
- Players can wield two firearms simultaneously, allowing for up to 10 unique weapon combinations to tackle the enemies they encounter.
- Our project was honoured with a nomination for the UTS Tech Festival 2024 Student Games Showcase.
-
-
What I contributed
-
- Throughout the project's development, I contributed to various gameplay features and systems.
- Additionally, I worked on 3D modelling for several of the weapons and some elements of the levels.
-
-
What I learned
-
- As a collaborative project, Dual Wield provided me the opportunity to apply the project management principles I studied in my university course.
- Regular reflection on our development process allowed us to adapt and improve our work continuously.
- I gained valuable experience in integrating design, programming, and artistic skills from different team members to create a cohesive final product.
- We also received feedback from playtests, which guided our development and strengthened our project.
-
- I developed a fully functional Online Grocery Store as a solo project, utilising a stack that included HTML, CSS, JavaScript, PHP, and SQL.
- The website features a user-friendly interface that allows customers to browse products, add items to their cart, and complete purchases seamlessly.
- I implemented dynamic functionalities such as product filtering and search options using JavaScript, while PHP and SQL were used for backend processes, including database management for inventory and orders.
- As part of the assessment I deployed the website on AWS, allowing users to access it from anywhere.
- This project not only enhanced my technical skills but also provided valuable experience in full-stack development and cloud deployment.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Images/Favicon/apple-touch-icon.png b/Images/Favicon/apple-touch-icon.png
new file mode 100644
index 0000000..fe01030
Binary files /dev/null and b/Images/Favicon/apple-touch-icon.png differ
diff --git a/Images/Favicon/favicon-16x16.png b/Images/Favicon/favicon-16x16.png
new file mode 100644
index 0000000..7215e41
Binary files /dev/null and b/Images/Favicon/favicon-16x16.png differ
diff --git a/Images/Favicon/favicon-192x192.png b/Images/Favicon/favicon-192x192.png
new file mode 100644
index 0000000..5b94c63
Binary files /dev/null and b/Images/Favicon/favicon-192x192.png differ
diff --git a/Images/Favicon/favicon-32x32.png b/Images/Favicon/favicon-32x32.png
new file mode 100644
index 0000000..e86e169
Binary files /dev/null and b/Images/Favicon/favicon-32x32.png differ
diff --git a/Images/Favicon/favicon-512x512.png b/Images/Favicon/favicon-512x512.png
new file mode 100644
index 0000000..a0f2fd2
Binary files /dev/null and b/Images/Favicon/favicon-512x512.png differ
diff --git a/Images/Favicon/favicon.ico b/Images/Favicon/favicon.ico
new file mode 100644
index 0000000..8276003
Binary files /dev/null and b/Images/Favicon/favicon.ico differ
diff --git a/Images/Logos/AWS.png b/Images/Logos/AWS.png
deleted file mode 100644
index c589f56..0000000
Binary files a/Images/Logos/AWS.png and /dev/null differ
diff --git a/Images/Logos/AWS.webp b/Images/Logos/AWS.webp
new file mode 100644
index 0000000..5235440
Binary files /dev/null and b/Images/Logos/AWS.webp differ
diff --git a/Images/Logos/Blender-Logo.png b/Images/Logos/Blender-Logo.png
deleted file mode 100644
index db8f257..0000000
Binary files a/Images/Logos/Blender-Logo.png and /dev/null differ
diff --git a/Images/Logos/Blender-Logo.webp b/Images/Logos/Blender-Logo.webp
new file mode 100644
index 0000000..c291b3b
Binary files /dev/null and b/Images/Logos/Blender-Logo.webp differ
diff --git a/Images/Logos/C++.png b/Images/Logos/C++.png
deleted file mode 100644
index ece29d4..0000000
Binary files a/Images/Logos/C++.png and /dev/null differ
diff --git a/Images/Logos/C++.webp b/Images/Logos/C++.webp
new file mode 100644
index 0000000..909f8ea
Binary files /dev/null and b/Images/Logos/C++.webp differ
diff --git a/Images/Logos/CSS.png b/Images/Logos/CSS.png
deleted file mode 100644
index bcc01d6..0000000
Binary files a/Images/Logos/CSS.png and /dev/null differ
diff --git a/Images/Logos/CSS.webp b/Images/Logos/CSS.webp
new file mode 100644
index 0000000..3fb0de3
Binary files /dev/null and b/Images/Logos/CSS.webp differ
diff --git a/Images/Logos/CSharp.png b/Images/Logos/CSharp.png
deleted file mode 100644
index dcec78b..0000000
Binary files a/Images/Logos/CSharp.png and /dev/null differ
diff --git a/Images/Logos/CSharp.webp b/Images/Logos/CSharp.webp
new file mode 100644
index 0000000..fea182d
Binary files /dev/null and b/Images/Logos/CSharp.webp differ
diff --git a/Images/Logos/GitHubLogo.png b/Images/Logos/GitHubLogo.png
deleted file mode 100644
index 9490ffc..0000000
Binary files a/Images/Logos/GitHubLogo.png and /dev/null differ
diff --git a/Images/Logos/GitHubLogo.webp b/Images/Logos/GitHubLogo.webp
new file mode 100644
index 0000000..8a3149a
Binary files /dev/null and b/Images/Logos/GitHubLogo.webp differ
diff --git a/Images/Logos/HTML.png b/Images/Logos/HTML.png
deleted file mode 100644
index 7620eee..0000000
Binary files a/Images/Logos/HTML.png and /dev/null differ
diff --git a/Images/Logos/HTML.webp b/Images/Logos/HTML.webp
new file mode 100644
index 0000000..9d3cfab
Binary files /dev/null and b/Images/Logos/HTML.webp differ
diff --git a/Images/Logos/IconMail.png b/Images/Logos/IconMail.png
deleted file mode 100644
index 7f61d3c..0000000
Binary files a/Images/Logos/IconMail.png and /dev/null differ
diff --git a/Images/Logos/IconMail.webp b/Images/Logos/IconMail.webp
new file mode 100644
index 0000000..46fdb15
Binary files /dev/null and b/Images/Logos/IconMail.webp differ
diff --git a/Images/Logos/IconPhone.png b/Images/Logos/IconPhone.png
deleted file mode 100644
index 6b9ab45..0000000
Binary files a/Images/Logos/IconPhone.png and /dev/null differ
diff --git a/Images/Logos/IconPhone.webp b/Images/Logos/IconPhone.webp
new file mode 100644
index 0000000..faaae28
Binary files /dev/null and b/Images/Logos/IconPhone.webp differ
diff --git a/Images/Logos/UE5-Logo.png b/Images/Logos/UE5-Logo.png
deleted file mode 100644
index 5ae221b..0000000
Binary files a/Images/Logos/UE5-Logo.png and /dev/null differ
diff --git a/Images/Logos/UE5-Logo.webp b/Images/Logos/UE5-Logo.webp
new file mode 100644
index 0000000..c9ad830
Binary files /dev/null and b/Images/Logos/UE5-Logo.webp differ
diff --git a/Images/Logos/Unity-Logo.png b/Images/Logos/Unity-Logo.png
deleted file mode 100644
index afe943d..0000000
Binary files a/Images/Logos/Unity-Logo.png and /dev/null differ
diff --git a/Images/Logos/Unity-Logo.webp b/Images/Logos/Unity-Logo.webp
new file mode 100644
index 0000000..db8eb37
Binary files /dev/null and b/Images/Logos/Unity-Logo.webp differ
diff --git a/Images/Logos/iOS-Logo.png b/Images/Logos/iOS-Logo.png
deleted file mode 100644
index bcfe8b2..0000000
Binary files a/Images/Logos/iOS-Logo.png and /dev/null differ
diff --git a/Images/Logos/iOS-Logo.webp b/Images/Logos/iOS-Logo.webp
new file mode 100644
index 0000000..b0c3bbd
Binary files /dev/null and b/Images/Logos/iOS-Logo.webp differ
diff --git a/Images/Placeholder.png b/Images/Placeholder.png
deleted file mode 100644
index d56c631..0000000
Binary files a/Images/Placeholder.png and /dev/null differ
diff --git a/Images/ProfilePicture.jpeg b/Images/ProfilePicture.jpeg
deleted file mode 100644
index d8c35a4..0000000
Binary files a/Images/ProfilePicture.jpeg and /dev/null differ
diff --git a/Images/ProfilePicture.webp b/Images/ProfilePicture.webp
new file mode 100644
index 0000000..d29b329
Binary files /dev/null and b/Images/ProfilePicture.webp differ
diff --git a/Images/Project Screenshots/Blender/Blender Shot (1).png b/Images/Project Screenshots/Blender/Blender Shot (1).png
deleted file mode 100644
index 698f2d9..0000000
Binary files a/Images/Project Screenshots/Blender/Blender Shot (1).png and /dev/null differ
diff --git a/Images/Project Screenshots/Blender/Blender Shot (1).webp b/Images/Project Screenshots/Blender/Blender Shot (1).webp
new file mode 100644
index 0000000..c1fa425
Binary files /dev/null and b/Images/Project Screenshots/Blender/Blender Shot (1).webp differ
diff --git a/Images/Project Screenshots/Blender/Blender Shot (2).png b/Images/Project Screenshots/Blender/Blender Shot (2).png
deleted file mode 100644
index 29903a2..0000000
Binary files a/Images/Project Screenshots/Blender/Blender Shot (2).png and /dev/null differ
diff --git a/Images/Project Screenshots/Blender/Blender Shot (2).webp b/Images/Project Screenshots/Blender/Blender Shot (2).webp
new file mode 100644
index 0000000..8ab5224
Binary files /dev/null and b/Images/Project Screenshots/Blender/Blender Shot (2).webp differ
diff --git a/Images/Project Screenshots/Blender/Blender Shot (3).png b/Images/Project Screenshots/Blender/Blender Shot (3).png
deleted file mode 100644
index 4f056f9..0000000
Binary files a/Images/Project Screenshots/Blender/Blender Shot (3).png and /dev/null differ
diff --git a/Images/Project Screenshots/Blender/Blender Shot (3).webp b/Images/Project Screenshots/Blender/Blender Shot (3).webp
new file mode 100644
index 0000000..47398f1
Binary files /dev/null and b/Images/Project Screenshots/Blender/Blender Shot (3).webp differ
diff --git a/Images/Project Screenshots/Blender/Blender Shot (4).png b/Images/Project Screenshots/Blender/Blender Shot (4).png
deleted file mode 100644
index e4d4ef0..0000000
Binary files a/Images/Project Screenshots/Blender/Blender Shot (4).png and /dev/null differ
diff --git a/Images/Project Screenshots/Blender/Blender Shot (4).webp b/Images/Project Screenshots/Blender/Blender Shot (4).webp
new file mode 100644
index 0000000..71db6b9
Binary files /dev/null and b/Images/Project Screenshots/Blender/Blender Shot (4).webp differ
diff --git a/Images/Project Screenshots/Car Rental System/Filters.png b/Images/Project Screenshots/Car Rental System/Filters.png
deleted file mode 100644
index 6be336a..0000000
Binary files a/Images/Project Screenshots/Car Rental System/Filters.png and /dev/null differ
diff --git a/Images/Project Screenshots/Car Rental System/Filters.webp b/Images/Project Screenshots/Car Rental System/Filters.webp
new file mode 100644
index 0000000..52353bc
Binary files /dev/null and b/Images/Project Screenshots/Car Rental System/Filters.webp differ
diff --git a/Images/Project Screenshots/Car Rental System/HomePage.png b/Images/Project Screenshots/Car Rental System/HomePage.png
deleted file mode 100644
index d1906b0..0000000
Binary files a/Images/Project Screenshots/Car Rental System/HomePage.png and /dev/null differ
diff --git a/Images/Project Screenshots/Car Rental System/HomePage.webp b/Images/Project Screenshots/Car Rental System/HomePage.webp
new file mode 100644
index 0000000..7b62d16
Binary files /dev/null and b/Images/Project Screenshots/Car Rental System/HomePage.webp differ
diff --git a/Images/Project Screenshots/Car Rental System/PlaceOrder.png b/Images/Project Screenshots/Car Rental System/PlaceOrder.png
deleted file mode 100644
index ed21ed8..0000000
Binary files a/Images/Project Screenshots/Car Rental System/PlaceOrder.png and /dev/null differ
diff --git a/Images/Project Screenshots/Car Rental System/PlaceOrder.webp b/Images/Project Screenshots/Car Rental System/PlaceOrder.webp
new file mode 100644
index 0000000..f28d26d
Binary files /dev/null and b/Images/Project Screenshots/Car Rental System/PlaceOrder.webp differ
diff --git a/Images/Project Screenshots/Car Rental System/SearchResults.png b/Images/Project Screenshots/Car Rental System/SearchResults.png
deleted file mode 100644
index 445bbe5..0000000
Binary files a/Images/Project Screenshots/Car Rental System/SearchResults.png and /dev/null differ
diff --git a/Images/Project Screenshots/Car Rental System/SearchResults.webp b/Images/Project Screenshots/Car Rental System/SearchResults.webp
new file mode 100644
index 0000000..3786f5d
Binary files /dev/null and b/Images/Project Screenshots/Car Rental System/SearchResults.webp differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Bridge.png b/Images/Project Screenshots/Caved In/Caved In Bridge.png
deleted file mode 100644
index bd6285c..0000000
Binary files a/Images/Project Screenshots/Caved In/Caved In Bridge.png and /dev/null differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Bridge.webp b/Images/Project Screenshots/Caved In/Caved In Bridge.webp
new file mode 100644
index 0000000..02a3ea6
Binary files /dev/null and b/Images/Project Screenshots/Caved In/Caved In Bridge.webp differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Compass.png b/Images/Project Screenshots/Caved In/Caved In Compass.png
deleted file mode 100644
index d54d8d8..0000000
Binary files a/Images/Project Screenshots/Caved In/Caved In Compass.png and /dev/null differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Compass.webp b/Images/Project Screenshots/Caved In/Caved In Compass.webp
new file mode 100644
index 0000000..921418a
Binary files /dev/null and b/Images/Project Screenshots/Caved In/Caved In Compass.webp differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Elevator.png b/Images/Project Screenshots/Caved In/Caved In Elevator.png
deleted file mode 100644
index 6a43991..0000000
Binary files a/Images/Project Screenshots/Caved In/Caved In Elevator.png and /dev/null differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Elevator.webp b/Images/Project Screenshots/Caved In/Caved In Elevator.webp
new file mode 100644
index 0000000..63261b1
Binary files /dev/null and b/Images/Project Screenshots/Caved In/Caved In Elevator.webp differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Heat Vision.png b/Images/Project Screenshots/Caved In/Caved In Heat Vision.png
deleted file mode 100644
index 4ac0acc..0000000
Binary files a/Images/Project Screenshots/Caved In/Caved In Heat Vision.png and /dev/null differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Heat Vision.webp b/Images/Project Screenshots/Caved In/Caved In Heat Vision.webp
new file mode 100644
index 0000000..c95b045
Binary files /dev/null and b/Images/Project Screenshots/Caved In/Caved In Heat Vision.webp differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Infected Tunnel.png b/Images/Project Screenshots/Caved In/Caved In Infected Tunnel.png
deleted file mode 100644
index af36db4..0000000
Binary files a/Images/Project Screenshots/Caved In/Caved In Infected Tunnel.png and /dev/null differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Infected Tunnel.webp b/Images/Project Screenshots/Caved In/Caved In Infected Tunnel.webp
new file mode 100644
index 0000000..80a09cf
Binary files /dev/null and b/Images/Project Screenshots/Caved In/Caved In Infected Tunnel.webp differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Lobby.png b/Images/Project Screenshots/Caved In/Caved In Lobby.png
deleted file mode 100644
index b447679..0000000
Binary files a/Images/Project Screenshots/Caved In/Caved In Lobby.png and /dev/null differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Lobby.webp b/Images/Project Screenshots/Caved In/Caved In Lobby.webp
new file mode 100644
index 0000000..e89483b
Binary files /dev/null and b/Images/Project Screenshots/Caved In/Caved In Lobby.webp differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Menu.png b/Images/Project Screenshots/Caved In/Caved In Menu.png
deleted file mode 100644
index 76a9fc9..0000000
Binary files a/Images/Project Screenshots/Caved In/Caved In Menu.png and /dev/null differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Menu.webp b/Images/Project Screenshots/Caved In/Caved In Menu.webp
new file mode 100644
index 0000000..629b38f
Binary files /dev/null and b/Images/Project Screenshots/Caved In/Caved In Menu.webp differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Mining.png b/Images/Project Screenshots/Caved In/Caved In Mining.png
deleted file mode 100644
index f90a3be..0000000
Binary files a/Images/Project Screenshots/Caved In/Caved In Mining.png and /dev/null differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Mining.webp b/Images/Project Screenshots/Caved In/Caved In Mining.webp
new file mode 100644
index 0000000..8f46bcc
Binary files /dev/null and b/Images/Project Screenshots/Caved In/Caved In Mining.webp differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Tunnel.png b/Images/Project Screenshots/Caved In/Caved In Tunnel.png
deleted file mode 100644
index 582da51..0000000
Binary files a/Images/Project Screenshots/Caved In/Caved In Tunnel.png and /dev/null differ
diff --git a/Images/Project Screenshots/Caved In/Caved In Tunnel.webp b/Images/Project Screenshots/Caved In/Caved In Tunnel.webp
new file mode 100644
index 0000000..b365808
Binary files /dev/null and b/Images/Project Screenshots/Caved In/Caved In Tunnel.webp differ
diff --git a/Images/Project Screenshots/Clash of Commands/ClashOfCommands1.png b/Images/Project Screenshots/Clash of Commands/ClashOfCommands1.png
deleted file mode 100644
index 25357b2..0000000
Binary files a/Images/Project Screenshots/Clash of Commands/ClashOfCommands1.png and /dev/null differ
diff --git a/Images/Project Screenshots/Clash of Commands/ClashOfCommands1.webp b/Images/Project Screenshots/Clash of Commands/ClashOfCommands1.webp
new file mode 100644
index 0000000..177ec72
Binary files /dev/null and b/Images/Project Screenshots/Clash of Commands/ClashOfCommands1.webp differ
diff --git a/Images/Project Screenshots/Clash of Commands/ClashOfCommands2.png b/Images/Project Screenshots/Clash of Commands/ClashOfCommands2.png
deleted file mode 100644
index b2d058a..0000000
Binary files a/Images/Project Screenshots/Clash of Commands/ClashOfCommands2.png and /dev/null differ
diff --git a/Images/Project Screenshots/Clash of Commands/ClashOfCommands2.webp b/Images/Project Screenshots/Clash of Commands/ClashOfCommands2.webp
new file mode 100644
index 0000000..78d3c5e
Binary files /dev/null and b/Images/Project Screenshots/Clash of Commands/ClashOfCommands2.webp differ
diff --git a/Images/Project Screenshots/Clash of Commands/ClashOfCommands3.png b/Images/Project Screenshots/Clash of Commands/ClashOfCommands3.png
deleted file mode 100644
index 139834e..0000000
Binary files a/Images/Project Screenshots/Clash of Commands/ClashOfCommands3.png and /dev/null differ
diff --git a/Images/Project Screenshots/Clash of Commands/ClashOfCommands3.webp b/Images/Project Screenshots/Clash of Commands/ClashOfCommands3.webp
new file mode 100644
index 0000000..e879383
Binary files /dev/null and b/Images/Project Screenshots/Clash of Commands/ClashOfCommands3.webp differ
diff --git a/Images/Project Screenshots/Dual Wield/Dual Wield Flame Rocket.png b/Images/Project Screenshots/Dual Wield/Dual Wield Flame Rocket.png
deleted file mode 100644
index 9ca1671..0000000
Binary files a/Images/Project Screenshots/Dual Wield/Dual Wield Flame Rocket.png and /dev/null differ
diff --git a/Images/Project Screenshots/Dual Wield/Dual Wield Flame Rocket.webp b/Images/Project Screenshots/Dual Wield/Dual Wield Flame Rocket.webp
new file mode 100644
index 0000000..0ed01ee
Binary files /dev/null and b/Images/Project Screenshots/Dual Wield/Dual Wield Flame Rocket.webp differ
diff --git a/Images/Project Screenshots/Dual Wield/Dual Wield Flame.png b/Images/Project Screenshots/Dual Wield/Dual Wield Flame.png
deleted file mode 100644
index 38274b7..0000000
Binary files a/Images/Project Screenshots/Dual Wield/Dual Wield Flame.png and /dev/null differ
diff --git a/Images/Project Screenshots/Dual Wield/Dual Wield Flame.webp b/Images/Project Screenshots/Dual Wield/Dual Wield Flame.webp
new file mode 100644
index 0000000..a609e13
Binary files /dev/null and b/Images/Project Screenshots/Dual Wield/Dual Wield Flame.webp differ
diff --git a/Images/Project Screenshots/Dual Wield/Dual Wield Laser Rocket.png b/Images/Project Screenshots/Dual Wield/Dual Wield Laser Rocket.png
deleted file mode 100644
index b948a09..0000000
Binary files a/Images/Project Screenshots/Dual Wield/Dual Wield Laser Rocket.png and /dev/null differ
diff --git a/Images/Project Screenshots/Dual Wield/Dual Wield Laser Rocket.webp b/Images/Project Screenshots/Dual Wield/Dual Wield Laser Rocket.webp
new file mode 100644
index 0000000..99b28e4
Binary files /dev/null and b/Images/Project Screenshots/Dual Wield/Dual Wield Laser Rocket.webp differ
diff --git a/Images/Project Screenshots/Dual Wield/Dual Wield Title Screen.png b/Images/Project Screenshots/Dual Wield/Dual Wield Title Screen.png
deleted file mode 100644
index d88cae8..0000000
Binary files a/Images/Project Screenshots/Dual Wield/Dual Wield Title Screen.png and /dev/null differ
diff --git a/Images/Project Screenshots/Dual Wield/Dual Wield Title Screen.webp b/Images/Project Screenshots/Dual Wield/Dual Wield Title Screen.webp
new file mode 100644
index 0000000..ac60bf8
Binary files /dev/null and b/Images/Project Screenshots/Dual Wield/Dual Wield Title Screen.webp differ
diff --git a/Images/Project Screenshots/Dual Wield/Dual Wield UTS.png b/Images/Project Screenshots/Dual Wield/Dual Wield UTS.png
deleted file mode 100644
index fcf9e22..0000000
Binary files a/Images/Project Screenshots/Dual Wield/Dual Wield UTS.png and /dev/null differ
diff --git a/Images/Project Screenshots/Dual Wield/Dual Wield UTS.webp b/Images/Project Screenshots/Dual Wield/Dual Wield UTS.webp
new file mode 100644
index 0000000..064882f
Binary files /dev/null and b/Images/Project Screenshots/Dual Wield/Dual Wield UTS.webp differ
diff --git a/Images/Project Screenshots/Grocery Store/Grocery Store (1).png b/Images/Project Screenshots/Grocery Store/Grocery Store (1).png
deleted file mode 100644
index 48b953d..0000000
Binary files a/Images/Project Screenshots/Grocery Store/Grocery Store (1).png and /dev/null differ
diff --git a/Images/Project Screenshots/Grocery Store/Grocery Store (1).webp b/Images/Project Screenshots/Grocery Store/Grocery Store (1).webp
new file mode 100644
index 0000000..d45b9ec
Binary files /dev/null and b/Images/Project Screenshots/Grocery Store/Grocery Store (1).webp differ
diff --git a/Images/Project Screenshots/Grocery Store/Grocery Store (2).png b/Images/Project Screenshots/Grocery Store/Grocery Store (2).png
deleted file mode 100644
index 2d1006c..0000000
Binary files a/Images/Project Screenshots/Grocery Store/Grocery Store (2).png and /dev/null differ
diff --git a/Images/Project Screenshots/Grocery Store/Grocery Store (2).webp b/Images/Project Screenshots/Grocery Store/Grocery Store (2).webp
new file mode 100644
index 0000000..368c475
Binary files /dev/null and b/Images/Project Screenshots/Grocery Store/Grocery Store (2).webp differ
diff --git a/Images/Project Screenshots/Grocery Store/Grocery Store (3).png b/Images/Project Screenshots/Grocery Store/Grocery Store (3).png
deleted file mode 100644
index b709aa5..0000000
Binary files a/Images/Project Screenshots/Grocery Store/Grocery Store (3).png and /dev/null differ
diff --git a/Images/Project Screenshots/Grocery Store/Grocery Store (3).webp b/Images/Project Screenshots/Grocery Store/Grocery Store (3).webp
new file mode 100644
index 0000000..2465eee
Binary files /dev/null and b/Images/Project Screenshots/Grocery Store/Grocery Store (3).webp differ
diff --git a/Images/Project Screenshots/Grocery Store/Grocery Store (4).png b/Images/Project Screenshots/Grocery Store/Grocery Store (4).png
deleted file mode 100644
index b361cf5..0000000
Binary files a/Images/Project Screenshots/Grocery Store/Grocery Store (4).png and /dev/null differ
diff --git a/Images/Project Screenshots/Grocery Store/Grocery Store (4).webp b/Images/Project Screenshots/Grocery Store/Grocery Store (4).webp
new file mode 100644
index 0000000..2f91b9a
Binary files /dev/null and b/Images/Project Screenshots/Grocery Store/Grocery Store (4).webp differ
diff --git a/Images/Project Screenshots/OnTaskPro/Personae.jpg b/Images/Project Screenshots/OnTaskPro/Personae.jpg
deleted file mode 100644
index 5b167c3..0000000
Binary files a/Images/Project Screenshots/OnTaskPro/Personae.jpg and /dev/null differ
diff --git a/Images/Project Screenshots/OnTaskPro/Personae.webp b/Images/Project Screenshots/OnTaskPro/Personae.webp
new file mode 100644
index 0000000..67a4906
Binary files /dev/null and b/Images/Project Screenshots/OnTaskPro/Personae.webp differ
diff --git a/Images/Project Screenshots/OnTaskPro/Prototype.jpg b/Images/Project Screenshots/OnTaskPro/Prototype.jpg
deleted file mode 100644
index 3c0efde..0000000
Binary files a/Images/Project Screenshots/OnTaskPro/Prototype.jpg and /dev/null differ
diff --git a/Images/Project Screenshots/OnTaskPro/Prototype.webp b/Images/Project Screenshots/OnTaskPro/Prototype.webp
new file mode 100644
index 0000000..ec6c4fb
Binary files /dev/null and b/Images/Project Screenshots/OnTaskPro/Prototype.webp differ
diff --git a/Images/Project Screenshots/OnTaskPro/QuestionMindmap.jpg b/Images/Project Screenshots/OnTaskPro/QuestionMindmap.jpg
deleted file mode 100644
index 84417b6..0000000
Binary files a/Images/Project Screenshots/OnTaskPro/QuestionMindmap.jpg and /dev/null differ
diff --git a/Images/Project Screenshots/OnTaskPro/QuestionMindmap.webp b/Images/Project Screenshots/OnTaskPro/QuestionMindmap.webp
new file mode 100644
index 0000000..9318697
Binary files /dev/null and b/Images/Project Screenshots/OnTaskPro/QuestionMindmap.webp differ
diff --git a/Images/Project Screenshots/OnTaskPro/SolutionMindmap.jpg b/Images/Project Screenshots/OnTaskPro/SolutionMindmap.jpg
deleted file mode 100644
index 4d4fbff..0000000
Binary files a/Images/Project Screenshots/OnTaskPro/SolutionMindmap.jpg and /dev/null differ
diff --git a/Images/Project Screenshots/OnTaskPro/SolutionMindmap.webp b/Images/Project Screenshots/OnTaskPro/SolutionMindmap.webp
new file mode 100644
index 0000000..b9d1299
Binary files /dev/null and b/Images/Project Screenshots/OnTaskPro/SolutionMindmap.webp differ
diff --git a/Images/Project Screenshots/OnTaskPro/TaskTracker.png b/Images/Project Screenshots/OnTaskPro/TaskTracker.png
deleted file mode 100644
index 9c1febf..0000000
Binary files a/Images/Project Screenshots/OnTaskPro/TaskTracker.png and /dev/null differ
diff --git a/Images/Project Screenshots/OnTaskPro/TaskTracker.webp b/Images/Project Screenshots/OnTaskPro/TaskTracker.webp
new file mode 100644
index 0000000..7043b0a
Binary files /dev/null and b/Images/Project Screenshots/OnTaskPro/TaskTracker.webp differ
diff --git a/Images/Project Screenshots/PacStudent/PacStudent1.png b/Images/Project Screenshots/PacStudent/PacStudent1.png
deleted file mode 100644
index 4feffba..0000000
Binary files a/Images/Project Screenshots/PacStudent/PacStudent1.png and /dev/null differ
diff --git a/Images/Project Screenshots/PacStudent/PacStudent1.webp b/Images/Project Screenshots/PacStudent/PacStudent1.webp
new file mode 100644
index 0000000..2cd2560
Binary files /dev/null and b/Images/Project Screenshots/PacStudent/PacStudent1.webp differ
diff --git a/Images/Project Screenshots/PacStudent/PacStudent2.png b/Images/Project Screenshots/PacStudent/PacStudent2.png
deleted file mode 100644
index d5a0387..0000000
Binary files a/Images/Project Screenshots/PacStudent/PacStudent2.png and /dev/null differ
diff --git a/Images/Project Screenshots/PacStudent/PacStudent2.webp b/Images/Project Screenshots/PacStudent/PacStudent2.webp
new file mode 100644
index 0000000..8a1be7f
Binary files /dev/null and b/Images/Project Screenshots/PacStudent/PacStudent2.webp differ
diff --git a/Images/Project Screenshots/Quiz App/Quiz App.png b/Images/Project Screenshots/Quiz App/Quiz App.png
deleted file mode 100644
index 4d028e3..0000000
Binary files a/Images/Project Screenshots/Quiz App/Quiz App.png and /dev/null differ
diff --git a/Images/Project Screenshots/Quiz App/Quiz App.webp b/Images/Project Screenshots/Quiz App/Quiz App.webp
new file mode 100644
index 0000000..0c1c70a
Binary files /dev/null and b/Images/Project Screenshots/Quiz App/Quiz App.webp differ
diff --git a/Images/Project Screenshots/Snaked/Snaked-Together-1.webp b/Images/Project Screenshots/Snaked/Snaked-Together-1.webp
new file mode 100644
index 0000000..e19c32e
Binary files /dev/null and b/Images/Project Screenshots/Snaked/Snaked-Together-1.webp differ
diff --git a/Images/Project Screenshots/Snaked/Snaked-Together-16x9.webp b/Images/Project Screenshots/Snaked/Snaked-Together-16x9.webp
new file mode 100644
index 0000000..c402f95
Binary files /dev/null and b/Images/Project Screenshots/Snaked/Snaked-Together-16x9.webp differ
diff --git a/Images/Project Screenshots/Snaked/Snaked-Together-2.webp b/Images/Project Screenshots/Snaked/Snaked-Together-2.webp
new file mode 100644
index 0000000..8f167e9
Binary files /dev/null and b/Images/Project Screenshots/Snaked/Snaked-Together-2.webp differ
diff --git a/Images/Project Screenshots/Wormy/Wormy (1).png b/Images/Project Screenshots/Wormy/Wormy (1).png
deleted file mode 100644
index 3595af2..0000000
Binary files a/Images/Project Screenshots/Wormy/Wormy (1).png and /dev/null differ
diff --git a/Images/Project Screenshots/Wormy/Wormy (1).webp b/Images/Project Screenshots/Wormy/Wormy (1).webp
new file mode 100644
index 0000000..2ba4a0d
Binary files /dev/null and b/Images/Project Screenshots/Wormy/Wormy (1).webp differ
diff --git a/Images/Project Screenshots/Wormy/Wormy (2).png b/Images/Project Screenshots/Wormy/Wormy (2).png
deleted file mode 100644
index 37410c5..0000000
Binary files a/Images/Project Screenshots/Wormy/Wormy (2).png and /dev/null differ
diff --git a/Images/Project Screenshots/Wormy/Wormy (2).webp b/Images/Project Screenshots/Wormy/Wormy (2).webp
new file mode 100644
index 0000000..d47de90
Binary files /dev/null and b/Images/Project Screenshots/Wormy/Wormy (2).webp differ
diff --git a/Images/Project Screenshots/Wormy/Wormy (3).png b/Images/Project Screenshots/Wormy/Wormy (3).png
deleted file mode 100644
index ac8be1f..0000000
Binary files a/Images/Project Screenshots/Wormy/Wormy (3).png and /dev/null differ
diff --git a/Images/Project Screenshots/Wormy/Wormy (3).webp b/Images/Project Screenshots/Wormy/Wormy (3).webp
new file mode 100644
index 0000000..cbac322
Binary files /dev/null and b/Images/Project Screenshots/Wormy/Wormy (3).webp differ
diff --git a/OnTaskPro.html b/OnTaskPro.html
deleted file mode 100644
index 44da6a3..0000000
--- a/OnTaskPro.html
+++ /dev/null
@@ -1,84 +0,0 @@
----
-permalink: "{{ page.fileSlug }}.html"
----
-
-
-
-
- Dylan Archer Portfolio
-
-
-
-
-
-
-
-
-
-
-
-
-
Task Tracker App
- {% NavigationButtons %}
-
-
-
-
-
-
About the project
-
- OnTaskPro is an iOS app I developed as part of an individual assessment, where I was tasked with brainstorming, designing, and building an app to address a real-world problem for a specific target audience.
- I chose to focus on individuals struggling with productivity and motivation.
- The goal of OnTaskPro is to help users stay on track by reducing distractions and boosting their drive to complete tasks.
- The app allows users to log their tasks, receive intelligent suggestions on what to work on, and stay focused through a simplified, goal-oriented interface.
-
-
Technical Details
-
- OnTaskPro was built using Swift and SwiftUI, and follows the Model-View-ViewModel (MVVM) architecture to ensure a clean and maintainable codebase.
-
-
Brainstorm & Design
-
- Attached are images showcasing my initial brainstorming and design process, which helped shape the app's features and user experience before development began.
-
- PacStudent is a recreation of the classic 1980 game Pac-Man, developed as part of an introductory game development subject.
- This project served as a case study while I learned to navigate and utilise the Unity Game Engine for the first time.
- Through this process, I gained hands-on experience with Unity's interface, applied vector and matrix mathematics for object transformations, and developed core programming skills using the engine's API.
- The project challenged me to solve intermediate development problems, identify my own knowledge gaps, and design minor gameplay variations, helping me build both technical and creative skills in game development.
-
- Quiz App is an iOS application developed over a few weeks as part of a group project using the SwiftUI framework.
- The app fetches quizzes on various topics via an API, providing users with a range of quiz options.
-
-
What I contributed
-
- I integrated the API to retrieve new questions and answers each time a user begins a quiz.
- This involved using JSON parsing to display the data effectively within the app.
- Additionally, I developed the UI that allows users to select the quiz difficulty, number of questions, and category.
-
-
What I learned
-
- This was one of my early projects while I was learning iOS development for the first time.
- As a result, the UI design wasn't fully refined, and some interface issues emerged, particularly with dynamic content, which occasionally caused the layout to appear inconsistent.
- Despite these challenges, the project helped me build a solid foundation in SwiftUI and working with APIs.
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..aa0f49c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,61 @@
+# Dylan Archer Portfolio
+
+This is the source code for my personal portfolio website, built with [Eleventy](https://www.11ty.dev/).
+
+## Project Structure
+
+The project has been refactored to use Nunjucks templating for better maintainability.
+
+- **`_data/`**: Contains global data files.
+ - `projects.json`: Stores all project data (title, description, links, images). **Add new projects here.**
+ - `site.js`: Global site data (e.g., current year).
+- **`_includes/`**: Contains Nunjucks templates.
+ - `layout.njk`: The main base layout for all pages.
+ - `components/`: Reusable components (Navigation, Footer, ProjectCard, etc.).
+- **`html/`**: Contains the individual page templates.
+ - `index.html`: The home page, which loops through `projects.json` to display projects.
+ - `[ProjectName].html`: Individual project pages.
+- **`css/`**: CSS files, organized by component/section.
+- **`.eleventy.js`**: Eleventy configuration file.
+
+## How to Add a New Project
+
+1. Open `_data/projects.json`.
+2. Add a new entry to the appropriate category array (e.g., "games", "web").
+ ```json
+ {
+ "title": "My New Project",
+ "link": "MyProject.html",
+ "img": "Images/...",
+ "logos": ["Images/Logos/Tool.png"],
+ "description": "Description here..."
+ }
+ ```
+3. Create a new HTML file in `html/` (e.g., `MyProject.html`).
+4. Add the front matter:
+ ```html
+ ---
+ layout: layout.njk
+ title: My New Project
+ permalink: "{{ page.fileSlug }}.html"
+ ---
+ ```
+5. Add your page content.
+
+## Local Development
+
+1. **Install dependencies:**
+ ```powershell
+ npm ci
+ ```
+
+2. **Run the development server:**
+ ```powershell
+ npx @11ty/eleventy --serve
+ ```
+ The site will be available at `http://localhost:8080`.
+
+## Deployment
+
+The site is automatically deployed to GitHub Pages via GitHub Actions when changes are pushed to the `main` branch.
+See `.github/workflows/deploy.yml` for details.
diff --git a/Resume.pdf b/Resume.pdf
index 90ab010..77104b9 100644
Binary files a/Resume.pdf and b/Resume.pdf differ
diff --git a/Wormy.html b/Wormy.html
deleted file mode 100644
index 0575a10..0000000
--- a/Wormy.html
+++ /dev/null
@@ -1,94 +0,0 @@
----
-permalink: "{{ page.fileSlug }}.html"
----
-
-
-
-
- Dylan Archer Portfolio
-
-
-
-
-
-
-
-
-
-
-
-
-
Wormy
- {% NavigationButtons %}
-
-
-
-
-
-
About the project
-
- Wormy is a 2D puzzle game developed in Unity as part of a group assessment task.
- It was our first opportunity to design a game based entirely on our own ideas.
- The goal was to create a small digital game that met specific design constraints and thematic requirements.
- In Wormy, you play as a worm navigating a maze of underground tunnels to fertilize and grow a seed.
-
-
What I contributed
-
- While the game was designed collaboratively, each team member was responsible for creating their own level, with each level introducing a unique gameplay mechanic.
- I designed the first level following the tutorial, which introduced the portal mechanic.
-
-
What I learned
-
- This project taught me how challenging it can be to maintain a cohesive game experience when multiple people contribute different design styles.
- Each of our levels felt very distinct, which sometimes disrupted the flow of the game. I also learned the value of “finding the fun” during development.
- Based on early playtester feedback, we significantly changed the player movement system from a traditional 2D platformer to something that better suited our game's concept.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/_data/projects.json b/_data/projects.json
new file mode 100644
index 0000000..b0ce2a8
--- /dev/null
+++ b/_data/projects.json
@@ -0,0 +1,153 @@
+{
+ "games": [
+ {
+ "link": "DualWield.html",
+ "img": "Images/Project Screenshots/Dual Wield/Dual Wield Title Screen.webp",
+ "title": "Dual Wield",
+ "logos": [
+ "Images/Logos/Unity-Logo.webp",
+ "Images/Logos/CSharp.webp"
+ ],
+ "description": "Dual Wield is a first-person shooter developed over three months using the Unity Game Engine as part of a university group project. Players wield two firearms simultaneously, allowing up to 10 unique weapon combinations to tackle the enemies they encounter.",
+ "summary": "A Unity FPS built around dual-weapon combat and 10 weapon combinations.",
+ "tags": ["Unity", "C#", "Group", "3 months"]
+ },
+ {
+ "link": "Caved-In.html",
+ "img": "Images/Project Screenshots/Caved In/Caved In Menu.webp",
+ "title": "Caved In",
+ "logos": [
+ "Images/Logos/UE5-Logo.webp",
+ "Images/Logos/C++.webp"
+ ],
+ "description": "Caved In is a cooperative first-person survival extraction game, developed over three months in Unreal Engine as part of a university group project. Players must work together to collect samples and escape the cave, all while avoiding infection.",
+ "summary": "A cooperative Unreal extraction game about sampling, survival, and escape.",
+ "tags": ["Unreal", "C++", "Group", "3 months"]
+ },
+ {
+ "link": "PacStudent.html",
+ "img": "Images/Project Screenshots/PacStudent/PacStudent1.webp",
+ "title": "PacStudent",
+ "logos": [
+ "Images/Logos/Unity-Logo.webp",
+ "Images/Logos/CSharp.webp"
+ ],
+ "description": "PacStudent is a recreation of the classic 1980 game Pac-Man, developed as part of an introductory game development subject. This project served as a case study while I learned to navigate and utilise the Unity Game Engine for the first time.",
+ "summary": "A Unity recreation of Pac-Man created while learning core game systems.",
+ "tags": ["Unity", "C#", "Solo", "Game systems"]
+ },
+ {
+ "link": "Wormy.html",
+ "img": "Images/Project Screenshots/Wormy/Wormy (1).webp",
+ "title": "Wormy",
+ "logos": [
+ "Images/Logos/Unity-Logo.webp",
+ "Images/Logos/CSharp.webp"
+ ],
+ "description": "Wormy is a 2D puzzle game developed in Unity as part of a group assessment task. It was our first opportunity to design a game based entirely on our own ideas. In Wormy, you play as a worm navigating a maze of underground tunnels to fertilize and grow a seed.",
+ "summary": "A 2D Unity puzzle game about navigating tunnels to grow a seed.",
+ "tags": ["Unity", "C#", "Group", "2D puzzle"]
+ },
+ {
+ "link": "Snaked-Together.html",
+ "img": "Images/Project Screenshots/Snaked/Snaked-Together-16x9.webp",
+ "title": "Snaked Together",
+ "logos": [
+ "Images/Logos/Unity-Logo.webp",
+ "Images/Logos/CSharp.webp"
+ ],
+ "description": "You and a friend control a two-headed snake, bound together on a desperate climb from the depths of hell to the gates of heaven. The Catch? Only one head can move at a time, try moving together, and you'll tumble straight back down.",
+ "summary": "A cooperative climbing game where two players share one snake body.",
+ "tags": ["Unity", "C#", "Group", "Co-op"]
+ }
+ ],
+ "web": [
+ {
+ "link": "GroceryStore.html",
+ "img": "Images/Project Screenshots/Grocery Store/Grocery Store (1).webp",
+ "title": "Online Grocery Store",
+ "logos": [
+ "Images/Logos/HTML.webp",
+ "Images/Logos/CSS.webp"
+ ],
+ "description": "I developed a fully functional Online Grocery Store as a solo project, utilising HTML, CSS, JavaScript, PHP, and SQL. The website features a user-friendly interface that allows customers to browse products, add items to their cart, and complete purchases seamlessly.",
+ "summary": "A full-stack grocery storefront with browsing, cart, and checkout flows.",
+ "tags": ["HTML/CSS", "PHP", "SQL", "Solo"]
+ },
+ {
+ "link": "CarRentalSystem.html",
+ "img": "Images/Project Screenshots/Car Rental System/HomePage.webp",
+ "title": "Online Car Rental",
+ "logos": [
+ "Images/Logos/HTML.webp",
+ "Images/Logos/CSS.webp"
+ ],
+ "description": "I developed an interactive online car rental system as a solo project, using HTML, CSS, JavaScript, PHP, AJAX, and JSON. The platform allows users to browse and search cars by type or brand, check availability, and make or cancel rental reservations.",
+ "summary": "A car rental platform with filtering, availability checks, and bookings.",
+ "tags": ["HTML/CSS", "PHP", "AJAX", "Solo"]
+ }
+ ],
+ "mobile": [
+ {
+ "link": "Quiz-App.html",
+ "img": "Images/Project Screenshots/Quiz App/Quiz App.webp",
+ "title": "Quiz App",
+ "logos": [
+ "Images/Logos/swift.svg",
+ "Images/Logos/iOS-Logo.webp"
+ ],
+ "description": "Quiz App is an iOS application developed over a few weeks as part of a group project using the SwiftUI framework. The app fetches quizzes on various topics via an API, providing users with a range of quiz options.",
+ "summary": "A SwiftUI quiz app that fetches topic-based quizzes from an API.",
+ "tags": ["SwiftUI", "iOS", "Group", "API"]
+ },
+ {
+ "link": "OnTaskPro.html",
+ "img": "Images/Project Screenshots/OnTaskPro/TaskTracker.webp",
+ "title": "Task Tracker App",
+ "logos": [
+ "Images/Logos/swift.svg",
+ "Images/Logos/iOS-Logo.webp"
+ ],
+ "description": "OnTaskPro is an iOS app I developed as part of an individual assessment, where I was tasked with brainstorming, designing, and building an app to address a real-world problem for a specific target audience.",
+ "summary": "An iOS productivity app designed around a real user problem.",
+ "tags": ["SwiftUI", "iOS", "Solo", "UX design"]
+ }
+ ],
+ "modelling": [
+ {
+ "link": "Blender.html",
+ "img": "Images/Project Screenshots/Blender/Blender Shot (1).webp",
+ "title": "3D Modelling Project",
+ "logos": [
+ "Images/Logos/Blender-Logo.webp"
+ ],
+ "description": "This personal project involved creating a detailed 3D model of a house using Blender to develop my modelling, UV unwrapping, texturing, lighting and rendering skills. I focused on achieving realism by using my own photographs and free textures sourced online.",
+ "summary": "A Blender environment study focused on modelling, UVs, materials, and lighting.",
+ "tags": ["Blender", "Solo", "3D art", "Rendering"]
+ },
+ {
+ "link": "3DAnim.html",
+ "img": "Images/Project Screenshots/Why are we here.webp",
+ "title": "Unity 3D Animation",
+ "logos": [
+ "Images/Logos/Unity-Logo.webp"
+ ],
+ "description": "\"Why are we here?\" is a 3D animation satire on first-person shooters, heavily inspired by Halo and Red vs. Blue. It was developed over a few weeks in Unity using the HDRP rendering pipeline for a group project, where we used existing 3D models.",
+ "summary": "A Unity HDRP animation project inspired by FPS machinima comedy.",
+ "tags": ["Unity", "HDRP", "Group", "Animation"]
+ }
+ ],
+ "other": [
+ {
+ "link": "ClashOfCommands.html",
+ "img": "Images/Project Screenshots/Clash of Commands/ClashOfCommands1.webp",
+ "title": "Clash of Commands",
+ "logos": [
+ "Images/Logos/Unity-Logo.webp"
+ ],
+ "description": "Clash of Commands is an educational game that helps IT students learn UNIX terminal commands through gamification. I gained hands-on experience in serious game design, user-centered development, and iterative improvements based on feedback.",
+ "summary": "A serious game that teaches UNIX commands through repeatable challenges.",
+ "tags": ["Unity", "Education", "UX testing", "Serious game"]
+ }
+ ]
+}
diff --git a/_data/site.js b/_data/site.js
new file mode 100644
index 0000000..3889a63
--- /dev/null
+++ b/_data/site.js
@@ -0,0 +1,6 @@
+module.exports = {
+ year: new Date().getFullYear(),
+ url: "https://dylan-archer-dev.com",
+ name: "Dylan Archer",
+ defaultImage: "Images/ProfilePicture.webp"
+};
diff --git a/_includes/components/footer.njk b/_includes/components/footer.njk
new file mode 100644
index 0000000..b5c0618
--- /dev/null
+++ b/_includes/components/footer.njk
@@ -0,0 +1,18 @@
+
diff --git a/_includes/components/navigation.njk b/_includes/components/navigation.njk
new file mode 100644
index 0000000..c65d613
--- /dev/null
+++ b/_includes/components/navigation.njk
@@ -0,0 +1,44 @@
+
+ "Why are we here?" is a 3D animation satire on first-person shooters, heavily inspired by Halo and Red
+ vs. Blue.
+ It was developed over a few weeks in Unity using the HDRP rendering pipeline for a group project, where we used
+ existing 3D models.
+ Throughout the process, I gained hands-on experience with the complete 3D animation production pipeline,
+ from storyboarding and pre-production planning to animation, lighting, rendering, and VFX.
+ This project helped me develop a stronger understanding of motion analysis, character animation, and scene
+ composition,
+ while also giving me the opportunity to collaborate on production management and post-production tasks to deliver
+ a polished final piece.
+
+
+
+
+
+
+
+
+{% block scripts %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/html/Blender.html b/html/Blender.html
new file mode 100644
index 0000000..6e553d6
--- /dev/null
+++ b/html/Blender.html
@@ -0,0 +1,78 @@
+---
+layout: layout.njk
+title: 3D Modelling Project
+seo_title: "3D Modelling Project — Blender House Model"
+seo_description: "Detailed 3D house model created in Blender showcasing modelling, UV unwrapping, texturing, lighting and rendering techniques."
+image: "Images/Project Screenshots/Blender/Blender Shot (1).webp"
+permalink: "{{ page.fileSlug }}.html"
+---
+
+
+
+
+
3D Modelling Project
+
+
+
+
+
+
About the project
+
+ This personal project involved creating a detailed 3D model of a house using Blender to develop my modelling, UV
+ unwrapping, texturing, lighting and rendering skills.
+ I focused on achieving realistic textures and materials by using my own photographs and free textures sourced
+ online.
+
+
What I learned
+
+ In the course of this project, I learned how to UV unwrap models, which allowed me to apply textures accurately
+ and realistically across different surfaces.
+ Working on lighting setups and camera positioning taught me how to enhance the final render, bringing out the
+ model's textures and structure.
+ This project helped me understand the end-to-end process of creating a 3D environment, from modelling and
+ texturing to lighting and rendering.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% block scripts %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/html/CarRentalSystem.html b/html/CarRentalSystem.html
new file mode 100644
index 0000000..d18a2ba
--- /dev/null
+++ b/html/CarRentalSystem.html
@@ -0,0 +1,79 @@
+---
+layout: layout.njk
+title: Online Car Rental
+seo_title: "Online Car Rental System — Full-Stack Web Project"
+seo_description: "Interactive car rental platform built with HTML, CSS, JavaScript, PHP and MySQL. Features search, availability, AJAX-driven bookings and AWS deployment."
+image: "Images/Project Screenshots/Car Rental System/HomePage.webp"
+permalink: "{{ page.fileSlug }}.html"
+---
+
+
+
+
+
Car Rental System
+
+
+
+
+
+
About the project
+
+ I developed an interactive online car rental system as a solo project, using HTML, CSS, JavaScript, PHP, AJAX, and
+ JSON.
+ The platform allows users to browse and search cars by type or brand, check availability, and make or cancel
+ rental reservations.
+ I implemented dynamic features such as asynchronous data loading via AJAX, session-based reservation persistence,
+ and real-time availability updates using JSON and MySQL.
+ User input validation and exception handling were built in to ensure a seamless user experience.
+ For data management, I designed a structured JSON file to store car details and integrated a MySQL database to
+ handle rental orders.
+ The site was deployed on AWS Elastic Beanstalk, showcasing my ability to build and deploy full-stack web
+ applications with rich interactivity and robust backend integration.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% block scripts %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/html/Caved-In.html b/html/Caved-In.html
new file mode 100644
index 0000000..878d097
--- /dev/null
+++ b/html/Caved-In.html
@@ -0,0 +1,100 @@
+---
+layout: layout.njk
+title: Caved In
+seo_title: "Caved In — Cooperative Survival Extraction (Unreal Engine)"
+seo_description: "Cooperative first-person survival-extraction game built in Unreal Engine. Team-based sample collection, infection mechanics, inventory and UI systems."
+image: "Images/Project Screenshots/Caved In/Caved In Menu.webp"
+permalink: "{{ page.fileSlug }}.html"
+---
+
+
+
+
+
Caved In
+
+
+
+
+
+
About the project
+
+ Caved In is a cooperative first-person survival extraction game, developed over three months in Unreal Engine as
+ part of a university group project.
+ Set within a cave system, 4-8 players must collect plant samples and transport them back to the exit to open the
+ elevator door and escape.
+ However, while exploring the mine, players risk infection—forcing them to hide their condition from others.
+ Infected players can secretly sabotage the team by laying traps to spread the infection further.
+ We had the chance to collaborate with a sound design student, which helped us achieve our vision of an immersive
+ survival horror experience.
+
+
What I contributed
+
+ I developed the player inventory and character selection systems, along with their user interfaces.
+ I also implemented nearly all the player items in the game, including both their functionality and animations.
+ Additionally, I created the user interface for the lobby's host/join screen.
+
+
Difficulties in development
+
+ The ambitious scope of implementing networked multiplayer presented significant challenges for us.
+ This complexity extended the development time of each feature, as we had to address numerous edge cases in
+ client-server interactions.
+ As a result, our final submission wasn't as polished as we had hoped.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% block scripts %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/html/ClashOfCommands.html b/html/ClashOfCommands.html
new file mode 100644
index 0000000..d9bde75
--- /dev/null
+++ b/html/ClashOfCommands.html
@@ -0,0 +1,82 @@
+---
+layout: layout.njk
+title: Clash of Commands
+seo_title: "Clash of Commands — Learn UNIX Commands Through Gamification"
+seo_description: "Web-based educational game that teaches UNIX terminal commands with gamification, leaderboards and realistic command-line challenges for students."
+image: "Images/Project Screenshots/Clash of Commands/ClashOfCommands1.webp"
+permalink: "{{ page.fileSlug }}.html"
+---
+
+
+
+
+
Clash of Commands
+
+
+
+
+
+
About the Project
+
+ Clash of Commands is a web-based educational game designed to help IT students at UTS master
+ UNIX terminal commands through gamification. The Web Systems 31268 course is known for its difficulty, and this
+ game makes
+ learning more interactive and engaging. Inspired by Kahoot!, it includes points, leaderboards, and increasing
+ difficulty levels to
+ boost motivation. The game simulates a UNIX terminal, offering realistic command-line challenges that align with
+ course content. Originally
+ planned as a multiplayer experience, it was adapted into a single-player format with a high-score system. Future
+ updates could introduce
+ advanced topics like scripting, text processing, and command chaining. Designed for both classroom and independent
+ learning, this tool
+ enhances engagement, progress tracking, and knowledge retention.
+
+
What I Learned
+
+ Developing Clash of Commands gave me hands-on experience in serious game design and gamification for education.
+ I learned how to create targeted game mechanics to support students struggling with UNIX commands, ensuring the
+ game was
+ both fun and effective. The project strengthened my understanding of iterative design, as playtesting and feedback
+ drove improvements. I also gained insight into ethical and user-centered design, focusing on accessibility and
+ engagement.
+ This experience has sharpened my ability to build purpose-driven interactive experiences that solve real-world
+ learning challenges.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% block scripts %}
+
+ {% endblock %}
\ No newline at end of file
diff --git a/html/DualWield.html b/html/DualWield.html
new file mode 100644
index 0000000..134e648
--- /dev/null
+++ b/html/DualWield.html
@@ -0,0 +1,96 @@
+---
+layout: layout.njk
+title: Dual Wield
+seo_title: "Dual Wield — Unity FPS Project (UTS 2024 Showcase Nominee)"
+seo_description: "Unity first-person shooter developed as a university group project. Dual-wield mechanics with up to 10 weapon combinations, 3D weapon modelling and a UTS 2024 showcase nomination."
+image: "Images/Project Screenshots/Dual Wield/Dual Wield Title Screen.webp"
+permalink: "{{ page.fileSlug }}.html"
+---
+
+
+
+
+
Dual Wield
+
+
+
+
+
+
About the project
+
+ Dual Wield is a first-person shooter developed over three months using the Unity Game Engine as part of a
+ university group project.
+ Players can wield two firearms simultaneously, allowing for up to 10 unique weapon combinations to tackle the
+ enemies they encounter.
+ Our project was honoured with a nomination for the UTS Tech Festival 2024 Student Games Showcase.
+
+
What I contributed
+
+ Throughout the project's development, I contributed to various gameplay features and systems.
+ Additionally, I worked on 3D modelling for several of the weapons and some elements of the levels.
+
+
What I learned
+
+ As a collaborative project, Dual Wield provided me the opportunity to apply the project management principles I
+ studied in my university course.
+ Regular reflection on our development process allowed us to adapt and improve our work continuously.
+ I gained valuable experience in integrating design, programming, and artistic skills from different team members
+ to create a cohesive final product.
+ We also received feedback from playtests, which guided our development and strengthened our project.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% block scripts %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/html/GroceryStore.html b/html/GroceryStore.html
new file mode 100644
index 0000000..2195d78
--- /dev/null
+++ b/html/GroceryStore.html
@@ -0,0 +1,70 @@
+---
+layout: layout.njk
+title: Online Grocery Store
+seo_title: "Online Grocery Store — Full-Stack Web Project"
+seo_description: "Full-featured online grocery store built with HTML, CSS, JavaScript, PHP and SQL. Supports product browsing, filtering, cart and cloud deployment on AWS."
+image: "Images/Project Screenshots/Grocery Store/Grocery Store (1).webp"
+permalink: "{{ page.fileSlug }}.html"
+---
+
+
+
+
+
Online Grocery Store
+
+
+
+
+
+
About the project
+
+ I developed a fully functional Online Grocery Store as a solo project, utilising a stack that included HTML, CSS,
+ JavaScript, PHP, and SQL.
+ The website features a user-friendly interface that allows customers to browse products, add items to their cart,
+ and complete purchases seamlessly.
+ I implemented dynamic functionalities such as product filtering and search options using JavaScript, while PHP and
+ SQL were used for backend processes, including database management for inventory and orders.
+ As part of the assessment I deployed the website on AWS, allowing users to access it from anywhere.
+ This project not only enhanced my technical skills but also provided valuable experience in full-stack development
+ and cloud deployment.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% block scripts %}
+
+ {% endblock %}
\ No newline at end of file
diff --git a/html/OnTaskPro.html b/html/OnTaskPro.html
new file mode 100644
index 0000000..465d2a0
--- /dev/null
+++ b/html/OnTaskPro.html
@@ -0,0 +1,83 @@
+---
+layout: layout.njk
+title: Task Tracker App
+seo_title: "OnTaskPro — Productivity iOS App (SwiftUI)"
+seo_description: "OnTaskPro is an iOS task-tracking app built with Swift and SwiftUI (MVVM). Provides task logging, intelligent suggestions and a goal-oriented interface to boost productivity."
+image: "Images/Project Screenshots/OnTaskPro/TaskTracker.webp"
+permalink: "{{ page.fileSlug }}.html"
+---
+
+
+
+
+
Task Tracker App
+
+
+
+
+
+
About the project
+
+ OnTaskPro is an iOS app I developed as part of an individual assessment, where I was tasked with brainstorming,
+ designing, and building an app to address a real-world problem for a specific target audience.
+ I chose to focus on individuals struggling with productivity and motivation.
+ The goal of OnTaskPro is to help users stay on track by reducing distractions and boosting their drive to complete
+ tasks.
+ The app allows users to log their tasks, receive intelligent suggestions on what to work on, and stay focused
+ through a simplified, goal-oriented interface.
+
+
Technical Details
+
+ OnTaskPro was built using Swift and SwiftUI, and follows the Model-View-ViewModel (MVVM) architecture to ensure a
+ clean and maintainable codebase.
+
+
Brainstorm & Design
+
+ Attached are images showcasing my initial brainstorming and design process, which helped shape the app's features
+ and user experience before development began.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% block scripts %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/html/PacStudent.html b/html/PacStudent.html
new file mode 100644
index 0000000..1f7d805
--- /dev/null
+++ b/html/PacStudent.html
@@ -0,0 +1,68 @@
+---
+layout: layout.njk
+title: PacStudent
+seo_title: "PacStudent — Pac‑Man Recreation (Unity)"
+seo_description: "Recreation of the classic Pac‑Man built in Unity. A learning project that demonstrates core Unity concepts, object transforms and gameplay programming."
+image: "Images/Project Screenshots/PacStudent/PacStudent1.webp"
+permalink: "{{ page.fileSlug }}.html"
+---
+
+
+
+
+
PacStudent
+
+
+
+
+
+
About the project
+
+ PacStudent is a recreation of the classic 1980 game Pac-Man, developed as part of an introductory game development
+ subject.
+ This project served as a case study while I learned to navigate and utilise the Unity Game Engine for the first
+ time.
+ Through this process, I gained hands-on experience with Unity's interface, applied vector and matrix mathematics
+ for object transformations, and developed core programming skills using the engine's API.
+ The project challenged me to solve intermediate development problems, identify my own knowledge gaps, and design
+ minor gameplay variations, helping me build both technical and creative skills in game development.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% block scripts %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/html/Quiz-App.html b/html/Quiz-App.html
new file mode 100644
index 0000000..3ca2a18
--- /dev/null
+++ b/html/Quiz-App.html
@@ -0,0 +1,52 @@
+---
+layout: layout.njk
+title: Quiz App
+seo_title: "Quiz App — SwiftUI iOS Quiz Application"
+seo_description: "SwiftUI iOS app that fetches quizzes via API, offering difficulty and category selection. Demonstrates API integration, JSON parsing and dynamic UI."
+image: "Images/Project Screenshots/Quiz App/Quiz App.webp"
+permalink: "{{ page.fileSlug }}.html"
+---
+
+
+
+
+
Quiz App
+
+
+
+
+
+
About the project
+
+ Quiz App is an iOS application developed over a few weeks as part of a group project using the SwiftUI framework.
+ The app fetches quizzes on various topics via an API, providing users with a range of quiz options.
+
+
What I contributed
+
+ I integrated the API to retrieve new questions and answers each time a user begins a quiz.
+ This involved using JSON parsing to display the data effectively within the app.
+ Additionally, I developed the UI that allows users to select the quiz difficulty, number of questions, and
+ category.
+
+
What I learned
+
+ This was one of my early projects while I was learning iOS development for the first time.
+ As a result, the UI design wasn't fully refined, and some interface issues emerged, particularly with dynamic
+ content, which occasionally caused the layout to appear inconsistent.
+ Despite these challenges, the project helped me build a solid foundation in SwiftUI and working with APIs.
+
+
+
+
+
+
+
+
+
+{% block scripts %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/html/Snaked-Together.html b/html/Snaked-Together.html
new file mode 100644
index 0000000..92a40a0
--- /dev/null
+++ b/html/Snaked-Together.html
@@ -0,0 +1,71 @@
+---
+layout: layout.njk
+title: Snaked Together
+seo_title: "Snaked Together — Cooperative 2D Game (SXSW Snake Jam)"
+seo_description: "Cooperative 2D climbing game created for the SXSW Snake Jam. Players control opposite ends of a two-headed snake in rapid-prototype, team-driven gameplay."
+image: "Images/Project Screenshots/Snaked/Snaked-Together-16x9.webp"
+permalink: "{{ page.fileSlug }}.html"
+---
+
+
+
+
+
Snaked Together
+
+
+
+
+
+
About the project
+
+ Snaked Together is a 2D cooperative climbing game created by a small, focused team over the course of roughly two weeks.
+ The game was developed for a game jam hosted by SXSW Sydney, challenging us to rapidly prototype, refine, and polish a unique gameplay concept within a tight timeframe.
+ The result is a light-hearted yet mechanically engaging experience centered around teamwork, coordination, and movement-based problem-solving.
+ Players control opposite ends of a two-headed snake, navigating hazards, color-based obstacles, and increasingly tricky platforming sections that demand precise communication and timing.
+
+
What I contributed
+
+ I played a key role in shaping the core direction of the game, collaborating closely with the team to brainstorm and refine its central mechanics.
+ I designed the level layout and progression, ensuring that each section supported cooperative play, introduced new challenges, and encouraged players to strategize together.
+ In addition to design work, I also contributed to some of the programming of the project using Unity and C#.
+ I also assisted with testing and refining the game's difficulty curve to make the experience both challenging and enjoyable for players.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% block scripts %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/html/Wormy.html b/html/Wormy.html
new file mode 100644
index 0000000..a2d468b
--- /dev/null
+++ b/html/Wormy.html
@@ -0,0 +1,91 @@
+---
+layout: layout.njk
+title: Wormy
+seo_title: "Wormy — 2D Puzzle Game (Unity)"
+seo_description: "Wormy is a 2D puzzle game developed in Unity where players navigate tunnels to fertilise seeds. Features team level design and unique mechanics."
+image: "Images/Project Screenshots/Wormy/Wormy (1).webp"
+permalink: "{{ page.fileSlug }}.html"
+---
+
+
+
+
+
Wormy
+
+
+
+
+
+
About the project
+
+ Wormy is a 2D puzzle game developed in Unity as part of a group assessment task.
+ It was our first opportunity to design a game based entirely on our own ideas.
+ The goal was to create a small digital game that met specific design constraints and thematic requirements.
+ In Wormy, you play as a worm navigating a maze of underground tunnels to fertilize and grow a seed.
+
+
What I contributed
+
+ While the game was designed collaboratively, each team member was responsible for creating their own level, with
+ each level introducing a unique gameplay mechanic.
+ I designed the first level following the tutorial, which introduced the portal mechanic.
+
+
What I learned
+
+ This project taught me how challenging it can be to maintain a cohesive game experience when multiple people
+ contribute different design styles.
+ Each of our levels felt very distinct, which sometimes disrupted the flow of the game. I also learned the value of
+ “finding the fun” during development.
+ Based on early playtester feedback, we significantly changed the player movement system from a traditional 2D
+ platformer to something that better suited our game's concept.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% block scripts %}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/html/index.html b/html/index.html
new file mode 100644
index 0000000..15ca482
--- /dev/null
+++ b/html/index.html
@@ -0,0 +1,151 @@
+---
+layout: layout.njk
+title: Dylan Archer — Software Developer
+seo_title: "Dylan Archer — Software Developer (Games, Web, Mobile)"
+seo_description: "Full-stack web developer with a Games Development degree, building web, mobile and game projects. Checkout my work and links to GitHub and Itch.io."
+permalink: "index.html"
+---
+{% from "components/project-card.njk" import projectCard %}
+
+
+
+ Hi, I'm Dylan Archer, a full-stack web developer with a year of professional experience, backed by a
+ Bachelor of Science in Games Development with Distinction from UTS.
+
+
+ My background in games gave me a strong foundation in problem-solving, performance, and user experience,
+ which I now bring to web, mobile, and software development, allowing me to build polished, reliable
+ products across a range of platforms.
+
- Hi, my name is Dylan Archer and I am a recent graduate of Bachelor of Games Development at UTS.
-
-
- While I am passionate about making and playing games, my skill set also spans software, web, and mobile development,
- allowing me to bring ideas to life across a range of platforms.
-
-
- This portfolio showcases solo and group projects I have worked on. Take a look around, and feel free to get in touch if anything sparks your interest!
-
2025 Dean's List (UTS Faculty of Engineering and Information Technology)
-
Nominated for UTS Tech Festival 2024 Student Games Showcase (Game Design Studio 1)
-
Nominated for UTS Tech Festival 2023 Student Games Showcase (Game Design Methodologies)
-
-
-
-
Skills
-
-
-
Programming Languages
-
-
C++
-
C#
-
Java
-
Python
-
Swift
-
JavaScript
-
PHP
-
MySQL
-
HTML, CSS
-
-
-
-
Project Management
-
-
Git / GitHub
-
Trello
-
Jira
-
Confluence
-
-
Cloud & DevOps
-
-
CI/CD with GitHub Actions
-
Cloud Deployment (AWS)
-
-
-
-
Game Development Tools
-
-
Unity
-
Unreal Engine 5
-
Blender
-
-
Game Development Fields
-
-
Gameplay Programming
-
Networking/Multiplayer
-
UI/UX Development
-
3D Modelling
-
-
-
-
-
Projects
-
-
Game Development
-
- {% ProjectCard "DualWield.html", "Images/Project Screenshots/Dual Wield/Dual Wield Title Screen.png", "Dual Wield", "Images/Logos/Unity-Logo.png", "Images/Logos/CSharp.png", "", "Dual Wield is a first-person shooter developed over three months using the Unity Game Engine as part of a university group project. Players wield two firearms simultaneously, allowing up to 10 unique weapon combinations to tackle the enemies they encounter." %}
- {% ProjectCard "Caved-In.html","Images/Project Screenshots/Caved In/Caved In Menu.png","Caved In","Images/Logos/UE5-Logo.png", "", "Images/Logos/C++.png","Caved In is a cooperative first-person survival extraction game, developed over three months in Unreal Engine as part of a university group project. Players must work together to collect samples and escape the cave, all while avoiding infection." %}
- {% ProjectCard "PacStudent.html","Images/Project Screenshots/PacStudent/PacStudent1.png","PacStudent","Images/Logos/Unity-Logo.png","Images/Logos/CSharp.png", "", "PacStudent is a recreation of the classic 1980 game Pac-Man, developed as part of an introductory game development subject. This project served as a case study while I learned to navigate and utilise the Unity Game Engine for the first time." %}
- {% ProjectCard "Wormy.html", "Images/Project Screenshots/Wormy/Wormy (1).png", "Wormy", "Images/Logos/Unity-Logo.png", "Images/Logos/CSharp.png", "", "Wormy is a 2D puzzle game developed in Unity as part of a group assessment task. It was our first opportunity to design a game based entirely on our own ideas. In Wormy, you play as a worm navigating a maze of underground tunnels to fertilize and grow a seed." %}
-
-
-
-
-
Web Development
-
- {% ProjectCard "GroceryStore.html","Images/Project Screenshots/Grocery Store/Grocery Store (1).png","Online Grocery Store","Images/Logos/HTML.png","Images/Logos/CSS.png","", "I developed a fully functional Online Grocery Store as a solo project, utilising HTML, CSS, JavaScript, PHP, and SQL. The website features a user-friendly interface that allows customers to browse products, add items to their cart, and complete purchases seamlessly." %}
- {% ProjectCard "CarRentalSystem.html","Images/Project Screenshots/Car Rental System/HomePage.png","Online Car Rental","Images/Logos/HTML.png","Images/Logos/CSS.png","", "I developed an interactive online car rental system as a solo project, using HTML, CSS, JavaScript, PHP, AJAX, and JSON. The platform allows users to browse and search cars by type or brand, check availability, and make or cancel rental reservations." %}
-
-
-
-
-
Mobile Development
-
- {% ProjectCard "Quiz-App.html","Images/Project Screenshots/Quiz App/Quiz App.png","Quiz App","Images/Logos/swift.svg","Images/Logos/iOS-Logo.png","", "Quiz App is an iOS application developed over a few weeks as part of a group project using the SwiftUI framework. The app fetches quizzes on various topics via an API, providing users with a range of quiz options." %}
- {% ProjectCard "OnTaskPro.html","Images/Project Screenshots/OnTaskPro/TaskTracker.png","Task Tracker App","Images/Logos/swift.svg","Images/Logos/iOS-Logo.png","", "OnTaskPro is an iOS app I developed as part of an individual assessment, where I was tasked with brainstorming, designing, and building an app to address a real-world problem for a specific target audience." %}
-
-
-
-
-
3D Creative
-
- {% ProjectCard "Blender.html","Images/Project Screenshots/Blender/Blender Shot (1).png","3D Modelling Project","Images/Logos/Blender-Logo.png","","", "This personal project involved creating a detailed 3D model of a house using Blender to develop my modelling, UV unwrapping, texturing, lighting and rendering skills. I focused on achieving realism by using my own photographs and free textures sourced online." %}
- {% ProjectCard "3DAnim.html","Images/Project Screenshots/Why are we here.webp","Unity 3D Animation","Images/Logos/Unity-Logo.png","","", "\"Why are we here?\" is a 3D animation satire on first-person shooters, heavily inspired by Halo and Red vs. Blue. It was developed over a few weeks in Unity using the HDRP rendering pipeline for a group project, where we used existing 3D models." %}
-
-
-
-
-
Other Projects
-
- {% ProjectCard "ClashOfCommands.html","Images/Project Screenshots/Clash of Commands/ClashOfCommands1.png","Clash of Commands","Images/Logos/Unity-Logo.png","","", "Clash of Commands is an educational game that helps IT students learn UNIX terminal commands through gamification. I gained hands-on experience in serious game design, user-centered development, and iterative improvements based on feedback." %}
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/llms.txt b/llms.txt
new file mode 100644
index 0000000..c374e21
--- /dev/null
+++ b/llms.txt
@@ -0,0 +1,42 @@
+# Dylan Archer
+
+> Full-stack software developer with a Bachelor of Science in Games Development (Distinction) from UTS. Builds games, web apps, and mobile apps, with one year of professional full-stack experience.
+
+Dylan's background in games development gives him a strong foundation in problem-solving, performance, and user experience, which carries over into web, mobile, and software projects. This site is a portfolio: an About section, awards, and a catalogue of projects grouped by discipline (games, web, mobile, 3D modelling/animation, other).
+
+## Pages
+
+- [About](https://dylan-archer-dev.com/index.html): Bio, awards, and the full project catalogue.
+
+## Game Development Projects
+
+- [Dual Wield](https://dylan-archer-dev.com/DualWield.html): Unity FPS built around dual-weapon combat and 10 weapon combinations. Unity, C#.
+- [Caved In](https://dylan-archer-dev.com/Caved-In.html): Cooperative Unreal Engine extraction game about sampling, survival, and escape. Unreal, C++.
+- [PacStudent](https://dylan-archer-dev.com/PacStudent.html): Unity recreation of Pac-Man built while learning core game systems. Unity, C#.
+- [Wormy](https://dylan-archer-dev.com/Wormy.html): 2D Unity puzzle game about navigating tunnels to grow a seed. Unity, C#.
+- [Snaked Together](https://dylan-archer-dev.com/Snaked-Together.html): Cooperative climbing game where two players share one snake body. Unity, C#.
+
+## Web Development Projects
+
+- [Online Grocery Store](https://dylan-archer-dev.com/GroceryStore.html): Full-stack grocery storefront with browsing, cart, and checkout. HTML/CSS, PHP, SQL.
+- [Online Car Rental](https://dylan-archer-dev.com/CarRentalSystem.html): Car rental platform with filtering, availability checks, and bookings. HTML/CSS, PHP, AJAX.
+
+## Mobile Development Projects
+
+- [Quiz App](https://dylan-archer-dev.com/Quiz-App.html): SwiftUI iOS quiz app that fetches topic-based quizzes from an API. SwiftUI, iOS.
+- [Task Tracker App (OnTaskPro)](https://dylan-archer-dev.com/OnTaskPro.html): iOS productivity app designed around a real user problem. SwiftUI, iOS.
+
+## 3D Modelling & Animation
+
+- [3D Modelling Project](https://dylan-archer-dev.com/Blender.html): Blender environment study focused on modelling, UVs, materials, and lighting.
+- [Unity 3D Animation](https://dylan-archer-dev.com/3DAnim.html): Unity HDRP animation project inspired by FPS machinima comedy.
+
+## Other Projects
+
+- [Clash of Commands](https://dylan-archer-dev.com/ClashOfCommands.html): Serious game that teaches UNIX terminal commands through gamification. Unity.
+
+## Optional
+
+- [GitHub](https://www.github.com/Dylan-KA?tab=repositories): Source repositories.
+- [Itch.io](https://dylanka.itch.io/): Playable game builds.
+- [LinkedIn](https://www.linkedin.com/in/dylan-archer-44a783338): Professional profile.
diff --git a/package.json b/package.json
index bfdaf31..ccdb2f0 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,8 @@
"version": "1.0.0",
"main": "index.html",
"scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "resume": "./resume/build-pdf.sh"
},
"author": "",
"license": "ISC",
diff --git a/resume/README.txt b/resume/README.txt
new file mode 100644
index 0000000..814889a
--- /dev/null
+++ b/resume/README.txt
@@ -0,0 +1,17 @@
+Editing your resume
+===================
+
+1. Open resume.html in VS Code (or any text editor) and change the text.
+ Keep this folder structure: resume.html needs the fonts/ and img/ folders beside it.
+
+2. Open resume.html in Google Chrome to preview. Refresh after each save.
+
+3. Export to PDF: from the repo root run
+
+ npm run resume (or ./resume/build-pdf.sh)
+
+ This renders resume.html with headless Chrome and overwrites Resume.pdf
+ at the repo root. It warns if the result is more than 1 page; if so,
+ shorten some text or reduce spacing.
+
+ This folder is listed in .eleventyignore, so it is not published to the site.
diff --git a/resume/build-pdf.sh b/resume/build-pdf.sh
new file mode 100755
index 0000000..736107b
--- /dev/null
+++ b/resume/build-pdf.sh
@@ -0,0 +1,52 @@
+#!/usr/bin/env bash
+# Renders resume/resume.html to Resume.pdf at the repo root using headless Chrome.
+# Usage: ./resume/build-pdf.sh (or: npm run resume)
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+REPO_ROOT="$(dirname "$SCRIPT_DIR")"
+INPUT="$SCRIPT_DIR/resume.html"
+OUTPUT="$REPO_ROOT/Resume.pdf"
+
+find_chrome() {
+ if [[ -n "${CHROME:-}" ]]; then echo "$CHROME"; return; fi
+ local candidates=(
+ "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
+ "/Applications/Chromium.app/Contents/MacOS/Chromium"
+ "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge"
+ "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"
+ )
+ for c in "${candidates[@]}"; do
+ [[ -x "$c" ]] && { echo "$c"; return; }
+ done
+ for c in google-chrome google-chrome-stable chromium chromium-browser; do
+ command -v "$c" >/dev/null 2>&1 && { command -v "$c"; return; }
+ done
+ echo "Chrome not found. Set CHROME=/path/to/chrome and retry." >&2
+ exit 1
+}
+
+CHROME_BIN="$(find_chrome)"
+TMP_DIR="$(mktemp -d)"
+TMP_PDF="$TMP_DIR/Resume.pdf"
+trap 'rm -rf "$TMP_DIR"' EXIT
+
+"$CHROME_BIN" \
+ --headless \
+ --disable-gpu \
+ --no-pdf-header-footer \
+ --virtual-time-budget=5000 \
+ --print-to-pdf="$TMP_PDF" \
+ "file://$INPUT" >/dev/null 2>&1
+
+if [[ ! -s "$TMP_PDF" ]]; then
+ echo "PDF generation failed." >&2
+ exit 1
+fi
+
+PAGES="$(grep -a -o "/Count [0-9]*" "$TMP_PDF" | head -1 | cut -d" " -f2 || true)"
+mv "$TMP_PDF" "$OUTPUT"
+echo "Wrote $OUTPUT (${PAGES} page(s))"
+if [[ "$PAGES" != "1" ]]; then
+ echo "Warning: resume is not 1 page. Shorten text or reduce spacing." >&2
+fi
diff --git a/resume/fonts/Inter-Bold.ttf b/resume/fonts/Inter-Bold.ttf
new file mode 100644
index 0000000..15e908f
Binary files /dev/null and b/resume/fonts/Inter-Bold.ttf differ
diff --git a/resume/fonts/Inter-ExtraBold.ttf b/resume/fonts/Inter-ExtraBold.ttf
new file mode 100644
index 0000000..c1449e8
Binary files /dev/null and b/resume/fonts/Inter-ExtraBold.ttf differ
diff --git a/resume/fonts/Inter-Medium.ttf b/resume/fonts/Inter-Medium.ttf
new file mode 100644
index 0000000..9342730
Binary files /dev/null and b/resume/fonts/Inter-Medium.ttf differ
diff --git a/resume/fonts/Inter-Regular.ttf b/resume/fonts/Inter-Regular.ttf
new file mode 100644
index 0000000..c544be4
Binary files /dev/null and b/resume/fonts/Inter-Regular.ttf differ
diff --git a/resume/fonts/Inter-SemiBold.ttf b/resume/fonts/Inter-SemiBold.ttf
new file mode 100644
index 0000000..a32e2b8
Binary files /dev/null and b/resume/fonts/Inter-SemiBold.ttf differ
diff --git a/resume/img/profile.jpg b/resume/img/profile.jpg
new file mode 100644
index 0000000..1e5b4f7
Binary files /dev/null and b/resume/img/profile.jpg differ
diff --git a/resume/resume.html b/resume/resume.html
new file mode 100644
index 0000000..bdd7374
--- /dev/null
+++ b/resume/resume.html
@@ -0,0 +1,296 @@
+
+
+
+
+Dylan Archer - Resume
+
+
+
+
+ Junior Full Stack Developer at a Sydney marketing agency, building and maintaining WordPress and Shopify websites alongside design and SEO teams. Games Development graduate (Distinction) from UTS, with a background across web, mobile and game development. I build sites that clients can update themselves, and use AI tools deliberately to work faster without cutting corners. Projects and case studies at dylan-archer-dev.com.
+
+
+
+
+
Work Experience
+
+
+
Junior Full Stack DeveloperCOG Marketing
Aug 2025 - Present
+
+
Build new WordPress websites and maintain and update existing client sites, working alongside the design and SEO teams.
+
Build and update Shopify stores for e-commerce clients.
+
Structure builds so non-technical clients and staff can update content themselves through the CMS, rather than relying on hard-coded changes that need a developer.
+
Provide managed IT support for clients, including email, domains and website hosting.
+
+
+
+
Community Tech Support AssistantYoungster.co
Mar 2025 - Aug 2025
+
+
Provided personalised technology assistance to seniors, helping them navigate smartphones, tablets and computers.
+
+
+
+
Crew Member (Casual)McDonald's Menai
May 2020 - Aug 2025
+
+
Prepared food orders efficiently in a fast-paced kitchen, consistently meeting quality and hygiene standards.
+
Supported team operations by maintaining cleanliness, restocking supplies and following food safety protocols.
+
+
+
+
+
+
AI-Assisted Development
+
+
Use AI tools daily to speed up development, debugging and maintenance work across WordPress and Shopify projects.
+
Decide task by task when AI is the right tool, and when a job is faster or safer done by hand.
+
Manage context deliberately: breaking work into focused tasks and giving the model the right code, constraints and requirements to get reliable results.
+
Review and test AI-generated code before it ships, and stay responsible for the result.