From 75e20567aa73439cd6ce5583c91ce387ae6b8693 Mon Sep 17 00:00:00 2001 From: faint <46868845+ficcialfaint@users.noreply.github.com> Date: Thu, 28 Sep 2023 22:49:48 +0300 Subject: [PATCH 01/13] Add myself to codeowners (/ru/) --- .github/CODEOWNERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b417152fc..13dd7bab3 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -3,3 +3,5 @@ /src/en/robust-toolbox/toolshed/ @moonheart08 /src/en/robust-toolbox/toolshed.md @moonheart08 /src/en/templates/ @moonheart08 + +/src/ru/* @ficcialfaint From 76b539cf307008483b5daba171db7393e3e5a577 Mon Sep 17 00:00:00 2001 From: Vasilis Date: Fri, 29 Sep 2023 19:15:22 +0200 Subject: [PATCH 02/13] SS14.Watchdog setup: Remove partial clone sugestion (#68) --- src/en/server-hosting/setting-up-ss14-watchdog.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/en/server-hosting/setting-up-ss14-watchdog.md b/src/en/server-hosting/setting-up-ss14-watchdog.md index cce9cc001..892218ea0 100644 --- a/src/en/server-hosting/setting-up-ss14-watchdog.md +++ b/src/en/server-hosting/setting-up-ss14-watchdog.md @@ -31,8 +31,8 @@ Both of these can be found at the [.NET 6 download page](https://dotnet.microsof The following set of commands should build the Watchdog on a Linux system. You'll have to adjust it according to your actual system, of course. ``` -# Download the SS14.Watchdog repository and any submodules/etc (but not their history). -git clone --recursive --depth=1 https://github.com/space-wizards/SS14.Watchdog +# Download the SS14.Watchdog repository and any submodules/etc. +git clone --recursive https://github.com/space-wizards/SS14.Watchdog # Switch into the SS14.Watchdog directory. cd SS14.Watchdog From 3a2b95b8b1af61ad3a3fe26e296a05496c186e40 Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Fri, 29 Sep 2023 11:30:31 -0700 Subject: [PATCH 03/13] Add progress report creation doc (#69) --- src/SUMMARY.md | 1 + src/en/community/progress-report-creation.md | 30 ++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/en/community/progress-report-creation.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 9c37e3f09..f15158daf 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -167,3 +167,4 @@ Community - [Admin Command Cookbook](en/community/admin/admin-tooling/admin-command-cookbook.md) - [Wizards Den Admin Policy](en/community/admin/wizards-den-admin-policy.md) - [Wizards Den Banning Policy](en/community/admin/wizards-den-banning-policy.md) +- [Progress Report Creation](en/community/progress-report-creation.md) diff --git a/src/en/community/progress-report-creation.md b/src/en/community/progress-report-creation.md new file mode 100644 index 000000000..dc518d316 --- /dev/null +++ b/src/en/community/progress-report-creation.md @@ -0,0 +1,30 @@ +# Progress Report Creation +*A short handbook about making a progress report.* + +### Checklist +- Set an explicit start- & end-date of contributions you want to outline. +- Create a Trello board based off of the Progress Report Trello Template. +- Run the [tool](https://github.com/space-wizards/github2trello) to generate Trello cards for every Content/Engine pull request. Note that Content PRs without changelogs will be skipped. +- Organize the cards into their columns as you see fit. +- Write descriptions for every card. +- Combine the card contents into a markdown file based off of the Progress Report Markdown Template, but be sure to update the PR number. +- Ask PJB for the Patrons list. +- Add the contributors list, see below. +- Replace/remove names as stated [here](https://github.com/space-wizards/space-station-14/blob/master/Tools/contribs_shared.ps1). +- Put the markdown file into `website-content/content/post`. Images go in a new `website-content/static/images/post/pr_[number]` directory and videos go in a new `website-content/static/video/pr_[number]` directory. +- Create PNGs and MP4s for every section that needs them. +- Run [this script](https://github.com/space-wizards/website-content/blob/master/Tools/pr-image-convert.ps1) in the directory with all of the PNGs. Requires [ImageMagick](https://imagemagick.org/index.php) and [optipng](http://optipng.sourceforge.net/). +- Make a thumbnail (800x450) PNG and put it in `website-content/assets/images/thumbnails`. +- Create a pull request on the [website repo](https://github.com/space-wizards/website-content). Give everyone a chance to review it for a couple days, then merge at the same time as you release it. + +### Datasources +- List of all contributors with the following command: `git shortlog -s -n --since= --until=`. +- Commit-count: `git rev-list --count master --since= --until=`. + +### Places to Release +- Website. Automatically published when the pull request to `website-content` is merged. +- Steam (bug PJB or Smug). +- Discord. +- Patreon (bug PJB). +- Reddit (r/ss13, r/ss14, & r/linux_gaming). +- Twitter (bug PJB or Smug). From af4cfff9dffb44556dbd756be0907a09eff8595a Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Fri, 29 Sep 2023 11:32:34 -0700 Subject: [PATCH 04/13] Add 2023-09-23 maintainer meeting notes (#59) --- .../maintainer-meeting-2023-09-23.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2023-09-23.md diff --git a/src/en/maintainer-meetings/maintainer-meeting-2023-09-23.md b/src/en/maintainer-meetings/maintainer-meeting-2023-09-23.md new file mode 100644 index 000000000..591976cb8 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2023-09-23.md @@ -0,0 +1,67 @@ +# Maintainer Meeting (23 Sep 2023) + +**Time:** 23 Sep 2023 18:00 UTC + +**Attendees:** +- EmoGarbage +- ElectroSR +- Visne +- DrSmugleaf +- notafet +- Lank +- Visne +- Julian +- Jezithyr +- Chief_Engineer +- PJB (hiiiiiiiiiiiiiiiiii) +- mirrorcult +- TheQuietOne +- miku +![miku](https://media.discordapp.net/attachments/813722892948733982/1155204273777422366/miku.png) +- moony +- Slava0135 +- ShadowCommander + +## Change ToString & Parse for EntityUid or NetEntity | ElectroSR +- Commands that take either are now ambiguous, how do we differentiate between them +- **All commands should take NetEntity** +- What do we do for command output + - **NetEntities should be the one getting presented to the user most of the time** + - **e for EntityUid** + - **n for NetEntity** + - **c for client-side** + +## Remove transparent / non-occluding containers for sprites | ElectroSR +- Right now they can not occlude lights and not occlude sprites. +- **Force containers to always occlude sprites.** +- **Wish we could put containers in content instead.** + +## DERAILMENT: Containers as entities, how do we do it? +- **Entities with ContainerComponent and ContainerSlotComponent.** + +## Entity categories | ElectroSR +- **they are good** + +## Early Access Roadmap +- **nothing on this roadmap matters except early access trailer.** +- A trailer for Steam + - Also the >>>>**screenshots**<<<< for steam and the website + - holy shit we have **replays** now +- gamemodes/antags + - dynamic [c#16548](https://github.com/space-wizards/space-station-14/pull/16548) + - revolutionaries [c#18477](https://github.com/space-wizards/space-station-14/pull/18477) + - wizard +- The game runs like shit how do people play this + - "I only played VRChat since last time and VRChat runs like shit so I don't know how people play this" | 23/09/2023 + + +Crashes / Critical bugs: (when are we moving these to GitHub) +- Crashes the server reliably. +- Something that bricks your client often (needs a client restart). + - Example: Blackscreens the client until you reconnect. +- If something ruins the round and is disabled because of it. + - Example: Communal lung bug. +=> till next time +like and subscribe +smash that button +~~did you know only 6% of contribs join this meeting?~~ According to YouTube's statistics, From a8ef6bcdc00a314758c18c2312c839915fccb83c Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Fri, 29 Sep 2023 11:32:42 -0700 Subject: [PATCH 05/13] Add instructions for publishing a new RobustToolbox version (#60) --- src/SUMMARY.md | 1 + .../publishing-robusttoolbox.md | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 src/en/robust-toolbox/publishing-robusttoolbox.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index f15158daf..964107986 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -91,6 +91,7 @@ Robust Toolbox - [Build Configurations](en/robust-toolbox/build-configurations.md) - [Preprocessor Defines](en/robust-toolbox/preprocessor-defines.md) - [MIDI](en/robust-toolbox/midi.md) +- [Publishing a new version](en/robust-toolbox/publishing-robusttoolbox.md) Space Station 14 ================ diff --git a/src/en/robust-toolbox/publishing-robusttoolbox.md b/src/en/robust-toolbox/publishing-robusttoolbox.md new file mode 100644 index 000000000..137703d2d --- /dev/null +++ b/src/en/robust-toolbox/publishing-robusttoolbox.md @@ -0,0 +1,24 @@ +# Publishing RobustToolbox + +```admonish info +These instructions are a step-by-step guide for engine maintainers to follow. +``` + +1. Open a terminal in the RobustToolbox directory (`cd RobustToolbox` if you are in the space-station-14 directory) +2. Fetch latest master (`git fetch https://github.com/space-wizards/RobustToolbox.git`) +3. Checkout the remote master branch (`git checkout -B master upstream/master`, WITH capital 'B' to overwrite master) + - This step will overwrite your local `master` branch with the remote one. +4. Run version.py (`python ./Tools/version.py 0.1.0`, where 0.1.0 is the version number you want, WITHOUT 'v') + - If you use `py` instead on Windows it might not work due to the python microsoft store alias. +5. Push your commit and tag to RobustToolbox (`git push` and `git push https://github.com/space-wizards/RobustToolbox.git v0.1.0`, WITH 'v') + - Do NOT run `git push --tags` as that will push every tag you have locally, even those that have been deleted. +6. Go back into the content directory (`cd ..`) +7. Checkout a new branch (`git checkout -b update/robust-0.1.0`) +8. Commit the engine change (`git commit RobustToolbox -m "Update RobustToolbox"`) +9. Push your branch (`git push`) +10. Open a PR to the content repository and merge it. + +```admonish warning +It is always a good idea to run the game with the new engine version before publishing it and merging the PR, to check that everything still works. +You can also run tests locally with "dotnet test" as that will be faster than waiting for them to run on the GitHub workflows. +``` From 1c28cecbb8415fe895f3ebbfbe0022f0dc37f6b0 Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Fri, 29 Sep 2023 21:53:59 -0700 Subject: [PATCH 06/13] Add .idea/ to .gitignore I am allergic to using VSCode for anything --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 7585238ef..d47934e47 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ book +.idea/ From 88797b6155cd99bc035e6a8c54464446b68b6447 Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Fri, 29 Sep 2023 22:48:36 -0700 Subject: [PATCH 07/13] Add 2021 maintainer meeting notes --- .../maintainer-meeting-2021-09-19.md | 287 ++++++++++++++++++ .../maintainer-meeting-2021-10-02.md | 116 +++++++ .../maintainer-meeting-2021-10-16.md | 134 ++++++++ .../maintainer-meeting-2021-10-30.md | 206 +++++++++++++ .../maintainer-meeting-2021-11-13.md | 111 +++++++ .../maintainer-meeting-2021-11-27.md | 123 ++++++++ .../maintainer-meeting-2021-12-11.md | 232 ++++++++++++++ 7 files changed, 1209 insertions(+) create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2021-09-19.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2021-10-02.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2021-10-16.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2021-10-30.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2021-11-13.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2021-11-27.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2021-12-11.md diff --git a/src/en/maintainer-meetings/maintainer-meeting-2021-09-19.md b/src/en/maintainer-meetings/maintainer-meeting-2021-09-19.md new file mode 100644 index 000000000..92b37a125 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2021-09-19.md @@ -0,0 +1,287 @@ +# 2021-09-19 - Maintainer Meeting Notes +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +Attendees: +Paul +Smug +Silver +Vera +PJB +Shadow +Mirrorcult + +# Overall Summary + +Next Meeting Items: +- have a moderator +- buy pjb a MoMMI plushie for the meetings +- less ideaguying, more concrete topics + +Action Items: +- combat and disarm shouldn't be actions +- PJB fix UI (or anyone else) +- multi hotbar (switching with shift+num) should be optional, so it isn't used accidentally. +- add the ability to perform actions from the Action List Menu +- Resolve should assert UIDs match in debug only. +- Code wide-chat. +- add as an optional UI style. +- Code Shuttles first. Revisit this after. +- Fix Ui for lathes and research +- Investigate better research server sync mechanic +- Delete research code. Maybe from memory too +- Investigate KSP style point return +- Investigate Point Types +- Balance point receiving mechanics. +- Add Debug Only UI for errors. Make it on HUD and hard to miss on debug +- Enforce naming things OnX instead of HandleX. Use OnEntityEvent vs HandleEntityEvent etc +- Investigate how shuttles would be created. +- Shuttles should be able to fly and warp between z levels +- Investigate Shuttlebombing as a problem. +- admin tools and logging +- EU/US Biweekly playtests. +- split game admins to EU/US +- Three month limit on progress reports. +- Two month minimum for progress reports. +- Fix Slow Tests. Fix Test framework to be fast and cancer free +- Write Docs on how to write Tests +- what should have required tests: medium to large changes, systemchanges +- Write docs for ss13 dev transitioning like system xyz and you or byond to C# for byond refugees +- YAML Real time Linter. Language server +- GOTO YAML +- XAML Linter hot reloading, Previewing +- Fluent Linter +- Custom editor for yaml prototypes/constructiongraphs. +- worldline debugging +- save states +- test pooling + +# Individual Discussions + +## Action Bar +**Summary: Actions should be used for item actions & spells etc. Combat & Disarm just dont really belong there.** + +Discussed Items: +- using is a pain (especially combat & disarm action) +- combat is so specific it should just be a button +- alt click should be disarm in combat mode +- ui broken (pjs fault) +- Having to bind "scream" (for example) to the bar to use it is dumb. Specially if you're only gonna use it once or on special occasions. + +Action Items: +- combat and disarm shouldn't be actions +- PJB fix UI (or anyone else) +- multi hotbar (switching with shift+num) should be opt in so it isn't used accidentally. +- being able to perform actions from the Action List Menu + +(18:12 -- People distracted by SS14 in-game chess)(they lost btw) +(18:16 -- PJB can smell her dinner already. Oh no.) + +## Entity System Method Resolves +Summary: Everyone agreed that ES resolution works fine now. Resolve testing only in debug should assert matching UIDs between server and client. + +Discussion Items: +- Everyone seems to agree that this is the cleanest way to do it? +- resolve should assert that the entity UIDs match so components don't get mixed. (but only in debug!!) + +Action Items: +- Resolve asserting UIDs match in debug. + +## Wide-chat UI +Summary: code it as an option, leave it off by default, evaluate maybe making it default later. + +Action Items: +- Code wide-chat. +- add as an optional UI style. + +## Salvage Crew +Summary: Code Shuttles. Revisit afterwards. + +Discussion Items: +- do we really wanna focus on this right now? +- probably want shuttles & docking first + +Action Items: +- Code Shuttles first. Revisit this after. + +## Research +Summary: Code Shuttles. Revisit afterwards. + +Discussion Items: +- UI for lathes and research is bad +- the code and syncing with the server is bad +- ctrl+a backspace the code +- can I ctrl+a backspace it from my memory? +- KSP-style diminishing point returns? +- different types of points? +- avoid continuous points source or make sure they're not op + +Action Items: +- Fix Ui for lathes and research +- Investigate better research server sync mechanic +- Delete research code. Maybe from memory too +- Investigate KSP style point return +- Investigate Point Types +- Balance point receiving mechanics. + +(18:27 -- pjb announces there is a meteor swarm (AND CARP) on station)(now xenos) + +## Exception tolerance in debug +Summary: We need a debug ui that shows errors + +Discussion Items: +- a debug-only ui that shows the errors that occur (make it obvious) +- yes exception tolerance + +Action Items: +- Add Debug Only UI for errors. Make it on HUD and hard to miss on debug + +## Minor formatting naming like OnEntityEvent vs HandleEntityEvent. +Summary: Format Naming Discussion for OnX vs HandleX prefixes. Use OnX. + +Discussion Items: +- on- because it's shorter + +Action Items: +- Enforce naming things OnX instead of HandleX. Use OnEntityEvent vs HandleEntityEvent etc + +## Shuttle +Summary: Investigate Creation, Flying, Warping and Shuttlebombing. + +Discussion Items: +- how would players create a shuttle? +- cargo shuttle should be autonomous/untamperabler +- shuttles should be able to fly and "warp" (go between z levels) +- not sure how to handle remote shuttle control. Necessary for latejoin miners but abusable if shuttle not static (can get lost) +- shuttle bombing limited damage + +Action Items: +- Investigate how shuttles would be created. +- Shuttles should be able to fly and warp between z levels +- Investigate Shuttlebombing as a problem. + +## Scheduling Playtests +Summary: Playtest Scheduled for every two weeks. We will have US/EU seperated. + +Discussion Items: +- our current game admins are... slightly uncommited +- we desperately need admin tools & logs +- we're not building a community, but recruiting admin ties into this +- we should get a roadmap to see when we're ready for building a community? +- do one us & one eu time, biweekly +- split eu and us game admin + +Action Items: +- admin tools and logging +- EU/US Biweekly playtests. +- split game admins to EU/US + +## progress reports +Summary: Playtest Scheduled for every two weeks. We will have US/EU seperated. + +Discussion Items: +- PJB proposed smaller progress reports every now and then +- Having a "max amount of time between progress reports" was discussed +- Releasing a progress report before playtests was discussed +- need better way to keep track of stuff for progress reports +- robust film maker ??? + +Action Items: +- Three month limit on progress reports. +- Two month minimum for progress reports. + +(19:11 -- PJB mentioned how Unitystation gets more upvotes than us on Reddit. All hell broke loose.) + +(19:15 -- Vote is held for progress report time. using discord reactions :clap: :clap:) +result: six weeks won with 7 votes. +or not +ok +MORE wins 2months + +(19:20 -- PJB screwed up the voting reaction order, we just realized. Some people voted wrongly due to this. Laughs were had. curtains roll, exit stage left. ) + +(19:24 -- PJB: "Discord screwed up the order don't blame me") + +(19:25 -- PJB said "I'm hungry" and left. Just like that.) + +## CI/Testing +Summary: Playtest Scheduled for every two weeks. We will have US/EU seperated. + +Discussion Items: +- Speed is a concern with CI. Integration tests are very slow. + But why are they slow: because they we reuse the server + -> we need to have a possiblity to reset the server instead of making a new one + they are also not pooled/multithread. +- they are also ass to write, which means its alot of effort. + write docs on how to write tests +- make it not cancer + +Action Items: +- Fix Slow Tests. Fix Test framework to be fast and cancer free +- Write Docs on how to write Tests +- what should have required tests: medium to large changes, systemchanges + +## Reaching out to (ss13) devs +Summary: Playtest Scheduled for every two weeks. We will have US/EU seperated. + +Discussion Items: +- mirror wants to make docs specifically for ss13 devs: + here is what it looks like in byond, here is what it looks like in ss14. helping devs transitions +- passively attract devs by helping them transition, dont poach people +- more "system xyz & you" + +Action Items: +- Write docs for ss13 dev transitioning like system xyz and you or byond to C# for byond refugees + +## Tooling!!!! that doesnt suck ass +Summary: Playtest Scheduled for every two weeks. We will have US/EU seperated. + +Discussion Items: +- yaml goto, real time linter. language server +- xaml linter, (preview), hotreload, not make it ass for vs, automatically call robustxamlloader.load(this) +- ref events are ass to work with + have an analyzer/attribute? name it a specific way? +- ftl linter, markup +- editor for yaml, prototypes, constructiongraphs. in-engine? per command? +- worldline debugging (@pjb) +- save state of game to save ourselves from redoing testing enviroments all the time +- do a doc in ss14docs for this (tooling ideas) +- TEST POOLING (WIP) + + +Action Items: +- YAML Real time Linter. Language server +- GOTO YAML +- XAML Linter hot reloading, Previewing +- Fluent Linter +- Custom editor for yaml prototypes/constructiongraphs. +- worldline debugging +- save states +- test pooling + +## Roadmap +Summary: Playtest Scheduled for every two weeks. We will have US/EU seperated. + +Discussion Items: +- + +Action Items: +- Law !@#!$>. +- Admin tools and logging +- Test suite fix +- Debugging (Debug ui, exception tolerance in debug) +- Tooling suite +- medbay +- traitor + +## Conclusion +Summary: for the next meeting, maybe have a moderator and less ideaguying, more concrete topics + +Discussion Items: +- + +Action Items: +- for the next meeting, maybe have a moderator +- buy pjb a MoMMI plushie for the meetings +- less ideaguying, more concrete topics diff --git a/src/en/maintainer-meetings/maintainer-meeting-2021-10-02.md b/src/en/maintainer-meetings/maintainer-meeting-2021-10-02.md new file mode 100644 index 000000000..082600ff8 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2021-10-02.md @@ -0,0 +1,116 @@ +# 2021-10-02 Maintainer Meeting +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +Attendees: +PJB +Vera +Paul +Smüg +Silver +Shadowcommander +Mirrorcult + +First topic: when are we playing spelunky arena mode + +## Vera: Standard for missing components in new resolve standard +right now they just fail silently and return +- log errors in the resolve, make it optional to disable + +## Sloth: Refactoring collision masks to something like source +because everyone stuffs them up +- sounds good go for it + +## Vera: mobs probably need a base mob prototype +yes +pj notes current species impl is bad +3 different prototypes per species -> should be one honestly +pj notes "eausugeuguegebgeyehmeh" +SS13 does 2 too the problem is that all the data is duplicated in the mob entity prototype SS14, SS13's is fine. + +## Vera: can we stop naming things base.yml +- may the odds be ever in her favor +- base_xyz.yml format + +## Vera: future of async interactions +- do_after() etc +- actions/callbacks instead? +- events can be serialized unlike async, but using events is more painful +- T E C H D E B T -> makes issue 2&>1 /dev/null + +## Mirrorcult: wiki.js docs & bi-directional git support +- git support for wiki.js docs so non-maintainers can contribute easier +- talk about more docs in general, how do we get em? enforce it? when do we enforce it? + - enforce for large prs. make required + - +- vera still salty about ECS document being grieffed smh :pensive: at below +- silver grieffed ECS omegalul +- paul discovers autoscrolling based on where you type in hackmd + +## Sloth: PVS performance because people lifted up the carpet and saw the termites +- serialization slow +- acruid missing +- remove player specific states -> ???? -> pvs fixed +- custom path for player specific states? + - have two events, one for common state and one for player-specific states +- pjb.speech_speed=120% + +## Playtest review +- bugs, perf. etc +- the gang gets ratiod by vera +- vera is in (s)pain +- tickets + - persistent +- mom and dad are fighting + +## Literally everyone: We need logging +- how do we persist: + - positions -> entitycoordinates, but not the literal type + - entities -> euid, name, prototypeid +- db stuff needs doing and paul is too dumb +- silver will check out grafana/loki pains + +## SS14.Admin experience +- what stats to display +- have one place to view logs +- access to admin panel? + +## Progress Report +- opendream & shuttles in next pr +- look over contents +- deadline: soon:tm: + - yes pls soon I want tg walls and byondchat +- [PR link](https://github.com/space-wizards/website-content/pull/19) + +## Sloth: The big shuttle bonanza +#### How to thrust +- Should thrust be related to the position of the thruster, especially for angular velocity i.e. should it be perpendicular? + - Should thrusters be smoothed to make w i d e t h r u s t +- How should thrusters be obtainable +- What should the driving UI look like, radar like raft / baro? Controls? Access locked? +- Should it be possible to rotation-lock to make driving something like an escape pod easier +- Shuttle collisions, minimum velocity / mass / effects (I think last time we talked about it was a couple tiles destruction max) +- Speedcap? +- Which sprite set are we using (eris?) Should we support additional stuff like wings +- how should ship guns work +#### How to dock +- Do we actually want grid merging vs just attaching it via a joint. Gonna have the eventbus flooded with the grid change (parenting events) +- Somewhat related: Floyd mentioned having a salvage shuttle that tows stuff in rather than using something like a tractor beam +#### Balance questions +- How many thrusters to move an average size +- S H U T T L E BOMBING + +#### GitHub Projects, Discussions +- Discuss how bad they are. +- GitHub Discussions is where ideaguys go to die. + - Vera: YEET + - salvage, then yeet +- Why tf did Paul create https://github.com/orgs/space-wizards/projects/6hh + - i propose raising the debt ceiling. all in favor say aye + +## Meeting review +what could be done better in terms of moderating? +- make sure pjb eats dinner before meeting X3 +- play jackbox after next meeting +- play xonotic *during* meeting diff --git a/src/en/maintainer-meetings/maintainer-meeting-2021-10-16.md b/src/en/maintainer-meetings/maintainer-meeting-2021-10-16.md new file mode 100644 index 000000000..14ed17882 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2021-10-16.md @@ -0,0 +1,134 @@ +Maintainer Meeting Notes - Date: 16.10.2021 += +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +Attendees: +PJB +Paul +ShadowCommander +Vera +Zoldorf +DrSmokeleaf +RemieRichards +Mirrorcult (last 2) + +## A plan for release | Mirror +do we feature freeze, keep going as a standalone thing and let forks take over? +- will /veegee/ steal PJB back? idk +- pjb doesnt like trees +- we will continue to develop the official game + +18:07 -- My cookies are already gone. Oh no. WHATTAAMAGONNADO??? 🍪 + +## Game admins, we need em | Mirror +server population is picking up. we should probably look for more admins if we can. +- we really needs logs before we do this +- also other admin tools + - logging + - jobbans + - notes + - improve ahelps when we have logging & have them link to a private discord + - Teleport Here and Jump to Player but not ass + - click author name of a message to open a context menu, jump to them @PJB for the functionality for buttons in chat +- new admins are gonna ragequit because the lack of admintools +- all gameadmins are basically inactive, delete role + + +## Discord channel mosh pit +- we have info spread throughout #rules-info, #faq, #annoucements, #progress-reports + - team agrees its fine, but move faq to website & link to it from #rules-info +- internal channels. its mostly not even for development, more like a meta-gang of friends, so the "contributor" might be a bit misleading + - VIP: Assigned on discretion. Internal channels (secret-ss14, secret-offtopic, vidya-gamers) + - Contributor: ""Automatic"" role after 1 PR. Access to #actual-development #progress-reports #role-assign #important-info + - Move gamer role from role-assign to vidya-gamers + - Have patreons & contributors have access to patreons????????????? + - ~~maybe have a seperate discord for developing in the future~~ + + +## Rotation bug funnies | Sloth +Spawning the station rotated to better spot obvious rotation bugs +- sure +- this is terrible for map diff renderer + - you know the emoji disintegrating gif where it has the funny loading icon? that + ![](https://i.imgur.com/s3it1jC.gif) + - Deal with it + + +## Popup/Prompt standard | Shadow, Mirror +- which side confirm & cancel goes to + - confirm right + +Windows: +![](https://cdn.discordapp.com/attachments/811718327579443230/898977474027864154/unknown.png) +MacOS: +![](https://developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/Art/dialog_simple_2x.png) +Ubuntu: +![](https://i.stack.imgur.com/tj9Fm.png) +KDE: +![](https://develop.kde.org/deploy/kdialog/yesnowarning.png) +- have a simplified way to create them + - pjb hates em. "really does not like them" extreme hatred "input dialogs everywhere" + - pjb made a spooky sound... she scares me + - AaAAaaAAAaaaaaAAAAaAAA! + - mom pick me up im scared + - just saw a blue vera gradient in pjb's krita recent files, d'aw. + +- solution: have "popups" that expand out of stuff like the examine window or: + ![](https://i.imgur.com/iT2WuEo.png) + + +#### This is already in, woo +~~## Status effects framework & event handling | Vera~~ +~~- We might wanna code a general framework for status effects. Discuss what we need.~~ +~~- Certain status effects should probably be components so handling events with them isn't bad~~ + + +## Runtime? Variant? Strains? Seed prototypes :chart_with_downwards_trend: | Vera +some systems depend on getting roundstart prototypes and modifying those (by creating variants). this should be standardized to not become a massive mess +- a +- conversation has gone off-rails :focus: +- codebase ain't prepared for YAML hot-reload... +- open git issue for this system +- sacrifice vera by rewriting seeds and then get ideas +- you know the emoji disintegrating gif where it has the funny loading icon? that + + +## Ancient Hardware vs. Compute Shaders | Paul, hopefully PJB +do we keep supporting ancient hardware or do we save ourselves the trouble and get nicer libs & nice new features +- veldrid +- benefits: pjb dies less daily, compute shaders +- downsides: pjb rewrites renderer, needs to be rewritten anyways +- pjb: might be possible to keep opengl and rewrite renderer to be onpar +- ancient hardware wins again + + +## Wallmounts, how do | Mirror +*refuses to elaborate* +*leaves* + +very fast pjb transcription done by 3 people at once: +- visibility is dependent on the viewport (camera position, side of the wall) +- cant be global (e.g. cant be on the spritecomponent) +- collect list of spritecomponents & pass it to systems that want to look into it so they can switch the visibility (working on a copy of the data) + + + +## Logging stuff | Mirror +- log by each entity system, then group systems together? + - move entity system, logs are different + - OOC is not in an entity system + - manually assign groups instead (like ss13) +- how to store logs + - throw it on postgres (jsonb goes brrrr) for the time being + - if its a perf/(web) scaling problem we can change it later +- use loki to aggregate? @Silvertorch5 + - if we need perf we do it then, just postgres for now +- stay with grafana for all logs, or just server metrics? have our own prebuilt solution for logs? @Silvertorch5 + - grafana way too limited, we need our own solution for logs. keep for server metrics. +- ingame log viewer + - yes, obviously + - drag select an area when? +- API? + - check pauls branch diff --git a/src/en/maintainer-meetings/maintainer-meeting-2021-10-30.md b/src/en/maintainer-meetings/maintainer-meeting-2021-10-30.md new file mode 100644 index 000000000..10a756070 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2021-10-30.md @@ -0,0 +1,206 @@ +2021-10-30 - Maintainer Meeting Notes +=== +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 30.10.2021 16:00 UTC + +**Attendees:** +PJB +DrSmugLeaf +Vera +Silver +Paul +metalgearsloth he arrived AUSTRALIA TIMEZONE counts casual 3am 100 space bucks sloth falls asleep during meeting excuse me I was here at 9am once ok sloth why did you have to go there the first meeting was not that long ok I was busy playing rain world, PJB approved ok understandable have a nice day +mirrorcult + +## Visibility of maintainer notes | Paul +- Can contributors read? +- Can everyone read? + +Proposal: Mirror whatever visibility the meeting has. +(#maintainers channel is separate does not apply) + +## Changing the release date on Steam from Fall 2021 | Vera +- Let's be honest, we won't be ready until we have a few more things... +- We should probably change it to something like Dwarf Fortress ("time is subjective") + - when mommi flys + - when we code it + +Discussion about when to open up the playtest: When we are fine with it being reviewed? + + +## Screenshots for Steam | Paul +Do screenshots really need to be 1080p? surely we could edit them to also allow for smaller ones(?) + +No. + +## Name letter restrictions | Vera +What kinda letters do we allow +yes: +- Alphanumerical +- Accents: ä, á, à... +- Numbers +- Symbols -> restrict to machines/sillycons + no: +- Kanji +- Zalgo --> s̸̡͆̕͠i̴̧̢̺̩̦͙̜͑͛͑͑̓̿̈͛̚ͅl̴̨̘͔̥̩͎̼̞͌̎̈́͂͜͠͠v̷̘̦̬̹̖͎͌̾e̶̩̻͔̦͗̅̀͂r̵̦̟̹̤͓̼͓̣̉̄̃̽̿̑̇͗̚ +- X Æ A-12 +- Spanish Ñ spanish Ñ is under no why live if ñ is not in I die this paul please save the spanish Ñ + ![](https://i.imgur.com/OC2eJiF.png) :thistbh: stolen from pjb's stream + ![](https://cdn.discordapp.com/emojis/833946663130759190.png?size=160) + `If you mean could someone legally name their child "Bobbysystem 14", that depends. Some countries have laws about what names you can give your child. I'm not aware of any law in the United States against giving your child a number for a name.` + Vera: "im not coding that" + + +## Fluent Text type | PJB +To allow different locales on the server at the same time + +- russian and us players play on the same server + +question: make loc fully clientside/user-dependent +how cbt will this be to do? *very*: send the loc ids & parameters instead of the strings + +vera: I'm so happy I accounted for this in contructionGL2 part 2: of guides and recipes +silver: brb deleting constructionGL2 branch +vera: :waltre: + +this wont be that useful for ss13/4, but definitely for some other rt-game + +tldr: its gonna be a (vera: maybe not, pj disagrees) massive refactor, but noone is opposed to the idea. + +verdict: WYCI +also a problem atm: you use the static method alot + +## PR GitHub bot | DrSmugleaf, Mirrorcult +Automatically tags PRs with: +- Conflicts +- Needs Review +- Awaiting Changes +- Approved +- Map Changes +- Sprite Changes + +What default GitHub looks like (ass) +![](https://i.imgur.com/uC4YUGA.png) + + +## YAML Prototype Editor | DrSmugleaf +- Do we do it + - If not, is autocompletion/validation on the IDE for prototypes a good idea instead + - Merely do all of the above gaming +- In-game, out of game or both +- Is Injazz alive so they can design it +- Would it integrate other tools into it like the construction graph editor + - if not, I die + +we do it +Which ui system? ROLL OUR OWN oh god ours, cba for avalonia. +editor in-engine. +- funny in-editor run would be possible +- F A S T +- semiblocker: hotreload game assemblies. +- solution: pjb codes it! +- if we don't do this, I die tbh + +pjb: OH NO *shows three lines of code* + + +## Do we localize command error messages | Vera +Do we *really* need to localize commands? +https://pickerwheel.com/ + +- What about admin stuff? + +Just go with it. (Don't localize command names) + +## Docking airlocks | ~~Vera~~ Sloth +Should the only way to dock two grids be via special docking airlocks? + +special docking airlock with joints +*PJB3005 set atmos preset to ZAS - Hellish* +we *WILL* have atmos presets mark my words +*PJB3005 set atmos preset to Plasma* + +## Visualizer refactor | Vera +Visualizers are a pain in the ass to work with. Let's come up with a better way to do 'em. +Pain points: +- touching five files for smth +- enum keys are bad for perf +- animations are janky + +handle visualizers over the entitysystem? +visualizer-data should just be a component +- serv3 killed my flyweighting + +pjb should write down her ideas +good luck with that +do we make a discord thread for this? +simply quickly type out pjb's words turbo fast +5 pings ought to do it +ECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECSECS + +Just make visualizer data a component seriously + +this has been promoted to threadstatus +this discussion has been terrible for the barotrauma timetable +man this speedruning split was terrible + + +## Timed entity system updates / master controller stuff | Mirrorcult + +See https://github.com/space-wizards/RobustToolbox/pull/2125 + +How do we want to handle timed updates since the boilerplate for it is really bad right now--reflection, virtual methods, etc, and do we want to do something like SS13's MC so we can smooth updates out over multiple ticks intelligently + +Do we want mc: yeah, definitely +prediction is gonna be funky for this -> make it use gametime? but then we cant do mastercontroller stuff. cross that bridge when we get there. + +## Impromptu topic: PVS and NaNs | Metalgearsloth +average pjb rant: compression streams are slow in pvs we need to dfcsiuzxfhvd rteu7yi54rhjirotpter +sloth: shut it +kill da NaN + +general agreement: destroy the NaN +fix: throw entity into the nullspace shadow realm +nullspace entities work differently between client and server +allegedly server cant refer to nullspace entity on the client + +## Engine Entity Tags in MetaData | Vera +Basically, tagging entities is something vital enough that it feels it should be supported by the engine, and not something content provides. + +yes fund it gaming +Move TagComponent to engine +When you source gen the flags + +## Merging IEntitySystemManager into IEntityManager | Vera +First it was IComponentManager, now it's gonna be IEntitySystemManager. +There's no reason not to merge EntitySystemManager into EntityManager. Hell, the former is initialized and shut down by the latter. Also screw mocking, tbh. + +Powerful Vera will take care of the entire refactor +"dw about it, i will code it" + +I expect vera to be done by the end of tonight +Unless she plays baro with us :focus: +expect the PR-- wait I'm hanging out with someone later + +## Identity System | Vera +So basically, `entity.Name` bad. + +Obscure name, voice, face etc. Chameleon traitor items. +This is terrible for component states not being player specific +Remove `entity.Name` +pipe entity through a system to get a string representation +entity.name is just kinda bad and should be removed + +## Maintainer meeting topics topic | Paul +Ideally i want to have a short description of each topic to order/group them before the meeting & to have a rough estimate of the time needed for each topic. How we wrote down topics this time was kinda bad in that regard :heck: + +Proposal: Maybe have a link next to each topic pointing to a discord-message explaining it a bit? Maybe have somewhat of a guide on how these messages should look: No open questions, etc. + +## Discuss Bodysystem Replacement | Silver +rip sub 2 hour speed run +quick distract paul ok +man +gaming diff --git a/src/en/maintainer-meetings/maintainer-meeting-2021-11-13.md b/src/en/maintainer-meetings/maintainer-meeting-2021-11-13.md new file mode 100644 index 000000000..96285d059 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2021-11-13.md @@ -0,0 +1,111 @@ +# Maintainer Meeting Notes - Date: 13 Nov 2021 += +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + + +DrSmugleaf +Paul +PJB +Electro +Remie +ShadowCommander +Vera +Visne +Silver + + +# Metadata ECS Design | Vera +- Do we make a MetaDataSystem with GetName, SetName, GetDescription, etc methods, or do we make them part of EntityManager? +- MetaData stores the same things as IEntity used to, now. Lots of things will query this info, so it should be part of EntityManager. +- Put the data in MetadataComponent. +- Can't get name directly, localization. + - GetName/SetName and SetDescription/SetDescription method in the system for localization. + +# The VV meets ECS problem | DrSmugleaf, Vera +- How performant does this need to be (for BQL for example) + - Slightly performant not super optimized +- How do we properly integrate VV-Setters with ECS + - Put attributes on system methods then make the property read only + - Show system methods on the component VV window + - map with attributes, maybe synergy with friendattribute funnies here? + - Put attributes on component fields that dont need any logic when changed +- How do we (and should we) allow method calls from VV + - How does VV handle arguments for methods +- How do we make compiling or tests properly tell us if something will screw up in advance + - Roslyn analyzer +- What to do when a resolve method has multiple entity uids + - Pass all the ids manually, stop checking arguments when finding the first nullable component parameter with default value + +Make it possible to raise events with VV +In the future merge VV with a generic inspector in the engine + +# Admin Logs | DrSmugleaf +Vibechecking smugs work :yay: +- PJB are you happy: + ![](https://i.imgur.com/SfyctsB.png) + ![](https://i.imgur.com/xvBvZeW.png) + +Make a log entry have multiple types +Filter by these types (be able to do and) +Grab the variable name with caller expression syntax from the method call + +# Visualizers | Vera +Visualizers should have been components & entity systems from the start, writing visualizers is a pain in the ass my god + +Visualizer data should be a component. +Have a way to make entity systems use visualizers ideally. +Components are heavy. +- Struct components? +- Flyweighting? + +# Async/Await | mirrorcult +tldr: sometimes async stuff leads to less cbt and sometimes events lead to less cbt +- Which async stuff do we have atm? should it still be async. + - Some leftover async doafters, port them over to new event doafter + - Tool interact? +- Which event stuff do we have that should be async? + - None +- What makes a certain usecase more suited towards async/events respectively. + - Async never if it needs to be serialized. + - Await wrapper for events? + - Needs to be compact. + - Not possible with serialization, would need to instantiate the task and you can't serialize the task. + - Events when it needs to be serialized. + +You can serialize the entire server state if you can serialize everything, good for testing. +EVERYTHING NEEDS TO BE SERIALIZABLE - Paul Paulson, 2021 +We failed mirror + +# Examining Tooltip | mirrorcult +Proposals: +- Hold shift to see name, click to see description + - Hold shift for name + short description, click for long description + - Short descriptions should make it obvious that a long description is available, i.e. having a "..." symbol/button etc. - Remie +- We gotta show characters equipment and stuff + - Show it on examine +- Show armor values and stuff + - How protective armor is + - Good idea, show it +- How do we do it? it'd be a bit ugly to put all in the tooltip, so how about.. buttons in the tooltip that open up a more close examination? + - Not bad + - Popup somewhere on shift click + - In the examine tooltip and hope it just looks good + +We need a vibe check on how examining works in SS13 +![](https://cdn.discordapp.com/attachments/903694002577113118/909137595638890497/unknown.png) +![](https://cdn.discordapp.com/attachments/903694002577113118/909137935683698708/unknown-10.png) + +# Revert .NET 6 | PJB +- It wasn't a joke... +- ![](https://i.imgur.com/bMBsRbV.png) +- This is terrible for admin logging. +- If PJB fixes ef core issue with memory leaking it's fine. + +# MEETING OVER +# MEETING OVER +# MEETING OVER +# MEETING OVER + +# paul sounds like he's dying diff --git a/src/en/maintainer-meetings/maintainer-meeting-2021-11-27.md b/src/en/maintainer-meetings/maintainer-meeting-2021-11-27.md new file mode 100644 index 000000000..4c0975aa4 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2021-11-27.md @@ -0,0 +1,123 @@ +# Maintainer Meeting Notes - Date: 27 Nov 2021 += +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +Paul +Vera +Smug +Visne +Acruid +PJB +Electro +ShadowCommander +Remie +Sloth + +# Recruiting new game admins | Vera, Paul +- Application form +- Staff application forums +- no irc +- perhaps recruit some ss13 admins? + +# How do we cope with the many PRs we've been getting | Paul, Sloth +- Having a "How to make your pr more reviewable"-guide + - Don't make a bunch of miscellaneous additional changes in a PR, e.g. changing the heat resistance of a pair of gloves alongside your PR adding a new gun + - Don't make a bunch of formatting changes in a file if you change 1 line. It makes the review significantly more difficult to parse what actually changed and can generate conflicts for other PRs. + - Once a review has started on your PR do not force push to it. + - prefer multiple small PRs over one large PR +- simply have 100% test coverage it reviews itself + +From https://docs.spacestation14.io/en/maintainer-meetups/secret/2021-10-30-meetup +(Also here now! https://github.com/space-wizards/space-station-14/issues/5542) +![](https://i.imgur.com/vPY8qhP.png) + +We need a knowledgebase, so contribs can find everything important at once. + +Engine code quality needs to go up. + +We need to: +- write more docs, especially super simple 14 + - most common things people are pr'ing + - how to use containers + - go through prs to see what people are doing + - if you are reading the code, write down what you are looking for + - playerfilters + - make subfolder in docs for drafts + - drafts can just be bullet points/a skeleton/outline + +# Making Transform not required for entities | Vera +- for serialization + ![](https://i.imgur.com/BY3W0oM.png) +- free VV, no extra work IT ALREADY WORKS!!!! +- whats +- simply support serializing entity systems instead + - make systems entities + - way too powerful +- how to handle saving non-transitive data used by entity systems + +# Chat filter | Shadowcommander +implement the chatfilter, because admins are doing it rn +remember to save it in base64 or something so we dont get bopped by github +to sum it up: dont allow to send, notify admins, give them a popups +- use unicode's "confusables" information to find chars that look like eachother, and use that to bad "variants" of no-no words + + +# Roadmap | Vera +"No" - Smug +"Why" - Vera +"It would be extremely painful" - Smug +"You're a big guy" - Vera +"For you" - Smug + +- New roadmap: + - Body system + - thats it + - dont forget photography + - TBF the last roadmap had ideaguys all over it + +- make the roadmap make the last topic of each meeting + - this way we all get input + - the roadmap is at worst 2 weeks out of date + +# ComponentProtoName attribute | Sloth +![](https://i.imgur.com/kzYoNoF.png) +https://docs.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/static-abstract-interface-methods + +# Stable/bleeding edge branches | Mirror +- where is mirror, wake her up!!!!! +- we are currently very volatile compared to ss13 +- pause fukken updates to the servers somehow PLEASE + - thistbh + +# Synthetic stress test of USWest | Mirror +PaulVS + USWest Hardware + .NET 6 + Atmos/Solar optimizations + +# Should we continue running biweekly playtests | Mirror +considering we get 20-40 pop pretty much constantly +- keep doing playtests +- they are good to remind people we exist +- better player stat tracking? like retention, etc + +# Roadmap content +- emergency shuttle + - auto shuttle movement +- gamemodes/antags + - nuke ops + - lings? + - blob? + - cult? +- EL BODY SYSTEM +- Salvage +- Teleporters (Beam me up (Scotty)) + - telescience +- body system but again +- body system (get smug to code it) +- __***ENGINE EDITOR***__ +- Tutorial + - In game guides + +# Post-meeting ~~jstris~~ tetr.io! | Visne, Tomeno +- when the hwehgneh the isss suss + - ![](https://cdn.discordapp.com/emojis/818484273995841547.png?size=32) diff --git a/src/en/maintainer-meetings/maintainer-meeting-2021-12-11.md b/src/en/maintainer-meetings/maintainer-meeting-2021-12-11.md new file mode 100644 index 000000000..f6eff7507 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2021-12-11.md @@ -0,0 +1,232 @@ +# Maintainer Meeting Notes - Date: 11 Dec 2021 += +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +DrSmugleaf +Vera +PJB +Acruid +ShadowCommander +ElectroSR +Silver + + +# Do we support grid overlap | metalgearsloth +- Sloth got ganked by ideaguys again +- For planets +- Imagine the effort +- Check if Tomeno is in the meeting +- Sloth: Ignoring planets and assuming they're just coded somehow, what level of grid interactivity do we support on a """planet""". i.e. +- do we support multiple shuttles overlapping +- are cars grids, +- do we support a grid shuttle flying over a car. - what if a mob leaves the shuttle? +- How do we handle collision between the planet and cars or the likes? +- If sloth codes it +- Acruid already coded it and clusterfack removed it why live +- Shuttle flying over car? No, driving a car over the planet is fine. + - No pseudo-z level + - No 3d with layering like that. +- Do we want tile based vehicles? + - CM does an entity tank, way easier +- How do we layer multiple grids on top of each other + - Any time you want to query for a grid in a point in space you are returning an IEnumerable of grids + - Way to get foreground/background grid? + - How do we get the grid, keep them separate and not mix them up + - Keep a z-index and sort the results to distinguish the grids + - NO default grids + - Acruid: Promote grids to entities so they float in space like Godot/Unity + - Make MapManager a system, collection of grids is entities. + - Grid ids are an alias to the entity that holds the grid data. + - Replace grid ids with entity ids. + - Removing grid ids can be done now "easily" tm. + - Do it like Rimworld which keeps track of the ground underneath the floor as separate grids on the same chunk. + - Do we want to support smaller grids (like space engineers)? We can but it scales with an integer and the default is 1 > can be fixed + - If someone really wants to support grid vehicles yes but it's a lot of work and effort, entities is easier, if anything should be a long term goal. +- Collision: Normal collision between vehicle and wall, really complicated box2d does not handle it. + - Use different collision groups maybe. + + +# Pulling tile sized entities through airlocks | ShadowCommander +- How should this be made easier +- For players we made the hitbox circular, what do we do for lockers or girders? +- Do we make entities trail behind you like in RPGs? +- Make them less than tile sized. +- Current pulling mechanics or something different? + - Either make all have hexagon/octagon hitboxes or change hitbox dynamically when pulling. +- Follow pulling? + - No +- Need a custom constraint in the physics engine to keep a box behind you and aligned to get it through the door. + - Do it like Zelda a Link to the Past (https://www.youtube.com/watch?v=A6r-625k-Bo) +- How to implement it: https://oraqia.wordpress.com/2014/07/05/tricks-for-2d-grid-based-character-collision-that-can-work-in-3d-too/ + + +# IEntity removal and feature/code freeze | Vera +- [GitHub Link](https://github.com/space-wizards/space-station-14/issues/5733) +- FIX THE CODEBASE +- When do we stop the current feature/code freeze + - What is exempt from this freeze: YAML, bugfixes, admin tools? +- What do we do with the stable branch after the freeze is over +- Pretty stable right now +- Feature Freeze: + - Keep feature freeze going + - Keep nullable entity uid, compile time checks + - Vera: Replace invalid entity uid checks with nullable null checks instead (if it makes sense) for the most part. + - Nullable entity uid does not hurt performance. + - Use nullable entity uid instead of invalid, invalid is if someone weird gets deserialized. +- Engine changes are fine as long as the public API does not change + + +# ViewVariables refactor (Impromptu) | Acruid +- Do a custom class for the editor, a view like Unity (custom editor for a component). +- https://www.youtube.com/watch?v=RInUu1_8aGw +- MVP/MVVM pattern, build a presenter that pulls the data from the component and the system (lives in the system as a function or separate class). +- Use reflection to autogenerate those classes at runtime. +- Generates the UI components inside the class (if feasible). + - Worse for performance. +- Component has data, system has functions, bind these together. + - How do you bind the getter/setter for the UI fields (current VV does this (poorly)). + - Example: get/set stack size, let VV know these are two separate functions with attributes or hardcode it into the view class. + - The view class can also be a function, register them through reflection by having the entity system implement a generic interface for a component. + - This interface specifies the functions required to view/set properties of components in methods. + + +# EntitySystem proxy methods vibe check | Vera +- [GitHub Link](https://github.com/space-wizards/RobustToolbox/blob/master/Robust.Shared/GameObjects/EntitySystem.Proxy.cs) +- Hide the aggressive inlining from PJB + - Do not use aggressive optimization, that means it runs faster first few runs, JIT does this anyway after a few runs. + - It can slow down your code long term. + - Compiler details etc. + - Use it in long-running methods that only get ran a few times. + - It makes it skip some optimizations it otherwise would make if you are not careful. + - The aggressive inlining is fine (but probably not necessary). Aggressive optimization though... +> The AggressiveOptimization option is meant for very specific cases and should only ever be used when sure that the method being annotated actually benefits from that (possibly running some benchmarks to confirm that). Despite what the name might suggest, this option will not "make your code faster", on the contrary it might very well make it slower in many situations. AggressiveOptimization means that the method will skip the tiered compilation and go directly to tier1. This can be beneficial for methods that are hot paths or long running, but only executed once, so that the tiered JIT wouldn't have time to kick in (for instance, for a complex app initialization method that is run at startup). But skipping the tier0 -> tier1 transition also means that a number of additional optimizations cannot be done by the JIT (eg. removing checks for the static constructor, or inlining static readonly fields). Because of this, in many cases applying this option might actually make your code slower. And regardless, the JIT will often skip tier0 anyway in many cases already (eg. in methods with a backwards branch), so it might very well be unnecessary anyway. Long story short: if you're not 100% sure, just don't use this option in your code. +- It surely has 100% test coverage +- Does it make sense for their names to be different than the ones on EntityManager + - Rename EntityManager functions??!! + + +# Engine design SOLID and OOP (Impromptu) | Acruid, Vera +- Keep the APIs simple as possible, the names should be the same +- SOLID principles +- but what about WARMED (Write/Argue/Rewrite/uhh I forgor the rest) this +- Acruid: 2 classes depending on each other bad +- PJB: but consider: + - Main loop needs to be able to shutdown + - Main loop depends on everything + - Multiple things (server shutdown command) need to be able to shutdown the main loop down + - Not allowed under this model +- Acruid: Use an event to decouple them + - Inject game manager to command, command calls shutdown on it. +- PJB: You only avoid the loop in abstract OOP terms, you still have a circular dependency linked by an intermediary class with a shutdown method and a shutdown event where the loop listens to the event and everything else calls the method. +- Constructor vs field reflection dependency injection. + - Acruid: Constructor is only bad in a minimal amount of cases, it makes more sense conceptually so you don't need an Initialize method. Field reflection makes understanding the order in which dependencies need to be instantiated more difficult, for example in tests. It is already done for EntityManager. + - PJB: It's unnecessary and constructor injection does not fix this, it's a general problem for testing. + + +# Documentation | Paul +- How do we organize it? + - Content docs: Brought back by pressure from Moony, fandom wiki is worse than setting it up ourselves. Mediawiki moony has access. + - Game guides + - Tutorials + - SS13 books open up an HTML window for in-game wiki: We aren't doing this. + - How do we do it? IDK lol moony figures it out + - EFR is working on book markup, pull wiki pages into the game, write it in markdown. + - LIGHT THEME OR DARK THEME: moony sorts thi out + - Content-dev docs + - Device networks + - YAML + - How to interact with entities, components, systems and ioc managersç + - Mapping docs + - Engine-dev docs + - Technical writeups to understand what's going on and the design behind it + - Do not split content and engine docs, distinguish them properly on the wiki, we don't need 2 separate wiki (wiki.js doesn't make this easy, easier than hackmd) +- Paul found something better than wiki.js for docs + - We don't know the name it's lost with time ask Paul. + - We can use outline to replace hackmd, free to self-host, not open-source +- Autogenerated content + - WikiJS seems to not support templates/macros + - Dump chemical reactions into the wiki for example, Paul could not figure it out + - We simply use mediawiki, use a script to parse the data and output the markdown (not possible in wiki.js) (may be possible in mediawiki) + - Once again ask Paul + - Moony: "autogen is possible on mediawiki p nicely" + - JSON upload +- GitHub integration to PR to the wiki when? + - Content wiki: Don't need it + - Wiki.js docs: Supported, do it + - Not compatible with secret docs, port that out and then do it + + +# Meme idea: UE4-like naming standard | PJB +- https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/DevelopmentSetup/CodingStandard/ +- https://www.tomlooman.com/unreal-engine-naming-convention-guide/ +- Instead of FooComponent, FooC +- Instead of FooSystem, FooS +- DO IT +- MY KEYBOARD??? +- LITERALLY DO IT NO BALL +- vera ain't writing the conventions for this, you people do it just type !conventions on discord and write there very easy very simple +- How far do we take it? + - FooS, FooC + - M for manager? MEntity +- Do it in content +- Maybe do(n't do) it in engine +- what about FooS and FooC +- Do suffixes instead so its sorted alphabetically +- One system can handle multiple components +- 1:1 component:system is ass + - vera was right about atmospheresystem handling every pipe device + +![](https://i.imgur.com/4Y2QbhU.gif) + + +# GitHub issues, feature requests (Mini Impromptu) | Acruid +- They are fine, keep them there unless we agree the feature is dumb then close it. +- Make them a discussion as features are not actionable, issues need to be actionable. +- This is a problem in the engine too. +- Make a bug template for engine issues. + + +# Admin Log Persisting (Impromptu) | Silver +- We haven't needed to look at old ones so far. +- With bans from years ago we need to look back. +- Keep them. +- At minimum keep every round of logs where someone was banned. + - Or properly document the (perma)ban. +- Make a schema for logs. + + +# Roadmap +[Previous Roadmap](https://docs.spacestation14.io/en/maintainer-meetups/secret/2021-11-27-meetup) +- emergency shuttle + - auto shuttle movement +- gamemodes/antags + - dynamic + - nuke ops + - the nuke is done, nuke ops isn't yet + - does not work outside dynamic + - lings? + - blob? + - vera loves blob + - cult? + - make it as good as vg for pjb +- EL BODY SYSTEM + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 +- Salvage + - prototype done by 20kdc and it is good +- Teleporters (Beam me up (Scotty)) + - telescience +- Singularity needs to ACTUALLY WORK +- body system but again +- body system (get smug to code it) +- __***ENGINE EDITOR***__ +- Tutorial + - we implement a wiki, peptide wrote some stuff in-game + - In game guides + - Waiting on pretty labels + + +# Project Zomboid +after I eat From 1804a94a67138c383affb0143083879ec7308d94 Mon Sep 17 00:00:00 2001 From: faint <46868845+ficcialfaint@users.noreply.github.com> Date: Sat, 30 Sep 2023 08:54:55 +0300 Subject: [PATCH 08/13] Fix wrong Rider attach image --- .../setup/setting-up-a-development-environment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/en/general-development/setup/setting-up-a-development-environment.md b/src/en/general-development/setup/setting-up-a-development-environment.md index 1cbd11b36..b618c8bb4 100644 --- a/src/en/general-development/setup/setting-up-a-development-environment.md +++ b/src/en/general-development/setup/setting-up-a-development-environment.md @@ -104,7 +104,7 @@ In Rider you can create a "compound configuration" to run or debug both client a ## JetBrains Rider In Rider you can attach the resources directory to the solution so that you can more easily navigate to resource files like prototypes. -![](../../assets/images/setup-rider-configurations.png) +![](../../assets/images/setup-rider-attach-existing-folder.png) # Troubleshooting From af73a9267f31c7610aa5f9cada14bc596deafb79 Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Fri, 29 Sep 2023 23:55:08 -0700 Subject: [PATCH 09/13] Add 2022 maintainer meeting notes --- .../maintainer-meeting-2022-01-08.md | 194 +++++++++ .../maintainer-meeting-2022-01-22.md | 205 ++++++++++ .../maintainer-meeting-2022-02-05.md | 170 ++++++++ .../maintainer-meeting-2022-03-05.md | 108 +++++ .../maintainer-meeting-2022-03-19.md | 201 +++++++++ .../maintainer-meeting-2022-04-02.md | 206 ++++++++++ .../maintainer-meeting-2022-04-16.md | 122 ++++++ .../maintainer-meeting-2022-04-30.md | 384 ++++++++++++++++++ .../maintainer-meeting-2022-05-14.md | 176 ++++++++ .../maintainer-meeting-2022-05-28.md | 274 +++++++++++++ .../maintainer-meeting-2022-06-11.md | 249 ++++++++++++ .../maintainer-meeting-2022-06-25.md | 189 +++++++++ .../maintainer-meeting-2022-07-16.md | 142 +++++++ .../maintainer-meeting-2022-07-30.md | 110 +++++ 14 files changed, 2730 insertions(+) create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-01-08.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-01-22.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-02-05.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-03-05.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-03-19.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-04-02.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-04-16.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-04-30.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-05-14.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-05-28.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-06-11.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-06-25.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-07-16.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2022-07-30.md diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-01-08.md b/src/en/maintainer-meetings/maintainer-meeting-2022-01-08.md new file mode 100644 index 000000000..86017ccf5 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-01-08.md @@ -0,0 +1,194 @@ +# Maintainer Meeting (8 Jan 2022) +=== +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 8 Jan 2022 16:00 UTC + +**Attendees:** +DrSmugleaf +Vera +metalgearsloth +Paul +ElectroSR +PJB +Visne +ShadowCommander + +# Automatic component names | wrexbe, metalgearsloth +- [Current PR link](https://github.com/space-wizards/RobustToolbox/pull/2389) +- Previous PR got some objections which got addressed. +- RenderingTreeComponent gets RenderingTree as name automatically + +ok epin merge + +# Reduce movement speed | metalgearsloth +- Current movement speed: + - Walk = 4 + - Sprint = 7 +- Reduce it to 5 for sprint? +- Change it in code 5 sounds good + +# Comment and changelog typing conventions | ShadowCommander, metalgearsloth +- Capitalization +- Punctuation +- They are very inconsistent at the moment +- Code comment consistency does not matter +- Changelog consistency matters + +# Improving CODEOWNERS | Vera +- Maintainers should actually codeown stuff they're in charge of. +- Make it so nobody gets notified for absolutely everything (like me and PJB currently-) +- Doing this should help with reviews! +- Maybe don't merge PRs if the codeowners haven't approved it? +- Current CODEOWNERS: + - All: PJB, Vera + - Localization files: Remie +- Change it to: + - Atmos: Vera + - Body system: Mirror and Smug + - Clyde/ClydeAudio: PJB + - Construction: Vera + - Database: PJB and Smug + - Integration tests: Smug + - How about just everything except physics in engine: PJB + - thistbhn't, I'd rather not have anyone receive notifs for everything :blobsweat: + - Map renderer: Smug + - Networking/prediction (not pvs): PJB/Acruid? + - Pow3r: PJB + - PVS: Paul + - Resources: PJB + - Physics: Sloth + - Serialization: Paul and Smug + - UI: PJB + - YAML Linter: Paul and Smug + +# Audio attribution | Paul +- Do we enforce it +- Paul says we figured out how to do out but I can't find where + - audiofile.ogg -> audiofile.ogg.yml +- Which metadata should audiofiles have? + - license identifier like rsis, copyrightstring + +# Event naming | Paul +- Unified way to name them +- TWO EVENTS +- Equip attempt event has two viewpoints: + - Equipee (GotEquipped?) + - Equipment (IsBeingEquipped?) + - talk in text chat to decide the funny + - just @ Remie simple + +# Port, protocol and IANA | PJB +- IANA is the list of "which applications use which ports" +- Port 5514 is free. +- Current status: `ss14://` is HTTP port 1212/tcp, `ss14s://` is HTTPS port 443/tcp + - Problem: leaving out URI scheme can make address fail to work + - Most people used to playing on game servers are probably *not* used to URI schemes in their server address. + - Problem: 443 is HTTPS port. This means `ss14s://` servers need to put their stuff behind a subpath or subdomain, which is ugly. Or use a port I guess. +- Do we want an IANA port assignment? + - Yes + - Port: 5514 +- Only HTTP for connections +- Drop the code for connecting over HTTPs + - It makes the code simpler (Launcher, watchdog, hub) + - Figure out a fallback path for the other servers + +# Reverting policy for untested/unreviewed buggy PRs | ShadowCommander +- Should we revert them? + - We did so for rich text +- Revert if server is broken and we can't fix it in one line code change (quickly) +- Objective: For a round to be playable, we can do it case by case. +- If we revert we can reopen the original pr + +# YAML bloat prevention rules | Vera +- What to do about the many useless prototypes? + - Do we clean them? +- Only allow YAML additions that would be immediately useful to mappers, admins or straight up obtainable in-game + - New salvage wreck, new playable station, new chemical that can be mixed and has effects, new food item that can be cooked in-game or is obtainable in some other way, new fun badmin toy... +- Do we want to be a bit more strict with new machines having, for example, construct/deconstruct steps? +- every yaml addition should be either: + - for admins + - for mappers + - obtainable + - with cooking recipe & construction steps +- be more strict in general + +# Full server snapshot/reload | PJB +- The workflow: + - Press a button + - Restart server + - Enter server + - Same state +- What's the current status + - not good +- What can we do (conventions, best practices) to make this more doable + - event serialization + - new save format & logic: gamestatesave + - saves all maps + - entitysystem should get a way to read/write into that +- sidenote: this would be very beneficial for my persistence server fork plans + +# Species | Paul +- This is going to take 30 minutes to talk through +- Do we allow them at roundstart? + - Current stance: + - Q. Will the main SS14 servers have round-start playable races other than humans? + - A. No, but the functionality will be there for other servers. (Click spoiler to see the long answer to this question). + - Thoughts (from PJB) are that it would be too much effort to make them interesting enough. + - See [the FAQ for the full explanation](https://forum.spacestation14.io/index.php?/topic/48-information-faq/) + - Is PJB a furry? + - >looks at own avatar on discord + - ![](https://cdn.discordapp.com/emojis/913187937854832720.webp?size=96&quality=lossless) + - ![](https://c.tenor.com/hZSHM9mDoL4AAAAC/drake-morphin.gif) +- We support species. +- We support species at roundstart (when moony PRs it) +- Review species case by case, same as everything else. + +# Roadmap +[Previous Roadmap](https://docs.spacestation14.io/en/maintainer-meetups/secret/2021-12-11-meetup) +AKA What do we want to move from playtest to early access + +- emergency shuttle + - auto shuttle movement +- gamemodes/antags + - dynamic + - mirror pls write the doc for it I will code it I swear on my life + - nuke ops + - the nuke is done, nuke ops isn't yet + - does not work outside dynamic + - lings? + - blob? + - vera loves blob + - cult? + - make it as good as vg for pjb +- EL BODY SYSTEM + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 +- Salvage + - it is done + - upstream moony asteroid/wreck generator for procgen salvage + - https://www.youtube.com/watch?v=H0LPWuTt2o4 +- Teleporters (Beam me up (Scotty)) + - telescience + - its complicated we need to talk about it +- Singularity needs to ACTUALLY WORK +- body system but again +- body system (get smug to code it) + - Species???? +- __***ENGINE EDITOR***__ + - could benefit from full state reload +- Tutorial + - In game guides + - Yes + - Or at least a link to the wiki ingame + - Link it RN JESUS + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + +# Bloons TD 6 | Vera, DrSmugleaf +- Bloons TD 6 gaming + - this diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-01-22.md b/src/en/maintainer-meetings/maintainer-meeting-2022-01-22.md new file mode 100644 index 000000000..43c6b8f40 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-01-22.md @@ -0,0 +1,205 @@ +# Maintainer Meeting (22 Jan 2022) += +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +DrSmugleaf +Vera +Visne +ShadowCommander +PJB +ElectroSR +metalgearsloth +moony +Remie +mirrorcult + +# Do we promote bigger over smaller maps | metalgearsloth +- We have a bunch of tiny maps but no large ones +- Small maps get played regularly +- Should we save mapvote stats? + - **Yes, also track votes against to not skew results.** +- **Don't promote bigger maps, just merge them on a case-by-case quality basis.** + + +# Moving BUI to content | metalgearsloth +- Is this something that would be reused by other games + - **No** +- **Move it** + + +# Proxy methods for is entity terminating / deleted / queued for deletion | metalgearsloth +- **Yes** +- Proxy methods in EntityManager and EntitySystem. + - Maybe have an interface to standardise these? + + +# Standardising EntityManager generic and non-generic methods | metalgearsloth +- Some use the array indexing and some don't so assume there's more of a speed difference now +- **Standardise them (on generics)** + + +# Discord role for musicians | metalgearsloth +- We have a pingable role for spriter already +- **Add the role** + + +# Not raising transform events during initialization | metalgearsloth +- Raising them leads to lifestage checks everywhere +- Ties into DetachParentToNull which would be nice to remove. +- **Sloth looks at it** +- Make events for transform initialize/shutdown? + - Current one can only be subscribed to once. + + +# Ergonomics of async code vs do_after events | metalgearsloth, mirrorcult +- Solution: [single event do-afters](https://github.com/space-wizards/space-station-14/issues/6132) + - Replace the two do after events with one DoAfterEndedEvent with the status on it, and a wrapper for custom data + - Also could put cancel tokens into the do_after system +- Events are more painful than async code to write + - So painful I would rather code in Unity +- It's a necessary evil for full map serialization +- If we don't use it, do we keep async in for forks? + - **No** +- Async do_after made interaction worse internally | metalgearsloth + - If you want to make your tool do after you have to make it all async +- We could serialize member methods with much difficulty, pass in the method to run into the do_after like verbs | Paul + - Needs to be a member method, not a lambda or anonymous +- **Async might be serializable, when PJB codes it** +- **Use single event do after meanwhile** + + +# Removing component start/shutdown events | PJB +- Instead have the few components that actually respect startup/shutdown implement it themselves. +- **Remove and replace it** +- We don't know how much legacy code require the OnAdd/Initialize/Startup functions. + - This won't be trivial. + - Probably nothing uses the Running property, which we can remove. + - The point is to **Remove Running** + + +# Protocol-require UDP and TCP port to be the same | PJB +- Extension from the port assignment topic +- What did PJB mean by this +- It is very complex otherwise +- Querying the server list would be easier +- **Require both ports be the same** + + +# Do we accept translation contributions | Paul +- Can the admins deal with non-english speaking people? + - Servers would still be English only, server hosts could change the locale with us as the upstream being the pool of translations for everyone. + - Paul how do we handle different servers having different content to be translated + - **We will only accept common content between the two repositories** + - Linter when +- Not purely game-translation, also launcher, website, etc. + - Launcher: **Yes** + - Website: **Yes** + - Game: If you can run a client with a different locale to the server **yes** + - **This requires the giant FText refactor** +- There are tools for this ([Discord link](https://discord.com/channels/310555209753690112/675078881425752124/931645419598000238)) +- [Weblate](https://github.com/WeblateOrg/weblate/) + + +# Wallmounts on the floor in front of the wall vs on/in the wall | ShadowCommander +- Interactability is easier if they're in front | PJB +- **They will go on the wall because otherwise you can't place wallmounts facing to space** +- Wall lights are complicated + - **Simply offset the point light** +- PJB implements occlusion and we win + + +# Text input popup design | ShadowCommander +- Should it be a BaseWindow/Eui or pop out of the control like the confirmation pop out for verbs like delete? +- Example: the set-transfer-amount verb should use it. Currently it creates a little popup +- **Multiline text: window** +- **Verbs (Rename, Transfers): input box, with sizes** +- **Commands: box if possible, window if too big** + + +# Why are integration tests slow | mirrorcult +- Because someone broke the ShouldPool method by changing the amount of default cvars on tests or smth + - Be my guest if you want to find a better way to do it + - Also tests are now broken if you enable pooling again + - I'm not fixing it | DrSmugleaf +- Next :clap: topic :clap: +- also 40% of tests is just reloading prototypes (last I profiledTM) + + +# Archive Python rsi.py and rsi-editor | mirrorcult +- **Decision: keep rsi.py because python scripts are convenient, archive rsi-editor** + Old repositories in Python: +- [RSI.py](https://github.com/space-wizards/RSI.py) +- [RSI-editor](https://github.com/space-wizards/RSI-editor) + +New repositories in C#: +- [RSIEdit](https://github.com/space-wizards/RSIEdit) +- [RSI.NET](https://github.com/space-wizards/RSI.NET) + + +# Mapping and adding escape pods | mirrorcult +- We now have multi-grid saving/loading and docking serialization +- **Decision: code it, map it** +- Mapping docking is really annoying right now +- **Add a console command/mapping utility to make this easier, while the map is paused** + + +# Upstreaming ship vs ship combat as a gamemode | moony, mirrorcult +- When mirrorcult upstreams it +- **Sounds good to everyone** + + +# Early Access Roadmap +[Previous Roadmap](https://docs.spacestation14.io/en/maintainer-meetups/secret/2022-01-08-meetup) + +- emergency shuttle + - auto shuttle movement +- gamemodes/antags + - dynamic + - mirror pls write the doc for it I will code it I swear on my life + - nuke ops + - the nuke is done, nuke ops isn't yet + - does not work outside dynamic + - lings? + - blob? + - vera loves blob + - Remie already coding it, but got lazy + - cult? + - make it as good as vg for pjb + - revs +- EL BODY SYSTEM + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 +- Salvage + - it is done + - upstream moony asteroid/wreck generator for procgen salvage!!!!!!!!! + - https://www.youtube.com/watch?v=H0LPWuTt2o4 +- Singularity + - radiation needs to work +- body system but again +- body system (get smug to code it) + - Species + - we need to do non human body parts +- __***ENGINE EDITOR***__ + - could benefit from full state reload +- Client side movement? + - a smidgen +- Tutorial + - In game guides + - Yes + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + - :death: + +Bugs: +- copy the Subnautica bug reporter for players to report bugs +- automatically log grafana exceptions +- being able to see inside containers + - Need to change PVS to not send all container contents + - Isn't this a separate issue anyway + - Seems like PVS queue bugs? + - Imagine if players could give steps to replicate, insanium +- hud disappearing diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-02-05.md b/src/en/maintainer-meetings/maintainer-meeting-2022-02-05.md new file mode 100644 index 000000000..bc86f0ecf --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-02-05.md @@ -0,0 +1,170 @@ +# Maintainer Meeting (5 Feb 2022) +=== +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 5 Feb 2022 16:00 UTC + +**Attendees:** +DrSmugleaf +Vera +PJB +Paul +ElectroSR +ShadowCommander +moony +Silver + +## Improving the usability of animations in code | metalgearsloth +- For example, an easy way to play a state then go to another. +- Animations big suck + - Hard to play, keep track of and synchronize (need sync with animation timing) +- In most game engines (Godot/Unreal) you have a state machine with the animations, based on some state +- **Should be part of visualizers** +- Not having a GUI to define them kinda sucks. + + +## Guide for reporting bugs | metalgearsloth +- Subnautica button + - S 👏 u 👏 b 👏 n 👏 a 👏 u 👏 t 👏 i 👏 c 👏 a 👏 👏 b 👏 u 👏 t 👏 t 👏 o 👏 n + - [GDC talk](https://www.youtube.com/watch?v=Urx7WQE6NY0) +- **Have a /vg/-like button** to create issues on GitHub on a separate repo, so the main one is not spammed + - **In-game window** + - Make sure it has **feedback** so we dont get duplicate bug reports + - What do we grab: + - Round information + - Commit the server is at + - How do we fix it not leaking current-round information? + - Only send at end of round. + - **Cache the reports into local SQLite DB (game server) while the round is going on** in case the server crashes, then send them **through the server**, not the watchdog. + + +## Replacing prototype inheritance with composition | Paul +- **Fund it** +- Conflicts (multiple inheritance/diamond problem) + - based on imported order, like python +- Prototype load ordering + - Push composition on the mapping level, not on the created objects + - Gets rid of deserialization results + - Makes it possible to do it in order + - load all mappings at once, then serialize them in one method call + + +## Start using Bors for PR rollup | moony +[Discord message](https://discord.com/channels/310555209753690112/900426319433728030/934889142431653888) +[GitHub link](https://github.com/bors-ng/bors-ng) +Helps avoid this: +![](https://cdn.discordapp.com/attachments/900426319433728030/934889141789921401/unknown.png) +- Usage: you write bors r+ +- Gives more overhead to merging PRs +- We can use it when we are merging a lot of PRs at once, not for every PR +- [Bors can't squash merge](https://github.com/bors-ng/bors-ng/issues/1217) +- **No Bors**, try to find another alternative +- **We should not publish releases to servers if CI fails** + + +## Implementing a load balancer | moony +[Discord message](https://discord.com/channels/310555209753690112/900426319433728030/934951024500826142) +- Opt-in vs opt-out + - If its automatic instead of a prompt sloth dies + - **Opt-in** +- Doing it with batches of players (so it doesn't balance 1 at a time) + - **Yes** + - Have a threshold of players that need to have clicked yes for the autobalance to actually happen. + - Check the other server's pop, if it's over an amount transfer anyway. + - Needs inter-server communication. +- What about ping? + - **Show the ping to the person**, maybe a ping comparison between the current server and the other one? +- Popup midround? + - **If we do it, don't do it for alive players, only ghosts** +- Endround popup? + - **Yes** +- Need to have it be per group of servers +- **Control players counts with player caps**, tell players they can move +- **Prompt on the server full deny screen to connect to another server, indicate this with the launcher** +- **Have a queue** that shows you can join to other servers +- Servers having different versions? Paul issue + - They will usually be the same version + delta updates + ratio + + +## Policy on pushing to master vs PRs | moony +- PRs are better for downstreams specially when conflicts arise. Working directly with PRs is easier (bots that mirror upstream PRs). + - What is easier? Who knows? Where's moony? +- **Simple bug fixes can be committed to master** +- PJB vs Paul 2 hour discussion on whether to PR or not + + +## Put changes we are committed to in the roadmap | metalgearsloth +[Discord message](https://discord.com/channels/310555209753690112/900426319433728030/935176505993089085) +- For example the melee refactor + + +## Early Access Roadmap +[Previous Roadmap](https://docs.spacestation14.io/en/maintainer-meetups/secret/2022-01-22-meetup) + +- emergency shuttle + - auto shuttle movement +- gamemodes/antags + - dynamic | mirror + - nuke ops + - the nuke is done, nuke ops isn't yet + - does not work outside dynamic + - lings? + - blob | Remie + - cult? + - make it as good as vg for pjb + - revs +- EL BODY SYSTEM | mirror + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 +- Salvage proc gen | moony + - [Cargo Commander](https://www.youtube.com/watch?v=H0LPWuTt2o4) +- Radiation refactor + - Singularity rebalance +- body system but again +- body system (get smug to code it) + - Species + - we need to do non human body parts +- __***ENGINE EDITOR***__ + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen +- Tutorial + - In game guides + - Yes + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + - :death: +- oldchat + ui refactor +- explosion refactor | electrosr +- combat refactor +- pulling refactor +- role bans | ShadowCommander +- admin notes | drsmugleaf +- Admin traitor/role menu + - Assign people roles +- Job playtime requirements + - Playtime tracking + - Per role playtime tracking +- experimental science +- action ui refactor, [like ss13 maybe](https://i.ytimg.com/vi/iFf_T31C-iU/maxresdefault.jpg) +- change pvs to p/invoke zstd + +Bugs: (when are we moving these to GitHub) +- turn this section into crashes / critical bugs later +- automatically log exceptions shown on grafana +- being able to see inside containers + - Need to change PVS to not send all container contents + - Isn't this a separate issue anyway + - Seems like PVS queue bugs? + - Imagine if players could give steps to replicate, insanium +- hud disappearing + - cant reproduce yet, status icons keep disappearing + - might be food or thrist related + - Gets fixed when status gets and update (Like buckling or unbuckling) +- Singularity pops in. Needs a PVS override. +- when the station moves or rotates (rotation is reliable) everyone is unbuckled diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-03-05.md b/src/en/maintainer-meetings/maintainer-meeting-2022-03-05.md new file mode 100644 index 000000000..a41dd63fe --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-03-05.md @@ -0,0 +1,108 @@ +# Maintainer Meeting (5 March 2022) +=== +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 5 March 2022 16:00 UTC + +**Attendees:** +Paul +PJB +ShadowCommander +ElectroSr +moony +Silver + +## should we stop storing entity uids inside entity systems to denote entities to update in favor of special components for this? | Vera +for example: basically instead of this field on a system +```csharp +HashSet ActiveWelders +``` +You'd just assign the `ActiveWelderComponent` and use an EntityQuery +- ye this is probably a good idea, but we'd have to take effort to make it efficiently. +- make binary components efficient + +## Deprecate EntitySystem.Get | Vera +it's a shitty static method that does an IoCManager resolve and its misused everywhere +- sgtm + +## benchmark metrics | paul +already decided on, just announcing: action piping data into db, grafana reading db +- YES +- gh actions will produce inconsistent results +- where to run benchmarks + +## docfx | paul +bugging pj or vera to set it up +- silver will do it + +## Soundsystem API revamp | Mirror +the current api leads to easy errors which cause sounds to be played globally, not uid-specific +example: https://github.com/space-wizards/space-station-14/pull/6982/files +- remove overloads + +## Rename Server Role Ban to Role Ban | ShadowCommander +sgtm + +## Early Access Roadmap +[Previous Roadmap](https://docs.spacestation14.io/en/maintainer-meetups/secret/2022-01-22-meetup) + +- emergency shuttle + - auto shuttle movement +- gamemodes/antags + - dynamic | mirror + - nuke ops + - the nuke is done, nuke ops isn't yet + - does not work outside dynamic + - lings? + - blob | Remie + - cult? + - make it as good as vg for pjb + - revs +- EL BODY SYSTEM | mirror + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 +- Salvage proc gen | moony + - [Cargo Commander](https://www.youtube.com/watch?v=H0LPWuTt2o4) +- Radiation refactor + - Singularity rebalance +- body system but again +- body system (get smug to code it) + - Species + - we need to do non human body parts +- __***ENGINE EDITOR***__ + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen +- Tutorial + - In game guides + - Yes + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + - :death: +- oldchat + ui refactor +- explosion refactor | electrosr +- combat refactor +- ghostrole bans +- pulling refactor +- admin notes | drsmugleaf +- Admin traitor/role menu + - Assign people roles +- Job playtime requirements + - Playtime tracking + - Per role playtime tracking +- experimental science +- action ui refactor, [like ss13 maybe](https://i.ytimg.com/vi/iFf_T31C-iU/maxresdefault.jpg) +- change pvs to p/invoke zstd +- Prototype composition | Paul +- Map poll at round end +- Round Statistics + - Log votes, which maps are played the most… + +Crashes / Critical bugs: (when are we moving these to GitHub) +- grid disappears on reconnect + => till next time diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-03-19.md b/src/en/maintainer-meetings/maintainer-meeting-2022-03-19.md new file mode 100644 index 000000000..14eebab54 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-03-19.md @@ -0,0 +1,201 @@ +# Maintainer Meeting (19 March 2022) +=== +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 19 March 2022 16:00 UTC + +**Attendees:** +DrSmugleaf +ShadowCommander +ElectroJR +Remie +Moony +Silver +Mirrorcult + +## Weekly bug-sheriff to triage issues that come up | Paul +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/952880631514288148) +- Maybe also include triaging PRs that should/could be included in the progress report + - **Use labels for project reports, is 3 too many?** + - 3 is good, use Major for things that should be added + - Minor for things that may be added/fine to miss +- We can shuffle maintainers around to this role depending on availability + - Have a bot or something that displays how many issues are untagged? + - **Whoever volunteers** + + +## Fixing/refactoring test pooling | DrSmugleaf +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/954006741568344084) +- Restarting the round is not a foolproof solution to reset the instance. +- Integration test client reconnection is faulty which is why pooling never applied for client instances. +- **We need functioning full state serialization, then reset the state.** + + +## How does one move the YAML Linter to engine | DrSmugleaf +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/954006885802049586) +- How do we have content have a way to specify IOC services to use if the YAML Linter is in the engine. + - **Nobody knows** +- Currently all the YAML Linter project does is start up two integration instances and call a prototype manager method. + - **Nobody knows an alternative** + - **PLS HELP PJB** + + +## Where to draw the line on references to non-SS13 media | PJB +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/953952903964549130) + +Examples of references to discuss: +* https://github.com/space-wizards/space-station-14/pull/6037/files many AI names from small names barely anybody knows to SHODAN to Siri. + * I fucking added X.A.N.A. to the AI name list on /vg/ you can damn well bet your ass I'm gonna try to keep it there + * Who added XANA I must know who here stans Code Lyoko + * HERE WE ARE, GOING FAR, TO SAVE ALL THAT WE LOVE +* Kamina glasses & other Gurren Lagann items + * Keep +* Hatsune Miku clothes + * Keep it's CC +* Alien franchise (aliens duh but also Ripley mechs?) + * No (we have replacements thank god) + * RIP smug +* Duck game items on /vg/ + * VG items are direct asset rips, fuck that +* Portal gun on /vg/ (Terraria has one too!) + * It's pixel should be fine. Valve allows a lot of usage from what I know. +* Red telephone + - **This is fine until valve releases their Red Phone AU** + - Yes this is fine + +(Writing out thoroughly since I won't be here) + +Some thoughts: +* Something like Siri or Windows might be ick since those are actively advertised trademarks and stuff. Something like SHODAN isn't as big of a deal? + * **Agree** +* A simple name drop like SHODAN isn't as big of a deal as complete content-take like Aliens. + * **Agree** +* Taking assets is never OK, obviously. + * **Agree** +* Miku clothes are fine only because they allow nonprofit use, prob wouldn't be otherwise? + * **Agree** + +**Case-by-case, check what each owning company has policy-wise** + +* **If the demand is very strict it may want us to remove the content from git hsitory, needing a rewrite, which is painful** + + +## Renaming/editing/hiding old rsi-editor | mirrorcult +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/950509187073470509) +- People are still trying to use it over RSIEdit +- Already archived +- **We are waiting on GitHub to detach the fork** +- **Edit the rsi-editor Readme to lead to RSIEdit** + +RSIEdit +- It doesn't show up on the organization's project list because it's a fork + - Ticket to detach it already open with GitHub Support + + +## Commission lobby art | mirrorcult +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/952756729295274034) +- We have lobby BG support now +- PJB's take: BG should take full screen at ~16:9 aspect ratio. Part will be covered up by lobby UI on the right frequently; art commissioned can put less important stuff there to avoid wasting effort. + - Please no inset image like SS13 lobby. The lobby goes on top of the art. +- **Find an artist, get the price, use Patreon money.** + - Artist for some of the stuff is aspev, steam art is waster of orange. +- **Try to add support for viewing a map through a viewport in the background.** +- **Make a transparent overlay to give to the artists to know what aspect ratio they have to work with** + - **Overcompensate for a long server name** + + +## What extra servers do we want | mirrorcult +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/953039871587520512) +- We have EU West 1, EU West 2, US West and Oceania at the moment +- We can host more instances on our current hardware +- **Poll for MRP** + - Discord poll, but we should implement game polls too +- **US East pls** +- Kill EU West 1 make 2 new 1 + - add US East + + +## Early Access Roadmap +[Previous Roadmap](https://docs.spacestation14.io/en/maintainer-meetups/secret/2022-01-22-meetup) + +- emergency shuttle + - auto shuttle movement +- gamemodes/antags + - dynamic | mirror + - nuke ops + - the nuke is done, but it doesnt explode + - large kaboom required + - does not work outside dynamic + - lings? + - needs DNA + - blob | Remie + - cult? + - make it as good as vg for pjb + - revs + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | mirror + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 +- Salvage proc gen | moony + - [Cargo Commander](https://www.youtube.com/watch?v=H0LPWuTt2o4) + - **Coded on outer-rim, just needs porting to upstream** +- Radiation refactor +- body system but again +- body system (get smug to code it) + - Species + - we need to do non human body parts + - needed to reenable lizard +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat +- Tutorial + - In game guides + - Yes + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + - ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) +- oldchat + ui refactor | Jezithyr + - we did it +- explosion refactor | ElectroJR + - under review +- combat rework + - hard to hit someone + - wide attacks might be broken + - prediction issue +- ghostrole bans | ShadowCommander + - unify ghost roles prototype +- pulling refactor | Sloth +- admin notes | DrSmugleaf +- Admin traitor/role menu + - Assign people roles + - Objectives UI +- Job playtime requirements + - Playtime tracking + - Per role playtime tracking +- experimental science +- action ui refactor, [like ss13 maybe](https://i.ytimg.com/vi/iFf_T31C-iU/maxresdefault.jpg) +- change pvs to p/invoke zstd + - compression too slow + - we're using (Q's) C# library for zstd +- Prototype composition | Paul +- Server polls + - Map poll at round end +- Round Statistics + - Log votes, which maps are played the most… +- suit storage + +Crashes / Critical bugs: (when are we moving these to GitHub) +- Round restart fails sometimes (may be a physics issue) + => till next time + + +## PJB isn't here so there's no Tetris after-meeting party diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-04-02.md b/src/en/maintainer-meetings/maintainer-meeting-2022-04-02.md new file mode 100644 index 000000000..adc079f25 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-04-02.md @@ -0,0 +1,206 @@ +# Maintainer Meeting (02 April 2022) +=== +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 02 April 2022 18:00 UTC + +**Attendees:** +Smug +Silver +Shadow +Paul +moony +Jezithyr +ElectroSR +PJB +metalgearsloth + +## Not pushing to master to make it easier for downstreams | moony +- Using PRs it's easier for downstreams to selectively pick what they want from upstream. +- This would mean making master (and stable if it happens) a protected branch so people can't push to it. +- [Gitflow Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) +- We already don't push features to master +- Should we push hotfixes/submodule updates to master? + - We can commit hotfixes to master + - I'm still PRing them + - Push submodule updates directly if we can fix bots +- Current bots don't handle direct commits well, someone needs to fix/create a new bot that does + + +## Getting a CDN and setting up region serving | Silver +- Our resident Argentinian has been getting slow downloads. + - complaints from argentinian resident are through the roof +- silver spinning up free aws instances with s3 and cloudfront with na, sa and eu, maybe au + - we barely push 100gigs a month + - we can use the free plan + - if not, its not very expensive +- apparently we cant use S3, builds arent cached (nono) + + +## Migrating to a point-release model | moony +- To help avoid disrupting our active playerbase and help mitigate download times. + - Delta downloads when. + - Reconnecting automatically without going back to the launcher when. + - background download + - point release +- One update per day? +- Point release is the easiest to do fast + - **Do it** + - 10 am every day +- Delta downloads when PJB codes it + + +## Document and improve content/engine publish workflows and the watchdog | moony +- Open-source content and engine publish workflows. +- Server hosting is painful at the moment, has undocumented error messages. +- The system to publish builds like the main servers isn't public, you need to ask for the powershell scripts. +- **Improve the docs** and the tools god damn + - Specially the watchdog (proper error output) + + +## Engine changelog | ike709 +- Document engine changes so breaking changes are not a surprise. +- This has already been a problem multiple times for Opendream. +- also proper major/minor versions x.y -> major -> .z minor + - X Major Y Minor? +- **GitHub action for changelog**, similar to how content does it +- Show the changelog somewhere + + +## Removing drag and drop interactions | moony +- Uncommon interaction and unintuitive for new players. + - We can assign a keybind instead, like alt+click currently +- How do we do it for dragging others into disposals for example +- **We should write a design doc and decide how interactions work in general** + + +## Multi-Z | Vera +- How does one (sanely) do it +- what needs it + - movement + - atmos + - explosions + - rendering +- Special case maps +- needs more discussion. + + +## Improving dev UX for mappers, maintaining maps | moony +- We need to maintain our soon to be 7 playable maps and other salvage maps. +- Onboarding new mappers to help maintain them +- Automated map maintenance? + - Migrations + - Renaming, replacing and removing + - With YAML +- Seeing pipes through walls / Being able to hide walls + - filter/toggle by walls/floors/doors/windows/wire/pipe/tubes etc. +- Being able to see the color of floors +- Area copy and paste with preview +- Picker copy and paste (middle click to copy what's under your mouse) +- Improving mapping UI in general (spawn windows) +- Improving docking when mapping +- Teleporting to error messages +- Unreal engine retargets +- Placement ghost for salvage that shows where it will spawn, how big the maximum salvage size is + - To know if the salvage will spawn inside the map + + +## Splitting UI code from simulation code, UI hot reloading and framework | Jezithyr +- **Split UI code from simulation code** +- **Splitting into a separate assembly to be decided** +- Apply this to rendering and user input as well. +- This can be done at the engine level without breaking downstreams (Opendream) while we transition SS14. +- Removing UI dependencies from sim makes it possible to run the game without an UI. + - It also makes it possible to develop UI without getting cancer. +- Hot reloading UI + - **Yes when you code it** + - Visual editor? + - **No, visual preview yes** +- Using a established UI framework? + - [Avalonia](https://avaloniaui.net/) + - [qmlnet](https://github.com/qmlnet/qmlnet) + - **Not at the moment** + + +## Early Access Roadmap +[Previous Roadmap](https://docs.spacestation14.io/en/maintainer-meetups/secret/2022-01-22-meetup) + +- emergency shuttle + - auto shuttle movement +- gamemodes/antags + - dynamic | mirror + - nuke ops + - the nuke is done + - does not work outside dynamic + - lings? + - needs DNA + - blob | Remie + - cult? + - make it as good as vg for pjb + - revs + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | mirror + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 +- Salvage proc gen | moony + - [Cargo Commander](https://www.youtube.com/watch?v=H0LPWuTt2o4) + - **Coded on outer-rim, just needs porting to upstream** +- Radiation refactor +- body system but again +- body system (get smug to code it) +- Grid splitting + - finish when sloth comes out as a furry +- Grid merging +- Diagonal tiles + - we have diagonal walls, tiles are harder +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak +- Tutorial + - In game guides + - Yes + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + - ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) +- oldchat + ui refactor | Jezithyr + - we did it +- combat rework + - hard to hit someone + - wide attacks might be broken + - prediction issue +- ghostrole bans | ShadowCommander + - unify ghost roles prototype +- pulling refactor +- admin notes | DrSmugleaf +- Admin traitor/role menu + - Assign people roles + - Objectives UI +- Job playtime requirements + - Playtime tracking + - Per role playtime tracking +- experimental science + - artifacts??!?!? +- action ui refactor, [like ss13 maybe](https://i.ytimg.com/vi/iFf_T31C-iU/maxresdefault.jpg) | Jezithyr +- any% maintainer | Jezithyr +- change pvs to p/invoke zstd + - compression too slow + - we're using (Q's) C# library for zstd +- Prototype composition | Paul +- Server polls +- Round Statistics + - Log votes, which maps are played the most… +- suit storage + +Crashes / Critical bugs: (when are we moving these to GitHub) +- Round restart fails sometimes (may be a physics issue) + => till next time diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-04-16.md b/src/en/maintainer-meetings/maintainer-meeting-2022-04-16.md new file mode 100644 index 000000000..abaac3485 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-04-16.md @@ -0,0 +1,122 @@ +# Maintainer Meeting (16 April 2022) +=== +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 16 April 2022 18:00 UTC + +**Attendees:** +Acruid +metalgearsloth +DrSmugleaf +moony +Vera +ShadowCommander +Visne +Paul +ElectroSR +PJB + +## We hit 250 players in one server. What's next? | moony +- What is our goal for optimizations + - What can we do better + - What should we do now that the game is very performant +- Is this when we finally code content +- We need to fix stuttering, pvs pop-in, rubberband issues and make network smoothing default to 2 | mirrorcult +- **Server side performance is fine, need to fix client side performance and bugs** + + +## Diagonal tiles | metalgearsloth +- The engine technology is there +- What do about anchoring and stuff on content +- Atmos will just treat them as space, still have diagonal walls be airtight +- **Needs to be fleshed out more** + + +## Make VV read/write by default | mirrorcult +- Everyone forgets to make properties read/write +- We still have to refactor VV for ECS +- **Make all VV properties writable if you have +HOST** +- **The default should be read** +- **Attribute to make all properties on a class VV** + + +## Review and PR guidelines | mirrorcult +- https://docs.spacestation14.io/en/maintainer-info/review-guidelines +- https://docs.spacestation14.io/en/getting-started/pr-guideline +- **We are missing file name conventions on the conventions page** +- **We need better automated tooling** + + +## Early Access Roadmap +[Previous Roadmap](https://docs.spacestation14.io/en/maintainer-meetups/secret/2022-01-22-meetup) + +- emergency shuttle + - auto shuttle movement +- gamemodes/antags + - dynamic | mirror + - nuke ops + - the nuke is done + - does not work outside dynamic + - lings? + - needs DNA + - blob | Remie + - cult? + - make it as good as vg for pjb + - revs + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | mirror + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 +- Salvage proc gen | moony + - [Cargo Commander](https://www.youtube.com/watch?v=H0LPWuTt2o4) + - **Coded on outer-rim, just needs porting to upstream** +- Radiation refactor +- body system but again +- body system +- Grid splitting + - finish when sloth comes out as a furry +- Grid merging +- Diagonal tiles + - we have diagonal walls, tiles are harder +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak +- Tutorial + - In game guides + - Yes + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + - ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) +- oldchat + ui refactor | Jezithyr + - we did it +- combat rework +- ghostrole bans | ShadowCommander + - unify ghost roles prototype +- pulling refactor | bobda +- Admin traitor/role menu + - Assign people roles + - Objectives UI +- Job playtime requirements + - Playtime tracking + - Per role playtime tracking +- experimental science + - artifacts??!?!? +- action ui refactor, [like ss13 maybe](https://i.ytimg.com/vi/iFf_T31C-iU/maxresdefault.jpg) | Jezithyr +- any% maintainer | Jezithyr +- Prototype composition | Paul +- Server polls +- Round Statistics + - Log votes, which maps are played the most… + +Crashes / Critical bugs: (when are we moving these to GitHub) +=> till next time diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-04-30.md b/src/en/maintainer-meetings/maintainer-meeting-2022-04-30.md new file mode 100644 index 000000000..dd844b04c --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-04-30.md @@ -0,0 +1,384 @@ +# Maintainer Meeting (30 April 2022) +=== +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 30 April 2022 18:00 UTC + +**Attendees:** +Vera +Silver +ShadowCommander +PJB +Sloth +moony +mirrorcult +Acruid +DrSmugleaf + +## Removing RobustUnitTest or RobustServerSim | metalgearsloth +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/966291335785095239) +- Actual unit tests shouldn't be inheriting, everything else should be an integration test +- If prototype loading was faster we could remove both +- Is Acruid in the meeting + +Answer: +- We have like four ways to start engine and run tests. +- We have NO CLUE what each of these do, we should probably gather some info and list it out so we can make a more informed decision? +- Come back to this after we actually know what each does +- Acruid came: + - Server simulation can spawn entities + - It's the bare minimum required for that, any extras such as prototypes, components and systems need to be added automatically. + + +## Long term map maintenance tools | moony +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/966528422933323866) +- Fixing the mapping merge driver + - Rewrite it atop the testing framework? +- Automated YAML and entity migrations + +Answer: +- when someone codes it +- BYOND is better than us + - BYOND's map editor asks you for new paths (like entity prototype IDs) for missing things + - tbh this goes for a lot of things about mapping rn +- Entity UID consistency system on map is broken right now, needs fixing + - 1 entity getting changed -> ![](https://i.imgur.com/7htfQil.png) ungabunga change go brr SO TRUE BESTEI +- Migrations are like scripts more than like prototypes. Does it make sense to keep them in the prototypes folder? + - For complex C# based ones it'd be necessary for them to remain compiled in? + +## Write down the main purpose of each interaction hotkey | ShadowCommander +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/966591327494086706) +- For contributors to decide on which hotkey to use when implementing a feature. +- Remove overlap between left click/E | PJB + + +Answer: +- Tooltip show alt uses + - Somewhat unusual for 2D games? + - Starbound apparently has it though + - Show icons and +- Remove overlap between left click/E. Force people to learn E + - Give indication that you can use E to click on the thing. Otherwise people will not realize it exists. + - Candidate: https://youtu.be/d6GtGbI-now keyboard spritesheet + - Has no Cyrillic support + - Can add ourselves + - Other links: + - https://thoseawesomeguys.com/prompts/ + - https://www.gameuidatabase.com/index.php?&scrn=907 + - https://kenney.nl/assets/input-prompts-pixel-16 +- Forced Tutorial™ to teach interactions +- Show the thing you're looking at too, optionally. + +### Hotkeys: +- Use(Left click) + - Interaction involving hands +- ActivateItemInWorld(E) + - Open UI + - If there's a secondary activate, then put that in the UI +- AltActivateItemInWorld(Alt) + - Specify which interaction it should run instead of automatically picking the first verb +- ActivateItemInHand(Z) + + +## Guidelines for balance discussions and code of conduct | moony +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/966843069515329586) +- Emag nerf (18291 comments) +- ![](https://i.imgur.com/Vv4d6Ht.gif) + +Results +- GitHub discussions usually get bad. +- They spam the #github channel reee. +- Should we move those discussions to somewhere else? + - The official forums aren't great for that. + - Discord threads are an option, but they're not great for week-long discussions. + - discord community server forums someday + - Some people don't want to join the Discord for these discussions, they might be put off by that. + - Moderate GitHub better? + - Use GitHub discussions? (Although they suck) + + +## Planet maps, should maps be able to be grids | Vera +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/966984856863113217) +- It would allow for tiles to be placed anywhere (needs refactors) +- This would be sane opt-in default grids +- Allows for planet maps if changes are made to: + - Parallax + - Default atmos empty tile behavior (being worked on) + - Adding a component for a map to handle gravity. +- Probably useful for other games, including OpenDream. + +Results +- When sloth codes it +- We are supposed to be able to have maps as grids already but it's broken +- Allows for global grids from Byond +- Causes some crashes if you mix map and grid component + + +## Deprecate GridId and MapId in favor of EntityUid | Vera +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/966986023689129994) + +Results: +- YES +- Ask Acruid, he has *a plan* :focus: + + +## Maps submodule | moony +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/967544877506236437) +- Keep only 4-5 core maps in the main repo +- Lets us introduce new maps without assuming that they will be in forever +- We can give mappers like Emisse write access to the repo +- Allows easier rotation of maps and possibly encouraging people to try out bolder things with map design + +Results: +- Every submodule makes it harder for new people +- Requires keeping the main/map repo in sync with changes + - If an item is changed then the maps need to be changed +- If someone needs map write access give them write access to content +- **No submodule for maps** + + +## Icon for the launcher | mirrorcult +- [Discord message and thread](https://discord.com/channels/310555209753690112/900426319433728030/967667307142860800) +- Probably needs to be different than the SS14 one +- PJB had a think in the thread above + +Results: +- Maybe do it similar to the auth website + https://central.spacestation14.io/web/ + - How does this fit into the icon in the task bar + - Who knows +- When someone inkscapes it +- When one of us uses the Patreon money for it? +- Can be a modified SS14 logo +- YES BUT WE DO NOT KNOW THE DESIGN + + +## Making fake lag the default in local development | metalgearsloth +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/967779103023460352) +- Helps spot prediction issues +- Makes people other than just senior contributors consider it +- Prevents the game feeling like shit to play with high ping +- We can LARP as Australians or Argentinians during local development + +Results: +- Yes +- Make it 150ms + - With 20ms randomness, but the client might not handle it well yet + - 0.01% packet loss +- We need to be able to diff component states + + +## Quickstart script for repo setup | moony +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/967988264818577488) +- Also attempts to open the repo in your IDE of choice +- Probably a Python script targeting only Windows users to allow people that have no interest in fully developing the game (mappers and spriters) to get the game up and running. + +Results: +- Make a script to build without Visual Studio (Saves a few GB of disk space and RAM for mappers) + - Script needs .NET 6 + - msbuild +- We need a tutorial on how to clone and build the project from command line for mappers + - We can provide a script for this, to have an up-to-date build to map with + + +## Species/roles whitelist | metalgearsloth +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/968123789768552468) +- Would we ever actually have it on an official server + - (no) | moony +- Generalize whitelists so it's easy to add new ones | moony + - Specify in YAML which whitelist to use + +Results: +- Implement it +- Generalize whitelists +- We won't have it on an official LRP server + + +## Issue templates and enforcing good issue writing | moony +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/968126891926122547) + +Results: +- We need an issue template on engine +- Improve the content issue template +- Figure out a better template + - Description: + - Reproduction: + - Screenshots: + + +## The identity / entity LOC problem | mirrorcult +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/968642553228460052) +- What did mirror mean by this +- Need to separate metadata name and display name + +Results: +- Don't have it in engine, add a layer in content that gets used +- We can have an analyzer for people to not use EntitySystem.Name(EntityUid) where necessary + + +## What's necessary for MRP | moony +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/968872376370622495) +- [GitHub issue](https://github.com/space-wizards/space-station-14/issues/7809) + +Results: +- BE ABLE TO CHANGE THE RULES + + +## What do we want out of in-game species | moony +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/969305610657087499) +- SS14 has made it a lot easier to add and maintain new playable species + - The biggest hurdle is sprites, but humanoid ones are fine +- What should we do when for example someone wants to add a sentient cloud of bees: + - What's acceptable for a round-start species? + - What's acceptable for a mid-round species? (Events, something you can turn yourself into with enough work) + - Situational/event species (skeletons on roundstart on Halloween) + +Results: +- **Round start:** have them be sufficiently different that you play different than a human + - The goal is to make it different enough that LRP players play them differently. + - Slimes should be made more interesting + - Lizards aren't there + - Make them cold-blooded + - More carnivorous + - Dwarves are a debug species, can be removed + - Vox are good but effort + - ok tbh vox would probably still need a bit more mechanically to set them apart imo + - Can it be too different? (Plasmemes) + - Pain in the ass + - If the rest of the game needs to be designed around it (the map has to change) it is too different +- **Mid-round:** SKELETONS, needs to be unique, well-designed, the bar is lower than for round-start +- **Situational/event species:** Lower bar than mid-round, needs to be funny + - Needs a way to prevent round start species after event + + +- Literally this entire answer has been "it has to be interesting" smh. + +## Should we implement map standard tests | moony +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/969630546550489119) +- Examples: +- Enforcing a maximum light budget within an area. +- Making sure each job in the job list has a spawnpoint. +- Forbidding certain objects from being placed in a map (i.e. finally making sure nobody maps the cursed locker for a laugh) +- Ensuring that no spawnpoints will instantly kill you. +- Potentially abusing the pathfinder a bit to check that it's possible for each job to make it to their spawnpoint from arrivals? This might help avert "whoops you can't exit arrivals/your office" bugs. But I think the pathfinder's ability to understand access isn't functional atm. +- Duplicate structures (pipes, wires, and full-tile structures having more than one of themself on the same tile) +- Power continuity tests (mapper places test points and can either check in-game or have a test yell if there's a break) + +Results: +- We need a better way to review maps. + - Overlay to see wires and what's powered at round-start. + - Access overlay for doors, green for accessible red for not, able to be used as a ghost to audit access + - Or list access levels above doors + - Easy way to change access level for this so you don't need to go back to the lobby +- Yes: + - Enforcing a maximum light budget within an area. + - Making sure each job in the job list has a spawnpoint. + - Forbidding certain objects from being placed in a map (i.e. finally making sure nobody maps the cursed locker for a laugh) + - Don't error, warning for relevant things + - Duplicate structures (pipes, wires, and full-tile structures having more than one of themself on the same tile) + - Seeing how fast power runs out on a map + - Power continuity tests (mapper places test points and can either check in-game or have a test yell if there's a break) + - Makes sure there are no breaks in power lines +- No: + - Ensuring that no spawnpoints will instantly kill you. + - Not automatic, we need to go through spawn points for quality control anyway + - The arrivals shuttle fixes this. + - Draw spawn points over everything + - Potentially abusing the pathfinder a bit to check that it's possible for each job to make it to their spawnpoint from arrivals? This might help avert "whoops you can't exit arrivals/your office" bugs. But I think the pathfinder's ability to understand access isn't functional atm. + - For access + - Do it in manual review instead + +- When you code + +## Map quality control | PJB +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/969677010668507176) +- PJB says a bunch are bad + - tremble + - PJB ASMR (patreon exclusive) + +Results: +- Don't rely on there not being player collisions when mapping +- Porting 1:1 is fine on some maps (Delta) not on others (Atlas) +- Common problems: + - All staff halls were a mess, didn't have visibility into the department or no desks, almost all the offices had a bedroom crammed into the office (waste of space, we don't have enough for that on most maps). + - Medbay lobby (except Pillar, where it was fine) + - Too many lights (Pillar and Bagel specially) +- Make sure there are enough disposal chutes + + +## Do we keep asking question on maintainer meeting that end in "WYCI" | PJB +Results: +- Yes, when there's valuable input to be had, even if the result is WYCI we need to figure out if everyone wants it or if there are any downsides + + +## Early Access Roadmap +- emergency shuttle + - auto shuttle movement +- gamemodes/antags + - dynamic | mirror + - nuke ops + - the nuke is done + - does not work outside dynamic + - lings? + - needs DNA + - blob | Remie + - cult? + - make it as good as vg for pjb + - revs + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | mirror + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 +- Salvage proc gen | moony + - [Cargo Commander](https://www.youtube.com/watch?v=H0LPWuTt2o4) + - **Coded on outer-rim, just needs porting to upstream** +- body system but again +- body system +- Grid merging +- Diagonal tiles | sloth + - we have diagonal walls, tiles are harder +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak +- Tutorial + - In game guides + - Yes + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + - ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) +- oldchat + ui refactor | Jezithyr + - we did it +- combat rework (needs to be bikeshedded) + - https://github.com/space-wizards/space-station-14/issues/3378 +- ghostrole bans | ShadowCommander + - unify ghost roles prototype +- Admin traitor/role menu + - Assign people roles + - Objectives UI +- Job playtime requirements + - Playtime tracking + - Per role playtime tracking +- experimental science + - artifacts??!?!? +- action ui refactor, [like ss13 maybe](https://i.ytimg.com/vi/iFf_T31C-iU/maxresdefault.jpg) | Jezithyr +- any% maintainer | Jezithyr +- Prototype composition | Paul + - https://github.com/space-wizards/space-station-14/pull/7403 +- Server polls +- Round Statistics + - Log votes, which maps are played the most… +- State mandated Xonotic matches + - Please I have severe withdrawal symptoms + +Crashes / Critical bugs: (when are we moving these to GitHub) +=> till next time diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-05-14.md b/src/en/maintainer-meetings/maintainer-meeting-2022-05-14.md new file mode 100644 index 000000000..20c2ce583 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-05-14.md @@ -0,0 +1,176 @@ +# Maintainer Meeting (14 May 2022) +=== +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 14 May 2022 18:00 UTC + +**Attendees:** +DrSmugleaf +Remie +Visne +moony +ShadowCommander +PJB +ElectroSR +mirrorcult + +## Launcher server announcements | moony +- The launcher listens to an RSS feed if you opt-in **per server (or server group)**. + - Works for any server that has such a feed setup. + - **It can be transient (truncated)** +- For both automated and manual announcements. + - **Can be categorized.** +- Can announce a new round starting, or mandatory server restarts. +- Separate restart notifications from other notifications? + - **Needs high poll rate** + - **Don't have a websocket per server** + - **Run a news aggregator as part of the hub?** + - What happens to servers off the hub? + - Just keep it simple no websocket stuff for now just RSS all the way baby. + - **Push notifications for restarts** +- **Hook up changelog to RSS updates** + + +## Automerging PRs when approved and CI passes | metalgearsloth +- Refined GitHub supports this but it doesn't work properly. +- Allegedly exists in GitHub by default but the button doesn't exist. + - You can only enable it if you enable only being able to merge PRs when CI passes + - Simply disable push to master --moony +- What if the servers DIDN'T autoupdate to broken builds?? + - check em before we wreck em +- **Use a bot (when you code it)** + - **We can use the `workflow_run` workflow event to do this.** + + +## getFlatIcon() AKA handling capture of appearance data (photography, scoreboard, Remie bait) | PJB +- No BYOND-like server CPU rendering +- Send the visual information to the client (appearance components) + - Move complex stuff like item rendering on mobs to be 100% visualizer data +- Just take a screenshot on the client? (photography) (Remie vindicated) + - Easy to do +- How do we render multi-entity entities? + - e.g. eris walls + - **follow child entities and collect em all?** +- **Replace appearance visualizers with entity systems** + - Already agreed on this in another meeting + - Use component states to send the data? + + +## ABI vs API backwards compatibility on engine | PJB +- ABI: code keeps working dynamic linking against newer versions of the engine +- API: code keeps working if you recompile against newer versions of the engine +- **ABI stability** +- There might be GitHub analyzers to check this + - May or may not be worth setting up +- **Aim for ABI, when you have to break it, increase major version** +```cs +// What you have: +void Foo(int x) => ... + +// What you want: +void Foo(int x, int y = 0) => ... + +// What you need to do to preserve ABI compat: +void Foo(int x) => Foo(x, 0); //method NOT removed +void Foo(int x, int y) => ... +``` + + +## Private playtest/actual QA sessions | mirrorcult +- Making the maintainers, senior contributors and game admins play their game +- (Suspicion on Space Station) +- Whitelisted server on EUW2 or USW? + - Maybe USW for the Australians. + - **Put another server instance on USW ez clap** +- Schedule + - **After the maintainer meeting (afterparty)** +- **The whitelist needs to be per server** + + +## Auto-ignore unknown components on the client and remove client IgnoredComponents | mirrorcult +Cases: +- server side component spelled correctly--ignored by client, no error on server +- server side component spelled incorrectly--ignored by client, server errors +- client side component spelled correctly--no error on client, server needs it in the ignore list +- client side component spelled incorrectly--ignored by client, server errors since it's no longer in the ignore list +- shared component spelled correctly--no error on client, no error on server +- shared component spelled incorrectly--ignored by client, server errors +- **Fund it** + + +## Early Access Roadmap +- emergency shuttle + - auto shuttle movement +- gamemodes/antags + - dynamic | mirror + - nuke ops | Paul + - the nuke is done + - does not work outside dynamic + - lings? + - needs DNA + - blob | Remie + - cult? + - make it as good as vg for pjb + - revs + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | mirror + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 +- Salvage proc gen | moony + - [Cargo Commander](https://www.youtube.com/watch?v=H0LPWuTt2o4) + - **Coded on outer-rim, just needs porting to upstream** + - moony's entirely rewriting it anyways so don't do that +- body system but again +- body system +- Grid merging +- Diagonal tiles | sloth + - we have diagonal walls, tiles are harder +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak +- Tutorial + - In game guides + - Yes + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + - ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) +- oldchat + ui refactor | Jezithyr, DrSmugleaf + - we did it +- combat rework (needs to be bikeshedded) + - https://github.com/space-wizards/space-station-14/issues/3378 +- ghostrole bans | ShadowCommander + - unify ghost roles prototype +- Admin traitor/role menu + - Assign people roles + - Objectives UI +- Job playtime requirements + - Playtime tracking + - Per role playtime tracking +- experimental science + - artifacts??!?!? +- action ui refactor, [like ss13 maybe](https://i.ytimg.com/vi/iFf_T31C-iU/maxresdefault.jpg) | Jezithyr +- any% maintainer | Jezithyr +- Prototype composition | Paul + - https://github.com/space-wizards/RobustToolbox/pull/2678 + - https://github.com/space-wizards/space-station-14/pull/7403 +- Server polls +- Round Statistics + - Log votes, which maps are played the most… +- State mandated Xonotic matches + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Man down +- The game runs like shit how do people play this + +Crashes / Critical bugs: (when are we moving these to GitHub) +=> till next time diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-05-28.md b/src/en/maintainer-meetings/maintainer-meeting-2022-05-28.md new file mode 100644 index 000000000..b709b3bcf --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-05-28.md @@ -0,0 +1,274 @@ +# Maintainer Meeting (28 May 2022) +=== +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 28 May 2022 18:00 UTC + +**Attendees:** +- Visne +- Remie +- Wrexbe +- Electro +- ShadowCommander +- PJB +- Sloth +- Vera +- Moony +- Silver +- DrSmugleaf, in spirit, briefly + +## Smug left the meeting for Canada | DrSmugleaf +- a mimir + - Jezlag is no joke +- Jez sends her regards +- :pray: + +## Rethink flat folder structure | Sloth +- a: + 1. Engine still doesn't match + 2. There's no nice place to put sundry components + 3. I have to scroll for like 5 seconds to go from client to shared if I don't know the right term to ctrl-F +- Fuck the netherlands we're moving to belgium + +Result: Jeopardy Music +- **Previous system didn't work** +- **just... nest things more? Put all the engines together** + - Potential ones brought up: + - By department (Science, Engineering, etc.) + - Doesn't seem to work that well. + - By game mechanic (Power, Physics, etc.) + +## Remove maintainer ping | Sloth +- Discord permissions moment +- Do we even need to put this in here + +Results: +- **yes** +- Removed mention from maintainer, +- Gave maintainer @ everyone so they can keep pinging eachother + +## making events directed by default instead of broadcast | Sloth +- For `RaiseLocalEvent` +- (essentially, making broadcast default to false on directed `RaiseLocalEvent`) + +Results: +- **a lot of things would break** +- **Make everything explicitly true at call sites** +- **Make it default to false** + +## remove component reference | PJB +- How do we make it happen +- What about Shared components inherited by client/server ones? + +Result: +- We need to get rid of component inheritance/interfaces anyways. +- Only remaining use left is shared components +- Figure out an alternative for shared components: + - *Maybe* (not decided yet) make them more specific so they can be optimized better. + - Some problems: + - Shared component presence 1:1 tied to client/server component + - EnsureComponent spaghet + +## `EntityUid?` vs `EntityUid.Invalid` | Vera + +- Nullable EntityUid has convenient compile-time checks, and forces you to handle null cases. +- There's a clear distinction between EntityUid? and EntityUid, you can expect the latter to be valid in most cases. +- Nullable EntityUid, however, forces you to write a lot more boilerplate. +- Using EntityUid.Invalid is more convenient and allows you to write less boilerplate in most cases, but you lose compile-time checks and an explicit way to mark something as "possibly being invalid/not having a value". +- We need to decide this ASAP and stick with one. + +Results: + +- Problem with nullables: memory overhead (2x mem usage due to alignment) +- One option: `Option` + - Only difference is no orange squiggle when doing `.Value` instead of `!.Value`. + - No pattern matching: `if (foo is { } ent)` + - goodtbh + - Agreed +- **Use EntityUid? whereever possible. If memory usage is a concern, store as `EntityUid.Invalid` and convert on usage but try to avoid using it.** +- Content-facing APIs should use `EntityUid?`, convert if needed. +- Need to convert existing usages + +## Change XAML file naming scheme | PJB +- `Foo.xaml`/`Foo.xaml.cs` -> `Foo.cs.xaml`/`Foo.cs` +- ![](https://i.imgur.com/iCqMUdA.png) + +Results: +- it's fine as is, the UI aspect is "made more important" by this + +## Rename maintainer meetings to Round Table Meetings | PJB +- El Psy Kongroo +- Rename to Round Buckle Table Meetings + - High Round Buckle Table Meeting + +- smugleaf jumpscare + - holyshit smug is typing from air plane + - spanish airplanes have wifi confirmed + - better wifi than Spain + - how long before you land? + - the trick is i havent even left yet + - amongus or silver moment + - yoooo smug bsaed based based + - !!! + +- Rename maintainers to Labo Members + - tuturu~ +- rename maintainers to mini wizards + +Results: +- uhhhhh all shitposting aside +- alles gekheid op een stokje... +- **Nonissue, can be named whatever** + +## Simplify ResourcePath | PJB +- what do we remove from it + - paths :clown_face: +- PJB was an idiot at the time + - she apologises + - not good enough, a blood sacrifice must be made +- Current status: + - Bunch of filesystem semantics like `/` (rooted path), `.` (current dir), `..` (go up a dir) + - Customizable separators (WHO NEEDS THIS) + - Path stored as segmented array of strings +- It's a class because fuck me + - :face_with_one_eyebrow_raised: + +Results: +- PJB has started this already +- Wrapper struct around string + - Keep division operator combining paths P / P +- Remove `..` support +- Remove `.` support +- `null` path is same as `""` + +## Components: Properties or Fields | Wrexbe +- [Message link since we decided to bikeshed this 3 hours before the meeting](https://discord.com/channels/310555209753690112/900426319433728030/980127305894600704) + +Results: +- We settled this pre-meeting (see message link above) +- Use fields unless you need to debug it, but then turn it back into a field after + +## Require public functions/fields be documented | Moony +- Silver votes that this should be enforced now that we have docfx for content/engine. + +Results: +- **Write a convention page about writing good docs. Link it at people.** +- **Try to care more** +- **Maintainers can block PRs in review if deem more docs needed in med/big systems** +- Don't put an analyzer that enforces it too much (i.e. having to repeat yourself just to satisfy the analyzer) +- Don't assume the reader knows game mechanics/has ever played SS13 + +## Robust IDE Extension | Moony +- ![](https://i.imgur.com/fF3vlMQ.png) +- Examples: + - More complex templates for client/server component boilerplates + - YAML language server + - ez pz + - analyzer for sandbox violations + +Results: +- WYCI + +## The Renderer Sucks | Moony +- How do we make it not +- Specifically: byond beats us in some of the things it can do +- Revive RobustEngine + +Results: +- Make wishlist +- Let PJB do it +- Court mandated graphics programming lessons for all maintainers yes yes + +## ~~what should be done about BaseWindow? | Flipp~~ +~~- it seems to be that things that use BaseWindow in SS14 construct the layout in C# rather than XAML~~ +- Mistakes were made + +## what do about fwiend :relieved: PR funny enum | Vera +- where do I put the enum both the analyzer and robust.shared/content need it AAAAAAAAAA +- (do I just make this a completely separate project and put it on nuget or something it'd be useful for other projects, dunno anyway just some bikeshedding) +- Give the enum its own file: + - Link it in both projects SIMPLE + +## Early Access Roadmap +- emergency shuttle + - auto shuttle movement +- gamemodes/antags + - dynamic | mirror + - ~~!!nuke ops | Paul~~ + - lings? + - needs DNA + - blob | Remie + - cult? + - make it as good as vg for pjb + - revs | Vera + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | mirror + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - limb damage..... +- Salvage proc gen | moony + - [Cargo Commander](https://www.youtube.com/watch?v=H0LPWuTt2o4) + - **Coded on outer-rim, just needs porting to upstream** + - moony's entirely rewriting it anyways so **don't do that** +- body system but again +- body system +- Grid merging +- Diagonal tiles | sloth + - we have diagonal walls, tiles are harder +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak +- Tutorial + - In game guides + - Yes + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + - ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) +- oldchat + ui refactor | Jezithyr, DrSmugleaf + - we did it + - lost in the canadian wilds +- combat rework (needs to be bikeshedded) + - https://github.com/space-wizards/space-station-14/issues/3378 +- ghostrole bans | ShadowCommander + - unify ghost roles prototype +- Admin traitor/role menu + - Assign people roles + - Objectives UI +- Job playtime requirements + - Playtime tracking + - Per role playtime tracking +- experimental science + - artifacts??!?!? + - "Science is still a piece of shit" - Vera 28/05/2022 +- action ui refactor, [like ss13 maybe](https://i.ytimg.com/vi/iFf_T31C-iU/maxresdefault.jpg) | Jezithyr + - stuck in canada +- any% maintainer | Jezithyr + - Stuck in canada + - soon tm +- Prototype composition | Paul + - https://github.com/space-wizards/RobustToolbox/pull/2678 + - https://github.com/space-wizards/space-station-14/pull/7403 + - paul still not done with his thesis +- Server polls +- Round Statistics + - Log votes, which maps are played the most… +- State mandated Xonotic matches + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Man down +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + +Crashes / Critical bugs: (when are we moving these to GitHub) +=> till next time diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-06-11.md b/src/en/maintainer-meetings/maintainer-meeting-2022-06-11.md new file mode 100644 index 000000000..d65bde562 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-06-11.md @@ -0,0 +1,249 @@ +# Maintainer Meeting (11 June 2022) +=== +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 11 June 2022 18:00 UTC + +**Attendees:** +- Electro +- Vera +- Remie +- Visne +- PJB +- Moony + +## I'm stuck in Quebec for 5 more hours | DrSmugleaf +- I'm about to baguettify +- The destination is even worse (Spain) +- Smug gets a Canadian gf character arc (multiple maintainer meetings long, episode 2: Attack of the Quebecoise) + - Jez isn't even awake to help me cope with the French please send help + +Agreement: +- Quebec bad +- "Discord leave lasting damage" - smugleaf + +## Click to wide attack was a mistake | Remie +- [link](https://discord.com/channels/310555209753690112/900426319433728030/980204271385604106) + +Agreement: +- Mirrorcult on break, move it to next meeting + + +## Lobby songs take up half the game download what the fuck | All of us, enranged +- seriously?? +- "enranged" means all of the maintainers are so distant from SS14 +- 16 lobby songs... 40mb total. The resources folder is 133mb total. +- This is probably fucking terrible for git clone, etc + +Agreement: +- Turn the PR icon red +- Should we do on-packaging compression? + - Probably yes but how + +## How do release packaging of assets | PJB monologues in the maintainer meeting +- Most engines work with raw high quality assets in repo, game finalized has compressed and lower qualtiy assets on publish. + - Probably a terrible fit for our development: Git + - Audio compression etc is gonna require dedicated heavy tools like ffmpeg and be slow + - Doing audio compression live means results potentially inconsistent across publishes = + - Too slow performance for ACZ, will require asset cache + - Goes against current engine model where resources have 0 importing/caching/etc... +- Still a good choice we should do this: + - Audio too large + - RSI packing + - more + +Conclusion: +- Generate a good idea +- Audio files too heavy, put sources in separate repo. Main repo contains pre-downsampled assets. +- RSI packing etc is a good idea and should be fine. + - Move packaging logic to C#, expose it to ACZ. + - FINALLY. Also please put it in engine thanks. +- Probably still gonna need an asset processing cache either way, :salute: + - SQLite it up + - Please refrain from fucking this up this could go really bad. + - No commitment only experiment for now + +## Asset Manifests | PJB monologues in the maintainer meeting +- Manifest files (not for delta updates) client can load to pre-load all lengths of audio files etc +- Potentially very useful and avoids expensive loading +- May not be necessary +- Annoying on development builds +- Ick for ACZ again, see above. +- Reasons like async loading probably not good enough? +- Vera just got me activated so sloth could show up, how nice of her. + +## Discord emote for all in-game plushies | Wrexbe +- uhhhh +- Only the good ones +- We already snivy what more do you need + - Slime plushie + - Slushie + - PJB throws BASED ACCUSSATIONS of me being a slime girl... lawsuit ensues + - SS14 in shambles + +## Optional tile movement in SS14 | Vera +- Make mob movement modular +- How much effort +- We have to sucker in SS13 codebases +- How to implement? + +Conclusion: +- Ship it, kind of half-ass it for SS14. +- Keep doing distance measurements for interactions, avoid + - Simpler physics for it? Only hard vs non-hard, no "proper" shapes. + - Have support for things such as windoors, etc. + - This logic is not trivial at all, will require in-depth understanding of how SS13 works. +- Forks can improve it further if they want. + - Perhaps upstream/merge good changes? + - as long as it doesn't diverge the code too much?? +- OpenDream needs more sophisticated implementation. + - Needs separate visual/simulation transform + - Wanted to pass this by sloth but rip + - I talked about this with Acruid once + - Gonna be kinks to work out + - Probably have shared transform system func that gets render position, returns sim pos during sim. +- Sorry, Sloth. (Listen I tried to delay this topic until you showed up ;_;) + +## No more new maps until better tools | Sloth +- [message there's a lot of details](https://discord.com/channels/310555209753690112/900426319433728030/980517246390644777) +- didn't we discuss this last meeting wtf +- drama + +Conclusion: +- Even if we had better tools, more maps isn't a good idea + - Still allow new maps but remove old ones. + - Don't increase the total map count +- Make maps unique + - Don't gimmick with a layout, gimmick with a story/theme + - Maps should have unique assets where possible (Sprites, Objects, Jobs) + - Yes this takes effort, git gud + - Who knew that making a good game requires effort +- Port the fucking map that's like 6 spaceships amalgamated together. + - I don't know what it's called (Ask in coderbus) + +## Update server every commit again | Mirror +- [message](https://discord.com/channels/310555209753690112/900426319433728030/982571963316863038) + - Damn 9 this tbh +- We have deltas + redial +- Moony mentioned still reduction in pop even through redial. + +Conclusion: +- PJB has anxiety, this will kill her +- Just don't shy away from manual publish when :eyes: +- Keep as is + +## can I get maintainer review of my design docs because you guys don't look at ideaguys | Mirror +- Well uhhhh + +Conclusion +- She is not here... +- Sorry mirror +- Easiest maintainer meeting topic of my life + +## RobustGenericAttribution Standard: yay or nay? | Vera +- https://github.com/space-wizards/RobustToolboxSpecifications/pull/3 +- don't bikeshed the name + - RobustGenericAttribution (Name Subject to chance) + - it's the choice of steins;gate + - based ref + +Conclusion +- Good idea + - Reviews left to be handled +- Not sure about the name! + - Hehehehehe + +## Matrix3 -> System.Numerics.Matrix3x2 | Electro +Conclusion: +- Probably wanna switch to System.Numerics in general + - Even if it's not great for hot loop SIMD, it's still a bit of savings. +- Differences in API needs to be evaluated, massive breaking change. + - Can we/should we use extension methods to help with this? + - Misses stuff like my tuple cast so sad + +## Early Access Roadmap +- emergency shuttle + - auto shuttle movement +- gamemodes/antags + - dynamic | mirror + - ~~!!nuke ops | Paul~~ + - lings? + - needs DNA + - blob | Remie + - cult? + - make it as good as vg for pjb + - revs | Vera + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | mirror + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- Salvage proc gen | moony + - [Cargo Commander](https://www.youtube.com/watch?v=H0LPWuTt2o4) + - **Coded on outer-rim, just needs porting to upstream** + - moony's entirely rewriting it anyways so **don't do that** +- body system but again +- body system +- Grid merging +- Diagonal tiles | sloth + - we have diagonal walls, tiles are harder +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak + - TILE MOVEMENT +- Tutorial + - In game guides + - Yes + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + - ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) +- oldchat + ui refactor | Jezithyr, DrSmugleaf + - we did it + - lost in the canadian wilds +- combat rework (needs to be bikeshedded) + - https://github.com/space-wizards/space-station-14/issues/3378 +- ghostrole bans | ShadowCommander + - unify ghost roles prototype +- Admin traitor/role menu + - Assign people roles + - Objectives UI +- Job playtime requirements | Veritius + - Playtime tracking + - Per role playtime tracking +- experimental science + - artifacts??!?!? + - "Science is still a piece of shit" - Vera 28/05/2022 +- action ui refactor, [like ss13 maybe](https://i.ytimg.com/vi/iFf_T31C-iU/maxresdefault.jpg) | Jezithyr + - stuck in canada +- any% maintainer | Jezithyr + - Stuck in canada + - soon tm +- Prototype composition | Paul + - https://github.com/space-wizards/RobustToolbox/pull/2678 + - https://github.com/space-wizards/space-station-14/pull/7403 + - paul still not done with his thesis +- Server polls +- Round Statistics + - Log votes, which maps are played the most… +- State mandated Xonotic matches + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Man down +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - Slightly better | PJB 11/06/2022 + +Crashes / Critical bugs: (when are we moving these to GitHub) +=> till next time diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-06-25.md b/src/en/maintainer-meetings/maintainer-meeting-2022-06-25.md new file mode 100644 index 000000000..fe36078ea --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-06-25.md @@ -0,0 +1,189 @@ +# Maintainer Meeting (25 June 2022) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 25 June 2022 18:00 UTC + +**Attendees:** +- DrSmugleaf +- PJB +- Wrexbe +- ElectroSR +- Vera +- metalgearsloth (just got nitro) +- Shadowcommander (late) + +## Making wide attack click-based was a mistake | Remie +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/980204271385604106) +- Too much friendly fire with Kudzu + - **Kudzu needs to be fixed separately** +- Most weapons shouldn't have broad-angle wide attacks + - **Spears should have spear-like attacks** +- Make it toggleable to let the user decide? + - Need to pick a sane default + - **Experiment with making it a hold attack, when you release left-mouse button** + - Windup? + - **Experiment with it too** + + +## Disbanding scheduled playtests for now | moony +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/986359940400680980) +- Letting in a select amount of users at a time +- High pop has design and game administration problems +- We set the cap to 65 recently (raised to 130 during playtests) +- Some SS13 servers have such high pop counts +- **We need high pop maps for this** +- **They are important to get players invested and check out new things** +- Turn them into proper feature tests? + - No because features will be broken and it will look bad +- **Decision: Change playtests to be at the same time as progress reports** + + +## Tile damage kinds | moony +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/986384961718353951) +- RobustToolbox's tiles are too limited and don't have enough space +- Do we make a SS14-specific wrapper around tiles? +- Tile controllers? + - **A separate system from normal ECS is not convenient** +- Make them use normal components and ECS? + - **We need to make our ECS not shit and implement transformless entities** + + +## ECS refactor | Jezithyr +- Two-layer ECS, archetypical for perf and sparse for entity glut, similar to the concept of worlds in some ECS +- In archetypical ECS, the problem is that adding more components to an entity at runtime is slow + - **We do this sometimes** + - Iterating and filtering entities is very fast +- With worlds we can have replays with their own world and entities + - Multithreading +- C# binds for FLECS exist + - **Decision: Experiment with it** +- Rewrite our own ECS with the important parts in C# instead? + - NIH my beloved + - Less performance overhead with marshalling + - More work to maintain +- Do we need to cut down on remo +- Flecs fixed my marriage + - Me irl + - Good for containers with child entities +- Is this the next engine rewrite +- Back to Godot +- Try to not cause an API breakage +- A - Vera + + +## Right-click for both entity menu and verb menu on entities is unintuitive | mirrorcult +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/988966819018707004) +- It's unintuitive because you have to right click twice +- There's no indication it's possible to open the verb menu +- How do we solve this + - **Decision: Trigger on hover** + - Properly handle moving diagonally onto submenu (don't make the submenu close instantly on hover leave) + + +## Expanding who can merge PRs | moony +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/988983179262189639) +- Junior maints / trusted reviewers? +- We need more people to get content PRs through +- Expanding triage perms? +- **Need more people to review** +- **Decision: Make review guidelines** + - Add big/breaking code changes to the codebase changes channel + + +## Protect master branch | mirrorcult +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/989048858216636446) +- We are getting 500 PRs a month anyway help +- We need it to make downstreams have an easier time merging changes +- Prevents cringe pushes to master +- Too many commands to update the submodule + - **Solution: make a script, you can make PRs from the CLI too** +- **Decision: protect master branch** + + +## Early Access Roadmap +- emergency shuttle | sloth + - auto shuttle movement +- gamemodes/antags + - dynamic | mirror + - ~~!!nuke ops | Paul~~ + - lings? + - needs DNA + - blob | Remie + - cult? + - make it as good as vg for pjb + - revs + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | mirror + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- Salvage proc gen | moony + - [Cargo Commander](https://www.youtube.com/watch?v=H0LPWuTt2o4) + - **Coded on outer-rim, just needs porting to upstream** + - moony's entirely rewriting it anyways so **don't do that** +- body system but again +- body system +- Grid merging +- Diagonal tiles + - we have diagonal walls, tiles are harder +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak + - TILE MOVEMENT [c#5551](https://github.com/space-wizards/space-station-14/issues/5551) +- Tutorial + - In game guides + - Yes + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + - ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) +- oldchat + ui refactor | Jezithyr, DrSmugleaf + - we did it + - lost in the canadian wilds +- combat rework (needs to be bikeshedded) + - https://github.com/space-wizards/space-station-14/issues/3378 +- ghostrole bans + - unify ghost roles prototype +- Admin traitor/role menu + - Assign people roles + - Objectives UI +- Job playtime requirements | Veritius + - Playtime tracking + - Per role playtime tracking +- experimental science + - artifacts??!?!? + - "Science is still a piece of shit" - Vera 28/05/2022 +- action ui refactor, [like ss13 maybe](https://i.ytimg.com/vi/iFf_T31C-iU/maxresdefault.jpg) | Jezithyr + - stuck in canada +- any% maintainer | Jezithyr + - Stuck in canada + - soon tm +- Prototype composition | Paul + - https://github.com/space-wizards/RobustToolbox/pull/2678 + - https://github.com/space-wizards/space-station-14/pull/7403 + - paul still not done with his thesis +- Server polls +- Round Statistics + - Log votes, which maps are played the most… +- State mandated Xonotic matches | PJB + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Man down +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - Slightly better | PJB 11/06/2022 + - It's better but still not as good as I'd like it to be | PJB 25/06/2022 + +Crashes / Critical bugs: (when are we moving these to GitHub) + => till next time diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-07-16.md b/src/en/maintainer-meetings/maintainer-meeting-2022-07-16.md new file mode 100644 index 000000000..d7219643f --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-07-16.md @@ -0,0 +1,142 @@ +# Maintainer Meeting (16 July 2022) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 16 July 2022 18:00 UTC + +**Attendees:** +- DrSmugleaf +- ElectroSR +- Silver +- Vera +- Ike709 +- ShadowCommander +- PJB + +## Replace EffectSystem with client-side entities | Metalgearsloth +- Effects don't have animations +- Can't have layered effects nor do fancy animations +- At the moment we mix the two +- They do the same thing and are legacy +- **Conclusion: Yes** + + +## Labelling EntityUids as "should have a component" | PJB +- Such as EntityUid\ +- Wouldn't really mean anything short of just being implicit cast to/from EntityUid when relevant, just a type hint kinda thing +- Vast majority would expect TransformComponent, would make more sense to explicitly say it doesn't require it +- ![](https://i.imgur.com/KqbK5vi.png) + - ship it +- Generic struct that contains the entity uid and component, keeps it in a field +- **Conclusion: Ship it (When PJB Codes It)** + + +## Engine changelogs | Ike709 +- Do we want them: Yes +- Who codes it: PJB +- When: RN +- With: MoMMI +- **Put the changelog in a markdown file** + + +## Replacing tags with tag components | Mirrorcult +- They often break with prototype inheritance +- Auto ignored comps are now a thing +- The engine needs to be optimized for this (store tag components as a bit flag instead of full components) +- Need proper ECS for this +- **Do it** + + +## Expanding the number of people allowed to merge PRs | Moony +- **Appoint more maintainers (easier now that master is protected)** +- Link docs automatically when a relevant file is changed. + - Example: Link construction docs when a file relating to construction is changed. +- Fix the GitHub workflow to auto-remove "needs review" when the PR gets one review, if more reviews are needed put the tag back on. + - Have it add waiting for review tag as well. +- **Re-read and re-write if necessary the review/PR guidelines.** +- **Show PR guidelines somewhere to the contributor when making a PR.** + + +## Making wide-attack based on click was a huge mistake | Remie +- [From previous notes](https://docs.spacestation14.io/en/maintainer-meetups/secret/2022-06-25-meetup) + + +## Early Access Roadmap +- gamemodes/antags + - dynamic | mirror + - lings? + - needs DNA + - blob | Remie + - revs + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | mirror + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- Salvage proc gen | moony + - [Cargo Commander](https://www.youtube.com/watch?v=H0LPWuTt2o4) + - **Coded on outer-rim, just needs porting to upstream** + - moony's entirely rewriting it anyways so **don't do that** +- body system but again +- body system +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak + - TILE MOVEMENT [c#5551](https://github.com/space-wizards/space-station-14/issues/5551) +- Tutorial + - In game guides + - Yes + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + - ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) +- oldchat + ui refactor | Jezithyr, DrSmugleaf + - we did it + - lost in the canadian wilds +- combat rework (needs to be bikeshedded) + - https://github.com/space-wizards/space-station-14/issues/3378 +- ghostrole bans + - unify ghost roles prototype +- Admin traitor/role menu + - Assign people roles + - Objectives UI +- Job playtime requirements | metalgearsloth, Veritius [c#9384](https://github.com/space-wizards/space-station-14/pull/9384) + - Playtime tracking + - Per role playtime tracking +- experimental science + - artifacts??!?!? + - "Science is still a piece of shit" - Vera 28/05/2022 +- action ui refactor, [like ss13 maybe](https://i.ytimg.com/vi/iFf_T31C-iU/maxresdefault.jpg) | Jezithyr + - stuck in canada +- any% maintainer | Jezithyr + - Stuck in canada + - soon tm +- Prototype composition | Paul + - https://github.com/space-wizards/RobustToolbox/pull/2678 + - https://github.com/space-wizards/space-station-14/pull/7403 + - paul still not done with his thesis +- Server polls +- Round Statistics + - Log votes, which maps are played the most… +- State mandated Xonotic matches | PJB + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Man down +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - Slightly better | PJB 11/06/2022 + - It's better but still not as good as I'd like it to be | PJB 25/06/2022 + - I haven't played the game since | PJB 16/07/2022 + +Crashes / Critical bugs: (when are we moving these to GitHub) + => till next time diff --git a/src/en/maintainer-meetings/maintainer-meeting-2022-07-30.md b/src/en/maintainer-meetings/maintainer-meeting-2022-07-30.md new file mode 100644 index 000000000..50665409b --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2022-07-30.md @@ -0,0 +1,110 @@ +# Maintainer Meeting (30 July 2022) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 30 July 2022 18:00 UTC + +**Attendees:** +- DrSmugleaf +- ShadowCommander +- ElectroSR +- Wrexbe +- moony +- PJB +- Visne + +## Are we The Upstream or our own server | moony +- Will there be a separate repo + - **No** +- Don't hold game design back because we're "upstream" + - If a feature needs to be killed to make the game better, don't keep it because downstreams might want it +- Can we trust project managers with SSH: + - Yes, assuming Silver doesn't object. +- Change server configs in the repo instead of Ansible. + - Is this worse for downstreams + - Downstreams can change it promptly in the config file + - **Put all the default configs in the TOML config file so upstream changes don't change downstream** +- Do we make different CVars changeable by different permission groups? (Game admin, moderator) + - **Yes** + + +## Remove game settings from server config | PJB +- We basically ended up discussing this in the previous point +- "Thank you for the bullet point" - Smugleaf + + +## Hud refactor ready for review | Jezithyr +- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + +## Early Access Roadmap +- gamemodes/antags + - dynamic | mirror + - lings? + - needs DNA + - blob | Remie + - revs + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | mirror + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- Salvage proc gen | moony + - [Cargo Commander](https://www.youtube.com/watch?v=H0LPWuTt2o4) + - **Coded on outer-rim, just needs porting to upstream** + - moony's entirely rewriting it anyways so **don't do that** +- body system but again +- body system +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak +- Tutorial + - In game guides + - Yes + - Waiting on pretty labels + - books/ebooks in pda + - ebooks preloaded on pda for selected job + - when rich text gets merged + - ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) +- oldchat + ui refactor READY FOR REVIEW | Jezithyr, DrSmugleaf + - we did it + - lost in the canadian wilds + - found in the canadian wilds +- combat rework (needs to be bikeshedded) + - https://github.com/space-wizards/space-station-14/issues/3378 +- ghostrole/antag bans + - unify ghost roles prototype +- Job playtime requirements | metalgearsloth, Veritius [c#9384](https://github.com/space-wizards/space-station-14/pull/9384) + - Playtime tracking + - Per role playtime tracking +- experimental science + - artifacts??!?!? + - "Science is still a piece of shit" - Vera 28/05/2022 +- action ui refactor, [like ss13 maybe](https://i.ytimg.com/vi/iFf_T31C-iU/maxresdefault.jpg) | Jezithyr + - stuck in canada +- any% maintainer | Jezithyr + - Stuck in canada + - soon tm +- State mandated Xonotic matches | PJB + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Man down +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - Slightly better | PJB 11/06/2022 + - It's better but still not as good as I'd like it to be | PJB 25/06/2022 + - I haven't played the game since | PJB 16/07/2022 + - "Please read the last line of that subsection" | PJB 30/07/2022 +- A trailer for Steam + +Crashes / Critical bugs: (when are we moving these to GitHub) +=> till next time From e886acb6d90cf12421cfeca24cdb6cb0274e5382 Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Sat, 30 Sep 2023 00:35:38 -0700 Subject: [PATCH 10/13] Add 2023 maintainer meeting notes --- .../maintainer-meeting-2023-01-07.md | 165 ++++++++++++++ .../maintainer-meeting-2023-01-21.md | 161 ++++++++++++++ .../maintainer-meeting-2023-02-11.md | 139 ++++++++++++ .../maintainer-meeting-2023-03-05.md | 118 ++++++++++ .../maintainer-meeting-2023-05-06.md | 80 +++++++ .../maintainer-meeting-2023-05-20.md | 117 ++++++++++ .../maintainer-meeting-2023-06-10.md | 126 +++++++++++ .../maintainer-meeting-2023-07-29.md | 148 +++++++++++++ .../maintainer-meeting-2023-08-19.md | 201 ++++++++++++++++++ .../maintainer-meeting-2023-09-02.md | 129 +++++++++++ 10 files changed, 1384 insertions(+) create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2023-01-07.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2023-01-21.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2023-02-11.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2023-03-05.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2023-05-06.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2023-05-20.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2023-06-10.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2023-07-29.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2023-08-19.md create mode 100644 src/en/maintainer-meetings/maintainer-meeting-2023-09-02.md diff --git a/src/en/maintainer-meetings/maintainer-meeting-2023-01-07.md b/src/en/maintainer-meetings/maintainer-meeting-2023-01-07.md new file mode 100644 index 000000000..1664b2ac7 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2023-01-07.md @@ -0,0 +1,165 @@ +# Maintainer Meeting (07 January 2023) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 07 January 2023 19:00 UTC + +**Attendees:** +- Moony +- Visne +- ElectroSR +- Remie +- Flipp +- ShadowCommander +- DrSmugleaf +- Vera +- PJB + +## Using source generators for (de)serialization | DrSmugleaf +- Expression trees were a mistake +- **sounds good** + + +## Enforce AccessAttribute and better documentation on new PRs | metalgearsloth +- [Discord link](https://discord.com/channels/310555209753690112/900426319433728030/1060739900758044792) +- **yes** +- may not work for shared components +- check if it works with implementations of the whitelisted type for shared systems + - If it doesn't, make [Access] take an optional list of strings for types in server/client +- ping Vera if something goes terribly wrong + + +## Minify meta.json files | metalgearsloth +- [Discord link](https://discord.com/channels/310555209753690112/900426319433728030/1060432256092618753) +- [GitHub PR](https://github.com/space-wizards/space-station-14/pull/13035) +- Do we minify them + - **no** +- If not change the editorconfig to match the current style (2 space indents) + - **yes** +- Apparently some people copypaste existing meta.jsons to create new ones, which has caused many errors in multiple RSIs +- Reasons not to: + - harder to edit + - harder to review + - ? +- Reasons to: + - there's editor plugins that minify and unminify automatically for you + - this isnt a reason + - ~~saves 1.5 MB~~ not important? it's compressed when game is packaged, etc + - ? + + +## Require all public fields and methods to include xmldoc comments | moony +- [Discord link](https://discord.com/channels/310555209753690112/900426319433728030/1055341182248558623) +- Make sure every method is documented +- Document every field +- **Put this in the PR guidelines** +- https://docs.spacestation14.io/en/getting-started/pr-guideline + + +## Rename entityquery to componentquery | metalgearsloth +- [Discord link](https://discord.com/channels/310555209753690112/900426319433728030/1030122281462136862) +- **Yes** +- Wait for archetypes to rename them + + +## Should Helpers and Extensions be moved to EntitySystems | ShadowCommander +- [Discord link](https://discord.com/channels/310555209753690112/900426319433728030/1018323213517856838) +- **Yes, if it refers to any manager, system or entity** +- **If it's a random helper to save code it doesn't need to be** + + +## Resolve pattern | DrSmugleaf +- **Add call site to arguments of resolve with the new .NET 6 arguments so it can log the file and line if a warning happens.** + + +## Turn IPlayerSession into an entity | moony +- [Discord link](https://discord.com/channels/310555209753690112/900426319433728030/1015187820752683021) +- **Yes** +- This would let us modularize the entire thing and allow us to use events on players directly, letting us get rid of many player-indexed dicts in favor of storing it on the player +- Should this be done at an engine level, or at a content level? +- **Engine** +- **Keep player session, then have an entity field on the session for its data** +- **Mind would still be separate since player session is transient** +- **You can have multiple minds for the lifetime of a single player session** + + +## Replace BUI state handling with normal component state handling for BUI prediction | ElectroSR +- [Discord link](https://discord.com/channels/310555209753690112/900426319433728030/1012164293816483870) +- Laggy interfaces suck +- Everyone is actively avoiding BUI atm +- **Prefer component states to BUI states** +- **Someone refactor BUI please** +- **Have the client manage the UI, the server needs to know if its open** + + +## Component references | PJB +- **Try to remove them** +- How do we have client-only or server-only data on a component without it +- Use different components for that data? + + +## Archetypes | DrSmugleaf +- B O N U S T O P I C +- Need to be made faster before we implement them outside of Robust.Benchmarks +- Do archetype chunking to optimize for CPU cache hits +- Check startup time specially for the JIT when creating all the archetypes +- [Flecs benchmarks](https://github.com/SanderMertens/ecs_benchmark) + + +## Early Access Roadmap +- gamemodes/antags + - dynamic | mirror + - lings? + - needs DNA + - blob | Remie + - revolutionaries + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | mirror ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- Salvage proc gen | moony + - she did it go port it https://github.com/Citadel-Station-13/space-station-14/tree/master/Content.Server/_Citadel/Worldgen +- body system but again +- body system +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak +- Tutorial + - In game + - we have a pr open +- combat rework (needs to be bikeshedded) + - https://github.com/space-wizards/space-station-14/issues/3378 +- ghostrole/antag bans + - unify ghost roles prototype (mind refactor) +- experimental science + - "Science is still a piece of shit" - Vera 28/05/2022 + - "I haven't played the game in 2 years" - Vera 07/01/2023 +- any% maintainer | Jezithyr + - Stuck in canada + - soon tm +- State mandated Xonotic matches | PJB + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Woman down +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - Slightly better | PJB 11/06/2022 + - It's better but still not as good as I'd like it to be | PJB 25/06/2022 + - I haven't played the game since | PJB 16/07/2022 + - "Please read the last line of that subsection" | PJB 30/07/2022 + - "Please unread the last line of the previous subsection" | PJB 07/01/2023 +- A trailer for Steam + +Crashes / Critical bugs: (when are we moving these to GitHub) +- role timers not counting properly + => till next time diff --git a/src/en/maintainer-meetings/maintainer-meeting-2023-01-21.md b/src/en/maintainer-meetings/maintainer-meeting-2023-01-21.md new file mode 100644 index 000000000..9b57350df --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2023-01-21.md @@ -0,0 +1,161 @@ +# Maintainer Meeting (21 January 2023) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 21 January 2023 19:00 UTC + +**Attendees:** +- moony +- AJCM +- Zoldorf +- Visne +- ElectroSR +- Remie +- Wrexbe +- DrSmugleaf +- Vera +- mirrorcult +- PJB + +## Bumping map count to 15 | metalgearsloth +- Most of [c#10595](https://github.com/space-wizards/space-station-14/issues/10595) is done +- 15 is too many +- **Bump it up to 12** +- **1 more low pop map, 1 more high pop map** + +## What to do about RSI licensing | metalgearsloth +- Do we use RGA outside of the folder + - No, RGAs are for other resources +- Do we use something else entirely +- **Make the license field a list of licenses interpreted by a script** +- **Copyright is freeform interpreted by a human** +- **Don't use RGAs for RSIs** + +## Do we explicitly block Windows 7 | PJB +- **Make the pop-up always show up, not only once** +- **Change the text and make closing the pop-up close the launcher too** +- **Localize the pop-up message to Russian if the OS is in Russian** + +## Do we mandate guidebook entries for new large features | mirrorcult +- **Yes** + +## How do we distribute replay recordings & clients, and should we hide some data | ElectroSR +- Should we hide data such as admin aghost positions? + - No +- How do we distribute it + - Tie replays to a version (game/engine), metadata and a link + - Download the replay and its data should launch the sandboxed client with a specific version + - Include the commit number in the replay file (any data can be appended to the replay file from content) + - Content versioning scheme (commit number), download link (if it doesn't work you download it yourself) + +## Can we do another stress test trace | mirrorcult +- Try and say that 10 times fast "stress test trace" + - Stresst +- Run it from time to time (ping PJB) +- Ping tester for it +- Having links that connect you to a server would be useful + +## PJB's renderer ASMR for Jez | PJB +- Problems with the renderer: +- We can't do what Byond can with planes, complex filtering +- We don't want planes (they are a bad idea) +- The alternative is a GOOD API (difficult) +- We can't have multiple post-shaders +- The hard part of a renderer is integrating it into the rest of the game engine (we are 2D) +- There are no existing rendering APIs we can just take +- We need a rendering API to: + - Draw textures, polygons at locations +- The game's code: + - Puts sprites at locations + - People do funny things (shaders, render targets) +- Our API has some of this but is unperformant, not very flexible +- Going from "draw sprite" to "opengl arrays" is just a lot of glue-code, not complicated +- Clyde is divided internally, only one file takes the sprites and actually draws them with the rest of the API +- Using a different rendering API to replace Clyde because of the maintenance burden requires it doing everything that Clyde already does +- We can't build Clyde on top of another incomplete rendering API because it would be spaghetti +- When we tried to use Godot we had our own sprite component and tried to build it on top + - Godot was too high level, too unperformant to integrate with nicely + - Need something that's lower level + - Godot 4 nonwithstanding +- Maybe something like Monogame but we would need a lot of glue code (replacing all of Clyde and refactoring anything that uses Clyde) +- PJB transferred from the Clyde mines and into the Monogame mines (we would need to fork it) +- Any other libraries unknown that don't need us to half-ass it +- Not worth the complexity +- PART 2: Even if you can find a good rendering API +- There are some good libraries (e.g. BGFX) that make you not need to write separate OpenGL/DirectX/Vulkan backends +- You would still have your own "Clyde" on top of it +- We still support very old hardware up to 10 years old, even if you raised this number WebGPU/etc require more modern APIs which would drop older hardware +- We don't want to expose the graphics library on Robust +- PROBLEM 2 (It's actually 3): +- We need to support Veldrid +- PROBLEM 3 (4): +- Older hardware +- this is still all just problem 2: "older hardware" she's just talking in a very roundabout funny manner +- Don't worry about it +- Maybe (maybe) use (maybe) WebGPU which uses the browser which reduces a lot of things you would need to create +- DirectX 10.1 hardware is what we target +- Visne left to go party, he is uncool +- Writing multiple backends: not good +- PJB is lost and confused, sad +- Just use Clyde :+1: +- Clyde2.0 When +- **If you want it easy drop OpenGL support** + - Less ass to maintain +- There are no plug-in rendering APIs +- Maybe get WebGPU or Vulkan-based, code against that, OpenGL is a fuck + + +## Early Access Roadmap +- gamemodes/antags + - dynamic | mirror + - lings? + - needs DNA + - blob | Remie + - revolutionaries + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | jez ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- Salvage proc gen | moony + - she did it go port it https://github.com/Citadel-Station-13/space-station-14/tree/master/Content.Server/_Citadel/Worldgen +- body system but again +- body system +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak +- Add more shit to the guidebook +- combat rework (needs to be bikeshedded) + - https://github.com/space-wizards/space-station-14/issues/3378 +- ghostrole/antag bans + - unify ghost roles prototype (mind refactor) +- experimental science + - "Science is still a piece of shit" - Vera 28/05/2022 + - "I haven't played the game in 2 years" - Vera 07/01/2023 +- State mandated Xonotic matches | PJB + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Woman down + - She added Miku to her server (real) now you can play as miku pls play with her +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - Slightly better | PJB 11/06/2022 + - It's better but still not as good as I'd like it to be | PJB 25/06/2022 + - I haven't played the game since | PJB 16/07/2022 + - "Please read the last line of that subsection" | PJB 30/07/2022 + - "Please unread the last line of the previous subsection" | PJB 07/01/2023 + - "I spent the last two weeks coding Rain World" | PJB 21/01/2023 +- A trailer for Steam + +Crashes / Critical bugs: (when are we moving these to GitHub) +- role timers not counting properly + => till next time diff --git a/src/en/maintainer-meetings/maintainer-meeting-2023-02-11.md b/src/en/maintainer-meetings/maintainer-meeting-2023-02-11.md new file mode 100644 index 000000000..889def06c --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2023-02-11.md @@ -0,0 +1,139 @@ +# Maintainer Meeting (11 February 2023) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 11 February 2023 19:00 UTC + +**Attendees:** +- Remie +- keronshb +- ElectroSR +- DrSmugleaf +- Vera +- PJB +- moony +- Visne +- Jezithyr +- flipp +- Zoldorf +- Wrexbe + +## Standardize and document naming for (system) dependencies | Vera +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/1070066968419381320) +- [Original discussion](https://discord.com/channels/310555209753690112/770682801607278632/1070064771761709076) +- **Remove the prefix and suffix.** +- What about UIControllers, where there is SharedHandsSystem, HandsGUI, HandsUIController. +- Keep it explicit with `_handsSystem`. +- **Make a maintainer vote for whether or not we enforce this (either an analyzer or as part of review.)** + +## Debug vs DebugOpt vs Release vs ReleaseTools build configurations | PJB +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/1072637756955693067) +- **Yes** +- Release (closest to the launcher version) would be closer to what we have for the downloadable public build (FULL_RELEASE). + - Can't be compiled easily because of filepath changes. +- Current release configuration (debug tools available) can become DebugOpt. +- Current debug configuration is the new Debug configuration. +- Tools (for mapping) is release with checks disabled and optimizations/tools enabled (tools is the launcher connect command). +- to summarize: + - `Debug`: optimizations disabled, asserts enabled, tools enabled. + - `DebugOpt`: optimizations enabled, asserts enabled, tools enabled. + - `Tools`: optimizations enabled, asserts disabled, tools enabled. + - `Release`: optimizations, asserts and tools disabled. As close to the launcher builds as you're gonna get while it stills runs from your repo. +- **Don't disable exception tolerance in debug.** + +## Medical refactor | Jezithyr +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/1073932941878636624) +- This is basically old baymed (+ rimworld ~~+ EFT~~) +- Take notes on brainmed +- Don't make it overly complex +- Make cloning lategame/not a solution to everything + - And implement speedcloning where releasing someone too soon makes them miss body parts + +## Game admin tooling | DrSmugleaf +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/1073933000204619807) (mistake) +- LOGS BAD (kind of) +- Not being able to search by username (have to correlate with the player list) + - Same in the player list +- Replays will help +- Add more buttons to the player panel (following players is ass) +- Make admin logs clickable (we have rich text now) +- Add UI for role bans +- Whitelist UI +- Admin wishlist [#13270](https://github.com/space-wizards/space-station-14/issues/13270) +- [Admin wishlist 2](https://github.com/space-wizards/space-station-14/issues?q=is%3Aopen+is%3Aissue+author%3A%40me+wishlist) +- [Admin wishlist 3](https://github.com/space-wizards/space-station-14/issues/13269) +- Fix not being able to use role ban and role time commands with offline players +- Add month and year to notes +- Greyscale/Grey out older notes +- Add UI to see a player's inventory including pocket items +- Admins can't see whispers +- Antag/ghost role bans +- Add categories to admin logs (groups of types) (not in the database, do it filtering on the frontend) +- Add a cvar to delete old admin logs + +## Server pop with the new large map | Pancake +- [Discord message](https://discord.com/channels/310555209753690112/900426319433728030/1073935104176562236) +- [Admin chat Discord message](https://discord.com/channels/310555209753690112/811324338099585036/1073934949633237092) +- Do we increase player cap + - idk + - **make a vote** + - **mirror take the wheel** +- Do we change the player cap based on the map + - probably not +- Do we make an US East server + - **yes** + +## Early Access Roadmap +- gamemodes/antags + - dynamic | mirror + - lings? + - needs DNA + - blob | Remie + - revolutionaries + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | jez ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- Salvage proc gen | moony + - she did it go port it https://github.com/Citadel-Station-13/space-station-14/tree/master/Content.Server/_Citadel/Worldgen +- body system but again +- body system +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak +- combat rework (needs to be bikeshedded) + - https://github.com/space-wizards/space-station-14/issues/3378 +- ghostrole/antag bans +- experimental science + - "Science is still a piece of shit" - Vera 28/05/2022 + - "I haven't played the game in 2 years" - Vera 07/01/2023 + - "Uhhhhhhhhhhhhhhhhh I'm sorry EmoGarbage" - Vera 11/02/2023 +- State mandated Xonotic matches | PJB + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Woman down + - She added Miku to her server (real) now you can play as miku pls play with her +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - Slightly better | PJB 11/06/2022 + - It's better but still not as good as I'd like it to be | PJB 25/06/2022 + - I haven't played the game since | PJB 16/07/2022 + - "Please read the last line of that subsection" | PJB 30/07/2022 + - "Please unread the last line of the previous subsection" | PJB 07/01/2023 + - "I spent the last two weeks coding Rain World" | PJB 21/01/2023 + - "I should've tried to run it from the AirBNB that I was staying over in my skiing trip but I didn't" | PJB 11/02/2023 +- A trailer for Steam + +Crashes / Critical bugs: (when are we moving these to GitHub) +- role timers not counting properly (pjb added a thing to check if its a db issue) (epico) + => till next time diff --git a/src/en/maintainer-meetings/maintainer-meeting-2023-03-05.md b/src/en/maintainer-meetings/maintainer-meeting-2023-03-05.md new file mode 100644 index 000000000..6276bb4b4 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2023-03-05.md @@ -0,0 +1,118 @@ +# Maintainer Meeting (5 March 2023) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +> **Time:** 5 March 2023 19:00 UTC +> +> **Attendees:** +> - Wrexbe +> - Jezithyr +> - Visne +> - ElectroSR +> - PJB +> - DrSmugleaf +> - Paul +> - moony +> - keronshb + +## Re-enabling GitHub discussions | PJB +- Open them up to ideaguysing? +- We originally closed them because bot doesn't track them +- We disabled it because MoMMI doesn't post GitHub discussions in the github channel + - **If we agree that it's good PJB codes it** +- Verdict: **Yes** + +## YAML Prototype Editor | DrSmugleaf +- In-game or out-of-game + - If it's in-game it doesn't need to be downloaded separately but it can't be used if the branch doesn't build (can be solved by not using latest) + - Out of game means having to use avalonia :death: + - In-game means having to use robust's UI :death: + - In-game means it could live reload, and show it + - If the editor was good enough, we could store the data in a better format for machines +- Could be used by admins when uploading prototypes? +- Exporting to Resources/Prototypes when in local development +- Being able to view prototypes that have been uploaded through uploadfile in an UI? imagine +- **Don't do it out of game with Avalonia** +- **Do it in-game and maybe later move it to be inside a RobustToolbox editor** + + +## What to do about delta comp states | metalgearsloth +- Make comps track it themselves? https://discord.com/channels/310555209753690112/310555209753690112/1080275438913470564 +- Just use smaller components? (in the above case per-chunk ents but then that likely requires pvssystem changes and maybe archetypes) +- Pre-empting "do we need this" fixtures were split out from physics as grid movement was making the game unplayable for slow connections +- **Look into supporting chunk entities** + - **For bounds, chunks are multiples of 4 so it's not a problem** (i regard to chunk entities sitting at the corner of chunks) +- **Archetypes when** +- hampter, buncake + + +## Turning off settings requiring reviews to be approved | metalgearsloth +- It's just a placebo +- You can just dismiss it anyway. It doesn't need to remind me comments exist. +- I have already vibechecked the pr by that point even if I wasn't the reviewer. +- About as useful as protecting engine master +- Assuming it takes 5-10 seconds per PR this wastes 40+minutes a month +- Take a survey of active maints or smth idklol +- **Just use Bors you don't need to dismiss the reviews and Bors will fail if you merge something while it's working** + - **Ok don't do it yet until we fix the changelog bot** + + +## Early Access Roadmap +- gamemodes/antags + - dynamic | mirror + - lings? + - needs DNA + - blob | Remie + - revolutionaries + - we want a generic antag overlay system + - loyalty implant + - faction system +- EL BODY SYSTEM | jez ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- Salvage proc gen | moony + - she did it go port it https://github.com/Citadel-Station-13/space-station-14/tree/master/Content.Server/_Citadel/Worldgen +- body system but again +- body system +- __***ENGINE EDITOR***__ | PJB + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak +- combat rework (needs to be bikeshedded) + - https://github.com/space-wizards/space-station-14/issues/3378 +- ghostrole/antag bans +- State mandated Xonotic matches | PJB + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Woman down + - She added Miku to her server (real) now you can play as miku pls play with her + - Implement Xonotic as a plugin to ss14 +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - people like shitty games + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - ex: SCREEEEEEEEE + - Slightly better | PJB 11/06/2022 + - It's better but still not as good as I'd like it to be | PJB 25/06/2022 + - I haven't played the game since | PJB 16/07/2022 + - "Please read the last line of that subsection" | PJB 30/07/2022 + - "Please unread the last line of the previous subsection" | PJB 07/01/2023 + - "I spent the last two weeks coding Rain World" | PJB 21/01/2023 + - "I should've tried to run it from the AirBNB that I was staying over in my skiing trip but I didn't" | PJB 11/02/2023 + - "It still runs like shit" | PJB 05/03/2023 +- A trailer for Steam + - Liltenhead made one + +Crashes / Critical bugs: (when are we moving these to GitHub) +- role timers not counting properly (pjb added a thing to check if its a db issue) (epico) + - the web ui just chops off after 24 hours haha + => till next time + like and subscribe + smash that button + did you know only 6% of contribs join this meeting? diff --git a/src/en/maintainer-meetings/maintainer-meeting-2023-05-06.md b/src/en/maintainer-meetings/maintainer-meeting-2023-05-06.md new file mode 100644 index 000000000..04fcc5513 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2023-05-06.md @@ -0,0 +1,80 @@ +# Maintainer Meeting (6 May 2023) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 6 May 2023 19:00 UTC + +**Attendees:** +- DrSmugleaf +- Visne +- Flipp +- KeronSHB +- ShadowCommander +- mirrorcult + +## Dropping content support for disabling client-side prediction | ElectroSR +- **Simply make the server aware of which clients have prediction disabled instead** +- Might be annoying for the small amount of people that use it + +## Jez talks about telemetry | Jezithyr + +## Early Access Roadmap +- gamemodes/antags + - dynamic | mirror + - lings? + - needs DNA + - blob | Remie + - revolutionaries + - we want a generic antag overlay system + - loyalty implant + - faction system + - clock cult | keronshb +- EL BODY SYSTEM | jez ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- Salvage proc gen | moony [c#15120](https://github.com/space-wizards/space-station-14/pull/15120) + - she did it go port it https://github.com/Citadel-Station-13/space-station-14/tree/master/Content.Server/_Citadel/Worldgen +- body system but again +- body system +- __***ENGINE EDITOR***__ + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak +- ghostrole/antag bans +- State mandated Xonotic matches | PJB + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Woman down + - She added Miku to her server (real) now you can play as miku pls play with her + - Implement Xonotic as a plugin to ss14 +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - people like shitty games + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - ex: SCREEEEEEEEE + - Slightly better | PJB 11/06/2022 + - It's better but still not as good as I'd like it to be | PJB 25/06/2022 + - I haven't played the game since | PJB 16/07/2022 + - "Please read the last line of that subsection" | PJB 30/07/2022 + - "Please unread the last line of the previous subsection" | PJB 07/01/2023 + - "I spent the last two weeks coding Rain World" | PJB 21/01/2023 + - "I should've tried to run it from the AirBNB that I was staying over in my skiing trip but I didn't" | PJB 11/02/2023 + - "It still runs like shit" | PJB 05/03/2023 + - "Uh" | PJB 19/03/2023 + - "Smugleaf to answer the literal question posed, because its better than Byond I hope" | PJB 01/04/2023 + - "Well I have a sample size of 1 myself and I do believe people do not in fact play the game" | PJB 15/04/2023 +- A trailer for Steam + - Also the screenshots for steam and the website + +Crashes / Critical bugs: (when are we moving these to GitHub) +- admin player overlay broke + => till next time + like and subscribe + smash that button + did you know only 6% of contribs join this meeting? diff --git a/src/en/maintainer-meetings/maintainer-meeting-2023-05-20.md b/src/en/maintainer-meetings/maintainer-meeting-2023-05-20.md new file mode 100644 index 000000000..b5a0ef312 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2023-05-20.md @@ -0,0 +1,117 @@ +# Maintainer Meeting (20 May 2023) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 20 May 2023 19:00 UTC + +**Attendees:** +- DrSmugleaf +- flipp +- metalgearsloth +- ShadowCommander +- PJB +- Visne +- keronshb +- ElectroSR +- Jezithyr +- mirrorcult + +## Component shutdown events | ElectroSR +- Should we combine ComponentShutdown and ComponentRemove events? + - Yes, but also remove the separation between component Add and Init (and Startup) + - Also remove component enabling/disabling +- Should we add a new event that only gets raised when a component is explicitly removed, rather than due to entity deletion. Standard removal events would still get raised. + - Context: removal logic that is a waste of time if the entity is just getting deleted anyways. + - Components shouldn't do complex work in removal/deletion. Deletion should just get rid of things as aggressively as possible, only keeping the game state consistent. + - Removal of components should be private to systems rather than a public API. Systems should do "on removal" logic themselves in a public function that removes components for you. + - Make it opt in (Access attribute). + - Keep a deletion event if the entity is deleted altogether, but don't fire it if individual component is removed. + - Combined with the earlier point, this means that if you ABSOLUTELY MUST run code on all component removals, you need to explicitly call it from both your public removal function AND on deletione event. + - Keep a component removal event in case some use case really needs it. +- If we have a separate explicit removal event, can we eventually remove InSafeOrder() & just enforce that component removal doesn't require querying other components on that entity? + - **YES** + +Edit with bonus questions: +- If the events are merged, what do we do with deffered component removal. Currently it raises a shutdown event, but defers the remove event & actual removal. + - idk +- Also: should events be raised for components that are deferred for removal (i.e., should the subscription enumerator check the component's lifestage?) + - idk 2 + + +## UI stylesheets and themes | ElectroSR +- Meeting topic/discussion: Stylesheets & themes. +- How do we make them better? Stylesheets and rich text should probably use themes when possible. + +- Decision: + - Combine stylesheets and themes, move it to YAML + - Context: stylesheets are originally C# because they need to be able to describe C# objects like style boxes, and `.css` can't do that. + - Whoever makes the YAML syntax has to figure out how to implement constants for re-use in the stylesheet. + - Make it easy to extend stylesheets (edits of simple properties, colors etc). + - For complex animations/styling of controls, content should inherit engine controls and implement logic there. + - We will not be implementing more complex styling functions from CSS like built-in transitions, aniamtions, descendant selector. + + +## Arch | DrSmugleaf +- Smug giving status updates on Arch + - She's ranting I love it when she has this energy. + - She's explaining it again + + +## Early Access Roadmap +- gamemodes/antags + - dynamic [c#16548](https://github.com/space-wizards/space-station-14/pull/16548) + - lings? [c#16513](https://github.com/space-wizards/space-station-14/pull/16513) + - needs DNA + - blob + - revolutionaries + - we want a generic antag overlay system + - loyalty implant + - faction system + - clock cult | keronshb +- EL BODY SYSTEM | jez (sloth?) ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- body system but again +- body system +- __***ENGINE EDITOR***__ + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak +- ghostrole/antag bans +- State mandated Xonotic matches | PJB + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Woman down + - She added Miku to her server (real) now you can play as miku pls play with her + - Implement Xonotic as a plugin to ss14 +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - people like shitty games + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - ex: SCREEEEEEEEE + - Slightly better | PJB 11/06/2022 + - It's better but still not as good as I'd like it to be | PJB 25/06/2022 + - I haven't played the game since | PJB 16/07/2022 + - "Please read the last line of that subsection" | PJB 30/07/2022 + - "Please unread the last line of the previous subsection" | PJB 07/01/2023 + - "I spent the last two weeks coding Rain World" | PJB 21/01/2023 + - "I should've tried to run it from the AirBNB that I was staying over in my skiing trip but I didn't" | PJB 11/02/2023 + - "It still runs like shit" | PJB 05/03/2023 + - "Uh" | PJB 19/03/2023 + - "Smugleaf to answer the literal question posed, because its better than Byond I hope" | PJB 01/04/2023 + - "Well I have a sample size of 1 myself and I do believe people do not in fact play the game" | PJB 15/04/2023 + - "Well I mean well ok we are somewhat close to being able to play the game, I still haven't played the game however" | PJB 20/05/2023 +- A trailer for Steam + - Also the screenshots for steam and the website + +Crashes / Critical bugs: (when are we moving these to GitHub)ç +=> till next time +like and subscribe +smash that button +did you know only 6% of contribs join this meeting? diff --git a/src/en/maintainer-meetings/maintainer-meeting-2023-06-10.md b/src/en/maintainer-meetings/maintainer-meeting-2023-06-10.md new file mode 100644 index 000000000..0989e5eea --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2023-06-10.md @@ -0,0 +1,126 @@ +# Maintainer Meeting (10 Jun 2023) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 10 Jun 2023 19:00 UTC + +**Attendees:** +- DrSmugleaf +- PJB +- ElectroSR +- KeronSHB + +## Target round length | ShadowCommander +- How long? + - Citadel is too long at 2 sometimes not + - Really depends on what's going on in the round + - **60/90 minutes and give admins permissions to extend the shift** +- **Not hard-forced mechanically** + - i.e. no forced un-recallable shuttle at 90 minute mark + - If someone holds the round hostage others AHelp it +- **If we want to end the round, start ramping up events and disaster on the round** + - Overridable by admins + - Maybe override with player vote? + - Obviously tune for MRP + - Should take state of round into account +- Add a TF2 payload cart to SS14 + +## Formatting for log sawmills | metalgearsloth +- Options: + - name + - name.othername + - name_name + - Name + - Name.Name + - Name_Name + +- **Decision**: + - snake case elements + - example: `foo_bar.baz` + +## Obsolete freeze | PJB +![](https://hackmd.io/_uploads/B17h1SMP2.png) + +- Fucking fix the code reeee +- **"Just don't obsolete anything that's on the tier of `.Owner` for now probably"** +- **No content freezes or anything like that, it doesn't work** + +## IoCManager resolves in UI code | PJB +- UI controls currently rely on `IoCManager.Resolve()` in current +- **Option 1: constructor parameter** + - `new Control(UI)` + - First parameter becomes `IUserInterfaceManager` + - Must be passed through manually when creating new controls + - XamlUI does it automatically, only relevant for dynamic control creation. + - Hopefully not too inconvenient, have a `UI` property you can pass through easily. + - Add `IDependencyCollection` property to `IUserInterfaceManager` to link it through. + +- ~~Option 2~~: + - UI manager gets passed through on tree attach (when you add control as child of another one). + - Means no needing to pass constructor parameter manually. + - Fetching dependencies like sawmills must be done from `EnteredTree()` instead. + - Add `IDependencyCollection` property to `IUserInterfaceManager` to link it through. + +## How do we make PRs easier to review +- **We don't know** + +## Early Access Roadmap +- gamemodes/antags + - dynamic [c#16548](https://github.com/space-wizards/space-station-14/pull/16548) + - lings? [c#16513](https://github.com/space-wizards/space-station-14/pull/16513) + - needs DNA + - blob + - revolutionaries + - we want a generic antag overlay system + - loyalty implant + - faction system + - clock cult | keronshb + - waiting for mind rework +- EL BODY SYSTEM | jez (sloth?) ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- body system but again +- body system +- __***ENGINE EDITOR***__ + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak +- ghostrole/antag bans +- State mandated Xonotic matches | PJB + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Woman down + - She added Miku to her server (real) now you can play as miku pls play with her + - Implement Xonotic as a plugin to ss14 +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - people like shitty games + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - ex: SCREEEEEEEEE + - Slightly better | PJB 11/06/2022 + - It's better but still not as good as I'd like it to be | PJB 25/06/2022 + - I haven't played the game since | PJB 16/07/2022 + - "Please read the last line of that subsection" | PJB 30/07/2022 + - "Please unread the last line of the previous subsection" | PJB 07/01/2023 + - "I spent the last two weeks coding Rain World" | PJB 21/01/2023 + - "I should've tried to run it from the AirBNB that I was staying over in my skiing trip but I didn't" | PJB 11/02/2023 + - "It still runs like shit" | PJB 05/03/2023 + - "Uh" | PJB 19/03/2023 + - "Smugleaf to answer the literal question posed, because its better than Byond I hope" | PJB 01/04/2023 + - "Well I have a sample size of 1 myself and I do believe people do not in fact play the game" | PJB 15/04/2023 + - "Well I mean well ok we are somewhat close to being able to play the game, I still haven't played the game however" | PJB 20/05/2023 + - "It still runs pretty bad however I do understand how people play it" | PJB 10/06/2023 +- A trailer for Steam + - Also the screenshots for steam and the website + +Crashes / Critical bugs: (when are we moving these to GitHub) +=> till next time +like and subscribe +smash that button +did you know only 6% of contribs join this meeting? diff --git a/src/en/maintainer-meetings/maintainer-meeting-2023-07-29.md b/src/en/maintainer-meetings/maintainer-meeting-2023-07-29.md new file mode 100644 index 000000000..a0bbdfae2 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2023-07-29.md @@ -0,0 +1,148 @@ +# Maintainer Meeting (29 Jul 2023) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 29 Jul 2023 19:00 UTC + +**Attendees:** +- EmoGarbage +- Visne +- Wrexbe +- ElectroSR +- PJB +- Chief_Engineer +- Moony +- Notafet + +## Ambiguity of rule-relevant information in-game - Chief Engineer +* Certain rules are unclear at least partially because the game doesn't do a great job of presenting certain types of information to the player. This can result in confusion around certain rules, particularly for players who don't spend a significant amount of time in the game. + +* This is the information I can think of that should be clearly presented in-game: +* Antag status, including for ghost roles + * Example: Slimes clearly™️ communicate their antag status in their role description, but this is inconsistent with other ghost roles which also have ghost role rules saying that they are an antag. + * **On spawn (regular jobs & ghost roles), the character window should always open.** + * **Character menu gets far more info such as antag status, job expectation, etc... Actually make it useful!** + * **For ghost roles, add lottery, so people have time to read the role's description.** + * **This should provide people unmissable info what's expected of them (e.g. if they're antag), if people still wanna be friendly in an RP game we can't stop them.** + * What is contraband, specifically what is non-stealth contraband + * This is info for the antag player (in the item status box), so people realize what they're buying is contraband. + * **Silly stuff like syndicate balloon isn't really contraband: security can't assume you're a traitor.** + * ![](https://hackmd.io/_uploads/HJFTnRMjh.png) + * **No explicit indication for obvious crap like emag, power sink, etc. Players should use their brain, but do have good descriptions for it.** + * What are high value items, things that shouldn't be given away by heads + * People don't realize you can't *just* give the hypospray away. + * **Put a list of high-value items in the guidebook.** + * Which bodies can be returned to [#8495](https://github.com/space-wizards/space-station-14/issues/8495). + * **Make sure it's clearly explained in the guidebook.** + * **Make sure it makes sense.** + * **Doesn't need to be 100% obvious whether a corpse is revivable or not just from examine text, minimum should be health analyzer.** + +> What is the best way to present this information to players in-game? Many players miss that xenos, whose description includes "kill all crewmembers", are antags. Is this just a skill issue, or can it be mitigated with game changes? +How do you communicate what is a high value item without encouraging/justifying things like throwing it in the vault round start +What's the best way to ensure that contributors are aware that this information needs to be presented to players? +Is there a way the contraband status of stealth items can be communicated without ruining their stealth? + +mucho texto + +**See bullet points above** + +## Salvage Design Direction maintainer meeting topic - Emisse +(what's the opposite of mucho) texto +* tstalker says it's poco. + +According to EmoGarbage: Used to just have magnet salvage. Pull shit in, mine it. Now we have expeditions (~10min): fly to length, procgen dungeon. These are very different and it's not clear how this shit fit into gameplay. + +* **Make expeditions shorter & faster** + * **~5 min max time limit** + * **Corpse recovery if left behind** + * **stuff to make looting faster: mark items to be teleported, no inventory management** + * **Just make it more gamey** + * **Force a cooldown between expeditions. People can do magnet salvage if they want, but it's not required** + +## Spawn coordinates naming - ElectroSR +* Should we rename the entity spawn variant that takes in entity coordinates to clarify that it spawns-then-attaches or something like that +* **Yes, make more clear naming.** +* **A lot of helper functions.** +* **We need explicit helpers for common scenarios like "spawn next to player" (accounting for containers).** + +## What kinds of gamemodes are acceptable upstream? - EmoGarbage +* What kinds of gamemodes are acceptable upstream? +* Current gamemodes are all on-station regular stuff. People have jobs, antags happen. +* Some idea for more devious game modes: + * Planet tower defense + * Team deathmatch + * STATIONWARE +* Do we run total conversion and NRP modes (TDM, etc) +* What kinds of modes should be opt-in vs. part of secret +* **People can vote for alt gamemodes, within population ranges (e.g. 20 players max for TDM). +* **Alt gamemodes are WYCI** + +## Antags: to midround or not? - EmoGarbage +* What modes should be roundstart / in secret +* What modes/antagonists should remain as midrounds +* **We're just bikeshedding dynamic/game director. I think we're all in agreement there's nothing special to decide here** + +## Early Access Roadmap +- gamemodes/antags + - dynamic [c#16548](https://github.com/space-wizards/space-station-14/pull/16548) + - lings? [c#16513](https://github.com/space-wizards/space-station-14/pull/16513) + - needs DNA + - blob + - revolutionaries + - we want a generic antag overlay system + - loyalty implant + - faction system + - clock cult | keronshb + - waiting for mind rework +- EL BODY SYSTEM | jez (sloth?) ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- body system but again +- body system + - Maybe if we hold the VRChat maintainer meeting +- __***ENGINE EDITOR***__ + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak + - What does this even mean anymore? +- ghostrole/antag bans +- State mandated Xonotic matches | PJB + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Woman down + - She added Miku to her server (real) now you can play as miku pls play with her + - Implement Xonotic as a plugin to ss14 +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - people like shitty games + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - ex: SCREEEEEEEEE + - Slightly better | PJB 11/06/2022 + - It's better but still not as good as I'd like it to be | PJB 25/06/2022 + - I haven't played the game since | PJB 16/07/2022 + - "Please read the last line of that subsection" | PJB 30/07/2022 + - "Please unread the last line of the previous subsection" | PJB 07/01/2023 + - "I spent the last two weeks coding Rain World" | PJB 21/01/2023 + - "I should've tried to run it from the AirBNB that I was staying over in my skiing trip but I didn't" | PJB 11/02/2023 + - "It still runs like shit" | PJB 05/03/2023 + - "Uh" | PJB 19/03/2023 + - "Smugleaf to answer the literal question posed, because its better than Byond I hope" | PJB 01/04/2023 + - "Well I have a sample size of 1 myself and I do believe people do not in fact play the game" | PJB 15/04/2023 + - "Well I mean well ok we are somewhat close to being able to play the game, I still haven't played the game however" | PJB 20/05/2023 + - "It still runs pretty bad however I do understand how people play it" | PJB 10/06/2023 +- A trailer for Steam + - Also the screenshots for steam and the website + - holy shit we have replays now + + +Crashes / Critical bugs: (when are we moving these to GitHub) +=> till next time +like and subscribe +smash that button +did you know only 6% of contribs join this meeting? diff --git a/src/en/maintainer-meetings/maintainer-meeting-2023-08-19.md b/src/en/maintainer-meetings/maintainer-meeting-2023-08-19.md new file mode 100644 index 000000000..d983f513f --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2023-08-19.md @@ -0,0 +1,201 @@ +# Maintainer Meeting (19 Aug 2023) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 19 Aug 2023 18:00 UTC + +**Attendees:** +- Visne +- ElectroSR +- Metalgearsloth +- ShadowCommander +- PJB +- DrSmugleaf +- Julian +- Mirrorcult +- Notafet +- TheQuietOne +- Faint +- Jezithyr +- EmoGarbage + +![](https://hackmd.io/_uploads/SJ_QSYAhh.png) omg miku + +## Namespace changes in content | metalgearsloth +- https://github.com/space-wizards/space-station-14/pull/18869#issuecomment-1672388772 +- client and server end with s but shared doesn't so it was updated +- PR is also making component changes +- IMO no because it's cleaning up code so it's actually consistent +- **Do it in standalone PRs unless the PR is very small** + * Better for reviewing and forks +- **Post breaking changes in #codebase-changes AND THE GITHUB DISCUSSIONS ANNOUNCEMENTS** + +## Conventions for locale strings | EmoGarbage +- there is literally no rhyme or reason anywhere +- there isn't a guideline for what the locale key is supposed to look like +- the file structure is a literal hellhole of a million folders with a single file inside of them +- it doesn't even mirror Prototypes or the c# code file structure +- "Does anybody even use the file tree?" - Smug +- Mirror idea: what if they're top-level popup/, verb/, prototype/, etc. + - Would make future rewriting easier. + - **Just always have `verb-` or `popup-` or `ui` in the key for that purpose.** +- **Mirror C# structure** + - Mostly used from C#: popups, verbs, etc.. + - C# structure is *fine*, could be better but ah well. + +## How do we handle reagents with extra data | ElectroSR +- IMO we should extend solutions to also be able to store non-prototype / complex reagents that aren't simply an ID string. +- How would complex reagents store data? Would it just be an instance of some class per solution or would they point to some shared instance/entity? +- If its a shared entity, how do we handle: +- PVS +- Deleting the entity when all solutions are gone. +- Cloning an entity if one of several solutions gets modified (e.g., dna damage). +--- +Comments: +- IMO it would probably be easiest to just have complex reagents be instances of some class that defines special behaviour in C#. Allowing them to be entities probably just overcomplicates this? +- this has definitely been brought up before, but I don't remember what the conclusions were +- if there even were any + +--- + +- ![](https://hackmd.io/_uploads/SJOE9tR2h.png) +- **(Make it some base type other than object, figure out how to do automatic merging behavior)** +- Idea is this data object would be copied + +## Don't speedmerge large content PRs | metalgearsloth +- specifically [c#18840] and [c#18136] (TEG and borgs) +- I know they're both maintainers but at a glance I can see a lot of standards not being applied +- there's a lot of older prs that still need reviewing +- having a maint get their 5k line pr get merged while your small pr is still sitting there is a kick in the guts +--- +- personally: +- I'd rather playtest after someone's reviewed it thoroughly so if there's no major issues we can keep it rather than expect every time for it to get reverted. This is to avoid stuff like the ninja pr which sat in review hell for months +- There's a risk that some big, really not up-to-standards code gets merged and then people get unhappy when it needs reverting, or the bigger risk that it just stays there. +- **Have it be moderately ready for test merges** +- **Remember test merges** +- **Try to notify game admins for roles and gamerules (events)** + +## IMPROMPTU TOPIC: Contributor survey | Mirrorcult +- Do it sometime soon™ + +## Derailment +OH MY GOD WE HAVE 700 MERGED PRs LAST MONTH ALMOST TWICE OTHER CODEBASES. + +## Change how we do !logging | Visne +- !logging tells you to dm a random maintainer who may not know how it works and may have to message someone else +- Logs may have PII +- **Remove PII from logs so they can be posted in public channels** + - **Edit the !logging command** +- **Eventually have some ticketing system that lets every maintainer look at it** +- Ticket system is a massive pipe dream lmao wyci + +## Net entities | metalgearsloth +- how do we handle commands for migration (I'm just assuming they should all take NetEntity atm) +- anything else that may come up +- **Write a migration guide for forks** + +## Arch migration | metalgearsloth +- after the initial arch port to swap out internals what else do we want to take advantage of / how in terms of what I think is priority e.g.: +- queries (and how we prefer to structure it content side) https://github.com/genaray/Arch/wiki/Query-techniques +- command buffer (to replace RemCompDeferred / other stuff editing in loops), would we just expose this directly, do we flush it after every update, do we store one on EntityManager and flush it at the end of ticks etc. https://github.com/genaray/Arch/wiki/Utility-Features +- eventbus +- job scheduling (replace my shitty parallel.for everywhere) +- relations +- **its good** + +## Named args enforcement | metalgearsloth +- so emote sounds broke and it turns out adding an extra arg to the emotes method shifted everything and broke it. +- should we enforce this in review, even just past a certain point (e.g. 3 args) to avoid bools suddenly being mixed up or is this just a skill issue. + - **Enforce it in review when we decide the guidelines.** +- alternatively chat system is so fucking bad this was bound to happen (freeze until refactor PLEASE). +- **Maybe write an analyzer for it** +- **Also figure out how long it takes to run analyzers** + +## Default values in component C# definitions | PJB +- HAS THIS HAPPENED TO YOU? +- You define a component in C#. You only need it for one thing right now. Instead of putting the value in the YAML, you put it in the C# +- Should we put this as a no-no in the conventions? +- **Do it case-by-case** + +## Additional changelog categories/types for codebase changes and pretty/lore versions | ShadowCommander +- **Do it for codebase and game admin changes that can be filtered.** +``` +**Changelog** + +:cl: PJB3005 +[Gameplay] +- add: Nanotrasen finally decided to give engineering departments something to do, and has finalized the schematics for the thermo-electric generator (TEG). +- add: The TEG creates power by exchanging energy between a hot and cold gas on its two sides. +- tweak: You can turn on gas heaters/freezers with alt-click now. +- tweak: You can open air alarm and pump menus with activate (E) now. +``` +- **Have separate files and ids for any channels (admin/fork) so forks can also have their own.** + +## Early Access Roadmap +- gamemodes/antags + - dynamic [c#16548](https://github.com/space-wizards/space-station-14/pull/16548) + - lings? [c#16513](https://github.com/space-wizards/space-station-14/pull/16513) (closed) + - needs DNA + - blob + - revolutionaries [c#18477](https://github.com/space-wizards/space-station-14/pull/18477) + - we want a generic antag overlay system + - loyalty implant + - faction system + - clock cult | keronshb + - waiting for mind rework +- EL BODY SYSTEM | jez ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- body system but again +- body system + - Maybe if we hold the VRChat maintainer meeting +- __***ENGINE EDITOR***__ + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak + - What does this even mean anymore? + - what is an 'acruid'? +- ghostrole/antag bans + - for ghost roles make taking them not valid if role-banned +- State mandated Xonotic matches | PJB + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Woman down + - She added Miku to her server (real) now you can play as miku pls play with her + - Implement Xonotic as a plugin to ss14 +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - people like shitty games + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - ex: SCREEEEEEEEE + - Slightly better | PJB 11/06/2022 + - It's better but still not as good as I'd like it to be | PJB 25/06/2022 + - I haven't played the game since | PJB 16/07/2022 + - "Please read the last line of that subsection" | PJB 30/07/2022 + - "Please unread the last line of the previous subsection" | PJB 07/01/2023 + - "I spent the last two weeks coding Rain World" | PJB 21/01/2023 + - "I should've tried to run it from the AirBNB that I was staying over in my skiing trip but I didn't" | PJB 11/02/2023 + - "It still runs like shit" | PJB 05/03/2023 + - "Uh" | PJB 19/03/2023 + - "Smugleaf to answer the literal question posed, because its better than Byond I hope" | PJB 01/04/2023 + - "Well I have a sample size of 1 myself and I do believe people do not in fact play the game" | PJB 15/04/2023 + - "Well I mean well ok we are somewhat close to being able to play the game, I still haven't played the game however" | PJB 20/05/2023 + - "It still runs pretty bad however I do understand how people play it" | PJB 10/06/2023 + - "Still does" | PJB 19/08/2023 +- A trailer for Steam + - Also the >>>>**screenshots**<<<< for steam and the website + - DO WE HAVE SELF GHOST HIDING + - holy shit we have **replays** now + + +Crashes / Critical bugs: (when are we moving these to GitHub) +=> till next time +like and subscribe +smash that button +did you know only 6% of contribs join this meeting? diff --git a/src/en/maintainer-meetings/maintainer-meeting-2023-09-02.md b/src/en/maintainer-meetings/maintainer-meeting-2023-09-02.md new file mode 100644 index 000000000..2833088a5 --- /dev/null +++ b/src/en/maintainer-meetings/maintainer-meeting-2023-09-02.md @@ -0,0 +1,129 @@ +# Maintainer Meeting (02 Sep 2023) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` + +**Time:** 02 Sep 2023 18:00 UTC + +**Attendees:** +- EmoGarbage +- Visne +- Julian +- ShadowCommander +- ElectroSR +- Lank +- Notafet +- PJB +- Faint + +## "the github reviews murder case special" +- get rid of codeowners. do any of us actually use it, it just confuses people who think the codeowners need to review before its merged + - **Remove all general ones and change to one or two folders deep, so that it actually goes to the relevant PRs +- review labels rn are half-automated which is good but its hard to tell when someone finishes a review. have people re-request a review on github to clear the ‘changes requested’ label and expect ppl to do this + - Make the bot remove the "Awaiting changes" label when PR reviews are requested again + - Just tell more people to press the re-request review button when reviewing. + - Maybe make a copy paste that can be put as the instructions for new contributors +- have maintainers actually assign themselves to review PRs that they're going to review so we aren't just passing this along through word of mouth +- ok basically just actually make use of the GH review features instead of having to tell people ‘uhh just ignore that’ +- side quest. can we ask github for GH enterprise again since we're big boys and open source + +## "a killing at the github issues and labels page " +- get rid of all prio labels except for URGENT they dont rly matter + - We probably wont sort by + or - Low Priority, so + - **Yes only URGENT** +- maybe consolidate the difficulty labels too but theyre probably fine + - **Keep difficulty labels** + - Easy should be able to be done by a new contributor with 0-4 PRs within a few hours. + - Beginner friendly should be clearly written out what the requirements and goals are for the PR +- mapping issue labels (one for every map? makes it easier for mappers to sort through) + - Not needed +- some ‘possibly no longer relevant' label (like tgs ‘flagged cleanup’label), close really old issues with this if we aren't 100% sure + - some other ideas for issue labels that are actually useful: + - ‘oversight' (easy to fix random stuff that just wasnt caught) + - ‘regression’ (previously working feature is broken) + - combine cleanup/needs refactor into ‘code maintenance’ + - ‘requires resprite’for arttainer issues +- go back through and properly clean up and label old-old issues by god there are 2.2k open and they are definitely not all still relevant. let us start a united front here. give a bunch of people triage and go at it over the course of like a couple weeks. make github issues useful again +- allow user labeling of issues, at least for certain kinds like feature request and oversight. probably thru some gh action that just looks in the issue body or in comments. iirc someone tried this like 2 yrs ago but it didnt work and we never fixed it + - Yes fix the bot +- think about giving out triage access more freely, maybe to all experienced contribs? + - **Yes** + - And some game admins + - All staff + +## New art +- ok can we actually commission artists for new lobby art with our five million dollars like we said we would a year ago +- Yes. We need an artist. +- Lobby art ideas: + - One of every Antagonist + - One of every species + - One of every Job/Department + - This is not one artwork per subject, one artwork can have more than one subject. + +## Early Access Roadmap +- gamemodes/antags + - dynamic [c#16548](https://github.com/space-wizards/space-station-14/pull/16548) + - lings? [c#16513](https://github.com/space-wizards/space-station-14/pull/16513) (closed) + - needs DNA + - blob + - revolutionaries [c#18477](https://github.com/space-wizards/space-station-14/pull/18477) + - we want a generic antag overlay system + - loyalty implant + - faction system + - clock cult | keronshb + - waiting for mind rework +- EL BODY SYSTEM | jez ![](https://cdn.discordapp.com/emojis/933790288860815380.webp =40x) + - some refactors were done by mirror, still some left + - surgery died in the war of 1992 + - Mirror died in the war of 1993 + - limb damage..... +- body system but again +- body system + - Maybe if we hold the VRChat maintainer meeting +- __***ENGINE EDITOR***__ + - could benefit from full state reload +- movement refactor + - Client side movement? + - a smidgen + - as a treat + - acruid pls com bak + - What does this even mean anymore? + - what is an 'acruid'? +- ghostrole/antag bans + - for ghost roles make taking them not valid if role-banned +- State mandated Xonotic matches | PJB + - Please I have severe withdrawal symptoms + - Replaced by private SS14 playtests + - Woman down + - She added Miku to her server (real) now you can play as miku pls play with her + - Implement Xonotic as a plugin to ss14 +- The game runs like shit how do people play this + - still does | PJB 28/05/2022 + - people like shitty games + - "how do people play this game" (high pitched scream) | PJB 28/05/2022 + - ex: SCREEEEEEEEE + - Slightly better | PJB 11/06/2022 + - It's better but still not as good as I'd like it to be | PJB 25/06/2022 + - I haven't played the game since | PJB 16/07/2022 + - "Please read the last line of that subsection" | PJB 30/07/2022 + - "Please unread the last line of the previous subsection" | PJB 07/01/2023 + - "I spent the last two weeks coding Rain World" | PJB 21/01/2023 + - "I should've tried to run it from the AirBNB that I was staying over in my skiing trip but I didn't" | PJB 11/02/2023 + - "It still runs like shit" | PJB 05/03/2023 + - "Uh" | PJB 19/03/2023 + - "Smugleaf to answer the literal question posed, because its better than Byond I hope" | PJB 01/04/2023 + - "Well I have a sample size of 1 myself and I do believe people do not in fact play the game" | PJB 15/04/2023 + - "Well I mean well ok we are somewhat close to being able to play the game, I still haven't played the game however" | PJB 20/05/2023 + - "It still runs pretty bad however I do understand how people play it" | PJB 10/06/2023 + - "Still does" | PJB 19/08/2023 +- A trailer for Steam + - Also the >>>>**screenshots**<<<< for steam and the website + - DO WE HAVE SELF GHOST HIDING + - holy shit we have **replays** now + + +Crashes / Critical bugs: (when are we moving these to GitHub) +=> till next time +like and subscribe +smash that button +did you know only 6% of contribs join this meeting? From 330f199169cba32c717d529fc14d9917c686db85 Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Sat, 30 Sep 2023 00:42:41 -0700 Subject: [PATCH 11/13] Add missing admonish info to the last maintainer meeting --- src/en/maintainer-meetings/maintainer-meeting-2023-09-23.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/en/maintainer-meetings/maintainer-meeting-2023-09-23.md b/src/en/maintainer-meetings/maintainer-meeting-2023-09-23.md index 591976cb8..839fc54a0 100644 --- a/src/en/maintainer-meetings/maintainer-meeting-2023-09-23.md +++ b/src/en/maintainer-meetings/maintainer-meeting-2023-09-23.md @@ -1,4 +1,7 @@ # Maintainer Meeting (23 Sep 2023) +```admonish info +Any decisions taken in these notes may no longer be applicable. +``` **Time:** 23 Sep 2023 18:00 UTC From 7fa5d47a94bb75311169edb0ff997087ef3dceb9 Mon Sep 17 00:00:00 2001 From: faint <46868845+ficcialfaint@users.noreply.github.com> Date: Sat, 30 Sep 2023 23:35:41 +0300 Subject: [PATCH 12/13] Labeler (#71) --- .github/labeler.yml | 8 ++++++++ .github/workflows/labeler-pr.yml | 12 ++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 .github/labeler.yml create mode 100644 .github/workflows/labeler-pr.yml diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 000000000..bc8db4254 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,8 @@ +"English": +- 'src/en/**' + +"Russian": +- 'src/ru/**' + +"Scripts": +- 'scripts/**' diff --git a/.github/workflows/labeler-pr.yml b/.github/workflows/labeler-pr.yml new file mode 100644 index 000000000..1b87e6555 --- /dev/null +++ b/.github/workflows/labeler-pr.yml @@ -0,0 +1,12 @@ +name: "Labels: PR" + +on: +- pull_request_target + +jobs: + labeler: + runs-on: ubuntu-latest + steps: + - uses: actions/labeler@v4 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" \ No newline at end of file From fd6e78faace4ded0ef13c8bd69801420a4265007 Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Sat, 30 Sep 2023 19:25:31 -0700 Subject: [PATCH 13/13] Update serialization doc for optional data field tags, minor fixes --- src/en/robust-toolbox/serialization.md | 54 +++++++++++++------------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/src/en/robust-toolbox/serialization.md b/src/en/robust-toolbox/serialization.md index c8f8bed45..252d69741 100644 --- a/src/en/robust-toolbox/serialization.md +++ b/src/en/robust-toolbox/serialization.md @@ -1,6 +1,4 @@ # Serialization -For everything in this article: If you dont understand a certain topic, if you have suggestions for improvements, if you have any questions/inquiries at all, ping Paul#7955 (me) on discord. I'm happy to help :) - ## The API Each API-Surface (excluding Composition) of the SerializationManager has a generic variant, as well as a boxing variant. Additionally, each has two more generic methods for directly invoking TypeInterfaces, one where you can provide the instance used, and another where you'll just need to provide the type and the manager will take care of fetching an instance to use. @@ -22,7 +20,6 @@ Can be used to provide a context instance if you so wish to. See [SerializationC All APIs also provide you with a `bool` parameter called `skipHook`, which can be used to skip invoking methods implemented using the `ISerializationHook` interface. **Take note however, this parameter is due to be deprecated.** This parameter is not available in Write,Validate and Composition-APIs! ### Read - When reading, you will have to provide: - A type, either as generic type argument T or as the type parameter in the boxing variant - A DataNode to read (duh) @@ -53,13 +50,11 @@ If CopyTo fails to copy into the target object, it will override it using a call Here, composition is pushed across nodes using definitions associated to the type passed. This means that the type you pass determines how the datanodes you provide will be merged together. Currently, there is only a very limited amount of methods to customize this behaviour, especially on DataFields. However, we are working on it! ## Data Definitions - DataDefinitions are Structs or Classes with Field/Properties annotated to be DataFields. These DataFields are written and read to and from yaml, but are also used for copy, validation & composition operations. Going forward, i will simply refer to structs & classes as a "type". Data definitions must have a parameterless constructor in order to be valid. (With the exception of [DataRecords](#dataRecords)) ### Declaring a DataDefinition - ```admonish note There exists no risk in declaring a DataDefinition with multiple of these options at once. The duplicate registrations will simply be reduced so a single one. ``` @@ -67,7 +62,6 @@ There exists no risk in declaring a DataDefinition with multiple of these option `DataDefinition`s must be declared `partial` in order to work with our source generator for copying. #### Directly - To make a class become a DataDefinition, you can add a [DataDefinition] attribute to the type like so. ```csharp [DataDefinition] @@ -110,20 +104,34 @@ public sealed class PrototypeAttribute : Attribute { ### DataFields #### Types of DataFields ##### Regular -Any property or field or property on a data definition can be annotated with a [DataField] attribute. In the following, both properties and fields will simply be referred to as "field". -This attribute accepts a string key which will be used to define the key in YAML. +Any field or property on a data definition can be annotated with a [DataField] attribute. +In the following, both properties and fields will simply be referred to as "field". ```csharp -[DataField("color")] +[DataField] protected Color Color { get; set; } = Color.White; ``` -The examples above would translate into YAML like this: +The example above would translate into YAML like this: ```yaml color: White ``` +This attribute accepts an optional string key which can be used to define the key in YAML, instead of the camel-case version of the field name. +**If one is not needed, it is preferred to not specify one.** + +```csharp +[DataField("colorValue")] +protected Color Color { get; set; } = Color.White; +``` + +The example above would translate into YAML like this: + +```yaml +colorValue: White +``` + ##### Include DataField A DataDefinition gets written into and read from a MappingDataNode. Other than the regular datafield, the Include DataField will not get a value from a key of that MappingDataNode to read/write from/to the field, but will instead use the MappingDataNode of the entire DataDefinition to perform its read/write-operation. This has specific implications on writing specifically: IncludeDataFields get serialized last, and the produced mapping will be inserted into the mapping of the datadefinition that was already produced. If a key already exists, the new value produced by serializing the IncludeDataField will be ignored. @@ -132,13 +140,8 @@ This has specific implications on writing specifically: IncludeDataFields get se This behaviour might become configurable in the future. ``` -#### Custom Type Handler - -```admonish info -Don't be confused by the type handlers sometimes being called type serializers. This is an artifact from the old times and will soon be removed/renamed. -``` - -A custom type handler can be specified if one doesn't exist by default or custom behavior is needed to serialize a specific type. To use one, pass it through the customTypeSerializer argument. +#### Custom Type Serializer +A custom type serializer can be specified if one doesn't exist by default or custom behavior is needed to serialize a specific type. To use one, pass it through the customTypeSerializer argument. Both the DataField and IncludeDataField support custom type interfaces, but only the DataFieldAttribute is used in the following examples to make them a tad less bloaty. ```admonish warning @@ -147,7 +150,7 @@ Any other behaviour that wont differ from the normal one does not need to be red ``` ```csharp -[DataField("drawdepth", customTypeSerializer: typeof(ConstantSerializer))] +[DataField(customTypeSerializer: typeof(ConstantSerializer))] private int DrawDepth { get; set; } = DrawDepthTag.Default; ``` @@ -171,7 +174,7 @@ public sealed class DrawDepth public sealed partial class SpriteComponent { - [DataField("drawdepth", customTypeSerializer: typeof(ConstantSerializer))] + [DataField(customTypeSerializer: typeof(ConstantSerializer))] private int DrawDepth { get; set; } = DrawDepthTag.Default; } ``` @@ -189,7 +192,7 @@ public sealed class CollisionLayer {} public sealed partial class PhysShapeRect { - [DataField("layer", customTypeSerializer: typeof(FlagSerializer))] + [DataField(customTypeSerializer: typeof(FlagSerializer))] private int CollisionLayer { get; set; } } ``` @@ -205,14 +208,9 @@ Two additional attributes may be used on a datafield to define how it is inherit TODO -## Type handler - -```admonish info -Don't be confused by the type handlers sometimes being called type serializers. This is an artifact from the old times and will soon be removed/renamed. -``` - -The type handler interfaces are a collection of interfaces for defining custom logic for actions on specific types. Sometimes, the expected node type will also be specified. -A class implementing at least one of these type handler interfaces is referred to as a type handler. If you want your type handler to *always* be used, you can annotated it with the `[TypeSerializer]` attribute. Otherwise, the type can be used as a [custom type handler](#custom-type-handler). +## Type serializer +The type serializer interfaces are a collection of interfaces for defining custom logic for actions on specific types. Sometimes, the expected node type will also be specified. +A class implementing at least one of these type serializer interfaces is referred to as a type serializer. If you want your type serializer to *always* be used, you can annotated it with the `[TypeSerializer]` attribute. Otherwise, the type can be used as a [custom type serializer](#custom-type-serializer). **The static IoCManager.Resolve should not be used as the serializer might be running on a separate thread without an initialized IoC context.**