Full notes
Full >//:System.Hack update
Read the full published notes in a cleaner layout. The original post stays linked below.
Repeated intro
Hey everyone, I'm just checking in with a progress update.
What changed
- Gameplay
- UI and audio
- Performance
- Store
- Balance
First and foremost, the update is still a little bit away. I'm planning on dropping the update as soon as I get the core gameplay loop finished. The core mechanics are 'mostly' done, but need to be reassembled and smoothed out.
Oracle and custom programming is now complete. This was probably the biggest step in this entire rebuild, because it also involved basically reworking how programs work completely, which is sort of the core of the game. Now that it's done, it seems like a good time to explain those fun changes.
First I'll explain how the programs work.
All programs are now built from multiple lines of letters and numbers, called the Script. When a program is ran, the game now reads the script line by line and behaves appropriately. This means when you create a program, you will be writing out these lines of code. But fret not, the code is complex enough to be very powerful and immersive, but basic enough that you can do it without a programming background. There will be tutorials and example code to make things easier on players until they learn the few simple syntax rules.
For example, to build a simple Nuke program that runs a rating 4 Disruption subroutine, the code would look like this:
OnExecute, [Disruption](4); Terminate;
If you only wanted to fire a Disruption subroutine if the IC's Firewall was down, and otherwise fire a Breach to tear down that Firewall, you could write a program that looks like this:
OnExecute, If ICFirewall == (0), [Disruption](4); Else, [Breach](4); Terminate;
Here's what that actually looks like in the new Oracle software.
Running the program is functionally identical to the old version. Click the hotkey, and it fires the program from the hotbar. You do not need to do any typing like with Root Access. You just click and let the program work.
Now as for Oracle, as you can see from the image above, there are a few new parameters that are shown. Namely: RAM, Programing Time, Compiling Time, Program Instability, Rig Processing Power, Cold Processing Power, and rented Processing Power.
-RAM is how much of your active memory to taken up by this program until it's terminated. RAM is also a new type of chip. Players can design programs that are loaded into active memory to create buffs, debuffs, traps, weapons, and more. This value is of no concern for one-shot programs, like the Nuke examples above. Although you could write a program that does what those programs do, but instead of being triggered on execute, it's triggers whenever the player's Firewall is damaged. In which case RAM would be an important parameter.
-Programming Time is exactly what it sounds like. This is how long it takes you character to actually get this program ready for the oven. It's determined by the Program Complexity and your Programming skill. Time will fast forward until this is done.
-Compiling Time is how long the program takes to actually finish cooking after you are done programming it. You are free to do other things while you wait. The time is determined by the Program Complexity, and how much Processing Power you are able to throw at it.
-Program Instability is how likely there are to be bugs in your program. If the instability is above 30% it won't let you try and compile it. At less than 30% it will always compile but you may run into bugs when using it, such as Heat Spikes, longer execution times, random crashes, etc. This is determined by the Program Complexity and your Programming Skill.
-Rig Processing Power is how much power you are assigning the compiler from your RIG. This is all or nothing. When you are using your RIG's power to cut compiling time, your processing power is treated as 1 when hacking. If you choose not to use your RIG processing power, you can hack without penalty while the new program cooks.
-Cold Processing Power is from Processor Banks you can purchase for your safehouse. This cuts compiling time, but has no effect on your RIG in cyberspace.
-Rented Processing Power is the only financial cost associated with building programs now. Basically it allows you to boost your processing power to compile the program faster, but you pay for the service. In the new economy, time isn't "free", and complex programs can take a long time to compile. I expect this to be used regularly, but frugal players now have the option to abstain.
Now with that all being said. This might not be for everyone. My original version of Oracle also used a very basic pseudo-code and the player base was split on whether it was annoying or it was amazing. This time around, players with no interest in all this coding stuff will be able to buy pre-built programs and effectively ignore the feature all-together by spending some creds.
One of the things that excites me the most about this new programming mechanic, is the incredible power and versatility. I am able to add new variables that can be referenced by actors in the world, and new subroutines or other commands to interact with them. For example; I could tie the brightness of some lights to a variable, and then have the players be able to access that variable with a line of code in a program. Maybe this could be a program used to kill the lights in the street? Or maybe the program won't run if the lights are too bright or too dark?
The goal of this new program system is emergent gameplay. I will keep adding on new subroutines and variables that can be checked and modified, and enjoy watching the wild programs that players come up with.
There's a lot to still talk about, but this post is already getting too long. If you have any question, feel free to ask!
Source
Changelog.gg summarizes and formats this update. How we read updates.
