Not that every week isn’t, but if I literally had to describe the week in one word, it’d be hectic.
Reworking old code, making progress in some regions only to have to change it so that it can all work with new code, in order to come up with that grand old system where sections of the game always know what’s going on, if it has to. Apologies in advance, this one is a bit of a tech/discussion heavy one this week – so if you’re all for pictures and visible progress, sorry. If your for in-depth discussion on code, how it works, how it can be improved, and what we’re doing in general – you’re gonna love it.
Let’s start off with:
The rules/instructions system requires that the rules change on a semi-seldom basis, as in once a week at first and then maybe once every two/three weeks. Let me explain this if you haven’t read one of the Dev Log’s before: One day the Rules might say something to the effect of “Always cut the first red wire”, and so if you cut the first red wire on a bomb, you will have completed the first steps to diffusing it. However, one day, Fraction (the terrorist organisation you are fighting), may catch onto this and change the rules of their bombs. Now it may be “Never cut the first red wire.” The terrifying part however, is that your Intel/research team have to be “on the ball” in order to decipher their encryption and find out that they have changed their rules to diffusal. Meaning if you don’t have a reliable team, you or your team will be in grievous bodily harm.
Now the problem when it comes to code and game development, is that the bomb also needs to know by which rules it can be diffused by. It also needs to know when these rules change, regardless of whether you (the player) knows they’ve changed, so that it can be defused or detonated accordingly. These past two paragraphs have been a mouthful, I’m sure, but it is worded particularly.
So implementing that is crazy, and so I decided to limit the number of rules running at one time to twelve. Meaning there could potentially be twelve rules, all talking to one another at one given time that are responsible for how you should diffuse a bomb. So say you had a six wire bomb, and you have three rules. And let’s say the bomb looks like this (taken from the old mobile game)
Now the rules may be,
1 – Always cut the four wire from the left.
2 -Never cut a red wire. Count as though they are not there.
3 – If wire to cut is green, cut previous wire.
So which wire should you cut?
Now as I said, the above image was taken from the mobile game, the PC game’s bombs will look vastly different. This above image would literally be a tiny compartment of the new bombs. Now the answer was the BLUE WIRE. But imagine a single rule was changed, the entire bomb should be diffused differently. But does that mean that I should have to remove this potential bomb if a singe rule changes? No. That would be a waste of time and resources. Instead, I should just allow the bomb to understand how it should be diffused.
And as you can tell… this is quite the task. But it has begun. Even if it is in the form of a little notebook with rules on them.
Threat & Intel
Now the second symbol from the left (T) is the Threat Indicator. This is the likelihood that a cataclysmic event will occur. Seems simple enough, but if you’ve read these Dev Log’s you’ll know I don’t like doing it that way, it has to be realistic or fun over easy. So the threat level should actually go up based on your Intel team’s estimation and current Intel. Meaning if you do not have a good team, the threat level could be inaccurate, resulting in you looking for bombs that simply are not there, or you could think your city is safe and suddenly a catastrophic event happens.
I managed to begin implementing this, and not only that but I managed to have it work on a per district basis. So let me explain this too. This is the district “Glastonbury”, one of many many districts in the much larger map.
Now as you can see, there are many roads, buildings, municipal buildings, parks, and transport locations in this one district. Each district will differ on how many of these they have and to which class of citizens live there/what kind of district it is. This will determine how likely it is to undergo an attack from Fraction. They can also undergo events random or otherwise catered to their district, such as “a festival will take place today”. This means that this districts threat level will fluctuate, independent of the other districts – however, each of the districts contribute to the overall threat level.
So what I then began to work on, was the Intel team acquiring Intel on a per district basis, so that you would receive an Intel list that looked something like this:
- Suspicious Components Discovered in the Glastonbury District
- Suspicious Exchange Witness in the Glastonbury District
- Harmful Components Purchased in the Park District
- Suspicious Person Sighted in the Glastonbury District
Meaning that you have to track each districts potential to come under harm and deal with it accordingly. How you deal with that, is something to deal with in another week – although the process has been designed. It will revolve around putting security teams in locations where they can actively prevent terror or arrest individuals within the Fraction group.
The system for implementing emails into the game has been implemented… and then massively changed anyway. Originally the emails that shot into your inbox did so at random intervals of time, but at least followed a structure. E.g. You would always get an email from The Director, then Malcolm, then The Director again.
However this was lazy as it actually failed to care about the decisions you make, and as you can see by the example below, there are some pretty different dialogue choices to make.
So what I had to do was change the system so that each person has their own say/interactions with you on a personal level. So if you were rude to them prior, they will remember and respond accordingly. This meant making each potential email/story candidate a separate entity which held its own values, potential, and relationships with you. And while this would be a nightmare to implement, again, I did manage to do it and watch it at work, and it’s pretty fantastic. I can’t wait to show you how our stories develop in the game, and hopefully how you can contribute to it also.
One last thing I would like to talk about (but can’t quite show yet) is how the bombs and wires within the bombs will vary massively your the mobile version. You remember that image of the bombs from earlier on? Well that contained an image of a wire, and when you tapped the wire it would break. Nice and simple. However, for PC, that just simply isn’t acceptable. Now, since tools are required to diffuse various different components of the bomb, it also means you can have no tool in your hand… meaning your mouse is just your hand. With the hand however (and with most tools for that matter), you can actively move the wires around, finding other wires underneath or simply just pushing past wires to get a better place to cut or to turn on switches etc etc. Already I managed to get this to work, but oh boy was it an absolute nightmare.
I can’t wait to show you how radically different the bombs and the wiring systems will look in this new version though. It’s so exciting and on top of that… you’ll be able to see it real soon.
Thank You + Contact
As always, thank you very much for your unimaginable support and opinions, feedback, and general interest in this game that I care very much about. We’ll continue to work hard, as in implementing systems like these spoke about this week, and you can always help us by simply telling us – what do you think?
Please get in touch in any of these places,
firstname.lastname@example.org – Any information or discussion regarding the game, Don’t Go Bang!
email@example.com – Press opportunities for the game (Interviews, Magazines, YouTube, Twitch etc)
firstname.lastname@example.org – General Inquiries About Anything At All
Or as always, please just get in touch @DalriadaConnor
Thank you guys, have a fantastic week of brilliance. Until I see you next time…