My Experience with The Maze Project
Richard Asuwe
[Software Engineering] [Virtual Assistant] [General Administration] [Project Management] [Data Management] [Meticulous, Disciplined, Trustworthy, and Smart]
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
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.
Data Analyst (Excel, SQL, R, Python, Power BI) | Front-End Web Developer (HTML5, CSS3, Javascript, ReactJS)
1 年This is awesome, great work.
Department head of urban Development & Housing at Zonal office at Goverment Offices
1 年well done!
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!
Seasoned SEO content writer with a passion for crafting compelling and engaging web copy
1 年This is quite impressive! Well done.