The Aspects of Problem-Solving
“The objective is to solve a given problem with the simplest, safest, most efficient design possible, at the lowest cost.”
Problem-solving is the most valuable skill you will learn. It allows you to navigate any obstacle with confidence. It is a skill that can be used in any field facing any problem. This is due to the systematic nature of problem-solving. It ensures that if there is a solution to the problem, you will be able to achieve it if approached appropriately with the right mindset. Sometimes it relies on others’ expertise, and sometimes it takes a bit of research to understand where to look for information, but this process helps solve problems faster, eliminate biases and arrive at an answer that has a significantly high chance of being successful.
Of course, having prior knowledge of the field that the problem exists in will speed up the process and eliminate the amount of failure that is required to reach a solution, but the concept is that any problem is solvable and if you use a systematic approach. It will make each problem easier to sort through. It will instill in your mind that no problem is too much to handle. Solving a problem will become less stressful, less emotional, and less painful upon dealing with failure.
Before focusing on game development full time, I was previously an Electrical Engineer at GE, AT&T, and a software startup company, all over about 10 years. Currently, I am developing Hostile Mars, a strategy game including item manufacturing, base design, automation, and combat.
Problem-solving is what made engineers valuable at all of the companies I had the opportunity to work for. It is not that, in general, engineers are smarter than others (though I’m sure there is a correlation between those with high intelligence and those that pursue engineering) but rather they are educated and trained to solve problems efficiently and analytically.
1. Identify The Problem
This may seem obvious, but this is the MOST important part, aside from the solution of course.
Defining the problem is going to help you come to a solution faster. It will provide guidance on what to focus attention on, what variables need to be accounted for, and the information that the answer needs to include. This can be the mistake in a lot of studies and research, which can lead to attempting to prove correlation and links between events that have no impact on the actual problem in the first place.
For game developers specifically, if you have a lot of feedback on a particular mechanic and players are requesting that you change it to something specific, usually, they aren’t defining the actual problem. They just feel that something is off and they don’t like it.
Even if they are unaware of why it isn’t working, it is valuable to take this info and try to define the real problem. In many cases, it will be something different than what they define the problem to be, which will require a different solution.
For example, if they say the fire rate of a weapon is too slow and it needs to be sped up, the problem could be that the animation and sound effects during the initial charging period of the weapon aren’t sufficient. This would cause the weapon to feel off, not necessarily that the fire rate needs to be changed. So identifying the correct problem is the critical first step.
2. Identify the Answer
Not to identify what the answer is, but to identify what an acceptable answer can be. In a lot of cases, a unit of measure. If a question is how long does it take to fill a pool, you would need to define the units as a measurement of time: seconds, minutes, hours, days, etc. An answer which defines how many gallons it takes to fill the pool wouldn’t apply here, though might be necessary for how to arrive at the solution.
If you took physics in school, the first thing to do following reading the question was to identify what form the answer would be in. For example, if working with a problem that requires unit conversion, you identify the units of measure that would fit the description. From there you could “reverse engineer” the answer by working backwards with conversions that you do know, even if the answer isn’t something you have specifically solved in the past. Or if you know how to arrive at the solution, you could use the provided information to solve the problem straight forward in a traditional manner.
Additionally, there is the option to move through the question using trial and error, converting items that are included in the problem statement until they are in units that you are familiar with, which is the most time-consuming approach and should only be used if the other methods aren’t working.
The focus here is the first method of reverse engineering because that is the most valuable method to solve problems you have not encountered previously. Going through a problem and answer set that you already know isn’t problem-solving but rather a memory recall exercise.
3. Identify Supporting Information
The next step will be to identify all of the relevant information provided. To stick with our physics example, you would write down all of the variables that are given. Mass, gravity, distance, any information that is available to you. Even if you don’t believe it can contribute to the answer, it may help in some way. Unless you have already solved the same problem previously and know the exact information which is needed to arrive at a solution, which is why expertise and experience are valuable in the speed of which a problem is solved.
4. Analyze The Problem
Many times the answer is unknown. A problem may exist but the answer is not yet defined. This is where analysis comes into the process. Analyzing the aspects of the problem and the supporting information will help identify what the solution is, if not initially defined. In the real world, this is usually the case, you don’t have a question asking you for the specific answer, but a problem without a solution in place.
5. Identify Links Between Information
Many times a solution has not yet been found because it is not a simple relationship between the supporting information that you have. Sometimes links between information need to be created that haven’t previously been explored. Assumptions are scientists’ worst enemy. Never assume and correlation or link between objects unless you have proven it with a logical approach (use the scientific method). This type of thinking prevents new ideas and new outcomes. Even previously defined results and facts can act differently in a new setting.
Scientists are always retesting their theories. Their work is never complete. Theories are updated when new information is introduced. Never assume something won’t work because it didn’t work in another situation.
This step is important in revisiting ideas that may be assumed by the solver.
6. Identify Possible Solutions
This step includes listing out any solutions that would fix the problem, or prevent the problem from happening. It is not important yet whether it is the correct solution or the best solution. This step is to list all potential solutions.
7. Eliminate Possible Solutions
Now is the time to dive into the solutions listed in the previous step to eliminate anything that doesn’t make sense, doesn’t fit the scope of the question, or isn’t as efficient as another solution. One solution may be fine and solve the problem, but it wouldn’t be effective in a reasonable amount of time so it is no longer viable. If any of the constraints eliminate the viability of an option, it needs to be removed.
Elimination can happen through logic, experimentation, comparison to another solution, and other factors. This step will either leave you with no viable solutions or a single, most viable solution.
8. Proving the Solution
To adequately prove the solution, the scientific method is the best method to follow. This will include the experiment, data, analysis portion of proving the solution. If the solution is unable to provide the desired outcome, the solution is thrown out and another possible solution needs to be examined.
Once the solution has been proven, implementation is the last part. Doing these steps correctly gives a much more efficient and accurate way of solving problems and generating solutions. It also eliminates biases, assumptions, misunderstanding of information, and wasted time on linking irrelevant information.
To show the entire process a little less abstractly, I will use an example from a TV show. My wife and I have recently been watching a show on Netflix titled “Away”. My wife knows that I love anything to do with space travel, Mars, and engineering so when she saw the preview for it she knew it would be a show I would be excited to watch ( and she was right, it’s a great show 🙂 ). This example may have spoilers for events late in the first season, so if you plan to watch it you may want to return after completing the first season.
There is an incident in the show where a freighter that NASA launched containing supplies the crew need to survive once landing on Mars goes silent. Upon entry into the Mars atmosphere, it is expected that there be a gap in communications with the freighter. If they cannot regain communication after a few minutes, they assume the vessel has blown up or skipped off the atmosphere, missing its target and drifting further into space.
That is exactly what happened in the show. The ship enters the atmosphere and communications are never regained. They assume that the care package that the crew is depending on has been lost, putting the crew in mortal danger.
The room of engineerings at NASA does nothing to try and prove otherwise (which is ridiculous in my mind). Later, a single engineer aboard the ship traveling to Mars thinks of a way to determine if the payload entered the atmosphere. They use a rover that is already on the Red Planet which is equipped with a seismometer and emits data over radio.
Although mission control cannot receive any data from this rover because the satellites relaying the signal were no longer in place, the Mars crew was close enough to where they could receive this signal with their equipment on-board their ship. The idea was that the sonic boom created when the ship enters the atmosphere would easily be picked up by the rover’s equipment.
There is no way that mission control and the NASA engineers wouldn’t find this solution by a quick problem-solving activity. They would start it like any other problem, though a bit more complex this time:
Identify the problem
Again this is important to be able to identify the information that you are actually trying to solve for. In this instance, the shuttle losing communications isn’t the problem. The crew needs the payload to survive on Mars, and they don’t know what happened with the freighter upon entry. The problem is that they don’t know if it ever entered the atmosphere at all and if it did, whether it blew up. Just to know that it entered the atmosphere and didn’t blow up would mean there is a high chance the contents landed and were waiting on the surface.
Identifying Supporting Information
In this case, it may be unreasonable to list down every single component that the crew and mission control has access to work with. Time is the critical factor here as the crew is basically dead if they don’t have the contents of that ship. With a problem this complex, reverse engineering would be the best approach.
To Start this approach, the desired result is defined: Knowing if the ship entered the atmosphere safely.
What information can prove that this happens? We would define possible ways of determining the entry of the ship into the atmosphere.
To know what will tell us of the occurrence of an event, we need to define the event taking place. In this case, it is the ship entering the atmosphere of Mars. When this takes place a sonic boom will occur. Other factors take place as well, and those would also be considered, such as the change of velocity of the vessel, atmospheric pressure changing around the ship. Most of these would be hard to determine without having direct communication with the ship or an external instrument that could measure this data.
Next would be to identify any external instruments that are near the occurrence of the sonic boom or entry into the atmosphere. There are satellites, telescopes, and rovers on Mars.
Next would be to identify the equipment on the satellites, telescopes, and rovers that would be capable of measuring any of the information defined as occurring when the ship enters the atmosphere.
You can see where this is going. Obviously, there are rovers on Mars that have the equipment necessary to measure the events that happen when a ship enters the atmosphere.
You may say “Well yeah, hindsight” and you’re right in a sense. The exercise wouldn’t be so quick, but it would still generate the same result without too much of an effort, vs not thinking of anything else to do and losing failing a mission that costs some ungodly amount as well as a significant impact on the earth as a whole.
I know, it is a Netflix show and it is not written to be completely accurate but to entertain. I appreciate that. When watching the episode it brought this topic into my mind so it was a good example of the problem-solving process.