Welcome to my website! I'm Jonathan Lewis, a developer passionate about technology and creativity.
I built this platform to showcase my skills as a developer and exhibit my diverse portfolio of projects.
Through this site, I'll be sharing my experiences, insights, and the exciting ventures I embark on.
Greetings! I'm Jonathan Lewis, originally from Albuquerque, New Mexico, and currently residing in Phoenix, Arizona. I embarked on an exciting academic journey at ASU's Ira Fulton School of Engineering, where my passion for technology and programming took flight.
Academic Evolution
My journey began with a focus on electrical engineering, but my introduction to programming in C++ during my first year at ASU sparked a newfound interest. As I delved deeper into ASU's video game development courses, I discovered my love for programming, ultimately leading me to make the pivotal decision to switch my major to Computer Science.
Software Development and Exploration
In my Computer Science courses, I immersed myself in the world of software development. I honed my skills through courses such as CSE 355 Principles of Mobile App Development, CSE 494 Topic: Foundations of Data Visualization, CSE 412 Database Management, and CSE 475 Found of Machine Learning, gaining valuable insights into the software development process.
Senior Capstone Project
For my senior capstone project, I collaborated with a talented team and sponsor to develop a captivating mobile application for iOS devices using React Native Express. My primary focus revolved around frontend development, working closely with the design team to bring their Figma models to life.
Computer Gaming Certificate
As my passion for gaming persisted, I embarked on obtaining a Computer Gaming Certificate, further enriching my skill set in game development. I delved into game engine architecture, art design, computer graphics for gaming, and game software development.
Continuing the Journey
Upon completing the capstone course, our team decided to take our project to new heights. Our shared ambition is to refine and polish the application for a potential release as a standout portfolio piece.
Conclusion
My journey as a Computer Science enthusiast has been nothing short of exhilarating. The combination of academic pursuits, hands-on experience, and the thrill of game development has shaped me into a versatile and dedicated professional. I eagerly look forward to new challenges, collaborations, and opportunities to make an impact in the ever-evolving world of technology.
Schooling: Bachelor's degree in Computer Science from ASU Fulton School of Engineering, Computer Gaming Certificate from ASU;
Skills: Game Development, Mobile Development, Website Development;
Programming Languages: HTML, CSS, JavaScript, C#, Unity, C++, Java, Python, React Native;
Legend of the Crystal Cave, formerly known as "Mine Your Own Business," is an ambitious university capstone project that my team and I take great pride in. Even after completing the course, we remained motivated to continue working on the game, enhancing its features and adding more structure to prepare it for a potential release in the market as a portfolio piece.
Development Highlights:
Unity Development Expertise:
As the primary member handling the Unity side of the project, I collaborated with the team to design innovative ideas, which I then skillfully implemented within the Unity project.
2D Advantages in Unity: We chose Unity as our development platform to leverage its powerful 2D systems, including animation, AI navigation, collision, and lighting, enhancing the overall gaming experience.
Building on the Capstone Foundation: Utilizing our final project from the capstone course as a foundation, we identified previously cut or rushed systems. We took the opportunity to rework and expand these systems to ensure a comprehensive and polished full release.
Release Plan: We are targeting a release date for "Legend of the Crystal Cave" in the late 2023 to early 2024 timeframe.
The Adventurer - Protagonist Description:
Embark on an exciting journey as "The Adventurer," a brave miner seeking to uncover the treasure hidden deep within the Crystal Cave.
As "The Adventurer," players can perform a wide range of actions, skillfully controlled by a "player state machine" script.
The states represent different actions, allowing us to focus solely on variables and actions relevant to the current state.
This modular approach facilitates easier maintenance and updates, enhancing overall efficiency.
Equipment and Crafting System:
Throughout the adventure, players will encounter valuable resources, which they can collect to enhance their journey.
Back at the home base, players can utilize these resources to craft and upgrade their gear, enabling them to venture deeper into the cave.
Each armor comes with a unique effect to aid players in overcoming the multitude of dangers within the crystal caves.
To achieve this, I implemented a Model-View-Controller (MVC) architecture.
The model, acting as an object added to the player, takes item objects and controls actions performed by the item.
The view encompasses animations, ensuring each weapon and armor has a distinct look and animation based on the equipped item.
The controller takes user inputs and updates the model, allowing for seamless interaction between the player and the equipped gear.
Players can manage their items through the inventory, with specific equipment slots for each item type.
The crafting menus dynamically update as players collect higher-tier resources and unlock secrets, providing an engaging progression system within the game.
All menus were created using Unity's built-in UI system, which responds to player input and updates the display based on script-controlled actions.
Crafted equipment provides various buffs, enhancing the player's abilities and defense to tackle the hazardous encounters within the dungeon.
Enemies - Navigation, State Machines, and Animation:
Venturing through the caves comes with the risk of encountering hostile creatures at every turn.
To handle enemy navigation, we utilized Unity's built-in Nav Mesh pathing system, adapted for 2D using the "Unity Nav Mesh 2D" package.
Coupled with an "enemy state machine" script, this allowed us to create various states representing enemy behaviors, each customizable for specific actions.
Each enemy features a unique special attack with effects that can hinder players, providing challenging and dynamic encounters.
At the end of each main level, players face unique boss fights that incorporate different mechanics encountered throughout the cave exploration.
Boss Spider
Bat
Scorpion
Spider
Animation Integration:
Animation in "Legend of the Crystal Cave" was achieved using Unity's built-in animation system. Leveraging keyframes, snapshots of object properties (position, rotation, scale, sprite renderer) at specific points in time, Unity's animator smoothly interpolates between these keyframes for seamless animations.
Triggers from player and enemy state machines control the animations, ensuring immersive gameplay experiences.
As part of the development team, I took a leading role in crafting the engaging onboarding page, which serves as users' introduction to the application. My primary focus was on front-end development, ensuring seamless formatting and a consistent display across various phone sizes.
Responsive Layout: To guarantee a smooth user experience on different device screens, I meticulously formatted the page elements to adapt and fit perfectly on various phone sizes, ranging from small to large screens.
Image Carousel Implementation: One of the key features of the onboarding page was an interactive image carousel. I successfully implemented this carousel, enabling users to swipe through captivating images and discover the app's offerings.
User-Friendly Navigation: The onboarding page expertly guided users through an intuitive flow, leading them to the sign-in page seamlessly. I ensured that the transition was seamless and visually engaging, leaving a positive first impression on users.
Another crucial aspect of the app was the impactful page, where multiple custom components played a significant role. As a front-end developer, I took charge of linking these components cohesively to create a unified and powerful user experience.
Component Linking: I skillfully integrated various custom components on the impact page, ensuring they worked harmoniously together. These components included charts, progress trackers, and interactive widgets that reflected users' healthy lifestyle achievements.
Seamless Interaction: To facilitate smooth user interaction, I focused on creating intuitive connections between the custom components. This enabled users to easily navigate and explore the impact page while gaining insights into their wellness journey.
My contributions to building the onboarding and impact pages were pivotal in crafting an engaging and user-centric experience within the Etherea app. By leveraging my front-end development skills, I ensured that users could seamlessly explore the application, promoting healthy lifestyle choices in an interactive and empowering manner.