My Experience with The Maze Project
Textured Frame of The Maze

My Experience with The Maze Project

The purpose of doing this project was to create a game in 3D using ray-casting. I worked on this project. The tasks of this project were done over the course of 3 weeks as pertaining to designing and rendering. 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 enjoyed playing realistic games on our phones and computers at some point. I know I have, with my most recent obsession being Temple Run 1 and 2 (a little outdated, I know). Ironically, I never was really interested in trying my hand at game development. 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.

My Accomplishments

No alt text provided for this image
Architecture Diagram

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 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

Wall Collision is a feature we implemented which doesn’t allow camera rays to pass through the walls.

Technical Challenges

Learning SDL2 was quite a challenge for me and required a lot of dedication from me to understand. Working together with my teammates 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.

Lessons Learnt

The greatest lesson I learnt from this project is something I already mentioned 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 a stepping stone to becoming better at game dev.

If there’s anything this project taught me about myself, it’s that I am willing to explore and venture into unknown territories. To reiterate, I never imagined I would bother to know anything with regards to game development, but I took on this project head on without hesitation and put my best foot forward. 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.


About the Author:

Asuwe Richard Wuese is a seasoned administrator, entrepreneur, virtual assistant, preacher, and software developer currently based in Makurdi, Nigeria. I am passionate about harnessing the power of technology to solve real world problems and touch as many lives as possible through proficient software development. I am also a student at ALX doing Software Engineering. Other than coding, I also enjoy reading books, listening to music and watching movies.

GitHub link for the Maze Project

My LinkedIn

Maire Masayire

Data Analyst (Excel, SQL, R, Python, Power BI) | Front-End Web Developer (HTML5, CSS3, Javascript, ReactJS)

1 年

This is awesome, great work.

Alemayehu Kure

Department head of urban Development & Housing at Zonal office at Goverment Offices

1 年

well done!

回复
Abrham Gebregiorgis

Software Engineer | AWS Solution Architect | AI/ML Enthusiast

1 年

I have done this exact project 3 months ago and it wasn't easy specially casting the rays and calculating the distance.... anyways well done!

Oladiti Oluwajuwon

Seasoned SEO content writer with a passion for crafting compelling and engaging web copy

1 年

This is quite impressive! Well done.

要查看或添加评论,请登录

社区洞察

其他会员也浏览了