Features coming in the 2019 alpha release

(Alkaline Thunder) #1

Hello! We’ve been working a lot on Peacenet’s Unreal Engine port and I decided to create a post outlining every major update since the MonoGame releases so far. I will be editing this as we get closer to the first alpha release, so check back for updates!

Major features

  1. Ubiquity-style Main Menu: The game’s main menu is now loosely based off that of the Ubuntu installer (Ubiquity) and now acts as a character creation screen - where you get to, well, create your system, as if you were installing Linux.
  2. Better email UI: Thanks to @Inkydink, the email UI has been completely redesigned and is much more intuitive and less clunky than the MonoGame one.
  3. Better file management: The game’s filesystem had to be fully redone in C++, so we’re adding support for Unix uids and file attributes. Soon, programs will even be launchable from files.
  4. Multiple users: Every system has at least two Unix users - root and a non-root user. Some systems, like those in an enterprise, may have more… but already there’s a reason to further hack a system when you’ve already gotten into the non-root user. Some actions can only be done as root.
  5. Cleaned up the desktop UI: The desktop has been mostly redesigned, and is now modelled after XFCE4.
  6. New theme: Inkblot - this is the default theme.
  7. New theme: Mesh - a hacker-style theme that’s also easy on the eyes.
  8. New theme: Arnix v2 - Version 2 of the original Peacenet theme before Peacenet was called Peacenet.
  9. New wallpapers:
  • theShell - Triangles
  • Serenity Blue
  • Inkblot Wallpapers
  1. Programs and terminal commands are now united. You can launch programs from the Terminal as commands, just like in Linux. Programs can also now output logs to the Terminal they’re running inside, and with the sudo command, they can be run as root.
  2. Time of Day: The clock in Peacegate is now based on in-game time.
  3. Indicative windows: Windows will have red titlebars (depending on the theme!) if they are running as root.
  4. Better procedural generation algorithms.
  • NPC generation is now way faster.
  • Names are now generated with a markov chain based on existing training data.
  • Computers are now separated from characters in the game code, allowing more flexibility and control over who or what owns a computer.
  • Support for lootable file generation has been added.
  • The game can now generate home directories procedurally.
  • NPCs are generated using the exact same code as players and story characters.
  • We no longer use a heightmap to determine what generates. We still use a world seed and the game is still split into countries, however.
  • NPCs can now have friends and enemies.
  • Reputation values are now way simpler.
  • NPCs can now have genders, though the game can only support male and female. The gender value is really only used for name generation, since it decides what first-name training data to use. If we didn’t do this, the game could end up combining “Michael” and “Miranda” as a name which would be pretty unrealistic. Using a gender value prevents that completely.
  1. Support for NPC possession has been added. This is the core of hacking, since it’s the backend of ssh. Possessing an NPC allows you to run a program or Terminal command as a user account on that NPC’s system, rather than your own. Since bash itself is a terminal command, that means ssh hacking can totally be a thing. GUI programs work the same way too. Even the desktop does.
  2. The last-used desktop and window decorator is stored in the save file. This allows for theoretical user customization of the aforementioned UI elements.
  3. App launcher UI’s now cleaned up. Instead of looking like KDE, it now looks like XFCE4.

Fixes and enhancements

  1. Terminal uses Slate font rendering, which means that the text is less yucky when zoomed.
  2. Better scrolling has been added to the Terminal emulator.
  3. The Terminal’s cursor now indicates whether you’re focusing on the Terminal.
  4. The Terminal now interprets \r (carriage return) and \t (tab) characters in the exact same way they would be interpreted on a Windows or Linux terminal.
  5. Color and formatting codes in Terminal can now be typed out manually by the player, and the cursor will render with the current color referred to by the last color code.
  6. Thanks to UMG’s DPI handling, the game properly scales up and down based on your screen resolution and DPI.
  7. Window dragging is now handled way better. The mouse never travels too fast, there’s no jitter, etc.
  8. Terminal commands now have to tell the game when they finished by calling the “Complete” function when they’re done. This allows for slow commands (that make use of Blueprint latent functions or async methods) to still run on the game thread without blocking the UI. This also allows for program commands to wait until their window closes before returning you to bash.
  9. Better command tokenizing has been added.
  10. Console contexts are now tied to user IDs and system contexts, allowing commands to easily access info about the calling user/computer. C++ commands have full access, while Blueprint ones have basic access since it’s less easy to track down a Blueprint command that’s breaking the game.
  11. Commands can take in their arguments as a raw string array rather than as a Docopt argument map.
  12. Better support for file association has been added.
  13. App launcher items now have tool tips.
  14. NPCs can no longer generate with duplicate names - in MonoGame, there was no code to prevent NPCs from generating with the xact same IP address.
  15. The campaign world seed is no longer hardcoded, it’s now based off the user info you provide in Peacegate Setup. (If I put in name=Cassian, username=cassian and hostname=cassian-pc), I’ll get a completely different world than what you’d get if you replaced “Cassian” with “Alkaline.”
  16. Support for unlockable programs, commands, wallpapers, themes and other data has been added.

And…there’s more where that came from.


:+1: 20 Characters Strawberry Cheesecake

(Alkaline Thunder) #3

I planned for theming but ran into too much technical hoops so I gave up on it and removed it. But, I added the mission system (still working on it) as well as terminal zoom.

Pressing CTRL+= in the Terminal now zooms it in, and CTRL+- zooms out. While the game doesn’t support macOS because Apple is impossibly annoying to develop for unless you’re in their ecosystem, the game will still respond to Command+= and Command+- as the same keybind. Not sure if Command is Apple’s equivalent of CTRL, and/or why the hell it needs to be different. lol.

As for mission system… it’d be better to explain how it works when I’m done coding it. But, so far…here are some screenshots.

Mission list:

“Mission Information” screen

I’m still working on it, need to add more to it. It’s very bare when maximized.

“Mission Completed” screen

Going for a little bit of a minimalistic design with the “mission complete” screen but it still needs a lot more work. Anyway, that’s what I’ve been working on lately.

(Tobias SN) #4

Yes, Command is sorta the Mac equivalent of Ctrl in a way, but also Alt (Ctrl+V is Command+V and Alt+F4 is Command+F4). However in the terminal, Ctrl is the Control key for stuff like terminating a program (Ctrl+C is Control+C). Because of this, you can actually copy text in there without using a mouse, unlike Linux (Although some Linux terminal programs might have an alternate shortcut. For the purpose of typing, Option is Alt Gr. But when you’re using Windows or Linux, those keys are remapped (Control becomes Ctrl, Option becomes Alt, and Command becomes the Windows/Super key) for the purpose of compatibility.

(Alkaline Thunder) #5

Huh, seems like Apple was actually thinking differently in a good way when designing their keyboard layout. I don’t think UE4 actually has a flag in keyboard events that tells you if Option is pressed, though.

(Alkaline Thunder) #6

At long last, the game’s itch.io page has been updated in preparation for the alpha release. It features some screenshots of the game and describes a little bit about how to play etc. Still needs some work, and I’m not done taking screenshots for it either. As I get hacking working more I would like to work on a trailer to put on there as well.