From c055b73e0d9aa36c8422bffac7d51d4225050ba2 Mon Sep 17 00:00:00 2001 From: T2brozz <42860763+T2brozz@users.noreply.github.com> Date: Wed, 6 Oct 2021 22:34:48 +0200 Subject: [PATCH 1/5] synchronized Account, Filesystem and Workloadsystem to current state --- Cryptic/Gamedesign/Backend/Account/Account.md | 15 +- .../Backend/Filesystem/Filesystem.md | 23 +-- .../Backend/Workloadsystem/Workloadsystem.md | 158 +++++++++--------- 3 files changed, 99 insertions(+), 97 deletions(-) diff --git a/Cryptic/Gamedesign/Backend/Account/Account.md b/Cryptic/Gamedesign/Backend/Account/Account.md index 2049911..bd6d175 100644 --- a/Cryptic/Gamedesign/Backend/Account/Account.md +++ b/Cryptic/Gamedesign/Backend/Account/Account.md @@ -1,6 +1,6 @@ ## **1.1 Account/User** -erstellt von [Allen] + >Abgeschlossen: Security, Tristan, Jannik \ Datum: 29.06.2021 @@ -15,19 +15,20 @@ Wir managen die User-Accounts nicht selbst, sondern verwenden [OAuth2](https://o ### **1.1.2 Erster Login** -Bei dem ersten Login muss der Nutzer einen Benutzername festlegen. Dieser muss folgende Kriterien erfüllen: +Bei dem ersten Login muss der Nutzer einen Benutzernamen festlegen. Dieser muss folgende Kriterien erfüllen: -* Länge zwischen 4 und 32 Zeichen -* Darf nur Buchstaben (a-z, A-Z) und Zahlen (0-9) enthalten -* Derselbe Benutzername darf nicht mehrfach vergeben werden +* RegEx: [a-zA-Z0-9]{4,32} + * Länge zwischen 4 und 32 Zeichen + * Darf nur Buchstaben (a-z, A-Z) und Zahlen (0-9) enthalten +* Derselbe Benutzername darf nicht mehrfach vergeben werden * Kein Name von der Blacklist +
### **1.1.3 Benutzerverwaltung** -* Der Benutzer kann seinen Nutzernamen monatlich 1x ändern - * Anforderungen s. [Erster Login](Account.md#112-erster-login) +* [zukünftig: Der Benutzer kann seinen Nutzernamen monatlich 1x ändern]
diff --git a/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md b/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md index 69374ff..584ce05 100644 --- a/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md +++ b/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md @@ -23,15 +23,17 @@ Anm. Devs: (PC mit mehreren Festplatten) * Ordner können weitere Ordner und Dateien enthalten. * Ordner sind vom Spieler zu benennen: - auch beim Umbenennen beachten * kein Name von der [Blacklist](Filesystem.md#144-blacklist) - * 1 bis 32 Zeichen im Namen - * Namen dürfen nur Buchstaben, Ziffern und `.-_` enthalten. (ASCII 45-46, 65-90, 95, 97-122) + * RegEx: [a-zA-z0-9.\-_]{1,32} + * 1 bis 32 Zeichen im Namen + * Namen dürfen nur Buchstaben, Ziffern und \`.-_\` enthalten. (ASCII Großbuchstaben, Kleinbuchstaben, Punkt, Unterstrich, Minus, Ziffern (0-9) - die Namen “..” und “.” sind Verboten + * Ordner können verschoben werden (mit Inhalt). * Ordner können gelöscht werden. Im Ordner enthaltene Dateien und Ordner werden dann rekursiv gelöscht. * Ordner können kopiert werden (mit Inhalt, nur vollständig) * Ordner können umbenannt werden. * Ordner können sichtbar oder unsichtbar sein. * Es kann abgerufen werden, welche Ordner und Dateien in einem Ordner enthalten sind (nicht rekursiv). - * Art (Ordner/Datei), Stufe und Name + * Art (Ordner/Datei), Rechte und Name
@@ -39,11 +41,7 @@ Anm. Devs: (PC mit mehreren Festplatten) * Dateien enthalten Texte. * Inhalte werden auf Blacklist-Begriffe geprüft. -* Es sind alle gängigen Buchstaben, Zahlen und Sonderzeichen zulässig (Inhalt der Datei). UTF-8 -* Dateiname ist vom Spieler anzugeben: - * kein Name von der [Blacklist](Filesystem.md#144-blacklist) - * 1 bis 32 Zeichen im Namen - * Namen dürfen nur Buchstaben, Ziffern und `.-_` enthalten. (ASCII 45-46, 65-90, 95, 97-122) +* Inhalt muss UTF-8 konform sein. * Dateien sind vom Spieler zu benennen: * Siehe [1.4.1 Ordnerstruktur](Filesystem.md#141-ordnerstruktur) * Dateien können sichtbar oder unsichtbar sein, siehe 1.6.1.1.5.2 Stufensystem @@ -54,10 +52,6 @@ Anm. Devs: (PC mit mehreren Festplatten) * Der Inhalt einer Datei kann vom Spieler abgerufen werden. * Der Inhalt einer Datei kann vom Spieler geändert werden. Abhängig vom Rechtesystem - siehe 1.6.1.1.5 Benutzerverwaltung * Die Dateigröße kann vom Spieler abgerufen werden, abhängig von Rechten. -* Während der Bearbeitung kann mit der Datei weiter agiert werden. - * während der Bearbeitung wird bearbeitet: jede Bearbeitung wird gespeichert, die letzte ist dann die letzte - * während der Bearbeitung wird gelöscht: Die Bearbeitung ist eine neue Datei mit gleichem Namen an alter Stelle (wenn genug Speicherplatz) - * während der Bearbeitung wird verschoben: An der alten Stelle wird die Bearbeitung als neue Datei gespeichert. (wenn genug Speicherplatz) * Der Inhalt einer Datei darf max. 1’800 Zeichen betragen ``(ThisIsForGameParameters /filesystem/file/maxcharsperfile)``
@@ -70,9 +64,8 @@ Anm. Devs: (PC mit mehreren Festplatten) * 1.000 TB = 1 PB * Es können nur Ordner und Dateien angelegt werden, wenn Platz auf der verbauten Hardware (ingame Festplatte) ist.\ Anm. Dev: (Speicherbedarf bevor der Aktion ausrechnen) (Jede Festplatte einzeln betrachtet) -* Ordner verbrauchen jeweils 1 MB (Ingame) ``(ThisIsForGameParameters /filesystem/folder/needsspace)`` -* Dateien verbrauchen je begonnene 20 Zeichen 5 MB (Ingame) ``(ThisIsForGameParameters /filesystem/file/needspaceper20chars)`` - +* Ordner verbrauchen jeweils 1 MB (Ingame) +* Dateien verbrauchen je begonnene 20 Zeichen 5 MB (Ingame) \ **Vorgehensweise:** Anzahl Zeichen | Speicher in MB diff --git a/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md b/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md index 7b4b4c5..10efffe 100644 --- a/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md +++ b/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md @@ -2,34 +2,37 @@ erstellt von [Maulwurf, Tristan] ->Abgeschlossen: Maulwurf, TNT, Tristan -Datum: 31.01.2021 +> Abgeschlossen: Maulwurf, TNT, Tristan \ +Datum: 31.01.2021 Grundlegende Funktionen -* Regulierung der Auslastung der Hardware. -* Zuweisung von Leistung an die Programme/Prozesse. + +* Regulierung der Auslastung der Hardware. +* Zuweisung von Leistung an die Programme/Prozesse. ## **1.5.1 Leistung der Hardware** -* Für jede Hardware-Art gibt es bestimmte Leistungspunkte (CPU, RAM, GPU, Netzwerk (NET)). E.g: Zwei RAM Sticks haben in Summe nur einmal “RAM-Leistungspunkte” -* Ausnahme: Die Festplatte wird im Workloadsystem nicht beachtet. +* Für jede Hardware-Art gibt es bestimmte Leistungspunkte (CPU, RAM, GPU, Netzwerk (NET)). +* Werte zweier gleicher Hardware werden addiert. E.g: Zwei RAM Sticks haben in Summe nur einmal “RAM-Leistungspunkte” +* Bei GPU und NET sind die Besonderheiten unter Hardwarekompatibilität zu beachten. +* Ausnahme: Die Festplatte wird im Workloadsystem nicht beachtet. * Die Leistungspunkte werden für jedes Hardwareteil einzeln festgelegt - siehe [Computer](Computer.md). ## **1.5.2 Leistungsverbrauch Prozesse** -* Jeder Prozess zieht Leistung, je nach Aktivität wird unterschieden (Angabe bei den Prozessen): -Leistungsstufe 0 (Grundlast), wenn Prozess an ist (kann 0 sein) - * Verbrauch bei Leistungsstufe 1 - * Verbrauch bei Leistungsstufe 2 (nicht bei jedem Prozess erforderlich) - * Verbrauch bei Leistungsstufe 3 (nicht bei jedem Prozess erforderlich) - * Der Verbrauch steigt von Stufe 0 zu 3 an -* Der Leistungsverbrauch wird stufenweise (0, 1, 2, 3) für jeden Prozess einzeln festgelegt (auch per Formel möglich) -* Der Leistungsverbrauch kann abhängig von der verbauten Hardware sein -z.B. 20% der verbauten CPU-Leistung -* Der Leistungsverbrauch schwankt zufällig um diesen Wert in einer gewissen Spanne (Prozentsatz) (Angabe bei den Prozessen) -* Mit jeder Aktion des Prozesses wird der Verbrauch neu ermittelt. -* Prozesse brauchen Leistung beim Starten und Beenden. (Angabe bei den Prozessen) +* Jeder Prozess zieht Leistung, je nach Aktivität wird unterschieden (Angabe bei den Prozessen): + * Leistungsstufe 0 (Grundlast), wenn Prozess an ist (kann 0 sein) + * Verbrauch bei Leistungsstufe 1 + * Verbrauch bei Leistungsstufe 2 (nicht bei jedem Prozess erforderlich) + * Verbrauch bei Leistungsstufe 3 (nicht bei jedem Prozess erforderlich) + * Der Verbrauch steigt von Stufe 0 zu 3 an +* Der Leistungsverbrauch wird stufenweise (0, 1, 2, 3) für jeden Prozess einzeln festgelegt (auch per Formel möglich) +* Der Leistungsverbrauch kann abhängig von der verbauten Hardware sein z.B. 20% der verbauten CPU-Leistung +* Der Leistungsverbrauch schwankt zufällig um diesen Wert in einer gewissen Spanne (Prozentsatz) (Angabe bei den + Prozessen) +* Mit jeder Aktion des Prozesses wird der Verbrauch neu ermittelt. +* Prozesse brauchen Leistung beim Starten und Beenden. (Angabe bei den Prozessen) ## **1.5.3 Sonstiger Leistungsverbrauch (durch Frontend)** @@ -37,72 +40,77 @@ z.B. 20% der verbauten CPU-Leistung ## **1.5.4 Prioritätensystem** -* Es gibt 4 verschiedene Prioritäten - * Priorität 1: Sehr wichtig, Leistungsreduzierung möglich. (E.g. später Betriebssystem) - * Priorität 2: Wichtig, Prozess wird vorrangig Leistung zugewiesen. Reduzierung nur, wenn keine Prozesse auf Prio 3 und 4 aktiv sind und nach 1.5.5. - * Priorität 3: Standard für alle Prozesse und Apps. Reduzierung erfolgt, wenn keine Prozesse auf Prio 4 aktiv sind und nach 1.5.5. - * Priorität 4: Unwichtig, Reduzierung erfolgt vorrangig. Reduzierung kann pro Prozess nur vollständig erfolgen (aktiv oder inaktiv). -* Der Spieler kann den Prozessen die Prioritäten 2-4 frei zuordnen. Standard ist Priorität 3 soweit nichts anderes bestimmt ist. Priorität 1 kann nicht vergeben werden. -* Ein Prozess kann geupgradet werden. -* Die Priorität eines Prozesses kann ab einem bestimmten Level des Prozesses durch den Spieler geändert werden. (Benötigtes Prozesslevel x zur Änderung steht bei den Prozessen) - >(ThisIsForGameParameters /process/*/priority/playercanchangeonlevel) - - * Ab einschließlich Level x (x ∈ ℤ) kann die Priorität geändert werden. - * Bei x = -1 kann die Priorität nicht geändert werden. +* Es gibt 4 verschiedene Prioritäten + * Priorität 1: Sehr wichtig, Leistungsreduzierung möglich. (E.g. später Betriebssystem) + * Priorität 2: Wichtig, Prozess wird vorrangig Leistung zugewiesen. Reduzierung nur, wenn keine Prozesse auf Prio 3 + und 4 aktiv sind und nach 1.5.5. + * Priorität 3: Standard für alle Prozesse und Apps. Reduzierung erfolgt, wenn keine Prozesse auf Prio 4 aktiv sind + und nach 1.5.5. + * Priorität 4: Unwichtig, Reduzierung erfolgt vorrangig. Reduzierung kann pro Prozess nur vollständig erfolgen ( + aktiv oder inaktiv). +* Der Spieler kann den Prozessen die Prioritäten 2-4 frei zuordnen. *(Funktion wird zur v0.3.0 noch nicht für Spieler + nutzbar sein. Später muss das im Frontend eingebaut werden. Backendseitig wird die Funktion bereits implementiert, + aber gesperrt (-1 für jeden Prozess in der Config)).* +* Standard ist Priorität 3 soweit nichts anderes bestimmt ist. Priorität 1 kann nicht vergeben werden. +* Die Priorität eines Prozesses kann ab einem bestimmten Level des Prozesses durch den Spieler geändert werden. ( + Benötigtes Prozesslevel x zur Änderung steht bei den Prozessen) + * Ab einschließlich Level x (x ∈ ℤ) kann die Priorität geändert werden. + * Bei x = -1 kann die Priorität nicht geändert werden. ## **1.5.5 Begrenzung des Leistungsverbrauchs (“Reduzierung”)** -1. Kann die geforderte Leistung nicht bereitgestellt werden, ist eine Reduktion der zugewiesenen Leistung von Prozessen durchzuführen. --> Es wird weniger Leistung zugewiesen als gefordert. -2. Die Reduktion erfolgt innerhalb der Prioritäten proportional bei allen Prozessen gleichermaßen (z.B. Reduktion pro Prozess um 5%)(außer bei Prio 4, s.u.) -3. Bei Priorität 4 kann jeder Prozess nur deaktiviert werden. -4. Innerhalb einer Priorität kann nur Leistung reduziert werden, wenn in allen niedrigeren Prioritäten keine Prozesse aktiv sind (erst Prio 4, dann 3, dann 2). -5. Sollten mehrere Prozesse gleichzeitig die Schwelle zum Abstürzen überschreiten, stürzt zuerst der ab, der am meisten Leistung benötigt. Im Zweifel wird zufällig entschieden, welcher abstürzt. -6. Es wird nicht zwischen startenden und aktiven Prozessen unterschieden. -7. Die von einem Prozess beanspruchte Leistung kann abgerufen werden (in % pro Hardwareart). -8. Die Reduzierung pro Prozess kann abgerufen werden (in %). -9. Die Hardwareauslastung ist für jede Hardware-Art abrufbar (genutzte LP pro gesamt verfügbare LP in %). +1. Kann die geforderte Leistung nicht bereitgestellt werden, ist eine Reduktion der zugewiesenen Leistung von Prozessen + durchzuführen. -> Es wird weniger Leistung zugewiesen als gefordert. +2. Die Reduktion erfolgt innerhalb der Prioritäten proportional bei allen Prozessen gleichermaßen (z.B. Reduktion pro + Prozess um 5%)(außer bei Prio 4, s.u.) +3. Bei Priorität 4 kann jeder Prozess nur deaktiviert werden. +4. Innerhalb einer Priorität kann nur Leistung reduziert werden, wenn in allen niedrigeren Prioritäten keine Prozesse + aktiv sind (erst Prio 4, dann 3, dann 2). +5. Sollten mehrere Prozesse gleichzeitig die Schwelle zum Abstürzen überschreiten, stürzt zuerst der ab, der am meisten + Leistung benötigt. Im Zweifel wird zufällig entschieden, welcher abstürzt. +6. Es wird nicht zwischen startenden und aktiven Prozessen unterschieden. ## **1.5.6 Auswirkungen reduzierter Leistung auf Prozesse** ### **1.5.6.1 Bei aktiven Prozessen** -1. Die Definition, welche Auswirkung wann eintritt, wird individuell für jeden Prozess festgelegt. -2. Auswirkungen hängen von der Stärke der Reduzierung ab. - - Prozesse geben eine Leistungsgrenze für jede Auswirkung an. - - Die Grenze ist in einem Quotienten aus erhaltener und geforderter Leistung beschrieben. - - Die verfügbaren Auswirkungen sind fix. - - Beispiel: - - crashBelowPercentage: 0.5 - - ⇒ Wenn der Prozess weniger als 50% der geforderten Leistung zugewiesen bekommt, crashed er. -3. Ein Prio 1 Prozess stürzt sofort unter 100% ab. Er muss zwingend die volle Leistung bekommen. -4. Ein Prio 4 Prozess stürzt sofort unter 100% ab. Er muss zwingend die volle Leistung bekommen. - -5. Folgende Auswirkungen sind möglich: - - Prozess stürzt ab - - Ohne Abschaltzeit oder Abschaltleistung sofort deaktiviert. - - Prozess startet beim nächsten Mal langsamer (nach Absturz) - - Nächste Startzeit nach Crash ist länger. - - Prozess antwortet nicht - - Beansprucht immer noch die zugewiesene Leistung, führt allerdings keine Aktionen mehr aus, bis er die Leistungsgrenze wieder nach oben überschreitet. (E.g: Es werden keine Morphcoins berechnet / Es werden keine Befehle dieses Prozesses ausgeführt) - - Prozess kann nicht “rechnen” - - Gleiches wie Prozess antwortet nicht, nur wird eine Fehlermeldung angezeigt. - - Prozess arbeitet ineffektiver - - z.B. es werden weniger MCs generiert/ die Erfolgschance sinkt - - Der Ineffektivitätsfaktor wird von dem -Intervall [cannotCalculateGrenze ; 1] auf [0 ; 1] gemapped/interpoliert - - (Beispiel: - Grenze e) < 100%; Grenze d) < 80% - zugewiesene Leistung = 90% - -> mittig zwischen beiden Grenzen -> nur noch zu 50% effizient.) +1. Die Definition, welche Auswirkung wann eintritt, wird individuell für jeden Prozess festgelegt. +2. Auswirkungen hängen von der Stärke der Reduzierung ab. + - Prozesse geben eine Leistungsgrenze für jede Auswirkung an. + - Die Grenze ist in einem Quotienten aus erhaltener und geforderter Leistung beschrieben. + - Die verfügbaren Auswirkungen sind fix. + - Beispiel: + - crashBelowPercentage: 0.5 + - ⇒ Wenn der Prozess weniger als 50% der geforderten Leistung zugewiesen bekommt, crashed er. +3. Ein Prio 1 Prozess stürzt sofort unter 100% ab. Er muss zwingend die volle Leistung bekommen. +4. Ein Prio 4 Prozess stürzt sofort unter 100% ab. Er muss zwingend die volle Leistung bekommen. + +5. Folgende Auswirkungen sind möglich: + - Prozess stürzt ab + - Ohne Abschaltzeit oder Abschaltleistung sofort deaktiviert. + - Prozess startet beim nächsten Mal langsamer (nach Absturz) + - Nächste Startzeit nach Crash ist länger. + - Prozess antwortet nicht + - Beansprucht immer noch die zugewiesene Leistung, führt allerdings keine Aktionen mehr aus, bis er die + Leistungsgrenze wieder nach oben überschreitet. (E.g: Es werden keine Morphcoins berechnet / Es werden keine + Befehle dieses Prozesses ausgeführt) + - Prozess kann nicht “rechnen” + - Gleiches wie Prozess antwortet nicht, nur wird eine Fehlermeldung angezeigt. + - Prozess arbeitet ineffektiver + - z.B. es werden weniger MCs generiert/ die Erfolgschance sinkt + - Der Ineffektivitätsfaktor wird von dem Intervall [cannotCalculateGrenze ; 1] auf [0 ; 1] gemapped/interpoliert + + (Beispiel: + Grenze e) < 100%; Grenze d) < 80% zugewiesene Leistung = 90% -> mittig zwischen beiden Grenzen -> nur noch zu + 50% effizient.) ### **1.5.6.2 Bei startenden/stoppenden Prozessen** -* Während der Start-Stop-Phase können Reduzierungen eintreten. -* Welche Auswirkung wann eintritt, wird individuell für jeden Prozess festgelegt. -* Folgende Auswirkungen sind möglich: - * Die Start- bzw. Stoppzeit wird um die Zeit verlängert, die nicht die ganze Leistung zur Verfügung stand (“Die Uhr hält an”). Pendant zum freezen - * ggf. nur anteilige Verlängerung der Startzeit. Pendant zum ineffektiven Rechnen - * Die Startzeit beim nächsten Starten verlängert sich, wenn er beim Stoppen reduziert wurde. +* Während der Start-Stop-Phase können Reduzierungen eintreten. +* Welche Auswirkung wann eintritt, wird individuell für jeden Prozess festgelegt. +* Folgende Auswirkungen sind möglich: + * Die Start- bzw. Stoppzeit wird um die Zeit verlängert, die nicht die ganze Leistung zur Verfügung stand (“Die Uhr + hält an”). Pendant zum freezen + * ggf. nur anteilige Verlängerung der Startzeit. Pendant zum ineffektiven Rechnen + * Die Startzeit beim nächsten Starten verlängert sich, wenn er beim Stoppen reduziert wurde. From 4158c9c40dd0c31f2e897ae92d43b007df15b486 Mon Sep 17 00:00:00 2001 From: T2brozz <42860763+T2brozz@users.noreply.github.com> Date: Thu, 7 Oct 2021 22:47:05 +0200 Subject: [PATCH 2/5] Added Wallet and Krptowaehrung chapter ; Added Links --- Cryptic/Gamedesign/Backend/Account/Account.md | 4 +- .../Backend/Filesystem/Filesystem.md | 5 +- .../Backend/Kryptowaehrung/Kryptowaehrung.md | 11 ++ Cryptic/Gamedesign/Backend/Wallet/Wallet.md | 146 ++++++++++++++++++ .../Backend/Workloadsystem/Workloadsystem.md | 41 ++--- 5 files changed, 182 insertions(+), 25 deletions(-) create mode 100644 Cryptic/Gamedesign/Backend/Kryptowaehrung/Kryptowaehrung.md create mode 100644 Cryptic/Gamedesign/Backend/Wallet/Wallet.md diff --git a/Cryptic/Gamedesign/Backend/Account/Account.md b/Cryptic/Gamedesign/Backend/Account/Account.md index bd6d175..0728f8e 100644 --- a/Cryptic/Gamedesign/Backend/Account/Account.md +++ b/Cryptic/Gamedesign/Backend/Account/Account.md @@ -9,7 +9,7 @@ Datum: 29.06.2021 ### **1.1.1 OAuth2** -Wir managen die User-Accounts nicht selbst, sondern verwenden [OAuth2](https://oauth.net/2/)-Provider (z.B. Google, Discord, GitHub…). Das bedeutet, dass die Nutzer keine separate Registrierung mit E-Mail und Passwort für Cryptic benötigen. +Wir managen die User-Accounts nicht selbst, sondern verwenden [OAuth2](https://oauth.net/2/)-Provider) (z.B. Google, Discord, GitHub…). Das bedeutet, dass die Nutzer keine separate Registrierung mit E-Mail und Passwort für Cryptic benötigen.
@@ -21,7 +21,7 @@ Bei dem ersten Login muss der Nutzer einen Benutzernamen festlegen. Dieser muss * Länge zwischen 4 und 32 Zeichen * Darf nur Buchstaben (a-z, A-Z) und Zahlen (0-9) enthalten * Derselbe Benutzername darf nicht mehrfach vergeben werden -* Kein Name von der Blacklist +* Kein Name von der [Blacklist](../Filesystem/Filesystem.md#144-blacklist)
diff --git a/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md b/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md index 584ce05..55a47c9 100644 --- a/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md +++ b/Cryptic/Gamedesign/Backend/Filesystem/Filesystem.md @@ -40,7 +40,7 @@ Anm. Devs: (PC mit mehreren Festplatten) ### **1.4.2 Text-Dateien** * Dateien enthalten Texte. -* Inhalte werden auf Blacklist-Begriffe geprüft. +* Inhalte werden auf [Blacklist](Filesystem.md#144-blacklist)-Begriffe geprüft. * Inhalt muss UTF-8 konform sein. * Dateien sind vom Spieler zu benennen: * Siehe [1.4.1 Ordnerstruktur](Filesystem.md#141-ordnerstruktur) @@ -52,8 +52,7 @@ Anm. Devs: (PC mit mehreren Festplatten) * Der Inhalt einer Datei kann vom Spieler abgerufen werden. * Der Inhalt einer Datei kann vom Spieler geändert werden. Abhängig vom Rechtesystem - siehe 1.6.1.1.5 Benutzerverwaltung * Die Dateigröße kann vom Spieler abgerufen werden, abhängig von Rechten. -* Der Inhalt einer Datei darf max. 1’800 Zeichen betragen ``(ThisIsForGameParameters /filesystem/file/maxcharsperfile)`` - +* Der Inhalt einer Datei darf max. 1’800 Zeichen betragen
### **1.4.3 Speichernutzung** diff --git a/Cryptic/Gamedesign/Backend/Kryptowaehrung/Kryptowaehrung.md b/Cryptic/Gamedesign/Backend/Kryptowaehrung/Kryptowaehrung.md new file mode 100644 index 0000000..3784d16 --- /dev/null +++ b/Cryptic/Gamedesign/Backend/Kryptowaehrung/Kryptowaehrung.md @@ -0,0 +1,11 @@ +## **1.2 Kryptowährung** + +erstellt von [Marius] + +Die Kryptowährung im Spiel heißt “Morphcoin” (Abgekürzt: MC). + +* Die Währung ist global im Spiel gültig +* Es ist eine pseudo Ingame-Kryptowährung (Zahlung oder Transferierung mit/in Echtgeld ist ausgeschlossen!) +* Die Währung dient ingame als Zahlungsmittel. +* Die Währung wird mit 3 Nachkommastellen angegeben. Beispiel: 0,006 MC +* Die Gesamtmenge an MC ist unbegrenzt *[kann sich zu einer späteren Version ändern]* diff --git a/Cryptic/Gamedesign/Backend/Wallet/Wallet.md b/Cryptic/Gamedesign/Backend/Wallet/Wallet.md new file mode 100644 index 0000000..82911fb --- /dev/null +++ b/Cryptic/Gamedesign/Backend/Wallet/Wallet.md @@ -0,0 +1,146 @@ +## **1.3 Wallet** + +erstellt von [Marius, Tristan] + +### **1.3.1 Allgemein** + +Das Wallet ist an den [Spieler-Account](../Account/Account.md#11-accountuser) gebunden. Es ist für Fremde nicht angreif- +oder sichtbar. Der Owner kann auf die Wallets zugreifen, indem er das Terminal oder die Wallet-App nutzt. Eine +Authentifizierung ist nicht mehr nötig. Ein Hacker kann „Geld klauen", indem er die Befehle zum Kontostand auslesen und +Geld überweisen untergräbt/hackt. Er hat keinen direkten Zugriff auf das Wallet, sondern nur die Möglichkeit, den Owner +zu imitieren und damit eine „gehackte Transaktion durchzuführen". Siehe [Kapitel 1.6.2.5.5]() Wallet hacken. + +### 1.3.2 Detailliert + +* Das Wallet wird genutzt, um die Währung “[Morphcoin](../Kryptowaehrung/Kryptowaehrung.md#12-kryptowhrung)” sowie eine + Transaktionshistorie und Einstellungen zu speichern. +* Das Wallet besitzt eine UUID als Adresse (analog IBAN). Über diese wird Geld gesendet und empfangen. +* Das Wallet ist an den Spieler-Account gebunden. + * Nur der Spieler selber kann ein Wallet erstellen oder löschen. + * Das Erstellen oder Löschen kann nur von einem eigenen, laufenden PC aus getätigt werden. + * Wallet kann nicht übertragen werden. + * Nur der Owner hat vollen Zugriff auf das Wallet. Über das Terminal kann die Transaktionsmechanik des Wallets + gehackt werden (siehe [Wallet hacken]()) + + +* Der Spieler kann bis zu x Wallets gleichzeitig besitzen. + * Alle Wallets können auf allen eigenen Computern verwaltet werden + + +* Definition Wallet-Name + * Name wird manuell durch den Spieler vergeben + * Kein Name von der [Blacklist](../Filesystem/Filesystem.md#144-blacklist) + * Regex: [A-Za-z]{3,12} + * 3 bis 12 Zeichen (Buchstaben a-z/A-Z) + * Name darf jederzeit geändert werden + + +* Zum ersten Spieleintritt ist kein Wallet vorhanden. +* Der Spieler muss Wallets manuell erstellen. + * Voraussetzung: Computer muss eingeschaltet bzw. das OS muss vollständig [gestartet]() sein. Unabhängig auf welchem + eigenen Computer. + + +* Auf dem Wallet kann ein Überweisungslimit von 1.000 bis {+inf} MC pro Tag eingestellt werden. Das Überweisungslimit + greift immer. + * Default-Limit: 1.000 MC / Tag + * Das Limit ist in 500er Schritten anzugeben + * Das Überweisungslimit kann alle 2 Tage verändert werden + * Nur der Owner kann diese Einstellung tätigen. + + +* Jedes Wallet besitzt eine Sicherheitszahl. Standard 1 bis 3 + * Sicherheitszahl wird vom System generiert bei Angriff eines Hackers, s. Kapitel [Wallet hacken]() + * Für 500 MC kann der Spieler die Sicherheitszahl für 24 Stunden auf 1 bis 4 erhöhen. Nach Ablauf der Zeit fällt die + Zahl auf 1 bis 3 zurück. + + +* Einstellungen müssen für jedes Wallet einzeln vorgenommen werden.m9 + * Einstellungsänderungen werden mit Unix Timestamps geloggt + + +* Von allen Wallets die man besitzt, kann folgendes jeweils abgefragt werden: + * Kontostand + * Wallet-UUID + * Transaktionshistorie + * Einstellungsänderungen + + +* Folgen des Löschens des Wallets: + * Der User verliert damit den Zugang zum Wallet. + * Alle Verbindungen zum Miner, Hardware-Shop, Wallet-App, usw. werden getrennt + * Das Wallet wird mit Inhalt (Morphcoins + UUID + Historie) unwiderruflich gelöscht + +### 1.3.3 Transaktionen + +* Voraussetzungen: + * Spieler A und Spieler B besitzen jeweils mindestens ein Wallet + * Die [Computer]() von Spieler A und Spieler B sind beide eingeschaltet + + +* Transaktionen können nur ausgeführt werden: + * wenn der [Netzwerktreiber]() läuft und eine Netzwerkverbindung zwischen Sender und Empfänger besteht. + * wenn die gewählte Summe MC auf dem gewählten Wallet vorhanden ist + * Transaktionen können vom Besitzer des Wallets ausgeführt werden. Hacker können über eine + Hackerattacke ([Wallet hacken]()) eine Transaktion ausführen. + + +* Ein Hacker kann die Transaktionsmechanik untergraben und somit als “Nicht-Owner” Geld von dem Wallet senden. Er hat + dabei keinen direkten Zugriff auf das Konto, sondern nur auf die Transaktionsmechanik. + +#### 1.3.3.1 Transaktionen von Spieler zu Spieler + +* Es sind Transaktionen unter Spielern möglich (Geld überweisen). +* Es können MCs von Wallet zu Wallet transferiert werden. Auch an eigene Wallets \ + **Absender:**\ + Folgende Angaben macht der Spieler selbst: + * Angabe des Ziel-Wallets mit der Wallet-UUID + * Angabe der Summe [Gleitkommazahl] + * Optional: Nachricht [Text] + * RegEx: [A-Za-z0-9,. ]{0,150} + * max. 150 Zeichen + * Buchstaben (a-z, A-Z) und Zahlen 0-9, Leerzeichen und Punkt “.” + * Wörter mit [Blacklist](../Filesystem/Filesystem.md#144-blacklist) prüfen + * Zeitstempel Absenden wird automatisch gesetzt.\ + \ + **Empfänger:** + * Absender Wallet-UUID + * Empfänger Wallet-UUID + * Summe in MC + * Zeitstempel Empfangen wird automatisch gesetzt + * Optional: Nachricht des Absenders [Text] + +#### 1.3.3.2 Transaktionen zwischen Spielern und System-Servern + +* Es sind Transaktionen mit dem [Hardware-Shop]() möglich (Teile kaufen) +* Es sind Transaktionen mit dem [Versanddienst]() möglich (Versand für Hardware zahlen) +* Es sind Transaktionen mit dem [Inventar]() möglich (Teile verkaufen) +* Es sind Transaktionen mit [versteckten]() oder [öffentlichen Netzwerken]() möglich (Für Zugriff zahlen). +* Es können MCs von Wallet zu Service transferiert werden.\ + \ + **Transaktion wird automatisch ausgeführt.**\ + Folgende Informationen erhält der Spieler: + * Abgebucht/Überwiesen von: z.b. Hardware-Shop + * Summe in MC z.b. Betrag der Hardwareteile + * Autom. Nachricht [Text] zb Name und Anzahl der Hardwareteile + * Zeitstempel Absenden im Unix Timestamp wird automatisch gesetzt + +#### 1.3.3.3 Transaktionen von Miner an Spieler + +* Es werden Morphcoins vom [Miner]() zum Wallet transferiert.\ + \ + **Empfänger:** + * Empfänger ist immer der User + * Absender Miner von Computer X + * Empfänger Wallet-UUID Spieler + * Summe in MC + * Zeitstempel Empfangen im Unix Timestamp wird automatisch gesetzt + * Autom. Nachricht [Text] Miner leeren + +* Absender ist der Miner + +### 1.3.4 Transaktionshistorie + +* Die letzten 30 Transaktionen werden chronologisch gespeichert und können abgerufen werden (Transaktionshistorie). + * Transaktionen, die durch Hacks ausgeführt wurden, werden in der Historie gesondert gekennzeichnet. +* Die letzten 15 Einstellungsänderungen werden chronologisch gespeichert und können abgerufen werden. \ No newline at end of file diff --git a/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md b/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md index 10efffe..1b64b05 100644 --- a/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md +++ b/Cryptic/Gamedesign/Backend/Workloadsystem/Workloadsystem.md @@ -76,33 +76,34 @@ Grundlegende Funktionen 1. Die Definition, welche Auswirkung wann eintritt, wird individuell für jeden Prozess festgelegt. 2. Auswirkungen hängen von der Stärke der Reduzierung ab. - - Prozesse geben eine Leistungsgrenze für jede Auswirkung an. - - Die Grenze ist in einem Quotienten aus erhaltener und geforderter Leistung beschrieben. - - Die verfügbaren Auswirkungen sind fix. - - Beispiel: - - crashBelowPercentage: 0.5 - - ⇒ Wenn der Prozess weniger als 50% der geforderten Leistung zugewiesen bekommt, crashed er. + * Prozesse geben eine Leistungsgrenze für jede Auswirkung an. + * Die Grenze ist in einem Quotienten aus erhaltener und geforderter Leistung beschrieben. + * Die verfügbaren Auswirkungen sind fix. + * Beispiel: + * crashBelowPercentage: 0.5 + * ⇒ Wenn der Prozess weniger als 50% der geforderten Leistung zugewiesen bekommt, crashed er. 3. Ein Prio 1 Prozess stürzt sofort unter 100% ab. Er muss zwingend die volle Leistung bekommen. 4. Ein Prio 4 Prozess stürzt sofort unter 100% ab. Er muss zwingend die volle Leistung bekommen. 5. Folgende Auswirkungen sind möglich: - - Prozess stürzt ab - - Ohne Abschaltzeit oder Abschaltleistung sofort deaktiviert. - - Prozess startet beim nächsten Mal langsamer (nach Absturz) - - Nächste Startzeit nach Crash ist länger. - - Prozess antwortet nicht - - Beansprucht immer noch die zugewiesene Leistung, führt allerdings keine Aktionen mehr aus, bis er die + * Prozess stürzt ab + * Ohne Abschaltzeit oder Abschaltleistung sofort deaktiviert. + * Prozess startet beim nächsten Mal langsamer (nach Absturz) + * Nächste Startzeit nach Crash ist länger. + * Prozess antwortet nicht + * Beansprucht immer noch die zugewiesene Leistung, führt allerdings keine Aktionen mehr aus, bis er die Leistungsgrenze wieder nach oben überschreitet. (E.g: Es werden keine Morphcoins berechnet / Es werden keine Befehle dieses Prozesses ausgeführt) - - Prozess kann nicht “rechnen” - - Gleiches wie Prozess antwortet nicht, nur wird eine Fehlermeldung angezeigt. - - Prozess arbeitet ineffektiver - - z.B. es werden weniger MCs generiert/ die Erfolgschance sinkt - - Der Ineffektivitätsfaktor wird von dem Intervall [cannotCalculateGrenze ; 1] auf [0 ; 1] gemapped/interpoliert - + * Prozess kann nicht “rechnen” + * Gleiches wie Prozess antwortet nicht, nur wird eine Fehlermeldung angezeigt. + * Prozess arbeitet ineffektiver + * z.B. es werden weniger MCs generiert/ die Erfolgschance sinkt + * Der Ineffektivitätsfaktor wird von dem Intervall [cannotCalculateGrenze ; 1] auf [0 ; 1] gemapped/interpoliert + \ (Beispiel: - Grenze e) < 100%; Grenze d) < 80% zugewiesene Leistung = 90% -> mittig zwischen beiden Grenzen -> nur noch zu - 50% effizient.) + * Grenze e) < 100%; + * Grenze d) < 80%; + * zugewiesene Leistung = 90% -> mittig zwischen beiden Grenzen -> nur noch zu 50% effizient.) ### **1.5.6.2 Bei startenden/stoppenden Prozessen** From 3e9800f38bbdc0e85cef1c90001cd9ddf4c49ee5 Mon Sep 17 00:00:00 2001 From: T2brozz <42860763+T2brozz@users.noreply.github.com> Date: Thu, 14 Oct 2021 21:41:14 +0200 Subject: [PATCH 3/5] add 1.7.1 of gamedesign document --- .../Gamedesign/Backend/Computer/Computer.md | 0 .../Gamedesign/Backend/Computer/Hardware.md | 174 ++++++++++++++++++ 2 files changed, 174 insertions(+) create mode 100644 Cryptic/Gamedesign/Backend/Computer/Computer.md create mode 100644 Cryptic/Gamedesign/Backend/Computer/Hardware.md diff --git a/Cryptic/Gamedesign/Backend/Computer/Computer.md b/Cryptic/Gamedesign/Backend/Computer/Computer.md new file mode 100644 index 0000000..e69de29 diff --git a/Cryptic/Gamedesign/Backend/Computer/Hardware.md b/Cryptic/Gamedesign/Backend/Computer/Hardware.md new file mode 100644 index 0000000..9756b5e --- /dev/null +++ b/Cryptic/Gamedesign/Backend/Computer/Hardware.md @@ -0,0 +1,174 @@ +### 1.7.1 Hardware + +```Anmerkung: Die Daten der Hardware werden separat in einer Spielparameter-Datei gespeichert und dort bearbeitet.``` + +**Allgemeines**: + +* Die Tabellen stellen nur das Grundgerüst jeder Hardware dar (ohne Inhalt) + * In der Gameconfig wird die Hardware mit Inhalt definiert +* Jedes Hardwareteil ist mit einer einzigartigen ID gekennzeichnet. Die ID darf niemals geändert werden. + * Ersten zwei Ziffern geben die Hardware an und die nächsten zwei Ziffern den Index des Elements. + * Mainboard 01 + * Index 05 + * Beispiel: 0105 +* Jede Hardware hat einen Namen +* Jede Hardware hat einen festen Preis +* Jede Hardware hat ein “powerUsage” Attribute [noch ohne Stromkostenrechnung] +* Betrifft auch Netzwerk-Hardware - [siehe Router](1.9.2) + +
+ +#### 1.7.1.1 Definition Mainboard + +|Attribute | Bezeichnung | Einheit | +|---|---|---| +| id | Definiert eine einzigartige Zahl für das Element. Ersten zwei Ziffern geben die Hardware an und die nächsten zwei Ziffern den Index des Elements. Mainboard 01 Index 05 Beispiel: 0105 | Ganzzahl | +| name | Der Name der Hardware | Text | +| case | Größe des Mainboards gibt an, ob es ins Gehäuse passt. (ATX,...) | Text | +| cpuSocket | Socket der CPU | Text | +| coreTemperatureControl | Temperaturkontrolle der CPU (ohne Funktion) | Boolean | +| usbPorts | Anzahl der USB-Ports (ohne Funktion) | Ganzzahl | +| **ram (Nur Obergruppe)** | **RAM-Objekt** | | +| ramSlots | Anzahl wieviele RAM-Slots das Mainboard hat | Ganzzahl | +| maxRamSize | Maximale Größe aller RAM-Riegel zusammen in MB | Ganzzahl | +| ramTyp | Typ RAM z.b. DDR1, DDR2, usw. | Array von Text | +| frequency | RAM-Frequenz die kompatibel mit dem Mainboard sind in MHz | Array von Ganzzahlen | +| **graphicUnitOnBoard** | **graphicUnitOnBoard-Objekt**
Werden Spezifikationen angegeben, ist eine Grafikeinheit vorhanden, wenn nicht, ist keine Grafikeinheit vorhanden. | | +| name | Name der OnBoard Grafikeinheit | Text | +| vRamSize | VRAM-Größe in MB | Ganzzahl | +| frequency | VRAM-Frequenz der Grafikeinheit in MHz | Ganzzahl | +| capabilityGPU | Sagt aus wieviel GPU-Leistung es für das Workloadsystem bereitstellt | Ganzzahl | +| **expansionSlots** | **Erweiterungs-Steckplätze-Objekt** | | +| interface | Schnittstelle mit Version z.b. AGP 1.0, PCI 1.0 Kann mehrere, in der Version unterschiedliche Schnittstellen enthalten | Array von Text | +| interfaceSlots | Anzahl der Steckplätze pro Interface | Array von Ganzzahlen | +| **diskStorage** | **Festplatten-Objekt** | | +| diskSlots | Anzahl der Festplatten Steckplätze | Array von Ganzzahlen | +| interface | Schnittstelle mit Version z.b. IDE 1.0, SATA 1.0 | Array von Text | +| **networkPort** | **Netzwerk-Objekt** | | +| networkPortOnBoard | Sagt aus, ob eine OnBoard Netzwerkkarte vorhanden ist oder nicht. Kann true oder false sein. Es gibt nur Onboard oder externe Netzwerkkarte | Boolean | +| capabilityNET | Sagt aus wieviel Netzwerkleistung es für das Workloadsystem bereitstellt | Ganzzahl | +| name | Netzwerkkarten-Name | Text | +| connectorType | Schnittstelle zum Router | Text | +| ports | Anzahl der Steckplätze | Ganzzahl | +| speed | Geschwindigkeit der Netzwerkverbindung in MB/s | Ganzzahl | +| powerUsage | Energieverbrauch in Watt | Ganzzahl | +| price | Der Preis der Hardware in MC | Ganzzahl | + +#### 1.7.1.4 Definition CPU + +| Attribute | Bezeichnung | Einheit | +|---|---|---| +| id | Definiert eine einzigartige Zahl für das Element. | Ganzzahl | +| name | Der Name der Hardware | Text | +| frequencyMin | Minimale CPU-Frequenz der CPU in MHz | Ganzzahl | +| frequencyMax | Maximale CPU-Frequenz der CPU in MHz | Ganzzahl | +| socket | Socket-Bezeichnung der CPU | Text | +| cores | Anzahl der Rechenkerne | Ganzzahl | +| turboSpeed | Max Turbo-Frequenz möglich / True oder False (ohne Funktion) | Boolean | +| overClock | Übertakten der CPU / True oder False (ohne Funktion) | Boolean | +| maxTemperature | Maximale CPU Temperatur (ohne Funktion) | Ganzzahl | +| **graphicUnit** | **graphicUnit-Attribut-Objekt** | | +| name | Name der internen Grafikeinheit / kann auch None sein | Text | +| VRamSize | VRAM-Größe in MB / kann auch None sein | Ganzzahl | +| frequency | VRAM-Frequenz der Grafikeinheit in MHz / kann auch None sein | Ganzzahl | +| capabilityGPU | Sagt aus wieviel GPU-Leistung es für das Workloadsystem bereitstellt | Ganzzahl | +| capabilityCPU | Sagt aus wieviel CPU-Leistung es für das Workloadsystem bereitstellt | Ganzzahl | +| powerUsage | Energieverbrauch in Watt | Ganzzahl | +| price | Der Preis der Hardware in MC | Ganzzahl | + +#### 1.7.1.5 Definition CPU-Kühler + +| Attribute | Bezeichnung | Einheit | +|---|---|---| +| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl | +| name | Der Name der Hardware | Text | +| coolerSpeed | CPU-Kühler Geschwindigkeit | Ganzzahl | +| socket | Socket der CPU | Text | +| powerUsage | Energieverbrauch in Watt | Ganzzahl | +| price | Der Preis der Hardware in MC | Ganzzahl | + +####1.7.1.6 Definition RAM +| Attribute | Bezeichnung | Einheit | +|---|---|---| +| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl | +| name | Der Name der Hardware | Text | +| ramSize | Speichergröße des RAM | Ganzzahl | +| ramTyp | RAM-Speicher-Art (üblicherweise DDR SDRAM [DDR4,...]) | Text | +| frequency | RAM-Frequenz in MHz | Ganzzahl | +| capabilityRAM | Sagt aus wieviel RAM-Leistung es für das Workloadsystem bereitstellt | Ganzzahl | +| powerUsage | Energieverbrauch in Watt | Ganzzahl | +| price | Der Preis der Hardware in MC | Ganzzahl | + +####1.7.1.7 Definition Grafikkarte +| Attribute | Bezeichnung | Einheit | +|---|---|---| +| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl | +| name | Der Name der Hardware | Text | +| VRamSize | VRAM-Größe in MB | Ganzzahl | +| VRamTyp | VRAM-Speicher-Art (GDDR1, GDDR2...) | Text | +| frequency | VRAM-Frequenz der Grafikeinheit in MHz | Ganzzahl | +| interface | Schnittstelle mit Version z.b. AGP 1.0, PCI 1.0 | Text | +| capabilityGPU | Sagt aus wieviel GPU-Leistung es für das Workloadsystem bereitstellt | Ganzzahl | +| powerUsage | Energieverbrauch in Watt | Ganzzahl | +| price | Der Preis der Hardware in MC | Ganzzahl | + +####1.7.1.8 Definition Festplatte + +| Attribute | Bezeichnung | Einheit | +|---|---|---| +| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl | +| name | Der Name der Hardware | Text | +| diskTyp | Welcher Typ Festplatte zb HDD, SSD, m.2 | Text | +| capacity | Speichergröße der Festplatte in MB | Ganzzahl | +| writingSpeed | Schreibgeschwindigkeit in MB/s | Ganzzahl | +| readingSpeed | Lesegeschwindigkeit in MB/s | Ganzzahl | +| interface | Schnittstelle mit Version z.b. IDE 1.0, SATA 1.0 | Text | +| powerUsage | Energieverbrauch in Watt | Ganzzahl | +| price | Der Preis der Hardware in MC | Ganzzahl | + +* Auf der Festplatte werden alle Dateien gespeichert z.b. Ordner, Textdateien [Später: Malware, Software] - [siehe Speichernutzung](../Filesystem/Filesystem.md#143-speichernutzung) +* Mit jeder weiteren Festplatte wird deren Kapazität aufaddiert (Gesamtkapazität) +* Eine einzelne Festplatte muss jeweils genügend Speicherplatz für die Systemdateien des Betriebssystems haben. + +####1.7.1.9 Definition Netzwerkkarte +| Attribute | Bezeichnung | Einheit | +|---|---|---| +| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl | +| name | Der Name der Hardware | Text | +| interface | Schnittstelle z.b. PCIe | Text | +| connectorType | Anschlusstyp zb RJ45 | Text | +| speed | Übertragungsrate in MB/s | Ganzzahl | +| capabilityNET | Sagt aus wieviel Netzwerkleistung es für das Workloadsystem bereitstellt | Ganzzahl | +| powerUsage | Energieverbrauch in Watt | Ganzzahl | +| price | Der Preis der Hardware in MC | Ganzzahl | + +####1.7.1.10 Definition Netzteil + +| Attribute | Bezeichnung | Einheit | +|---|---|---| +| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl | +| name | Der Name der Hardware | Text | +| totalPower | Muss in Summe aller Hardwarteile genügend Leistung (Watt) zur Verfügung stellen | Ganzzahl | +| price | Der Preis der Hardware in MC | Ganzzahl | + +####1.7.1.11 Definition Gehäuse +| Attribute | Bezeichnung | Einheit | +|---|---|---| +| id | Definiert eine einzigartige Zahl für das Element | Ganzzahl | +| case | Der Name der Hardware | Text | +| size | Größe des Gehäuse als Name zb. Midi, ITX, ATX Größenstufen Beispiel: Midi (klein) ITX (mittel) ATX (groß) | Text | +| price | Der Preis der Hardware in MC | Ganzzahl | + +####1.7.1.12 Hardware kaufen +* Jede Hardware bekommt einen festen Preis. + * Wenn Hardwarepreis -1 MC entspricht, wird diese nicht zum verkauf angeboten +* Jede Hardware ist käuflich mit der Ingame-Währung +* Es können 1-n Elemente auf einmal gekauft werden (abhängig vom Kontostand) +* Dem Hardware-Shop kann immer ein Wallet zugewiesen werden (-> Settings für BE) + * Änderung des Wallets jederzeit möglich +* Wird Hardware gekauft, wird der Gesamtbetrag autom. vom Wallet abgebucht + * Wenn nicht genügend Geld vorhanden, kein Hardwarekauf möglich + * Das Geld wird beim eingestellten User-Wallet abgebucht +* Wird Hardware gekauft wird diese im [Inventar](1.7.8) abgelegt +* Jedes Merkmal einer Hardwarekomponente kann abgerufen werden +* Es muss eine aktive Verbindung zum [Hardware-Shop-Server]() bestehen. Diese liegt vor, wenn auf einem PC, der dem Nutzer gehört, ein aktiver Netzwerktreiber läuft und eine Verbindung zum entsprechenden Server hergestellt werden kann. From b4077e81eeaa3a38554ea0cb1058a48367ae97c4 Mon Sep 17 00:00:00 2001 From: T2brozz <42860763+T2brozz@users.noreply.github.com> Date: Fri, 15 Oct 2021 22:50:04 +0200 Subject: [PATCH 4/5] add 1.7.2 -1.7.7 from Computer chapter --- .../Gamedesign/Backend/Computer/Computer.md | 282 ++++++++++++++++++ 1 file changed, 282 insertions(+) diff --git a/Cryptic/Gamedesign/Backend/Computer/Computer.md b/Cryptic/Gamedesign/Backend/Computer/Computer.md index e69de29..66fd8b0 100644 --- a/Cryptic/Gamedesign/Backend/Computer/Computer.md +++ b/Cryptic/Gamedesign/Backend/Computer/Computer.md @@ -0,0 +1,282 @@ +## 1.7 Computer + +erstellt von [Marius, Maximilian] + +### 1.7.2 Leistungspunkte + +Hardwarekomponente die keine Leistungspunkte (LP) besitzen, sind nicht aufgeführt. \ +GitHub: +Datei [hardware_gameconfig](https://github.com/cryptic-game/gamedesign/blob/parameter-pre-alpha-3/Cryptic/Gameparameter/hardware_gameconfig.yaml) +, Stand: 29.08.2021 + +**Start-PC:** + +* Mainboard: Zero MX One / GPU = 5.000 LP / NET = 10.000 LP +* CPU: CoreOne A100 / CPU = 10.000 LP +* RAM: Crossfire One / RAM = 10.000 LP +* Externe GPU: Nein +* Externe Netzwerkkarte: Nein +* 50 MC/Tag + +**Unterklasse-PC** + +* Mainboard: Zero MX Pro / NET = 10.000 LP +* CPU: CoreOne A110 / CPU = 20.000 LP +* RAM: Crossfire ZX100 / RAM = 44.000 LP +* Externe GPU: Forcevid MX1000 / GPU = 40.000 LP +* Externe Netzwerkkarte: Nein +* 80 MC/Tag + +**Mittelklasse-PC** + +* Mainboard: Zetta Ultimate M150 +* CPU: DualCore M101 / CPU = 40.000 LP +* RAM: Crossfire ZX200 / RAM = 139.000 LP +* Externe GPU: Zetta TX2066 / GPU = 204.000 LP +* Externe Netzwerkkarte: Network Element One / NET = 20.000 LP +* 180 MC/Tag + +**High-End PC** + +* Mainboard: Zeus Professional X3 +* CPU: QuadCore TX950 / CPU = 205.000 LP +* RAM: Crossfire P60 + Crossfire P60 / RAM = 1.100.000 + 1.100.000 = 2.200.000 LP +* Externe GPU: Zetta TX2066 Pro / GPU = 460.000 LP +* Externe Netzwerkkarte: Network Element One / NET = 20.000 LP +* 300 MC/Tag + +### 1.7.3 Basisfunktionen + +#### 1.7.3.1 Allgemein + +* Jeder Computer bekommt eine einzigartige UUID +* Die UUID wird beim kompletten Auseinanderbauen eines Rechners gelöscht und beim Zusammenbauen neu vergeben. Die UUID + wird erst gelöscht, wenn das Mainboard entfernt wird, siehe Reihenfolge Schritt 2 + bei [Hardwareteile tauschen](#1773-hardwareteile-tauschen). +* Jeder funktionsfähige Computer besteht aus Mindestbestandteilen +* Jeder Computer ist konfigurierbar - siehe [Konfiguration ändern](#177-konfiguration-ndern). + * Besonderheit beim Start-PC beachten +* Anmerkung für Start-Computer: Die Hardwareteile des Start-PC befinden sich zum ersten Spieleintritt im [Inventar](1.8) + . Der User muss den Computer aktiv [zusammenbauen](#176-zusammenbauen). + +* Computer die insgesamt gebaut/erstellt werden können: + * max. 6 Computer + * Ein Computer kann vollständig oder unvollständig sein. Beides zählt als erstellt - siehe Definition + unter [zusammenbauen](#176-zusammenbauen) + * der Neu erstellte Computer ist Inaktiv und wird im Inventar abgelegt + +* Aktive Computer die gleichzeitig benutzt werden können: + * min. 0 Computer + * max. 4 Computer + * [Server zur späteren Version] + * Anmerkung: Aktiver Computer bezeichnet nur das “einstecken des Stromkabels in die Steckdose”. Ein aktiver Computer + verbraucht trotzdem 1x Slot im Inventar. + +* Computername ist vom Spieler zu benennen: + * Owner darf den Computer-Namen jederzeit ändern. Der Computer muss dazu aktiv sein, unabhängig ob ein- oder + ausgeschaltet. + * 2 bis 10 Zeichen (Zahlen 0-9, Buchstaben a-z/A-Z) + * mind. 1x Buchstabe + * RegEx: (?=.*[a-zA-Z])[\da-zA-Z]{2,10} + * Kein Name von der [Blacklist](../Filesystem/Filesystem.md#144-blacklist) + * Name muss ab dem Einbau von “Mainboard” angegeben werden. + * Für den User müssen alle Computer im Inventar unterschiedliche Namen besitzen + * Hinweis: Global gesehen können PCs von unterschiedliche Usern, den gleichen PC-Namen haben +* Computername kann vom Hacker geändert werden + * Der Netzwerktreiber muss Kommunikation zulassen + * Sobald der Fremde User die Hacker-Rolle besitzt, kann er den Computernamen genau einmal ändern. Der Hacker wird + für Zeit x gesperrt. [wird später eventuell überarbeitet und ist abhängig von der Firewall] + * Für Hacker-Rolle - siehe Kapitel [1.6.1.1.5.1 Rollensystem]() + +* Die Computer-UUID kann abgerufen werden +* Der Name des Computers kann abgerufen werden +* Anzahl verbauter Hardwarteile eines Computers kann abgerufen werden +* Für jedes Hardwareteil eines Computers können dessen Merkmale abgerufen werden. + +#### 1.7.3.2 Mindestbestandteile + +Mindestbestandteile eines funktionsfähigen Computers bestehend aus 7 Teilen: + +* 01 Mainboard +* 02 CPU +* 03 CPU-Kühler +* 04 RAM +* 05 Festplatte +* 06 Gehäuse +* 07 Netzteil Wenn es keine Onboard-Möglichkeit gibt, greift immer die externe Komponente - + siehe [1.7.5 Hardwarekompatibilität.](#175-hardwarekompatibilitt) +* Grafikkarte gehört nicht zu den Mindestbestandteilen + * OnBoard-Config ist möglich (Mainboard oder CPU) +* Netzwerkkarte gehört nicht zu den Mindestbestandteilen + * OnBoard-Config ist möglich (Mainboard) + +* Start-PC hat die Mindestbestandteile mit den leistungsschwächsten Bauteilen - + siehe [Start-Computer](#174-start-computer) + +### 1.7.4 Start-Computer + +Anmerkung für GD: Start-PC Teile kosten etwas + +* Hardware-Komponente + * Option 1: false: Komponente lagern zum ersten Spieleintritt im Inventar + * Option 2: true: Computer ist zum ersten Spieleintritt autom. erstellt + * Einstellung steht auf => false: Komponente lagern zum ersten Spieleintritt im Inventar
Folglich greift dies + nur ein mal. + * Hardwareteile sind bei jedem Spieler gleich - siehe Tabelle in diesem Kapitel +* Die Teile des Start-PCs können nicht gelöscht, nicht verkauft und nicht versendet werden (verhindert, dass der Spieler + aus versehen Komponenten schon vorher aus dem Inventar z.b. löscht und somit Spielunfähig wird). Beachte Besonderheit + bei [Hardwareteile tauschen](Hardware.md#17112-hardware-kaufen) +* Start-Computer ist bis zu einem gewissen Grad konfigurierbar + * Mainboard und Gehäuse können nicht getauscht werden, bleiben fester Bestandteil. Somit kann der Start-Computer + nicht vollständig auseinandergebaut werden. + * Alle anderen Teile sind konfigurierbar/Teile tauschen möglich. +* Computer wird als 1 Item (Komplett-PC) im Inventar abgelegt +* Verbraucht 1x Slot im Inventar +* Einzelteile können nicht gelöscht, nicht verkauft und nicht versendet werden + +**Start-PC** +Der Start-PC definiert die Hardware die der User zum Start des Spiels bekommt. Es definiert den Leistungsschwächsten +Computer. Hardware wird in der Gameconfig definiert. + +| Hardware | ID | +|---|---| +| Mainboard | Ganzzahl | +| CPU | Ganzzahl | +| ProcessorCooler | Ganzzahl | +| GPU | nicht verbaut => OnBoard | +| RAM | Ganzzahl | +| Disk | Ganzzahl | +| NetworkCard | nicht verbaut => OnBoard | +| Powerpack | Ganzzahl | +| Case | Ganzzahl | + +### 1.7.5 Hardwarekompatibilität + +Die genaue Kompatibilität der einzelnen Hardwareteile wird in einem Diagramm erläutert. Link zum +Diagramm: [Hardwarekompatibilität Cryptic v0.3.0](https://nextcloud.cryptic-game.net/s/oPkZze6at3LQPXo) + +**Möglichkeiten Grafikeinheit GPU:** + +* Option 1: OnBoard-Grafikeinheit auf Mainboard +* Option 2: OnBoard-Grafikeinheit auf CPU +* Option 3: Externe Grafikeinheit +* Computer ist mit OnBoard-Grafikeinheit lauffähig (günstige Variante). + +Priorität: + +* Es wird die nächst beste GPU verwendet, gemessen am Leistungswert. Wenn KEINE OnBoard-GPU vorhanden ist, dann muss + eine externe GPU eingebaut werden! + +**Möglichkeiten Netzwerkkarte NET:** + +* Option 1: OnBoard-Netzwerkkarte auf Mainboard +* Option 2: Externe Netzwerkkarte +* Computer ist mit OnBoard-Netzwerkkarte lauffähig (günstige Variante). + +Priorität: + +* Es wird die nächst beste Netzwerkkarte verwendet, gemessen am Leistungswert. Wenn KEINE OnBoard-Netzwerkkarte + vorhanden ist, dann muss eine externe Netzwerkkarte eingebaut werden! + +**Expansion Slots / Erweiterungssteckplatz** + +* Es können nur GPU, Netzwerkkarte und Disks installiert werden +* Hierbei muss das Attribute “interface” immer zusammenpassen + * Beispiel: GPU “interface: PCI 2.0” => expansionslot “interface: PCI 2.0” + * Interface-Name und Version müssen zusammen passen + +### 1.7.6 Zusammenbauen + +Teile aus dem Inventar können zum Bau eines neuen Computers verwendet werden. +**Bedingungen**: + +* Alle Mindestbestandteile müssen zum erstellen eines funktionsfähigen Computers verbaut sein. + * Computer kann aber auch “erstellt” und trotzdem unvollständig sein. +* Alle Hardware-Komponenten müssen miteinander kompatibel sein für einen funktionsfähigen Computer +* Computername muss ab Schritt 2 “Mainboard” angegeben werden. Definiton für Namen + unter [1.7.3.1 Allgemein](#1731-allgemein) zu finden. + +Reihenfolge: + +| Schritt | Hardwarekomponente | Anmerkung | +|---|---|---| +| 1 | Gehäuse | Zuerst wird das Gehäuse festgelegt | +| 2 | Mainboard | Danach wird das Mainboard eingebaut | +| 3 | CPU | Danach kann die CPU eingebaut werden (Optional: CPU kann auch nach Schritt 4 eingebaut werden) | +| 3.1 | CPU-Kühler | Der CPU-Kühler kann erst nach der CPU-Komponente eingebaut werden | +| 3 | 4 | RAM, Grafikkarte, Festplatte, Netzwerkkarte, Netzteil | Alle weiteren Teile können ohne Reihenfolge (aber nach Schritt 2) eingebaut werden | + +* Bei jedem Bauteil, welches hinzugefügt wird, wird die Kompatibilität geprüft + * Hinweis: Die vollständige Abfrage durch eine Funktion “Erstellen” entfällt. Somit auch ein Button “Erstellen” im + Frontend. + * Situation 1: Wenn kompatibel, i.O. + * Situation 2: Wenn nicht kompatibel, wird das Bauteil nicht akzeptiert + * Ein Computer hat folgende Stadien: + * Status 1: Alle Bauteile sind verbaut und kompatibel. Der Computer ist vollständig und funktionsfähig ( + Betriebssystem startet). + * Status 2: Unvollständig und nicht funktionsfähig. Ein unvollständiger Computer gilt ab Gehäuse + Mainboard und + wenn nicht alle weiteren Mindestbestandteile verbaut sind bsp. es fehlt ein RAM-Modul. +* Sind alle Bauteile kompatibel und der Computer funktionsfähig wird die Computer-UUID erzeugt. Ansonsten nicht. Die + UUID wird mit dem Mainboard verknüpft. +* Jeder zusammengebaute Computer ist zu Beginn ausgeschaltet + * Ein zusammengebauter Computer zählt sobald Gehäuse und Mainboard verbunden sind. + * Ein (neu) erstellte Computer ist Inaktiv und wird im Inventar abgelegt +* Jeder zusammengebaute Computer verbraucht 1x Slot im Inventar + * Hinweis: Verbaute Hardwareteile verbrauchen kein Platz im Inventar + +### 1.7.7 Konfiguration ändern + +#### 1.7.7.1 Allgemein + +* Es gibt folgende Möglichkeiten: + * Option 1: [Computer auseinander bauen](#1772-computer-auseinander-bauen) + * Option 2: [Hardwareteile tauschen](#1773-hardwareteile-tauschen) +* Wenn das Inventar gar keine oder zu wenige Plätze frei hat: + * kann der Computer nicht in einem rutsch auseinander gebaut werden => Ausbauen wird gesperrt (Anzahl Teile vom + Computer muss mit freie Plätze im Inventar verglichen werden). + * können die Hardwareteile nur einzelnen oder gar nicht getauscht werden +* Dateien bleiben auf der Festplatte erhalten, wenn Festplatte getauscht werden sollte +* Wenn Spieler-Inventar voll + * Auseinanderbauen nicht möglich + * Teile tauschen nicht möglich + * Option: Hardware kann im [Inventar](1.8) gelöscht/verkauft werden + +#### 1.7.7.2 Computer auseinander bauen + +* Option 1: Computer kann vollständig in einem rutsch auseinandergebaut werden + * → Bedingung: Device muss ausgeschaltet sein - siehe [Betriebssystem](1.6.1.1) + * UUID und Computername werden gelöscht + * Voraussetzung es sind ausreichend Slots vorhanden. + * Alle Hardwareteile werden im Spiel-Inventar abgelegt. + * **Ausnahme**: Der Start-PC kann nicht auseinandergebaut werden + +#### 1.7.7.3 Hardwareteile tauschen + +* Option 2: Hardwareteile können einzeln ausgetauscht werden + * → Bedingung: Device muss ausgeschaltet sein - siehe [Betriebssystem](1.6.1.1) + +**Reihenfolge Teile tauschen:** + +1. Zuerst können RAM, Grafikkarte, Festplatte, CPU-Kühler => CPU, Netzwerkkarte und Netzteil getauscht werden +2. Mainboard kann erst getauscht werden, wenn alle genannten Teile aus Schritt 1 entfernt sind +3. Gehäuse kann erst getauscht werden, wenn ALLE Hardwareteile entfernt sind + **Besonderheit Onboard-Nwk/Netzwerkkarte:** + +* Wenn zur Onboard-Netzwerkkarte eine Netzwerkkarte eingebaut wird, wird diese aktiv - + siehe [Generierung der Morph-IP](1.9.6) +* Wird die Netzwerkkarte wieder ausgebaut, wird die Onboard-Karte aktiv + * Voraussetzung: Das Mainboard besitzt eine - siehe [1.9.1.2 Generierung der Morph-Adressen]() + +**Besonderheit Start-PC:** + +* Fall 1 - Neue Teile: Neu eingebaute Hardwareteile können anschließend beim wieder herausnehmen nicht gelöscht oder + verkauft werden. Voraussetzung diese werden direkt im Inventar abgelegt und nicht wiederverwendet. Diese bleiben + unzerstörbar. +* Fall 2 - Teile tauschen: Hardwareteile die durch andere ausgetauscht werden, können anschließend gelöscht, verkauft + oder versendet werden. + * Voraussetzung: + * ein Austausch (Ersetzen des vorigen Teils) findet statt. + * die Komponente ist kompatibel +* Es muss also immer ein Komplett-Computer vorhanden sein bzw. die einzelnen Teile davon sollen nicht löschbar, nicht + verkäuflich und nicht versendbar sein + From 5f17e8a71df03c292269faa002cb2697d36ffdfc Mon Sep 17 00:00:00 2001 From: T2brozz <42860763+T2brozz@users.noreply.github.com> Date: Wed, 27 Oct 2021 10:39:55 +0200 Subject: [PATCH 5/5] Add Inventar as Markdown --- .../Gamedesign/Backend/Inventar/Inventar.md | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 Cryptic/Gamedesign/Backend/Inventar/Inventar.md diff --git a/Cryptic/Gamedesign/Backend/Inventar/Inventar.md b/Cryptic/Gamedesign/Backend/Inventar/Inventar.md new file mode 100644 index 0000000..7825ab8 --- /dev/null +++ b/Cryptic/Gamedesign/Backend/Inventar/Inventar.md @@ -0,0 +1,108 @@ +## 1.8 Inventar + +erstellt von [Marius] + +### 1.8.1 Basisfunktionen + +Das Inventar wird genutzt um Items zu lagern + +* Jeder zusammengebaute Computer, jedes unverbaute Hardwareteil, sowie Router verbraucht entsprechend 1x Slot im + Inventar. + * verbaute Hardwareteile verbrauchen kein Slot +* Zu Beginn des Spiels befinden sich im Inventar: + * Alle Bestandteile für den Start-PC (abhängig von der Hardware-Gameconfig) + * 1x Standard Spieler-Router + * Die Startzahl darf nicht kleiner sein, als die Gesamtzahl der Teile für den Start-PC + 1x Router - Beachte + Mindestanzahl [1.7.4 Start-Computer](../Computer/Computer.md#174-start-computer) +* Pro aktiven PC wird das Inventar um 7 Plätze erweitert + * Nur wenn ein PC mit einem anderen, unterschiedlichen Mainboard aktiv geschaltet wird, können weitere Slots dazu + geschaltet werden. Identifizierung anhand der Mainboard-Hardware-ID (Computername zur identifizierung ist nicht + zulässig). + * Die Slotanzahl kann 4x erweitert werden. Somit können max. 7*4 = 28 Slots zusätzlich freigeschaltet werden. Es ist + also von x unterschiedlichen Mainboards abhängig => Festlegung in der Hardware-Gameconfig. + * Wenn ein aktiver PC inaktiv geschaltet wird, bleiben die Slots weiterhin erhalten. + * Das bereits eingesetzte Mainboard, sowie bei Neukauf und Verwendung des gleichen Mainboard-Modells, ist für die + Erweiterung der Slots nicht zulässig. + * **Besonderheit Gameconfig**: Wenn in der Gameconfig die max. Slotanzahl niedriger gewählt wird, als zu Beginn + festgelegt war, bleiben die Items erhalten. Auch wenn mehr Items im Inventar enthalten sind als zugelassen. Der + Spieler kann keine weiteren Items aufnehmen und muss entscheiden, welche seiner Items gelöscht oder verkauft + werden, solange bis Slots frei werden. +* Der Inhalt des Inventars kann abgerufen werden +* Die Anzahl der abgelegten Items kann abgerufen werden +* Die Anzahl der noch verfügbaren Slots kann abgerufen werden +* Items können verschickt werden - siehe [1.8.2 Items verschicken](#182-items-verschicken) +* Items können gelöscht werden - siehe [1.8.3 Items löschen](#183-items-lschen) +* Items können verkauft werden - siehe [1.8.4 Items verkaufen](#184-items-verkaufen) + +### 1.8.2 Items verschicken + +#### 1.8.2.1 Kernfunktionen + +* Einzelne Hardwareteile und Router können per User-UUID oder Usernamen an einen beliebigen Spieler mit dem + Versanddienst gesendet werden. Spieler A (Absender) sendet an Spieler B (Empfänger). + * Der Absender (Spieler A) muss einer dieser Daten zum Verschicken angeben. + * **Bedingung beim Absenden**: Irgendein Computer des Versenders muss eingeschaltet sein und der Netzwerktreiber + muss Kommunikation zulassen (Verbindung zum Internet). Nach dem Absenden kann der Computer ausgeschaltet sein + und/oder der User (Sender und Empfänger) kann ausgeloggt sein. + * Nur der Absender muss mit dem Versanddienst (Dispatch-Service-Server) verbunden sein, unabhängig mit was der + Empfänger verbunden ist. Und unabhängig in welchem Netzwerk sich beide Spieler befinden. + * Der Empfänger benötigt keinen Computer + * Der Empfänger muss das Paket bestätigen, sodass es abgeschickt wird. + * Erst nach dem Bestätigen vom Empfänger, wird das Paket versendet + * Wenn das Paket nicht innerhalb von 4 h angenommen wird, verfällt das Paket und die Teile bleiben beim + Absender. +* Das Geld wird beim Absenden direkt von Spieler A vom Versanddienst abgebucht. + * Angabe des Wallets + * Wenn nicht ausreichend Geld vorhanden, dann kein Paket Senden möglich + * Das Geld wird vom Wallet Spieler A abgebucht +* Es können max. 3 Pakete in 7 Tagen versendet werden. Die Zeit wird immer ab dem Absendedatum des zuletzt gesendeten + Pakets gemessen. + * Anzahl Pakete + * Intervall in Tagen + * Es können gleichzeitig unterschiedliche Versanddienste gewählt werden +* Pro Paket können max. 5 Items verschickt werden + * Versenden von Computern nicht möglich +* Folgendes wird beim Absender ausgegeben: + * Das Absende- und Sendedatum wird beim Absender angezeigt + * Zeitstempel mit Unix Timestamps + * Ziel-User wird angezeigt + * Aktiver Versanddienst + * Anzahl Pakete mit Inhalt werden angezeigt +* Folgendes wird beim Empfänger ausgegeben: + * Das Sendedatum wird beim Empfänger angezeigt + * Zeitstempel mit Unix Timestamps + * Absender-User wird angezeigt + * Aktiver Versanddienst + +#### 1.8.2.2 Versanddienste + +* Verschiedene Versanddienste zur Auswahl +* Zeit die das Paket braucht bis zur Ankunft bei anderen Spielern + +| Versandart | Paketpreis | +|---|---| +| Standardversand
Dauer: 3 Tage (72 Std)
| Kostenlos | +| Premiumversand
Dauer: 1 Tag (24 Std)
| 45 MC | +| Premium NOW
Dauer: 5 min
| 120 MC | + +### 1.8.3 Items löschen + +* Alle Items (Computer und Hardware) können unwiderruflich im Inventar gelöscht werden + * Item wird aus dem Inventar genommen + * Der bisher belegte Slot wird frei + * **Besonderheit**: Wird eine Netzwerkkarte oder ein Mainboard mit OnBoard Netzwerkkarte gelöscht, wird auch die IP + gelöscht - siehe [1.9.1.3 Generierung](193) der Morph-Adresse Gleiche gilt auch, wenn ein Computer gelöscht hat der diese + Konfiguration hat. + * **Besonderheit**: Wenn eine Festplatte mit Inhalt gelöscht wird, werden auch alle darauf liegenden Dateien + unwiderruflich gelöscht + +### 1.8.4 Items verkaufen + +* Nur einzelne Computer-Hardwareteile (Items) können für eine Erstattung von 20% des Kaufpreises zurückgegeben + werden [wird zur späteren Version durch den Schrotthändler ersetzt] + * Item wird aus dem Inventar genommen + * Es können x Items pro Tag verkauft werden + * Der bisher belegte Slot wird frei +* Das Geld wird direkt auf das angegebene Spieler-Wallet gebucht + +