The Maze Project ALX Software Engineering
Photo by Rodrigo Santos: https://www.pexels.com/photo/workplace-with-modern-laptop-with-program-code-on-screen-3888151/

The Maze Project ALX Software Engineering

The purpose of doing this project was to create a game in 3D using ray-casting. I worked on this project performing various tasks of this project over the course of 3 weeks as pertaining to designing and rendering.

On this Particular Project we a made use Ray Casting.

What is Ray-Casting?

Ray-casting is technique that transform a simple form of data into a 3D projection by tracing rays from the view point into the viewing volume.

Why the Maze Project?

We’ve all at one point enjoyed playing realistic games on our phones and computers at some point. I most definitely have, with my most recent obsession being Call of Duty Mobile.

Ironically, Trying my hand at game development is something that i never thought i would do. However, when the opportunity to learn and build presented itself I took it. How nice it would be to understand the back-end of the games we play! I think it makes me view these games in a whole different light.

What did I Achieve with this Project?

To make this maze, I used ray-casting to draw the walls, utilizing LodeV’s method of using vectors to calculate ray length. By default the maze uses textures but textures can be disabled on execution. The maps are defined in 2D arrays in text files, which are parsed when passed as an argument to the maze executable. 0 represents open space, all other integers are drawn as walls. Additionally, we used C language and the SDL2 library to render and add the textures.

To navigate through the maze, the following basic controls can be used:

·        W : move forward ·        S : move backward

·        A : rotate camera left ·        D : rotate camera right

·        Q : strafe left ·        E : strafe right

·        F : toggle full-screen ·        ESC : quit maze

An amazing feature we implemented was Wall Collision which simply doesn’t allow camera rays to pass through the walls.

What Challenges did I Face?

Learning SDL2 was quite a challenge for me and required a lot of dedication from me to understand. Working together with my friends and discussing helped me massively.

Also ensuring we have installed the correct and necessary SDL2 packages to make the window was a difficulty my entire team faced and had a challenge trying to fix.

No alt text provided for this image
Photo by Pixabay: https://www.pexels.com/photo/letter-blocks-247819/

Did I Learn any Lessons From this?

The greatest lesson by far from this project is something I already mentioned earlier in the beginning of this blog post: I was able to develop a game!!!!.

For the first time I came across terms like ray-casting and SDL2, yet I was able to understand them and work with them successfully. I wouldn’t say I am a pro yet but this was surely an experience that is essential for Game Development.

If there’s anything this project taught me about myself, it’s that I am willing to explore and venture into unknown territories in search of Knowledge. To reiterate, I never imagined I would bother to know anything with regards to game development, but I looked at this project in the eyes and said "You are Next!!".

I dove in head first without hesitation and put my best foot forward. I can say fora fact that It definitely paid off. I am more open to working on more games and learning deeper concepts after this.

I think I can say this without batting an eyelid, game development is very fun despite what I believed prior to working on this project.

Always Stay Coding!!

No alt text provided for this image
Photo by Prateek Katyal: https://www.pexels.com/photo/black-and-white-laptop-2740956/


Great work 👏

Like
Reply

To view or add a comment, sign in

Others also viewed

Explore topics