Skip to main content

Pwning my favorite game

Hectoberfest part 2: Pwning my favorite game

While I have used various open source programs in daily bases, I have never imagined to be the one contributing to it. It has been the reason why I got interested in computer, so that was always my holy grail, but it was not until recently I could see myself as someone standing with the giants. Turns out, I can stand on their shoulders. What a view! Anyways, for my second PR, I decided to work on one of my favorite game:Cataclysm-DDA. It is about time my survivor got himself some rocket fuels!

Cataclysm - Dark Days Ahead

This is a rouge-like survival game. Your character is spawned in the middle of an unfriendly, zombie-infested world. Depending on the difficulty, you may spawn anywhere from a relatively safe bunker to neck-to-neck with the next-door, undead-and-hungry neighbors. The goal is to utilize every object and knowledge to gain an upper hand and survive. The player has the world at the disposal to craft and use.

Specific Issue

Rocket fuel is one of the consumable used in the game. It is relatively easy to learn with some limited purpose. The problem is that zinc, one of the components used to craft the chemical, spawns in only one location, school chem lab, that is often relatively difficult to reach until the player reaches much higher level. To provide a balanced game play, an issue was opened requesting to increase availability of zinc.

Approach

First, I looked up zinc. With the assumption that the world tries to closely mimic a real-life town, I wanted to know where we would find zinc in any form in our lives. After some search, it turns out, zinc is very popular in creating metal molds and used in many industries such as automobiles. In different chemical forms, zinc is also used in wide range of common products such as paint. With this information, I decided to add zinc to the hardware stores, Cataclysm world-wide. I also decided other chemistry-related locations may have zinc for various purposes, adding zinc to chem_home and chem_lab locations.

Alternative

As mentioned, zinc is a component in various items such as paint, and paint exists in the Cataclysm world. As chemical crafting plays a big role in the game, it would also be interesting to add a recipe that would turn paints or other object into zinc and other compound.

Conclusion

This was much easier fix but was an interesting general learning experience. Perhaps, for my next pull request, I might try to implement the recipe idea to increase zinc availability.

Comments

Popular posts from this blog

Creating a patch for GNU GCC using Git

Overview and Target Audience The GNU GCC project followed a blend of a traditional method with contemporary git tools when it comes to contributing code, making the experience unique from some other, git-based projects. This blog post will explore different aspects of the process, helpful commands, and various scripts that would make the experience more pleasent for new contributors. While this blog aims to help new contributors get acustomed to the GNU GCC code culture and make contributing easier, it must be stressed that this is not in any way in-depth exploration of the process. This should help you put your first foot forward; the community will help you take the rest of the steps from that point on. This post also assumes the user is in a POSIX environment (e.g. Linux, FreeBSD). Git and GNU As stated in this phoronix post , GNU GCC made a full transition to git early 2020. As of this writing, the community seems to be adjusting to the new tools. GNU GCC hosts its own git serve...

Debugging with GCC: GIMPLE

GCC and GIMPLE One of the very first thing GCC asks the GSoC applicants to do, even before writing the application, is to try various different debugging techniques using GCC. I was personally familiar with the basic, compile-with-g-flag-and-use-gdb method. Turns out, there's more: GIMPLE. A Simple but Non-trivial Program Problem Description The instruction asks to compile a simple but non-trivial program with some flags that generates debugging information: -O3 -S -fdump-tree-all -fdump-ipa-all -fdump-rtl-all . Because I was keep reading on ways to debug GCC just prior to the statement, I immediately thought "GCC" and tried make -j8 CXXFLAGS="-O3 -S -fdump-tree-all -fdump-ipa-all -fdump-rtl-all" . This was a mistake: turns out, GCC can't be compiled with those flags. Thankfully, GCC developers have a very active IRC channel for me to signal SOS. Resolution jakub and segher were quick to respond to my call for help. jakub: it isn't meant that y...

Researching Awl Pike

Last time... In my previous commit, I had the pleasure of studying the guns and their ammo and how they are reflected in the world of Cataclysm-DDA. This time, the some members of the community were buzzing about a 3-meter-long pointy stick called awl pike. Awl Pike The awl pike is basically an extra-long spear designed specifically for use in a formation attack. A formation of 3+ ranks hold the longest possible stick at their disposal and poke the enemy that stands in front of them or charging at them. It is very powerful weapon against things that stands in front of them, but due to the need for formation and the shear unwieldiness of the weapon, it is not very versatile and adaptable to changing circumstances. In a one-on-one combat, the weapon would be very difficult to stay effective. How do I know all this? Well, there was the entire discussion about it in the issue page. Like I said, this kind of games brings out the geeks from their closets and provide the floor to sp...