Rougelike Tutorial Post Mortem


     First of all, let me say thank you for taking the time to read my post mortem on the Rogue-like Tutorial project. Every so often I get the itch play around with different projects and try new things out. I have some experience with python and this tutorial series in particular as well as plenty of experience with playing rouge-likes. Rouge-likes have always been a wonderful way to explore and experiment with randomization and replayability

     So why Python?  I chose python because my main language is C#. I primarily use Unity and object oriented programming so switching over to something entirely new and different would be a good challenge for me. I have some familiarity with python so it felt a little easier to take the dip rather than be daunted with an entirely new language.

     Why this tutorial in particular?  The year of 2024 saw me spend over half the year learning netcode for Unity and begin prototyping a multiplayer game. Followed by several months of on and off development. I felt that by taking some time to achieve a smaller project would help to get me back on track to my goals. And I could not think of a better way to bring in a new year in my development journey. 

     I discovered several odd things during my time going through the tutorial. The syntax differences, the difference in methodology for have classes, variables, and methods were used, and the general overall programming patterns employed where so strikingly foreign to me. It was like a breath of fresh air to find new ways to look at things. There were several times where I found myself comparing the two languages and methods used for various game loops. 

     There a few major things that I really enjoyed about using python as a whole. Firstly, the use of libraries. Python has a wonderful community of developers from all backgrounds creating a wonderful network of powerful and useful tools. Finding a library for a specific functionality or just finding a new tool to play around with became a never ending rabbit hole to fall down. I genuine found myself losing hours of time to just browsing different libraries around the internet. 

     Second, was how easy it is to set up a virtual environment to test and play around with code. This made it feel like I could just slap open a new project in Visual Code and then play around with different tools and scripts without much worry about the base project. If I made a mistake or accidentally broke something I could just roll it back or start over entirely with just a few clicks. I feel like this really gave me permission to break things in ways that I would have never ever thought of doing while using something like Unity or Visual Studio Code. 

     Third, and my absolute favorite feature, was how easy it is to interact with different python scripts. Using Unity and C# makes referencing seem strict and rigid, especially when working with game objects that spawned in after the runtime initialization. In Python, being able to simple just say 'import this from that' made it feel more interconnected. Being able to simply grab the data without worrying about the object and its origin or current location or current parent made Python feel more intuitive. I suppose this is one of the major differences between data oriented vs object oriented programming that struck me while going through this tutorial. 

     However, there were a few things that did trip me up in this whole process. The biggest issue that I had in this, was that at the end I tried to compile my python project into a single standalone release to share here. And for the life of me I could not figure out how to achieve this goal. I tried several different approaches with no success. Tutorials that seemed to me to be over looking some core fundamentals of data oriented programming that I do not have. There were also some version issues with the base rouge-like tutorial that I had to figure out on my own. 

     So what now? This is a question that I love to be faced with. Now that I have finished and released a project I get to step back and look around. I get to take so many lessons away from this process and begin to think about my next project or even revisit old projects with this new outlook and perspective. This has been a wonderful experience and I definitely see myself playing around with python again in the future. I do want to make it a goal at some point to get a better foundation in data oriented programming. As well as figure out how to make python projects compile into a standalone for easier distribution. 

     Thanks for reading through this post mortem and be expected to see plenty more this year as I continue to build my catalogue of projects. 

Files

rougelike.zip 38 MB
7 hours ago

Get Python RougeLike Tutorial

Leave a comment

Log in with itch.io to leave a comment.