From 88797b6155cd99bc035e6a8c54464446b68b6447 Mon Sep 17 00:00:00 2001 From: DrSmugleaf Date: Fri, 29 Sep 2023 22:48:36 -0700 Subject: [PATCH] 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