The Maze Project: ALX Portfolio Project Blog post

Abraham Karikari
4 min readMar 19, 2024

--

Although I didn’t have much experience and didn’t have someone with whom to cooperate, I did my best to make my first game in three weeks as our cohort at ALX drew to a close. In contrast to the various projects we’re familiar with, I wanted to work on something new. At first, I had a lot of trouble understanding the tutorials, but eventually I figured out how they worked.

This project’s goal was to investigate and gain knowledge about Ray Casting, including its history and method of producing a 3D perspective on a 2D map.

I’m still hoping to find someone with whom I can work.

For the remainder of my time at ALX, I would like to focus on frontend development, which is why I was finding it difficult to complete this particular project.

Prior to working on this project, I occasionally played the game “Bernband.” First-person walking simulator play lasts for thirty minutes. I had the most incredible time exploring the future alien metropolis and stopping at various bars and locations. I was therefore immediately pulled to the default project concerning Ray Casting as soon as I saw it.

A library of vintage games is created by The Maze. I filled out Google Docs to arrange the job and made use of helpful resources.

All I needed was the SDL2 library and the C language to make this all work.

SDL2 within the C language was used for everything pertaining to the window’s appearance, including rendering the map, applying textures, and projecting the rays onto the walls.

Wall Collision is a feature that prevents the player and camera rays from passing through walls.

Not a feature: The player can only go forward and backward; they cannot move left or right. However, they can change direction by using the left and right keys.

It was difficult to understand the Ray Casting instruction. I found it difficult to work with global variables. They are avoided by most programmers, but you won’t have any issues if your code is well-organized.

Nonetheless, I’ve managed to create completely playable maze landscapes with smooth movement, engrossing music, and striking visuals in my 3D Maze portfolio pieces. Using a 2D grid representation, the raycasting algorithm allowed for the modeling of perspective and depth, giving the mazes a sense of three dimensions.

The biggest technological difficulty I ran into was keeping the gameplay fluid by optimizing the rendering process, which was particularly difficult with intricate maze layouts and constrained processing power. It took meticulous fine-tuning of rendering algorithms, effective data structures, and astute use of memory and computing capacity to strike a balance between visual fidelity and performance.

Furthermore, it was extremely difficult to give the mazes the appearance of genuine illumination. Applying methods like shadow casting, shading, and ambient lighting needed close attention to detail and a thorough comprehension of the underlying algorithms and mathematics.

What I have Discovered

The first and most obvious point is that, as my first foray into game development, I’ve learned how to make a 3D first-person game using SDL2, which means without the need for a game engine. It’s an incredible process. For my part, I learned a lot from this, spending weeks researching and reviewing the principles of physics and arithmetic in video games.

In summary:

Using SDL2 and raycasting to create 3D Maze portfolio pieces has been an exciting and fulfilling experience. From the desire to demonstrate my abilities to the inspiration derived from vintage video games.

I’m Abraham Karikari, and I love technology. I have a varied educational background.

Nonetheless, I made the right choice to advance my career in this industry after seeing the increasing significance of software engineering in the modern digital world. I signed up for the Software Engineering program at ALX, a reputable online learning resource known for its excellent instructional materials.

I’ve been able to gain extensive understanding and useful skills in a variety of software engineering domains using ALX, including programming languages, algorithms, data structures, software development processes, and more. I now have the knowledge and skills needed to successfully design, develop, and implement software applications thanks to the program.

My interesting journey into software engineering has revealed a deep passion for problem-solving, logical reasoning, and using code to create creative solutions. I’m always looking for ways to learn more and keep up with the newest developments in technology and industry trends.

With my background and my newly acquired software engineering abilities, I hope to help design innovative software solutions that promote efficiency and growth in businesses. I think that because of my special combination of skills, I will be able to help enterprises and their stakeholders by bridging the gap between technical requirements and commercial objectives.

I’m committed to developing my abilities, working with experts in the field, and accepting challenging projects that push the limits of what a software engineer can accomplish. Since I genuinely feel that technology is a profession that is continually changing and that there is always more to learn and explore, I am dedicated to lifelong learning and improvement. With ALX, I’ve pursued software engineering, which has helped me become a flexible professional with a solid background in technology and business. I can’t wait to take advantage of new chances and use my knowledge and abilities to advance the software engineering sector.

I hope you enjoyed reading my post, and I thank you for doing so.

Linkedin

--

--

Abraham Karikari
Abraham Karikari

Written by Abraham Karikari

0 Followers

IT Professional (MS Win Server Admin & MS Dynamics CRM) & Broadcast Technician. SE @alx_africa @Arsenal😍 Agriculture❤️

No responses yet