@jjlmoya/utils-games-development 1.50.0 → 1.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +3 -1
  3. package/src/entries.ts +8 -1
  4. package/src/tests/locale_completeness.test.ts +2 -2
  5. package/src/tests/tool_validation.test.ts +2 -2
  6. package/src/tool/audioLoopPointFinder/audio-loop-point-finder.css +322 -0
  7. package/src/tool/audioLoopPointFinder/audio-player.ts +84 -0
  8. package/src/tool/audioLoopPointFinder/bibliography.astro +6 -0
  9. package/src/tool/audioLoopPointFinder/bibliography.ts +16 -0
  10. package/src/tool/audioLoopPointFinder/client.ts +262 -0
  11. package/src/tool/audioLoopPointFinder/component.astro +147 -0
  12. package/src/tool/audioLoopPointFinder/dom-utils.ts +55 -0
  13. package/src/tool/audioLoopPointFinder/entry.ts +27 -0
  14. package/src/tool/audioLoopPointFinder/i18n/de.ts +211 -0
  15. package/src/tool/audioLoopPointFinder/i18n/en.ts +211 -0
  16. package/src/tool/audioLoopPointFinder/i18n/es.ts +211 -0
  17. package/src/tool/audioLoopPointFinder/i18n/fr.ts +211 -0
  18. package/src/tool/audioLoopPointFinder/i18n/id.ts +211 -0
  19. package/src/tool/audioLoopPointFinder/i18n/it.ts +211 -0
  20. package/src/tool/audioLoopPointFinder/i18n/ja.ts +211 -0
  21. package/src/tool/audioLoopPointFinder/i18n/ko.ts +211 -0
  22. package/src/tool/audioLoopPointFinder/i18n/nl.ts +211 -0
  23. package/src/tool/audioLoopPointFinder/i18n/pl.ts +211 -0
  24. package/src/tool/audioLoopPointFinder/i18n/pt.ts +211 -0
  25. package/src/tool/audioLoopPointFinder/i18n/ru.ts +211 -0
  26. package/src/tool/audioLoopPointFinder/i18n/sv.ts +211 -0
  27. package/src/tool/audioLoopPointFinder/i18n/tr.ts +211 -0
  28. package/src/tool/audioLoopPointFinder/i18n/zh.ts +211 -0
  29. package/src/tool/audioLoopPointFinder/index.ts +11 -0
  30. package/src/tool/audioLoopPointFinder/logic.test.ts +72 -0
  31. package/src/tool/audioLoopPointFinder/logic.ts +214 -0
  32. package/src/tool/audioLoopPointFinder/metadata-parser.ts +94 -0
  33. package/src/tool/audioLoopPointFinder/seo.astro +15 -0
  34. package/src/tool/audioLoopPointFinder/ui.ts +42 -0
  35. package/src/tool/audioLoopPointFinder/waveform-renderer.ts +53 -0
  36. package/src/tool/saveFileEditor/bibliography.astro +6 -0
  37. package/src/tool/saveFileEditor/bibliography.ts +12 -0
  38. package/src/tool/saveFileEditor/component.astro +351 -0
  39. package/src/tool/saveFileEditor/entry.ts +28 -0
  40. package/src/tool/saveFileEditor/game-save-file-editor.css +250 -0
  41. package/src/tool/saveFileEditor/i18n/de.ts +182 -0
  42. package/src/tool/saveFileEditor/i18n/en.ts +182 -0
  43. package/src/tool/saveFileEditor/i18n/es.ts +182 -0
  44. package/src/tool/saveFileEditor/i18n/fr.ts +182 -0
  45. package/src/tool/saveFileEditor/i18n/id.ts +182 -0
  46. package/src/tool/saveFileEditor/i18n/it.ts +182 -0
  47. package/src/tool/saveFileEditor/i18n/ja.ts +182 -0
  48. package/src/tool/saveFileEditor/i18n/ko.ts +182 -0
  49. package/src/tool/saveFileEditor/i18n/nl.ts +182 -0
  50. package/src/tool/saveFileEditor/i18n/pl.ts +182 -0
  51. package/src/tool/saveFileEditor/i18n/pt.ts +182 -0
  52. package/src/tool/saveFileEditor/i18n/ru.ts +182 -0
  53. package/src/tool/saveFileEditor/i18n/sv.ts +182 -0
  54. package/src/tool/saveFileEditor/i18n/tr.ts +182 -0
  55. package/src/tool/saveFileEditor/i18n/zh.ts +182 -0
  56. package/src/tool/saveFileEditor/index.ts +11 -0
  57. package/src/tool/saveFileEditor/logic.test.ts +69 -0
  58. package/src/tool/saveFileEditor/logic.ts +139 -0
  59. package/src/tool/saveFileEditor/seo.astro +15 -0
  60. package/src/tool/saveFileEditor/ui.ts +24 -0
  61. package/src/tools.ts +5 -0
@@ -0,0 +1,182 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { SaveFileEditorUI } from '../ui';
3
+ import { bibliographyEntries } from '../bibliography';
4
+
5
+ export const content: ToolLocaleContent<SaveFileEditorUI> = {
6
+ slug: 'spiel-speicherstand-editor',
7
+ title: 'Spiel Speicherstand Editor und Obfuskator',
8
+ description: 'Entschlüsseln, überprüfen, bearbeiten Sie JSON Payloads und verschlüsseln Sie Spiel Speicherstände lokal mit Base64, XOR Maskierung oder Klartext.',
9
+ ui: {
10
+ title: 'Spiel Speicherstand Editor & Obfuskator',
11
+ subtitle: 'Lokale Speicherstände sicher prüfen, bearbeiten und verschlüsseln ohne Serverübertragung',
12
+ dropSaveFile: 'Ziehen Sie die Speicherdatei hierher oder klicken Sie',
13
+ orSelectFile: 'oder klicken Sie, um eine lokale Datei auszuwählen',
14
+ encryptionMethod: 'Verschlüsselungsformat',
15
+ methodBase64: 'Base64 Kodierung',
16
+ methodXor: 'XOR Maske + Base64',
17
+ methodRaw: 'Unverschlüsseltes JSON',
18
+ xorKeyLabel: 'Geheimer XOR Schlüssel',
19
+ xorKeyPlaceholder: 'z.B. MeinGeheimerSchluessel2026',
20
+ jsonRawTitle: 'Entschlüsseltes JSON Payload (Live Editor)',
21
+ encodeAndDownload: 'Verschlüsseln & Datei Herunterladen',
22
+ copyEncoded: 'Verschlüsselten Text Kopieren',
23
+ copiedNotice: 'In die Zwischenablage kopiert!',
24
+ decodedKeysCount: 'Gesamte Parameter',
25
+ dataSize: 'Payload Größe',
26
+ detectedFormat: 'Erkanntes Format',
27
+ exportPreviewLabel: 'Vorschau der Verschlüsselten Ausgabe',
28
+ decodePanelTitle: 'Entschlüsselung und Live JSON Editor',
29
+ exportPanelTitle: 'Neu Verschlüsselte Ausgabe',
30
+ decodeError: 'Fehler beim Entschlüsseln der Speicherdatei',
31
+ bytesUnit: 'B',
32
+ },
33
+ seo: [
34
+ {
35
+ type: 'title',
36
+ level: 2,
37
+ text: 'Sicherheit und Obfuskationsprotokolle für Spielspeicherstände',
38
+ },
39
+ {
40
+ type: 'paragraph',
41
+ html: 'Videospiele serialisieren den Fortschritt des Spielers in persistenten Speicherformaten, um Inventarbestände, freigeschaltete Level und Spielerattribute über Spielsitzungen hinweg zu bewahren. Um einfaches Ändern im Texteditor durch Endnutzer zu verhindern, obfuszieren Entwickler Speicherstände mit Kodierungsschemata wie Base64 oder XOR Bitmaskierung mit einem geheimen Schlüssel. Während der Qualitätssicherung und des Live Operations Debuggings benötigen Entwicklungsteams sofortigen Zugriff auf rohe JSON Strukturen, um Grenzwerttests durchzuführen und modifizierte Daten ohne erneutes Kompilieren von Spielbinärdateien bereitzustellen.',
42
+ },
43
+ {
44
+ type: 'stats',
45
+ columns: 4,
46
+ items: [
47
+ { label: 'Client Verarbeitung', value: '100% Lokal' },
48
+ { label: 'Unterstützte Dekoder', value: 'Base64 / XOR / JSON' },
49
+ { label: 'Dekodierungslatenz', value: '0 ms' },
50
+ { label: 'Datenverlust Risiko', value: 'Null' },
51
+ ],
52
+ },
53
+ {
54
+ type: 'title',
55
+ level: 2,
56
+ text: 'Vergleich der Obfuskationsverfahren',
57
+ },
58
+ {
59
+ type: 'comparative',
60
+ columns: 3,
61
+ items: [
62
+ {
63
+ title: 'Base64 Kodierung',
64
+ description: 'Schnelle Zeichenkonvertierung gegen einfaches Bearbeiten im Texteditor ohne kryptografische Sicherheit.',
65
+ },
66
+ {
67
+ title: 'XOR Maskierung + Base64',
68
+ description: 'Standard in der Indie Spieleentwicklung. Mischt String Bytes mit einem Schlüssel gegen Cheat Engines.',
69
+ },
70
+ {
71
+ title: 'Unverschlüsseltes JSON',
72
+ description: 'Lesbarer Speicherstand für Prototypen und interne Team Iterationen.',
73
+ },
74
+ ],
75
+ },
76
+ {
77
+ type: 'title',
78
+ level: 2,
79
+ text: 'QS Testpraxis für Speicherstandsüberprüfung',
80
+ },
81
+ {
82
+ type: 'tip',
83
+ title: 'Best Practices für Speicherstandssicherheit in der QS',
84
+ html: 'Verwenden Sie getrennte Debug Schlüssel für interne Builds. Nutzen Sie lokale Inspektoren zur Überprüfung von Grenzwerten ohne Neukompilierung des Spielcodes.',
85
+ },
86
+ {
87
+ type: 'title',
88
+ level: 2,
89
+ text: 'Richtlinien für Spielzustandsparameter',
90
+ },
91
+ {
92
+ type: 'table',
93
+ headers: ['Datentyp', 'Empfohlenes Format', 'Typischer Anwendungsfall', 'Obfuskationsschicht'],
94
+ rows: [
95
+ ['Numerische Zahlen', '32-Bit-Integer', 'Münzen, Level, XP, Munition', 'XOR-maskiert'],
96
+ ['Booleche Flags', 'Standard-Boolean', 'Tutorial Abgeschlossen', 'Base64 / XOR'],
97
+ ['Verschachtelte Objekte', 'JSON-Hierarchie', 'Inventar, Fähigkeiten', 'Base64-kodiert'],
98
+ ['Zeitstempel', 'ISO 8601 UTC', 'Tägliches Login', 'XOR-maskiert'],
99
+ ],
100
+ },
101
+ {
102
+ type: 'title',
103
+ level: 2,
104
+ text: 'Reverse Engineering und Anti Tamper Überlegungen',
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'Obfuskation auf Client Seite verhindert einfaches Ändern durch Gelegenheitsspieler, jedoch sind XOR und Base64 keine echten kryptografischen Algorithmen. Werkzeuge zur Speicheranalyse wie RenderDoc oder x64dbg können Schlüsselgenerierungsroutinen direkt in kompilierten C++ oder C# Baugruppen untersuchen. Für kompetitive Titel sind serverseitige Validierungen oder kryptografische HMAC Signaturen unerlässlich.',
109
+ },
110
+ ],
111
+ faqTitle: 'Häufig Gestellte Fragen',
112
+ faq: [
113
+ {
114
+ question: 'Werden meine Speicherdaten auf einen Server hochgeladen?',
115
+ answer: 'Nein. Alle Vorgänge finden zu 100% lokal in Ihrem Browser statt.',
116
+ },
117
+ {
118
+ question: 'Wie funktioniert die XOR Obfuskation in Unity oder Godot?',
119
+ answer: 'Die XOR Obfuskation wendet bitweise XOR Operationen auf UTF-8 Bytes gegen einen geheimen Schlüssel an.',
120
+ },
121
+ ],
122
+ howTo: [
123
+ {
124
+ name: 'Datei Laden oder Einfügen',
125
+ text: 'Laden Sie Ihre verschlüsselte Speicherdatei hoch.',
126
+ },
127
+ {
128
+ name: 'Methode und Schlüssel Wählen',
129
+ text: 'Wählen Sie Base64 oder XOR und geben Sie den Schlüssel ein.',
130
+ },
131
+ {
132
+ name: 'JSON Bearbeiten',
133
+ text: 'Ändern Sie die Werte direkt im Live Editor.',
134
+ },
135
+ {
136
+ name: 'Verschlüsseln und Exportieren',
137
+ text: 'Laden Sie die neue Datei für Tests herunter.',
138
+ },
139
+ ],
140
+ schemas: [
141
+ {
142
+ '@context': 'https://schema.org',
143
+ '@type': 'SoftwareApplication',
144
+ name: 'Spiel Speicherstand Editor',
145
+ applicationCategory: 'DeveloperApplication',
146
+ operatingSystem: 'Any',
147
+ offers: {
148
+ '@type': 'Offer',
149
+ price: '0',
150
+ priceCurrency: 'EUR',
151
+ },
152
+ },
153
+ {
154
+ '@context': 'https://schema.org',
155
+ '@type': 'FAQPage',
156
+ mainEntity: [
157
+ {
158
+ '@type': 'Question',
159
+ name: 'Werden meine Speicherdaten hochgeladen?',
160
+ acceptedAnswer: {
161
+ '@type': 'Answer',
162
+ text: 'Nein. Alle Vorgänge finden zu 100% lokal statt.',
163
+ },
164
+ },
165
+ ],
166
+ },
167
+ {
168
+ '@context': 'https://schema.org',
169
+ '@type': 'HowTo',
170
+ name: 'So bearbeiten Sie Speicherstände',
171
+ step: [
172
+ {
173
+ '@type': 'HowToStep',
174
+ name: 'Datei Laden',
175
+ text: 'Laden Sie Ihre Speicherdatei hoch.',
176
+ },
177
+ ],
178
+ },
179
+ ],
180
+ bibliographyTitle: 'Referenzen und Weiterführende Literatur',
181
+ bibliography: bibliographyEntries,
182
+ };
@@ -0,0 +1,182 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { SaveFileEditorUI } from '../ui';
3
+ import { bibliographyEntries } from '../bibliography';
4
+
5
+ export const content: ToolLocaleContent<SaveFileEditorUI> = {
6
+ slug: 'game-save-file-editor',
7
+ title: 'Game Save File Obfuscator and Editor',
8
+ description: 'Decrypt, inspect, edit JSON payloads, and re-encrypt game save files using Base64, XOR masking, or plain text 100% locally in your browser.',
9
+ ui: {
10
+ title: 'Game Save File Obfuscator & Editor',
11
+ subtitle: 'Inspect, modify, and encrypt local save state files securely without server leaks',
12
+ dropSaveFile: 'Drag & Drop game save file here',
13
+ orSelectFile: 'or click to browse local file',
14
+ encryptionMethod: 'Encryption Format',
15
+ methodBase64: 'Base64 Encoding',
16
+ methodXor: 'XOR Mask + Base64',
17
+ methodRaw: 'Plain JSON / Unencrypted',
18
+ xorKeyLabel: 'XOR Secret Key',
19
+ xorKeyPlaceholder: 'e.g. MySecretGameKey2026',
20
+ jsonRawTitle: 'Decoded JSON Payload (Live Editor)',
21
+ encodeAndDownload: 'Encrypt & Download Save File',
22
+ copyEncoded: 'Copy Encrypted Text',
23
+ copiedNotice: 'Copied to Clipboard!',
24
+ decodedKeysCount: 'Total Parameters',
25
+ dataSize: 'Payload Size',
26
+ detectedFormat: 'Detected Format',
27
+ exportPreviewLabel: 'Encrypted Output Preview',
28
+ decodePanelTitle: 'Decode and Live JSON Editor',
29
+ exportPanelTitle: 'Re Encrypted Output Payload',
30
+ decodeError: 'Failed to decode save file',
31
+ bytesUnit: 'B',
32
+ },
33
+ seo: [
34
+ {
35
+ type: 'title',
36
+ level: 2,
37
+ text: 'Game Save File Security and Obfuscation Protocols',
38
+ },
39
+ {
40
+ type: 'paragraph',
41
+ html: 'Video games routinely serialize player progression state into persistent storage formats to maintain inventory counts, unlocked stages, player attributes, and narrative flags across play sessions. To prevent trivial end-user tampering via plain text editors, game studios obfuscate save states using binary encoding schemes like Base64 or bitwise XOR masking against a secret string key. During internal QA testing and live operations debugging, development teams require immediate capability to inspect raw JSON structures, force boundary test states, and re-encrypt modified payloads for deployment without recompiling game binaries.',
42
+ },
43
+ {
44
+ type: 'stats',
45
+ columns: 4,
46
+ items: [
47
+ { label: 'Client Processing Privacy', value: '100%' },
48
+ { label: 'Supported Decoders', value: 'Base64 / XOR / JSON' },
49
+ { label: 'Latency', value: '0 ms' },
50
+ { label: 'Data Leak Risk', value: 'Zero' },
51
+ ],
52
+ },
53
+ {
54
+ type: 'title',
55
+ level: 2,
56
+ text: 'Obfuscation Schemes Comparison',
57
+ },
58
+ {
59
+ type: 'comparative',
60
+ columns: 3,
61
+ items: [
62
+ {
63
+ title: 'Base64 Encoding',
64
+ description: 'Fast, lightweight string conversion that prevents casual end-user text edits in plain notepad but offers no cryptographic security.',
65
+ },
66
+ {
67
+ title: 'XOR Masking + Base64',
68
+ description: 'Standard practice in indie game development. Blends string bytes with a custom secret key to prevent casual memory editing or cheat engines.',
69
+ },
70
+ {
71
+ title: 'Plain JSON Payload',
72
+ description: 'Unencrypted readable save state. Ideal for initial prototyping, debug builds, and rapid internal team iterations.',
73
+ },
74
+ ],
75
+ },
76
+ {
77
+ type: 'title',
78
+ level: 2,
79
+ text: 'QA Testing Practices for Save State Verification',
80
+ },
81
+ {
82
+ type: 'tip',
83
+ title: 'Best Practices for Game Save Security during QA',
84
+ html: 'Always maintain separate debug keys for internal builds and production builds. When verifying edge-case bugs, use local tree inspectors to force inventory caps, boundary levels, and edge stats without recompiling game code.',
85
+ },
86
+ {
87
+ type: 'title',
88
+ level: 2,
89
+ text: 'Game State Parameter Guidelines Table',
90
+ },
91
+ {
92
+ type: 'table',
93
+ headers: ['Data Type', 'Recommended Format', 'Common Use Case', 'Obfuscation Layer'],
94
+ rows: [
95
+ ['Numeric Integers', '32-bit Integer', 'Coins, Level, XP, Ammo', 'XOR Masked'],
96
+ ['Boolean Flags', 'Standard Boolean', 'Tutorial Complete, Boss Defeated', 'Base64 / XOR'],
97
+ ['Nested Objects', 'JSON Hierarchy', 'Player Inventory, Skill Tree', 'Base64 Encoded'],
98
+ ['Timestamp Strings', 'ISO 8601 UTC', 'Daily Login, Save Timestamp', 'XOR Masked'],
99
+ ],
100
+ },
101
+ {
102
+ type: 'title',
103
+ level: 2,
104
+ text: 'Reverse Engineering and Anti Tamper Considerations',
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'While client-side obfuscation prevents casual players from modifying save files in standard text editors, XOR masking and Base64 encoding are not cryptographic algorithms. Memory scanners, cheat software, and reverse-engineering tools like RenderDoc or x64dbg can inspect key generation routines directly within compiled C++ or C# game assemblies. For competitive multiplayer titles, authoritative server validation or cryptographic HMAC signatures (such as SHA-256 integrity hashes appended to the save file payload) are essential to detect payload tampering upon game startup.',
109
+ },
110
+ ],
111
+ faqTitle: 'Frequently Asked Questions',
112
+ faq: [
113
+ {
114
+ question: 'Are my game save files uploaded to a remote server?',
115
+ answer: 'No. All decoding, JSON tree rendering, editing, and re-encoding happen 100% inside your web browser web workers and JavaScript engine.',
116
+ },
117
+ {
118
+ question: 'How does XOR key obfuscation work in game engines like Unity or Godot?',
119
+ answer: 'XOR obfuscation iterates over UTF-8 bytes of the serialized JSON string, applying a bitwise XOR operation against characters of a secret key, then encoding the resulting bytes in Base64.',
120
+ },
121
+ ],
122
+ howTo: [
123
+ {
124
+ name: 'Load or Paste Save File',
125
+ text: 'Upload your encrypted save file or select one of the built-in game presets (RPG, Platformer, Tycoon).',
126
+ },
127
+ {
128
+ name: 'Select Decoding Method and Key',
129
+ text: 'Choose Base64 or XOR Masking and enter the corresponding game secret key, then click Decode.',
130
+ },
131
+ {
132
+ name: 'Edit JSON State',
133
+ text: 'Use the interactive tree view or raw code tab to adjust levels, gold, inventory items, or game flags.',
134
+ },
135
+ {
136
+ name: 'Encrypt and Export',
137
+ text: 'Select your target output format and download your modified save file ready for game testing.',
138
+ },
139
+ ],
140
+ schemas: [
141
+ {
142
+ '@context': 'https://schema.org',
143
+ '@type': 'SoftwareApplication',
144
+ name: 'Game Save File Obfuscator and Editor',
145
+ applicationCategory: 'DeveloperApplication',
146
+ operatingSystem: 'Any',
147
+ offers: {
148
+ '@type': 'Offer',
149
+ price: '0',
150
+ priceCurrency: 'USD',
151
+ },
152
+ },
153
+ {
154
+ '@context': 'https://schema.org',
155
+ '@type': 'FAQPage',
156
+ mainEntity: [
157
+ {
158
+ '@type': 'Question',
159
+ name: 'Are my game save files uploaded to a remote server?',
160
+ acceptedAnswer: {
161
+ '@type': 'Answer',
162
+ text: 'No. All decoding and editing happen 100% inside your browser.',
163
+ },
164
+ },
165
+ ],
166
+ },
167
+ {
168
+ '@context': 'https://schema.org',
169
+ '@type': 'HowTo',
170
+ name: 'How to Edit Encrypted Game Save Files',
171
+ step: [
172
+ {
173
+ '@type': 'HowToStep',
174
+ name: 'Load or Paste Save File',
175
+ text: 'Upload your encrypted save file.',
176
+ },
177
+ ],
178
+ },
179
+ ],
180
+ bibliographyTitle: 'References and Further Reading',
181
+ bibliography: bibliographyEntries,
182
+ };
@@ -0,0 +1,182 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { SaveFileEditorUI } from '../ui';
3
+ import { bibliographyEntries } from '../bibliography';
4
+
5
+ export const content: ToolLocaleContent<SaveFileEditorUI> = {
6
+ slug: 'editor-archivos-guardado-juegos',
7
+ title: 'Editor y Ofuscador de Archivos de Guardado de Juegos',
8
+ description: 'Desencripta, inspecciona, edita payloads JSON y vuelve a encriptar archivos de guardado usando Base64, máscaras XOR o texto plano 100% local en tu navegador.',
9
+ ui: {
10
+ title: 'Editor y Ofuscador de Guardado de Juegos',
11
+ subtitle: 'Inspecciona, modifica y encripta archivos de estado de guardado local sin filtraciones a servidores',
12
+ dropSaveFile: 'Arrastra y suelta el archivo de guardado aquí',
13
+ orSelectFile: 'o haz clic para explorar un archivo local',
14
+ encryptionMethod: 'Formato de Encriptación',
15
+ methodBase64: 'Codificación Base64',
16
+ methodXor: 'Máscara XOR + Base64',
17
+ methodRaw: 'JSON Plano / Sin Encriptar',
18
+ xorKeyLabel: 'Clave Secreta XOR',
19
+ xorKeyPlaceholder: 'ej. MiClaveSecretaJuego2026',
20
+ jsonRawTitle: 'Payload JSON Decodificado (Editor en Vivo)',
21
+ encodeAndDownload: 'Encriptar y Descargar Archivo',
22
+ copyEncoded: 'Copiar Texto Encriptado',
23
+ copiedNotice: '¡Copiado al Portapapeles!',
24
+ decodedKeysCount: 'Parámetros Totales',
25
+ dataSize: 'Tamaño del Payload',
26
+ detectedFormat: 'Formato Detectado',
27
+ exportPreviewLabel: 'Previsualización de Salida Encriptada',
28
+ decodePanelTitle: 'Decodificación y Editor JSON en Vivo',
29
+ exportPanelTitle: 'Payload de Salida Re Encriptado',
30
+ decodeError: 'Error al decodificar el archivo de guardado',
31
+ bytesUnit: 'B',
32
+ },
33
+ seo: [
34
+ {
35
+ type: 'title',
36
+ level: 2,
37
+ text: 'Seguridad y Protocolos de Ofuscación en Guardado de Juegos',
38
+ },
39
+ {
40
+ type: 'paragraph',
41
+ html: 'Los videojuegos serializan el estado de progreso del jugador en formatos de almacenamiento persistentes para mantener inventarios, niveles desbloqueados y atributos a lo largo de las sesiones de juego. Para evitar manipulaciones directas en editores de texto plano por parte de los usuarios finales, los estudios de desarrollo ofuscan estos archivos con esquemas de codificación binaria como Base64 o máscaras bit a bit XOR contra una clave secreta personalizada. Durante las pruebas internas de control de calidad y depuración de operaciones en vivo, los equipos técnicos necesitan la capacidad inmediata de inspeccionar estructuras JSON crudas, forzar estados límite de prueba y volver a encriptar los datos modificados para su despliegue sin necesidad de reevaluar ni recompilar binarios.',
42
+ },
43
+ {
44
+ type: 'stats',
45
+ columns: 4,
46
+ items: [
47
+ { label: 'Privacidad de Procesamiento', value: '100% Local' },
48
+ { label: 'Decodificadores Soportados', value: 'Base64 / XOR / JSON' },
49
+ { label: 'Latencia de Decodificación', value: '0 ms' },
50
+ { label: 'Riesgo de Filtración', value: 'Cero' },
51
+ ],
52
+ },
53
+ {
54
+ type: 'title',
55
+ level: 2,
56
+ text: 'Comparativa de Esquemas de Ofuscación',
57
+ },
58
+ {
59
+ type: 'comparative',
60
+ columns: 3,
61
+ items: [
62
+ {
63
+ title: 'Codificación Base64',
64
+ description: 'Conversión de texto rápida que evita ediciones accidentales en blocs de notas convencionales pero no ofrece seguridad criptográfica real.',
65
+ },
66
+ {
67
+ title: 'Máscara XOR + Base64',
68
+ description: 'Práctica habitual en desarrollo indie. Mezcla bytes de texto con una clave secreta personalizada para evitar editores de memoria o Cheat Engine.',
69
+ },
70
+ {
71
+ title: 'Payload JSON Plano',
72
+ description: 'Estado de guardado legible sin encriptar. Ideal para prototipado inicial, builds de depuración e iteraciones internas del equipo.',
73
+ },
74
+ ],
75
+ },
76
+ {
77
+ type: 'title',
78
+ level: 2,
79
+ text: 'Prácticas de Pruebas de QA para Verificación de Estados',
80
+ },
81
+ {
82
+ type: 'tip',
83
+ title: 'Mejores Prácticas de Seguridad en Guardados durante QA',
84
+ html: 'Mantén siempre claves de depuración separadas para builds internas y de producción. Al verificar errores en casos límite, utiliza editores locales para forzar límites de inventario y estadísticas de borde sin recompilar el código del juego.',
85
+ },
86
+ {
87
+ type: 'title',
88
+ level: 2,
89
+ text: 'Guía de Parámetros de Estado de Juego',
90
+ },
91
+ {
92
+ type: 'table',
93
+ headers: ['Tipo de Dato', 'Formato Recomendado', 'Caso de Uso Habitual', 'Capa de Ofuscación'],
94
+ rows: [
95
+ ['Enteros Numéricos', 'Entero de 32 bits', 'Monedas, Nivel, Experiencia, Munición', 'Máscara XOR'],
96
+ ['Banderas Booleanas', 'Booleano Estándar', 'Tutorial Completo, Jefe Derrotado', 'Base64 / XOR'],
97
+ ['Objetos Anidados', 'Jerarquía JSON', 'Inventario del Jugador, Árbol de Habilidades', 'Codificado en Base64'],
98
+ ['Fechas y Tiempos', 'ISO 8601 UTC', 'Recompensa Diaria, Marca de Tiempo de Guardado', 'Máscara XOR'],
99
+ ],
100
+ },
101
+ {
102
+ type: 'title',
103
+ level: 2,
104
+ text: 'Ingeniería Inversa y Consideraciones Anti Tamper',
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'Aunque la ofuscación en el cliente evita que los usuarios casuales modifiquen archivos de guardado en editores estándar, las operaciones XOR y Base64 no constituyen algoritmos criptográficos verdaderos. Las herramientas de análisis de memoria y desensamblado como RenderDoc o x64dbg permiten inspeccionar las rutinas de generación de claves en ensamblados de C++ o C# compilados. Para títulos multijugador competitivos, la validación de estado autoritativo en servidor o firmas criptográficas HMAC son esenciales para detectar alteraciones al iniciar el juego.',
109
+ },
110
+ ],
111
+ faqTitle: 'Preguntas Frecuentes',
112
+ faq: [
113
+ {
114
+ question: '¿Se suben mis archivos de guardado a un servidor remoto?',
115
+ answer: 'No. Toda la decodificación, edición de árbol JSON y re-encriptación ocurre 100% dentro de tu navegador web sin enviar datos al exterior.',
116
+ },
117
+ {
118
+ question: '¿Cómo funciona la ofuscación XOR en motores como Unity o Godot?',
119
+ answer: 'La ofuscación XOR recorre los bytes UTF-8 de la cadena JSON serializada aplicando una operación XOR bit a bit contra los caracteres de una clave secreta.',
120
+ },
121
+ ],
122
+ howTo: [
123
+ {
124
+ name: 'Cargar o Pegar Archivo de Guardado',
125
+ text: 'Sube tu archivo de guardado encriptado o arrástralo directamente a la zona de carga.',
126
+ },
127
+ {
128
+ name: 'Seleccionar Método de Decodificación y Clave',
129
+ text: 'Selecciona Base64 o Máscara XOR e introduce la clave secreta correspondiente.',
130
+ },
131
+ {
132
+ name: 'Editar el Estado JSON',
133
+ text: 'Modifica los valores numéricos, banderas o inventarios directamente en el editor JSON en vivo.',
134
+ },
135
+ {
136
+ name: 'Encriptar y Exportar',
137
+ text: 'Descarga o copia el payload resultante listo para ser probado en el motor de juego.',
138
+ },
139
+ ],
140
+ schemas: [
141
+ {
142
+ '@context': 'https://schema.org',
143
+ '@type': 'SoftwareApplication',
144
+ name: 'Editor de Archivos de Guardado de Juegos',
145
+ applicationCategory: 'DeveloperApplication',
146
+ operatingSystem: 'Any',
147
+ offers: {
148
+ '@type': 'Offer',
149
+ price: '0',
150
+ priceCurrency: 'EUR',
151
+ },
152
+ },
153
+ {
154
+ '@context': 'https://schema.org',
155
+ '@type': 'FAQPage',
156
+ mainEntity: [
157
+ {
158
+ '@type': 'Question',
159
+ name: '¿Se suben mis archivos de guardado a un servidor remoto?',
160
+ acceptedAnswer: {
161
+ '@type': 'Answer',
162
+ text: 'No. Toda la decodificación y edición ocurre 100% dentro de tu navegador.',
163
+ },
164
+ },
165
+ ],
166
+ },
167
+ {
168
+ '@context': 'https://schema.org',
169
+ '@type': 'HowTo',
170
+ name: 'Cómo Editar Archivos de Guardado Encriptados',
171
+ step: [
172
+ {
173
+ '@type': 'HowToStep',
174
+ name: 'Cargar o Pegar Archivo',
175
+ text: 'Sube tu archivo de guardado encriptado.',
176
+ },
177
+ ],
178
+ },
179
+ ],
180
+ bibliographyTitle: 'Referencias y Lecturas Adicionales',
181
+ bibliography: bibliographyEntries,
182
+ };