@enki-dev-expert/global-engineering-standards 0.0.0-stage → 0.1.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.
- package/AGENTS.md +303 -0
- package/CHANGELOG.md +23 -0
- package/CITATION.cff +21 -0
- package/CODE_OF_CONDUCT.md +13 -0
- package/CONTRIBUTING.md +27 -0
- package/LICENSE +21 -0
- package/README.md +159 -2
- package/SECURITY.md +25 -0
- package/dist/cli.js +40 -0
- package/dist/content.js +71 -0
- package/dist/filesystem.js +83 -0
- package/dist/installer.js +243 -0
- package/dist/layout.js +42 -0
- package/dist/transaction.js +143 -0
- package/docs/ai-and-llm.md +1312 -0
- package/docs/architecture.md +1007 -0
- package/docs/cost-engineering.md +1322 -0
- package/docs/data.md +993 -0
- package/docs/governance.md +1744 -0
- package/docs/mobile-and-web.md +1362 -0
- package/docs/observability.md +1345 -0
- package/docs/platforms-and-applications.md +1581 -0
- package/docs/privacy.md +566 -0
- package/docs/quality-and-testing.md +1278 -0
- package/docs/scalability.md +1012 -0
- package/docs/security.md +373 -0
- package/handbook/claude-plugin.md +31 -0
- package/handbook/compatibility.md +27 -0
- package/handbook/recovery.md +29 -0
- package/handbook/releasing.md +50 -0
- package/handbook/security-review.md +41 -0
- package/handbook/signing.md +18 -0
- package/handbook/validation.md +50 -0
- package/package.json +65 -4
- package/scripts/content-baseline.json +25 -0
- package/skills/engineering-architecture-review/SKILL.md +1531 -0
- package/skills/engineering-cost-estimate/SKILL.md +1599 -0
- package/skills/engineering-database-review/SKILL.md +1364 -0
- package/skills/engineering-privacy-check/SKILL.md +1295 -0
- package/skills/engineering-safe-implementation/SKILL.md +1502 -0
- package/skills/engineering-security-standards-check/SKILL.md +1112 -0
- package/src/cli.ts +45 -0
- package/src/content.ts +82 -0
- package/src/filesystem.ts +94 -0
- package/src/installer.ts +280 -0
- package/src/layout.ts +70 -0
- package/src/transaction.ts +167 -0
- package/templates/ADR.md +1302 -0
- package/templates/AUDIT_REPORT.md +1693 -0
- package/templates/EXCEPTIONS.md +647 -0
- package/templates/PROJECT_AGENTS.md +868 -0
|
@@ -0,0 +1,1581 @@
|
|
|
1
|
+
|
|
2
|
+
# Global Platforms, Desktop Applications and Game Engineering Standards
|
|
3
|
+
|
|
4
|
+
## 1. Mission
|
|
5
|
+
|
|
6
|
+
Design, develop, test, deploy and maintain secure, reliable, efficient, accessible, maintainable and cost-aware software across desktop operating systems, application frameworks, programming languages and game engines.
|
|
7
|
+
|
|
8
|
+
These standards apply to new projects and existing production software.
|
|
9
|
+
|
|
10
|
+
They apply to software developed, reviewed or maintained by AI coding agents, including Claude Code, OpenAI Codex and other AI-assisted engineering tools.
|
|
11
|
+
|
|
12
|
+
Supported categories include:
|
|
13
|
+
|
|
14
|
+
- Windows applications.
|
|
15
|
+
- macOS applications.
|
|
16
|
+
- Linux applications.
|
|
17
|
+
- Cross-platform desktop applications.
|
|
18
|
+
- Enterprise software.
|
|
19
|
+
- Native applications.
|
|
20
|
+
- Command-line tools.
|
|
21
|
+
- Background services.
|
|
22
|
+
- System utilities.
|
|
23
|
+
- Developer tools.
|
|
24
|
+
- Game development.
|
|
25
|
+
- Game servers.
|
|
26
|
+
- 2D and 3D applications.
|
|
27
|
+
- Simulation software.
|
|
28
|
+
- Graphics applications.
|
|
29
|
+
- Desktop AI applications.
|
|
30
|
+
- Hybrid and multiplatform products.
|
|
31
|
+
|
|
32
|
+
These standards are technology-independent and vendor-neutral.
|
|
33
|
+
|
|
34
|
+
No programming language, operating system, framework or game engine is mandatory by default.
|
|
35
|
+
|
|
36
|
+
## 2. Fundamental Principles
|
|
37
|
+
|
|
38
|
+
Apply:
|
|
39
|
+
|
|
40
|
+
1. Security by Design.
|
|
41
|
+
2. Privacy by Design.
|
|
42
|
+
3. Correctness.
|
|
43
|
+
4. Maintainability.
|
|
44
|
+
5. Platform Compatibility.
|
|
45
|
+
6. Performance.
|
|
46
|
+
7. Accessibility.
|
|
47
|
+
8. Reliability.
|
|
48
|
+
9. Resource Efficiency.
|
|
49
|
+
10. Controlled Distribution.
|
|
50
|
+
11. Supply-Chain Security.
|
|
51
|
+
12. Cost Awareness.
|
|
52
|
+
13. Backward Compatibility.
|
|
53
|
+
14. Evidence-Based Testing.
|
|
54
|
+
15. Explicit Human Approval.
|
|
55
|
+
|
|
56
|
+
Prefer simple, robust solutions.
|
|
57
|
+
|
|
58
|
+
Do not introduce unnecessary platform-specific complexity.
|
|
59
|
+
|
|
60
|
+
Preserve existing working software unless changes are justified and approved.
|
|
61
|
+
|
|
62
|
+
## 3. Platform and Language Independence
|
|
63
|
+
|
|
64
|
+
Support appropriate technologies including:
|
|
65
|
+
|
|
66
|
+
### Programming Languages
|
|
67
|
+
|
|
68
|
+
- Java.
|
|
69
|
+
- Kotlin.
|
|
70
|
+
- C#.
|
|
71
|
+
- C.
|
|
72
|
+
- C++.
|
|
73
|
+
- Python.
|
|
74
|
+
- Rust.
|
|
75
|
+
- Go.
|
|
76
|
+
- Swift.
|
|
77
|
+
- Objective-C.
|
|
78
|
+
- Dart.
|
|
79
|
+
- JavaScript.
|
|
80
|
+
- TypeScript.
|
|
81
|
+
- Lua.
|
|
82
|
+
- GDScript.
|
|
83
|
+
- Visual Basic.
|
|
84
|
+
- F#.
|
|
85
|
+
- Other maintained programming languages.
|
|
86
|
+
|
|
87
|
+
### Desktop Frameworks
|
|
88
|
+
|
|
89
|
+
- JavaFX.
|
|
90
|
+
- Swing.
|
|
91
|
+
- AWT.
|
|
92
|
+
- WPF.
|
|
93
|
+
- WinUI.
|
|
94
|
+
- Windows Forms.
|
|
95
|
+
- .NET MAUI.
|
|
96
|
+
- Qt.
|
|
97
|
+
- GTK.
|
|
98
|
+
- Electron.
|
|
99
|
+
- Tauri.
|
|
100
|
+
- Flutter Desktop.
|
|
101
|
+
- Avalonia.
|
|
102
|
+
- wxWidgets.
|
|
103
|
+
- Native platform SDKs.
|
|
104
|
+
|
|
105
|
+
### Game Engines
|
|
106
|
+
|
|
107
|
+
- Unity.
|
|
108
|
+
- Unreal Engine.
|
|
109
|
+
- Godot.
|
|
110
|
+
- GameMaker.
|
|
111
|
+
- Defold.
|
|
112
|
+
- MonoGame.
|
|
113
|
+
- Custom game engines.
|
|
114
|
+
- Other maintained game development frameworks.
|
|
115
|
+
|
|
116
|
+
These lists are examples, not approved-only technology lists.
|
|
117
|
+
|
|
118
|
+
Evaluate tools according to existing requirements, licensing, maintenance, platform compatibility, team capabilities and operational cost.
|
|
119
|
+
|
|
120
|
+
Never migrate frameworks solely because another technology is newer.
|
|
121
|
+
|
|
122
|
+
## 4. Project Assessment First
|
|
123
|
+
|
|
124
|
+
Before significant changes:
|
|
125
|
+
|
|
126
|
+
1. Inspect the actual repository.
|
|
127
|
+
2. Identify supported operating systems.
|
|
128
|
+
3. Identify the programming language.
|
|
129
|
+
4. Identify frameworks and engines.
|
|
130
|
+
5. Identify build systems.
|
|
131
|
+
6. Identify runtime dependencies.
|
|
132
|
+
7. Review application architecture.
|
|
133
|
+
8. Review data storage.
|
|
134
|
+
9. Review networking.
|
|
135
|
+
10. Review security boundaries.
|
|
136
|
+
11. Identify deployment requirements.
|
|
137
|
+
12. Review existing tests.
|
|
138
|
+
13. Identify performance constraints.
|
|
139
|
+
14. Identify licensing obligations.
|
|
140
|
+
15. Present findings and recommendations.
|
|
141
|
+
|
|
142
|
+
The initial audit of existing production software must be read-only.
|
|
143
|
+
|
|
144
|
+
## 5. Desktop Architecture
|
|
145
|
+
|
|
146
|
+
Choose architecture according to application requirements.
|
|
147
|
+
|
|
148
|
+
Consider:
|
|
149
|
+
|
|
150
|
+
- Clear module boundaries.
|
|
151
|
+
- Separation of concerns.
|
|
152
|
+
- Presentation and domain logic.
|
|
153
|
+
- State management.
|
|
154
|
+
- Persistence.
|
|
155
|
+
- Background processing.
|
|
156
|
+
- Dependency boundaries.
|
|
157
|
+
- Error handling.
|
|
158
|
+
- Testability.
|
|
159
|
+
|
|
160
|
+
Avoid unnecessarily complex architectural patterns.
|
|
161
|
+
|
|
162
|
+
Do not introduce microservices or distributed components into desktop applications without justification.
|
|
163
|
+
|
|
164
|
+
Consult docs/architecture.md.
|
|
165
|
+
|
|
166
|
+
## 6. Native Versus Cross-Platform Development
|
|
167
|
+
|
|
168
|
+
Evaluate native and cross-platform approaches.
|
|
169
|
+
|
|
170
|
+
Consider:
|
|
171
|
+
|
|
172
|
+
- Required operating systems.
|
|
173
|
+
- Native API access.
|
|
174
|
+
- Performance.
|
|
175
|
+
- UI consistency.
|
|
176
|
+
- Accessibility.
|
|
177
|
+
- Distribution.
|
|
178
|
+
- Maintainability.
|
|
179
|
+
- Framework maturity.
|
|
180
|
+
- Dependency risks.
|
|
181
|
+
- Development costs.
|
|
182
|
+
|
|
183
|
+
Share code where it improves maintainability.
|
|
184
|
+
|
|
185
|
+
Do not force code sharing when native implementations provide better reliability or performance.
|
|
186
|
+
|
|
187
|
+
## 7. Operating System Integration
|
|
188
|
+
|
|
189
|
+
Evaluate platform-specific integration requirements.
|
|
190
|
+
|
|
191
|
+
Examples:
|
|
192
|
+
|
|
193
|
+
- Filesystem access.
|
|
194
|
+
- Notifications.
|
|
195
|
+
- System tray or menu bar.
|
|
196
|
+
- Clipboard.
|
|
197
|
+
- Drag and drop.
|
|
198
|
+
- Default application handlers.
|
|
199
|
+
- File associations.
|
|
200
|
+
- Background services.
|
|
201
|
+
- Startup behavior.
|
|
202
|
+
- Power management.
|
|
203
|
+
- Device permissions.
|
|
204
|
+
|
|
205
|
+
Respect operating system security boundaries.
|
|
206
|
+
|
|
207
|
+
Do not request unnecessary privileges.
|
|
208
|
+
|
|
209
|
+
## 8. Windows Engineering
|
|
210
|
+
|
|
211
|
+
For Windows applications, evaluate:
|
|
212
|
+
|
|
213
|
+
- Supported Windows versions.
|
|
214
|
+
- CPU architectures.
|
|
215
|
+
- Win32 integration.
|
|
216
|
+
- Windows SDK compatibility.
|
|
217
|
+
- User Account Control.
|
|
218
|
+
- Application permissions.
|
|
219
|
+
- Filesystem locations.
|
|
220
|
+
- Registry usage.
|
|
221
|
+
- Windows services.
|
|
222
|
+
- Application packaging.
|
|
223
|
+
- Code signing.
|
|
224
|
+
- Installer behavior.
|
|
225
|
+
- Update mechanisms.
|
|
226
|
+
- Accessibility.
|
|
227
|
+
- High-DPI displays.
|
|
228
|
+
- Crash reporting.
|
|
229
|
+
|
|
230
|
+
Avoid requiring administrator privileges unless technically justified.
|
|
231
|
+
|
|
232
|
+
Do not modify system-wide settings without explicit approval.
|
|
233
|
+
|
|
234
|
+
## 9. macOS Engineering
|
|
235
|
+
|
|
236
|
+
For macOS applications, evaluate:
|
|
237
|
+
|
|
238
|
+
- Supported macOS versions.
|
|
239
|
+
- Apple Silicon compatibility.
|
|
240
|
+
- Intel compatibility where required.
|
|
241
|
+
- Application sandboxing.
|
|
242
|
+
- Entitlements.
|
|
243
|
+
- Keychain integration.
|
|
244
|
+
- Privacy permissions.
|
|
245
|
+
- Filesystem access.
|
|
246
|
+
- Background agents.
|
|
247
|
+
- Menu bar integration.
|
|
248
|
+
- Code signing.
|
|
249
|
+
- Notarization.
|
|
250
|
+
- Application updates.
|
|
251
|
+
- Accessibility.
|
|
252
|
+
- Energy efficiency.
|
|
253
|
+
|
|
254
|
+
Use platform-supported security mechanisms.
|
|
255
|
+
|
|
256
|
+
Never bypass macOS security protections merely for implementation convenience.
|
|
257
|
+
|
|
258
|
+
## 10. Linux Engineering
|
|
259
|
+
|
|
260
|
+
For Linux applications, evaluate:
|
|
261
|
+
|
|
262
|
+
- Supported distributions.
|
|
263
|
+
- Architecture compatibility.
|
|
264
|
+
- Desktop environment differences.
|
|
265
|
+
- Display server requirements.
|
|
266
|
+
- Filesystem conventions.
|
|
267
|
+
- Runtime dependencies.
|
|
268
|
+
- Permissions.
|
|
269
|
+
- Packaging.
|
|
270
|
+
- Service management.
|
|
271
|
+
- Sandboxing.
|
|
272
|
+
- Security updates.
|
|
273
|
+
- Accessibility.
|
|
274
|
+
- Distribution compatibility.
|
|
275
|
+
|
|
276
|
+
Avoid unnecessary assumptions about the user's Linux distribution.
|
|
277
|
+
|
|
278
|
+
Test on supported environments.
|
|
279
|
+
|
|
280
|
+
## 11. Cross-Platform Compatibility
|
|
281
|
+
|
|
282
|
+
Define the actual supported operating system matrix.
|
|
283
|
+
|
|
284
|
+
Evaluate:
|
|
285
|
+
|
|
286
|
+
- OS versions.
|
|
287
|
+
- CPU architectures.
|
|
288
|
+
- Filesystem differences.
|
|
289
|
+
- Path conventions.
|
|
290
|
+
- Case sensitivity.
|
|
291
|
+
- Process execution.
|
|
292
|
+
- Permissions.
|
|
293
|
+
- Network behavior.
|
|
294
|
+
- Native dependencies.
|
|
295
|
+
- UI scaling.
|
|
296
|
+
- Localization.
|
|
297
|
+
|
|
298
|
+
Do not claim cross-platform compatibility based only on compilation.
|
|
299
|
+
|
|
300
|
+
Test representative supported environments.
|
|
301
|
+
|
|
302
|
+
## 12. Java Application Engineering
|
|
303
|
+
|
|
304
|
+
For Java applications, evaluate:
|
|
305
|
+
|
|
306
|
+
- Supported Java runtime versions.
|
|
307
|
+
- JVM compatibility.
|
|
308
|
+
- Dependency management.
|
|
309
|
+
- Memory management.
|
|
310
|
+
- Threading.
|
|
311
|
+
- Concurrency.
|
|
312
|
+
- Exception handling.
|
|
313
|
+
- Module boundaries.
|
|
314
|
+
- Native integration.
|
|
315
|
+
- Packaging.
|
|
316
|
+
- Security.
|
|
317
|
+
- Performance.
|
|
318
|
+
|
|
319
|
+
Relevant build tools may include Maven and Gradle.
|
|
320
|
+
|
|
321
|
+
Relevant desktop frameworks may include JavaFX and Swing.
|
|
322
|
+
|
|
323
|
+
Use existing project conventions.
|
|
324
|
+
|
|
325
|
+
Avoid unnecessary JVM upgrades without compatibility analysis.
|
|
326
|
+
|
|
327
|
+
## 13. C# and .NET Engineering
|
|
328
|
+
|
|
329
|
+
For .NET applications, evaluate:
|
|
330
|
+
|
|
331
|
+
- Target framework.
|
|
332
|
+
- Runtime compatibility.
|
|
333
|
+
- Dependency management.
|
|
334
|
+
- Async and await behavior.
|
|
335
|
+
- Threading.
|
|
336
|
+
- Resource disposal.
|
|
337
|
+
- UI framework integration.
|
|
338
|
+
- Native interoperability.
|
|
339
|
+
- Security.
|
|
340
|
+
- Packaging.
|
|
341
|
+
- Performance.
|
|
342
|
+
|
|
343
|
+
Support appropriate .NET frameworks and application models.
|
|
344
|
+
|
|
345
|
+
Do not assume all .NET desktop technologies support identical operating systems.
|
|
346
|
+
|
|
347
|
+
## 14. C and C++ Engineering
|
|
348
|
+
|
|
349
|
+
For native C and C++ applications, evaluate:
|
|
350
|
+
|
|
351
|
+
- Memory safety.
|
|
352
|
+
- Resource ownership.
|
|
353
|
+
- Undefined behavior.
|
|
354
|
+
- Thread safety.
|
|
355
|
+
- Buffer management.
|
|
356
|
+
- Integer overflow.
|
|
357
|
+
- Dependency safety.
|
|
358
|
+
- Compiler warnings.
|
|
359
|
+
- Build configurations.
|
|
360
|
+
- Platform compatibility.
|
|
361
|
+
- Performance.
|
|
362
|
+
|
|
363
|
+
Use appropriate static analysis and runtime sanitizers where supported.
|
|
364
|
+
|
|
365
|
+
Prefer established safe resource management practices.
|
|
366
|
+
|
|
367
|
+
Never suppress critical memory-safety findings without justification.
|
|
368
|
+
|
|
369
|
+
## 15. Python Desktop Engineering
|
|
370
|
+
|
|
371
|
+
For Python desktop applications, evaluate:
|
|
372
|
+
|
|
373
|
+
- Supported Python versions.
|
|
374
|
+
- Virtual environments.
|
|
375
|
+
- Dependency locking.
|
|
376
|
+
- Application packaging.
|
|
377
|
+
- Native library compatibility.
|
|
378
|
+
- GUI event loops.
|
|
379
|
+
- Background execution.
|
|
380
|
+
- Runtime distribution.
|
|
381
|
+
- Security.
|
|
382
|
+
- Startup performance.
|
|
383
|
+
- Memory consumption.
|
|
384
|
+
|
|
385
|
+
Review executable packaging and update mechanisms.
|
|
386
|
+
|
|
387
|
+
Do not assume users have Python installed.
|
|
388
|
+
|
|
389
|
+
## 16. Rust and Go Applications
|
|
390
|
+
|
|
391
|
+
For Rust and Go applications, evaluate:
|
|
392
|
+
|
|
393
|
+
- Dependency management.
|
|
394
|
+
- Concurrency.
|
|
395
|
+
- Resource consumption.
|
|
396
|
+
- Native library dependencies.
|
|
397
|
+
- Cross-compilation.
|
|
398
|
+
- Platform support.
|
|
399
|
+
- Error handling.
|
|
400
|
+
- Binary distribution.
|
|
401
|
+
- Security.
|
|
402
|
+
- Performance.
|
|
403
|
+
|
|
404
|
+
Use language-native tooling where appropriate.
|
|
405
|
+
|
|
406
|
+
Respect existing architecture and build conventions.
|
|
407
|
+
|
|
408
|
+
## 17. Desktop User Experience
|
|
409
|
+
|
|
410
|
+
Design interfaces around actual user tasks.
|
|
411
|
+
|
|
412
|
+
Prioritize:
|
|
413
|
+
|
|
414
|
+
- Clear navigation.
|
|
415
|
+
- Predictable behavior.
|
|
416
|
+
- Keyboard accessibility.
|
|
417
|
+
- Helpful error messages.
|
|
418
|
+
- Consistent actions.
|
|
419
|
+
- Appropriate shortcuts.
|
|
420
|
+
- Visible system status.
|
|
421
|
+
- Easy recovery.
|
|
422
|
+
- Responsive layouts.
|
|
423
|
+
- Platform conventions.
|
|
424
|
+
|
|
425
|
+
Do not assume a complex interface is professional merely because it exposes many controls.
|
|
426
|
+
|
|
427
|
+
## 18. Desktop Accessibility
|
|
428
|
+
|
|
429
|
+
Evaluate:
|
|
430
|
+
|
|
431
|
+
- Screen reader compatibility.
|
|
432
|
+
- Keyboard navigation.
|
|
433
|
+
- Focus management.
|
|
434
|
+
- Contrast.
|
|
435
|
+
- Text scaling.
|
|
436
|
+
- High-DPI behavior.
|
|
437
|
+
- Accessible names.
|
|
438
|
+
- Motion preferences.
|
|
439
|
+
- Color independence.
|
|
440
|
+
- Input alternatives.
|
|
441
|
+
|
|
442
|
+
Apply appropriate platform accessibility APIs.
|
|
443
|
+
|
|
444
|
+
Do not claim accessibility compliance based only on visual inspection.
|
|
445
|
+
|
|
446
|
+
## 19. Desktop Performance
|
|
447
|
+
|
|
448
|
+
Monitor and optimize appropriate:
|
|
449
|
+
|
|
450
|
+
- Startup time.
|
|
451
|
+
- Memory usage.
|
|
452
|
+
- CPU utilization.
|
|
453
|
+
- Disk usage.
|
|
454
|
+
- UI responsiveness.
|
|
455
|
+
- Background processing.
|
|
456
|
+
- Network utilization.
|
|
457
|
+
- GPU utilization.
|
|
458
|
+
- Energy consumption.
|
|
459
|
+
|
|
460
|
+
Avoid blocking the main UI thread with expensive operations.
|
|
461
|
+
|
|
462
|
+
Use profiling evidence before major optimization.
|
|
463
|
+
|
|
464
|
+
## 20. Memory and Resource Management
|
|
465
|
+
|
|
466
|
+
Manage resources deliberately.
|
|
467
|
+
|
|
468
|
+
Evaluate:
|
|
469
|
+
|
|
470
|
+
- Memory leaks.
|
|
471
|
+
- File handles.
|
|
472
|
+
- Network sockets.
|
|
473
|
+
- GPU resources.
|
|
474
|
+
- Threads.
|
|
475
|
+
- Background tasks.
|
|
476
|
+
- Event listeners.
|
|
477
|
+
- Native handles.
|
|
478
|
+
- Cache growth.
|
|
479
|
+
|
|
480
|
+
Release resources according to language and framework requirements.
|
|
481
|
+
|
|
482
|
+
Test long-running application behavior where relevant.
|
|
483
|
+
|
|
484
|
+
## 21. Concurrency and Threading
|
|
485
|
+
|
|
486
|
+
Evaluate:
|
|
487
|
+
|
|
488
|
+
- Race conditions.
|
|
489
|
+
- Deadlocks.
|
|
490
|
+
- Thread synchronization.
|
|
491
|
+
- Shared mutable state.
|
|
492
|
+
- Background jobs.
|
|
493
|
+
- UI thread affinity.
|
|
494
|
+
- Task cancellation.
|
|
495
|
+
- Resource contention.
|
|
496
|
+
|
|
497
|
+
Use language-appropriate concurrency primitives.
|
|
498
|
+
|
|
499
|
+
Never assume thread-safe behavior without analysis or testing.
|
|
500
|
+
|
|
501
|
+
## 22. Filesystem Security
|
|
502
|
+
|
|
503
|
+
Protect local and shared filesystem access.
|
|
504
|
+
|
|
505
|
+
Consider:
|
|
506
|
+
|
|
507
|
+
- File permissions.
|
|
508
|
+
- Path traversal.
|
|
509
|
+
- Symbolic links.
|
|
510
|
+
- Temporary files.
|
|
511
|
+
- Atomic writes.
|
|
512
|
+
- File locking.
|
|
513
|
+
- Data integrity.
|
|
514
|
+
- User-controlled paths.
|
|
515
|
+
- Backup behavior.
|
|
516
|
+
|
|
517
|
+
Validate paths and file operations.
|
|
518
|
+
|
|
519
|
+
Do not overwrite unrelated user files.
|
|
520
|
+
|
|
521
|
+
Require explicit approval for destructive filesystem operations.
|
|
522
|
+
|
|
523
|
+
## 23. Local Data Storage
|
|
524
|
+
|
|
525
|
+
Evaluate appropriate storage approaches.
|
|
526
|
+
|
|
527
|
+
Examples:
|
|
528
|
+
|
|
529
|
+
- SQLite.
|
|
530
|
+
- Embedded databases.
|
|
531
|
+
- Encrypted local storage.
|
|
532
|
+
- Files.
|
|
533
|
+
- Application-managed caches.
|
|
534
|
+
- Platform credential stores.
|
|
535
|
+
|
|
536
|
+
Select according to actual data requirements.
|
|
537
|
+
|
|
538
|
+
Protect sensitive data.
|
|
539
|
+
|
|
540
|
+
Use safe migration and recovery procedures.
|
|
541
|
+
|
|
542
|
+
Consult docs/data.md.
|
|
543
|
+
|
|
544
|
+
## 24. Credential and Secret Storage
|
|
545
|
+
|
|
546
|
+
Use secure platform-supported mechanisms.
|
|
547
|
+
|
|
548
|
+
Examples include:
|
|
549
|
+
|
|
550
|
+
- Windows credential protection mechanisms.
|
|
551
|
+
- macOS Keychain.
|
|
552
|
+
- Linux desktop secret services where available.
|
|
553
|
+
- Approved enterprise secret stores.
|
|
554
|
+
|
|
555
|
+
Never embed production secrets in application binaries.
|
|
556
|
+
|
|
557
|
+
Do not assume code obfuscation provides secret protection.
|
|
558
|
+
|
|
559
|
+
## 25. Desktop Application Security
|
|
560
|
+
|
|
561
|
+
Evaluate:
|
|
562
|
+
|
|
563
|
+
- Input validation.
|
|
564
|
+
- Dependency vulnerabilities.
|
|
565
|
+
- Unsafe native operations.
|
|
566
|
+
- File access.
|
|
567
|
+
- Privilege escalation.
|
|
568
|
+
- Process execution.
|
|
569
|
+
- Inter-process communication.
|
|
570
|
+
- Network exposure.
|
|
571
|
+
- Deserialization.
|
|
572
|
+
- Plugin loading.
|
|
573
|
+
- Update security.
|
|
574
|
+
|
|
575
|
+
Apply least privilege.
|
|
576
|
+
|
|
577
|
+
Do not execute untrusted commands or scripts automatically.
|
|
578
|
+
|
|
579
|
+
Consult docs/security.md.
|
|
580
|
+
|
|
581
|
+
## 26. Application Sandboxing
|
|
582
|
+
|
|
583
|
+
Use sandboxing where supported and appropriate.
|
|
584
|
+
|
|
585
|
+
Evaluate:
|
|
586
|
+
|
|
587
|
+
- Filesystem boundaries.
|
|
588
|
+
- Process isolation.
|
|
589
|
+
- Network permissions.
|
|
590
|
+
- System capabilities.
|
|
591
|
+
- User consent.
|
|
592
|
+
- Extension permissions.
|
|
593
|
+
|
|
594
|
+
Do not disable sandbox restrictions merely to simplify development.
|
|
595
|
+
|
|
596
|
+
Document required privileges.
|
|
597
|
+
|
|
598
|
+
## 27. Native Libraries and FFI
|
|
599
|
+
|
|
600
|
+
For native bindings and foreign function interfaces:
|
|
601
|
+
|
|
602
|
+
- Validate memory ownership.
|
|
603
|
+
- Validate pointer lifetimes.
|
|
604
|
+
- Handle errors.
|
|
605
|
+
- Review thread safety.
|
|
606
|
+
- Validate binary compatibility.
|
|
607
|
+
- Protect against unsafe inputs.
|
|
608
|
+
- Test supported architectures.
|
|
609
|
+
|
|
610
|
+
Treat FFI boundaries as high-risk integration points.
|
|
611
|
+
|
|
612
|
+
## 28. Inter-Process Communication
|
|
613
|
+
|
|
614
|
+
For applications using IPC:
|
|
615
|
+
|
|
616
|
+
- Authenticate peers where appropriate.
|
|
617
|
+
- Validate messages.
|
|
618
|
+
- Enforce permissions.
|
|
619
|
+
- Protect sensitive data.
|
|
620
|
+
- Handle process failure.
|
|
621
|
+
- Apply timeouts.
|
|
622
|
+
- Prevent resource exhaustion.
|
|
623
|
+
|
|
624
|
+
Do not expose privileged operations through unauthenticated local endpoints.
|
|
625
|
+
|
|
626
|
+
## 29. Desktop Networking
|
|
627
|
+
|
|
628
|
+
Evaluate:
|
|
629
|
+
|
|
630
|
+
- Transport security.
|
|
631
|
+
- Endpoint validation.
|
|
632
|
+
- Authentication.
|
|
633
|
+
- Authorization.
|
|
634
|
+
- Timeouts.
|
|
635
|
+
- Retries.
|
|
636
|
+
- Offline behavior.
|
|
637
|
+
- Proxy environments.
|
|
638
|
+
- Certificate handling.
|
|
639
|
+
- Network interruptions.
|
|
640
|
+
|
|
641
|
+
Do not disable TLS verification to make connections succeed.
|
|
642
|
+
|
|
643
|
+
Use bounded retries.
|
|
644
|
+
|
|
645
|
+
## 30. Background Services
|
|
646
|
+
|
|
647
|
+
For system services and background agents:
|
|
648
|
+
|
|
649
|
+
- Define purpose.
|
|
650
|
+
- Restrict privileges.
|
|
651
|
+
- Limit resource consumption.
|
|
652
|
+
- Handle restarts.
|
|
653
|
+
- Define logging.
|
|
654
|
+
- Define update behavior.
|
|
655
|
+
- Protect credentials.
|
|
656
|
+
- Document installation.
|
|
657
|
+
- Provide safe removal.
|
|
658
|
+
|
|
659
|
+
Never install persistent background services without explicit user approval.
|
|
660
|
+
|
|
661
|
+
## 31. Application Packaging
|
|
662
|
+
|
|
663
|
+
Define reproducible packaging procedures.
|
|
664
|
+
|
|
665
|
+
Consider:
|
|
666
|
+
|
|
667
|
+
- Required runtime.
|
|
668
|
+
- Native dependencies.
|
|
669
|
+
- Target architecture.
|
|
670
|
+
- Build configuration.
|
|
671
|
+
- Asset inclusion.
|
|
672
|
+
- Version metadata.
|
|
673
|
+
- Security.
|
|
674
|
+
- Installer permissions.
|
|
675
|
+
|
|
676
|
+
Verify packages on clean representative systems.
|
|
677
|
+
|
|
678
|
+
Do not assume successful development builds guarantee successful installation.
|
|
679
|
+
|
|
680
|
+
## 32. Code Signing
|
|
681
|
+
|
|
682
|
+
Use appropriate signing mechanisms for distributed applications.
|
|
683
|
+
|
|
684
|
+
Protect signing identities and private keys.
|
|
685
|
+
|
|
686
|
+
Do not commit signing credentials to repositories.
|
|
687
|
+
|
|
688
|
+
Document certificate and identity requirements.
|
|
689
|
+
|
|
690
|
+
Never falsely claim a binary is signed or trusted without verification.
|
|
691
|
+
|
|
692
|
+
## 33. Installers and Uninstallers
|
|
693
|
+
|
|
694
|
+
Installers must:
|
|
695
|
+
|
|
696
|
+
- Explain required permissions.
|
|
697
|
+
- Install only necessary components.
|
|
698
|
+
- Avoid unrelated system changes.
|
|
699
|
+
- Preserve existing user data.
|
|
700
|
+
- Handle failures.
|
|
701
|
+
- Provide safe rollback where feasible.
|
|
702
|
+
|
|
703
|
+
Uninstallers should remove application components safely.
|
|
704
|
+
|
|
705
|
+
Do not delete user-created documents automatically without explicit authorization.
|
|
706
|
+
|
|
707
|
+
## 34. Application Updates
|
|
708
|
+
|
|
709
|
+
Design secure update mechanisms.
|
|
710
|
+
|
|
711
|
+
Evaluate:
|
|
712
|
+
|
|
713
|
+
- Update authenticity.
|
|
714
|
+
- Transport security.
|
|
715
|
+
- Version compatibility.
|
|
716
|
+
- Rollback.
|
|
717
|
+
- Partial downloads.
|
|
718
|
+
- Interrupted updates.
|
|
719
|
+
- Data migrations.
|
|
720
|
+
- User notification.
|
|
721
|
+
- Release channels.
|
|
722
|
+
|
|
723
|
+
Do not execute unsigned or untrusted update payloads.
|
|
724
|
+
|
|
725
|
+
Do not silently introduce breaking changes.
|
|
726
|
+
|
|
727
|
+
## 35. Backward Compatibility
|
|
728
|
+
|
|
729
|
+
Preserve compatibility with supported:
|
|
730
|
+
|
|
731
|
+
- Operating systems.
|
|
732
|
+
- Runtime versions.
|
|
733
|
+
- File formats.
|
|
734
|
+
- Plugins.
|
|
735
|
+
- APIs.
|
|
736
|
+
- Stored data.
|
|
737
|
+
- External integrations.
|
|
738
|
+
|
|
739
|
+
Document deprecated functionality.
|
|
740
|
+
|
|
741
|
+
Require approval before removing support for existing production environments.
|
|
742
|
+
|
|
743
|
+
## 36. Enterprise Desktop Software
|
|
744
|
+
|
|
745
|
+
For enterprise applications, evaluate:
|
|
746
|
+
|
|
747
|
+
- Identity integration.
|
|
748
|
+
- Role-based access.
|
|
749
|
+
- Organizational policies.
|
|
750
|
+
- Device management.
|
|
751
|
+
- Secure configuration.
|
|
752
|
+
- Audit logging.
|
|
753
|
+
- Data retention.
|
|
754
|
+
- Network restrictions.
|
|
755
|
+
- Software deployment.
|
|
756
|
+
- Supportability.
|
|
757
|
+
|
|
758
|
+
Do not assume enterprise requirements justify unnecessary complexity for every project.
|
|
759
|
+
|
|
760
|
+
## 37. CLI Engineering
|
|
761
|
+
|
|
762
|
+
For command-line tools:
|
|
763
|
+
|
|
764
|
+
- Provide clear commands.
|
|
765
|
+
- Validate arguments.
|
|
766
|
+
- Use meaningful exit codes.
|
|
767
|
+
- Separate standard output and error output.
|
|
768
|
+
- Protect credentials.
|
|
769
|
+
- Support noninteractive execution where appropriate.
|
|
770
|
+
- Handle interruptions.
|
|
771
|
+
- Avoid destructive defaults.
|
|
772
|
+
|
|
773
|
+
Use explicit confirmation for dangerous operations.
|
|
774
|
+
|
|
775
|
+
Never execute destructive actions because a command argument was ambiguous.
|
|
776
|
+
|
|
777
|
+
## 38. Developer Tool Engineering
|
|
778
|
+
|
|
779
|
+
For developer tools, evaluate:
|
|
780
|
+
|
|
781
|
+
- Repository safety.
|
|
782
|
+
- Filesystem scope.
|
|
783
|
+
- External command execution.
|
|
784
|
+
- Credential access.
|
|
785
|
+
- Plugin security.
|
|
786
|
+
- Configuration handling.
|
|
787
|
+
- Compatibility.
|
|
788
|
+
- Performance.
|
|
789
|
+
- Error reporting.
|
|
790
|
+
|
|
791
|
+
Do not assume access to a repository authorizes changes outside its intended scope.
|
|
792
|
+
|
|
793
|
+
## 39. Game Engineering Mission
|
|
794
|
+
|
|
795
|
+
Design, develop, test and maintain stable, performant, secure and engaging games.
|
|
796
|
+
|
|
797
|
+
These requirements apply to:
|
|
798
|
+
|
|
799
|
+
- 2D games.
|
|
800
|
+
- 3D games.
|
|
801
|
+
- Single-player games.
|
|
802
|
+
- Multiplayer games.
|
|
803
|
+
- Online games.
|
|
804
|
+
- Mobile games.
|
|
805
|
+
- Desktop games.
|
|
806
|
+
- Simulation applications.
|
|
807
|
+
- Virtual and augmented reality where relevant.
|
|
808
|
+
|
|
809
|
+
No game engine is mandatory.
|
|
810
|
+
|
|
811
|
+
Preserve existing gameplay and assets unless changes are explicitly approved.
|
|
812
|
+
|
|
813
|
+
## 40. Game Engine Independence
|
|
814
|
+
|
|
815
|
+
Support engines and frameworks including:
|
|
816
|
+
|
|
817
|
+
- Unity.
|
|
818
|
+
- Unreal Engine.
|
|
819
|
+
- Godot.
|
|
820
|
+
- GameMaker.
|
|
821
|
+
- Defold.
|
|
822
|
+
- MonoGame.
|
|
823
|
+
- Custom engines.
|
|
824
|
+
|
|
825
|
+
Select according to:
|
|
826
|
+
|
|
827
|
+
- Target platforms.
|
|
828
|
+
- Gameplay requirements.
|
|
829
|
+
- Graphics requirements.
|
|
830
|
+
- Team capabilities.
|
|
831
|
+
- Licensing.
|
|
832
|
+
- Build pipeline.
|
|
833
|
+
- Runtime performance.
|
|
834
|
+
- Tooling.
|
|
835
|
+
- Maintenance.
|
|
836
|
+
- Costs.
|
|
837
|
+
|
|
838
|
+
Do not recommend engine migration without strong technical justification and approval.
|
|
839
|
+
|
|
840
|
+
## 41. Unity Engineering
|
|
841
|
+
|
|
842
|
+
For Unity projects, evaluate:
|
|
843
|
+
|
|
844
|
+
- Unity editor version.
|
|
845
|
+
- C# scripting conventions.
|
|
846
|
+
- Scene structure.
|
|
847
|
+
- Prefabs.
|
|
848
|
+
- ScriptableObjects.
|
|
849
|
+
- Asset references.
|
|
850
|
+
- Package dependencies.
|
|
851
|
+
- Rendering pipelines.
|
|
852
|
+
- Physics.
|
|
853
|
+
- Animation.
|
|
854
|
+
- Input systems.
|
|
855
|
+
- Build targets.
|
|
856
|
+
- Profiling.
|
|
857
|
+
- Memory.
|
|
858
|
+
- Platform compatibility.
|
|
859
|
+
|
|
860
|
+
Preserve project metadata and asset relationships.
|
|
861
|
+
|
|
862
|
+
Do not remove or regenerate asset metadata without understanding its impact.
|
|
863
|
+
|
|
864
|
+
Validate changes in the relevant Unity environment.
|
|
865
|
+
|
|
866
|
+
## 42. Unreal Engine Engineering
|
|
867
|
+
|
|
868
|
+
For Unreal Engine projects, evaluate:
|
|
869
|
+
|
|
870
|
+
- Unreal Engine version.
|
|
871
|
+
- C++ modules.
|
|
872
|
+
- Blueprint architecture.
|
|
873
|
+
- Asset references.
|
|
874
|
+
- Actors.
|
|
875
|
+
- Components.
|
|
876
|
+
- Gameplay framework.
|
|
877
|
+
- Rendering.
|
|
878
|
+
- Animation.
|
|
879
|
+
- Physics.
|
|
880
|
+
- Replication.
|
|
881
|
+
- Build targets.
|
|
882
|
+
- Plugins.
|
|
883
|
+
- Profiling.
|
|
884
|
+
|
|
885
|
+
Respect engine-specific lifecycle and ownership requirements.
|
|
886
|
+
|
|
887
|
+
Do not assume Blueprint and C++ changes are interchangeable.
|
|
888
|
+
|
|
889
|
+
Validate project compatibility before engine upgrades.
|
|
890
|
+
|
|
891
|
+
## 43. Godot Engineering
|
|
892
|
+
|
|
893
|
+
For Godot projects, evaluate:
|
|
894
|
+
|
|
895
|
+
- Engine version.
|
|
896
|
+
- Scene structure.
|
|
897
|
+
- Node hierarchy.
|
|
898
|
+
- Signals.
|
|
899
|
+
- Scripts.
|
|
900
|
+
- Resource references.
|
|
901
|
+
- GDScript or C# usage.
|
|
902
|
+
- Physics.
|
|
903
|
+
- Rendering.
|
|
904
|
+
- Input.
|
|
905
|
+
- Export targets.
|
|
906
|
+
- Performance.
|
|
907
|
+
|
|
908
|
+
Preserve scene and resource integrity.
|
|
909
|
+
|
|
910
|
+
Do not assume compatibility between major engine versions.
|
|
911
|
+
|
|
912
|
+
## 44. Gameplay Architecture
|
|
913
|
+
|
|
914
|
+
Separate responsibilities where appropriate.
|
|
915
|
+
|
|
916
|
+
Consider:
|
|
917
|
+
|
|
918
|
+
- Player input.
|
|
919
|
+
- Gameplay state.
|
|
920
|
+
- Rules.
|
|
921
|
+
- Physics.
|
|
922
|
+
- Animation.
|
|
923
|
+
- Audio.
|
|
924
|
+
- Rendering.
|
|
925
|
+
- Persistence.
|
|
926
|
+
- Networking.
|
|
927
|
+
- UI.
|
|
928
|
+
|
|
929
|
+
Avoid monolithic gameplay scripts when modular boundaries improve maintainability.
|
|
930
|
+
|
|
931
|
+
Do not introduce unnecessary abstraction into small games.
|
|
932
|
+
|
|
933
|
+
## 45. Frame Time and FPS
|
|
934
|
+
|
|
935
|
+
Define performance objectives according to target hardware and game requirements.
|
|
936
|
+
|
|
937
|
+
Evaluate:
|
|
938
|
+
|
|
939
|
+
- Frames per second.
|
|
940
|
+
- Average frame time.
|
|
941
|
+
- Frame time distribution.
|
|
942
|
+
- CPU frame time.
|
|
943
|
+
- GPU frame time.
|
|
944
|
+
- Rendering latency.
|
|
945
|
+
- Input responsiveness.
|
|
946
|
+
- Stuttering.
|
|
947
|
+
|
|
948
|
+
Frame time consistency is often more informative than average FPS alone.
|
|
949
|
+
|
|
950
|
+
Use profiling evidence.
|
|
951
|
+
|
|
952
|
+
Do not claim a game is optimized solely because it reaches a target FPS in one test environment.
|
|
953
|
+
|
|
954
|
+
## 46. Rendering Performance
|
|
955
|
+
|
|
956
|
+
Evaluate:
|
|
957
|
+
|
|
958
|
+
- Draw calls.
|
|
959
|
+
- Shader complexity.
|
|
960
|
+
- GPU utilization.
|
|
961
|
+
- Texture memory.
|
|
962
|
+
- Overdraw.
|
|
963
|
+
- Lighting.
|
|
964
|
+
- Shadows.
|
|
965
|
+
- Post-processing.
|
|
966
|
+
- Material usage.
|
|
967
|
+
- Render resolution.
|
|
968
|
+
- Level of detail.
|
|
969
|
+
|
|
970
|
+
Apply optimizations according to actual bottlenecks.
|
|
971
|
+
|
|
972
|
+
Preserve visual quality requirements.
|
|
973
|
+
|
|
974
|
+
## 47. 3D Asset Optimization
|
|
975
|
+
|
|
976
|
+
For 3D projects, consider:
|
|
977
|
+
|
|
978
|
+
- Polygon counts.
|
|
979
|
+
- Mesh complexity.
|
|
980
|
+
- Texture resolution.
|
|
981
|
+
- Texture compression.
|
|
982
|
+
- Asset streaming.
|
|
983
|
+
- Level of detail.
|
|
984
|
+
- Animation rigs.
|
|
985
|
+
- Materials.
|
|
986
|
+
- Collision meshes.
|
|
987
|
+
- GPU memory.
|
|
988
|
+
|
|
989
|
+
Do not remove visual assets or reduce quality without justification.
|
|
990
|
+
|
|
991
|
+
## 48. 2D Asset Optimization
|
|
992
|
+
|
|
993
|
+
For 2D projects, consider:
|
|
994
|
+
|
|
995
|
+
- Sprite atlases.
|
|
996
|
+
- Texture size.
|
|
997
|
+
- Animation frames.
|
|
998
|
+
- Draw calls.
|
|
999
|
+
- UI rendering.
|
|
1000
|
+
- Collision complexity.
|
|
1001
|
+
- Asset loading.
|
|
1002
|
+
- Memory consumption.
|
|
1003
|
+
|
|
1004
|
+
Optimize based on representative target devices.
|
|
1005
|
+
|
|
1006
|
+
## 49. Game Physics
|
|
1007
|
+
|
|
1008
|
+
Evaluate:
|
|
1009
|
+
|
|
1010
|
+
- Fixed timestep behavior.
|
|
1011
|
+
- Collision detection.
|
|
1012
|
+
- Rigidbody interactions.
|
|
1013
|
+
- Determinism requirements.
|
|
1014
|
+
- Physics performance.
|
|
1015
|
+
- Simulation stability.
|
|
1016
|
+
- Network synchronization.
|
|
1017
|
+
|
|
1018
|
+
Do not assume physics results are identical across all devices or frame rates.
|
|
1019
|
+
|
|
1020
|
+
Use suitable update cycles.
|
|
1021
|
+
|
|
1022
|
+
## 50. Animation Systems
|
|
1023
|
+
|
|
1024
|
+
Evaluate:
|
|
1025
|
+
|
|
1026
|
+
- Animation state management.
|
|
1027
|
+
- Transition logic.
|
|
1028
|
+
- Blend trees.
|
|
1029
|
+
- Skeletal animation.
|
|
1030
|
+
- Asset reuse.
|
|
1031
|
+
- Animation events.
|
|
1032
|
+
- Performance.
|
|
1033
|
+
- Synchronization.
|
|
1034
|
+
|
|
1035
|
+
Preserve gameplay-critical animation timing.
|
|
1036
|
+
|
|
1037
|
+
Test changes under actual runtime conditions.
|
|
1038
|
+
|
|
1039
|
+
## 51. Game Input Systems
|
|
1040
|
+
|
|
1041
|
+
Support appropriate:
|
|
1042
|
+
|
|
1043
|
+
- Keyboard.
|
|
1044
|
+
- Mouse.
|
|
1045
|
+
- Controllers.
|
|
1046
|
+
- Touch.
|
|
1047
|
+
- Accessibility input.
|
|
1048
|
+
- Platform-specific input devices.
|
|
1049
|
+
|
|
1050
|
+
Use clear input mapping.
|
|
1051
|
+
|
|
1052
|
+
Avoid hardcoding controls when remapping is required.
|
|
1053
|
+
|
|
1054
|
+
Validate input responsiveness.
|
|
1055
|
+
|
|
1056
|
+
## 52. Game Audio
|
|
1057
|
+
|
|
1058
|
+
Evaluate:
|
|
1059
|
+
|
|
1060
|
+
- Audio quality.
|
|
1061
|
+
- Compression.
|
|
1062
|
+
- Memory usage.
|
|
1063
|
+
- Streaming.
|
|
1064
|
+
- Spatial audio.
|
|
1065
|
+
- Mixing.
|
|
1066
|
+
- Accessibility.
|
|
1067
|
+
- Device compatibility.
|
|
1068
|
+
|
|
1069
|
+
Avoid unnecessary simultaneous audio processing.
|
|
1070
|
+
|
|
1071
|
+
Handle missing audio devices gracefully.
|
|
1072
|
+
|
|
1073
|
+
## 53. Game UI and UX
|
|
1074
|
+
|
|
1075
|
+
Design understandable interfaces.
|
|
1076
|
+
|
|
1077
|
+
Evaluate:
|
|
1078
|
+
|
|
1079
|
+
- HUD readability.
|
|
1080
|
+
- Menu navigation.
|
|
1081
|
+
- Inventory interfaces.
|
|
1082
|
+
- Tutorials.
|
|
1083
|
+
- Accessibility.
|
|
1084
|
+
- Controller support.
|
|
1085
|
+
- Settings.
|
|
1086
|
+
- Error feedback.
|
|
1087
|
+
- Save and load workflows.
|
|
1088
|
+
|
|
1089
|
+
Do not prioritize decorative complexity over gameplay usability.
|
|
1090
|
+
|
|
1091
|
+
## 54. Game State Management
|
|
1092
|
+
|
|
1093
|
+
Define ownership of:
|
|
1094
|
+
|
|
1095
|
+
- Player state.
|
|
1096
|
+
- World state.
|
|
1097
|
+
- Session state.
|
|
1098
|
+
- Inventory.
|
|
1099
|
+
- Progression.
|
|
1100
|
+
- Match state.
|
|
1101
|
+
- Persistent state.
|
|
1102
|
+
|
|
1103
|
+
Avoid inconsistent duplicated state.
|
|
1104
|
+
|
|
1105
|
+
Document synchronization and persistence behavior.
|
|
1106
|
+
|
|
1107
|
+
## 55. Save Systems
|
|
1108
|
+
|
|
1109
|
+
For save games:
|
|
1110
|
+
|
|
1111
|
+
- Define serialization formats.
|
|
1112
|
+
- Validate stored data.
|
|
1113
|
+
- Preserve backward compatibility.
|
|
1114
|
+
- Handle corrupted files.
|
|
1115
|
+
- Use atomic writes where appropriate.
|
|
1116
|
+
- Protect sensitive state.
|
|
1117
|
+
- Consider cloud synchronization.
|
|
1118
|
+
- Define recovery behavior.
|
|
1119
|
+
|
|
1120
|
+
Do not overwrite user progress without safeguards.
|
|
1121
|
+
|
|
1122
|
+
## 56. Multiplayer Architecture
|
|
1123
|
+
|
|
1124
|
+
For multiplayer games, evaluate:
|
|
1125
|
+
|
|
1126
|
+
- Server authority.
|
|
1127
|
+
- Client prediction.
|
|
1128
|
+
- State replication.
|
|
1129
|
+
- Latency.
|
|
1130
|
+
- Bandwidth.
|
|
1131
|
+
- Matchmaking.
|
|
1132
|
+
- Session management.
|
|
1133
|
+
- Authentication.
|
|
1134
|
+
- Reconnection.
|
|
1135
|
+
- Failure handling.
|
|
1136
|
+
- Anti-cheat controls.
|
|
1137
|
+
|
|
1138
|
+
Do not trust client-reported authoritative game state.
|
|
1139
|
+
|
|
1140
|
+
Use architecture appropriate to gameplay requirements.
|
|
1141
|
+
|
|
1142
|
+
## 57. Multiplayer Security
|
|
1143
|
+
|
|
1144
|
+
Protect against:
|
|
1145
|
+
|
|
1146
|
+
- Unauthorized game actions.
|
|
1147
|
+
- State manipulation.
|
|
1148
|
+
- Replay attacks.
|
|
1149
|
+
- Invalid client input.
|
|
1150
|
+
- Resource abuse.
|
|
1151
|
+
- Account compromise.
|
|
1152
|
+
- Matchmaking abuse.
|
|
1153
|
+
- Inventory manipulation.
|
|
1154
|
+
- Economy exploits.
|
|
1155
|
+
|
|
1156
|
+
Enforce critical rules on trusted servers where appropriate.
|
|
1157
|
+
|
|
1158
|
+
Do not assume client-side anti-cheat controls are sufficient.
|
|
1159
|
+
|
|
1160
|
+
## 58. Networked Game Performance
|
|
1161
|
+
|
|
1162
|
+
Evaluate:
|
|
1163
|
+
|
|
1164
|
+
- Tick rate.
|
|
1165
|
+
- Packet size.
|
|
1166
|
+
- Bandwidth.
|
|
1167
|
+
- Latency.
|
|
1168
|
+
- Jitter.
|
|
1169
|
+
- Packet loss.
|
|
1170
|
+
- State interpolation.
|
|
1171
|
+
- Prediction.
|
|
1172
|
+
- Reconciliation.
|
|
1173
|
+
- Server load.
|
|
1174
|
+
|
|
1175
|
+
Select techniques according to gameplay requirements.
|
|
1176
|
+
|
|
1177
|
+
Test under representative network conditions.
|
|
1178
|
+
|
|
1179
|
+
## 59. Game Backend Services
|
|
1180
|
+
|
|
1181
|
+
For online games, evaluate:
|
|
1182
|
+
|
|
1183
|
+
- Authentication.
|
|
1184
|
+
- Matchmaking.
|
|
1185
|
+
- Player profiles.
|
|
1186
|
+
- Inventories.
|
|
1187
|
+
- Persistence.
|
|
1188
|
+
- Leaderboards.
|
|
1189
|
+
- Messaging.
|
|
1190
|
+
- Anti-abuse controls.
|
|
1191
|
+
- Server hosting.
|
|
1192
|
+
- Regional latency.
|
|
1193
|
+
- Operational costs.
|
|
1194
|
+
|
|
1195
|
+
Do not introduce expensive persistent servers without demand-based justification.
|
|
1196
|
+
|
|
1197
|
+
Consult docs/scalability.md.
|
|
1198
|
+
|
|
1199
|
+
## 60. Game Economy Integrity
|
|
1200
|
+
|
|
1201
|
+
For games with currencies, items, trading or purchases:
|
|
1202
|
+
|
|
1203
|
+
- Enforce authoritative transactions.
|
|
1204
|
+
- Validate ownership.
|
|
1205
|
+
- Prevent duplication.
|
|
1206
|
+
- Protect payment flows.
|
|
1207
|
+
- Record important operations.
|
|
1208
|
+
- Test concurrency.
|
|
1209
|
+
- Apply fraud and abuse controls.
|
|
1210
|
+
|
|
1211
|
+
Do not trust client-only balance calculations.
|
|
1212
|
+
|
|
1213
|
+
Never compromise transaction integrity to reduce latency.
|
|
1214
|
+
|
|
1215
|
+
## 61. Game AI Systems
|
|
1216
|
+
|
|
1217
|
+
For game AI, evaluate:
|
|
1218
|
+
|
|
1219
|
+
- Behavior trees.
|
|
1220
|
+
- State machines.
|
|
1221
|
+
- Navigation.
|
|
1222
|
+
- Pathfinding.
|
|
1223
|
+
- Utility systems.
|
|
1224
|
+
- Procedural behavior.
|
|
1225
|
+
- Machine learning where justified.
|
|
1226
|
+
- Performance.
|
|
1227
|
+
- Determinism where required.
|
|
1228
|
+
|
|
1229
|
+
Do not use LLM inference for every gameplay decision when simpler deterministic approaches are more appropriate.
|
|
1230
|
+
|
|
1231
|
+
Consult docs/ai-and-llm.md where applicable.
|
|
1232
|
+
|
|
1233
|
+
## 62. Procedural Generation
|
|
1234
|
+
|
|
1235
|
+
For procedural content:
|
|
1236
|
+
|
|
1237
|
+
- Define generation constraints.
|
|
1238
|
+
- Validate output.
|
|
1239
|
+
- Manage random seeds.
|
|
1240
|
+
- Consider reproducibility.
|
|
1241
|
+
- Evaluate performance.
|
|
1242
|
+
- Prevent invalid levels or states.
|
|
1243
|
+
- Test generated content.
|
|
1244
|
+
|
|
1245
|
+
Do not assume generated content is automatically playable or balanced.
|
|
1246
|
+
|
|
1247
|
+
## 63. Game Testing
|
|
1248
|
+
|
|
1249
|
+
Evaluate:
|
|
1250
|
+
|
|
1251
|
+
- Gameplay correctness.
|
|
1252
|
+
- Input handling.
|
|
1253
|
+
- Progression.
|
|
1254
|
+
- Save and load.
|
|
1255
|
+
- Physics behavior.
|
|
1256
|
+
- Rendering.
|
|
1257
|
+
- Multiplayer synchronization.
|
|
1258
|
+
- Network failure.
|
|
1259
|
+
- Memory usage.
|
|
1260
|
+
- Frame time.
|
|
1261
|
+
- Platform compatibility.
|
|
1262
|
+
|
|
1263
|
+
Combine automated testing with appropriate manual playtesting.
|
|
1264
|
+
|
|
1265
|
+
Do not claim a game is production-ready solely because it launches.
|
|
1266
|
+
|
|
1267
|
+
## 64. Game Profiling
|
|
1268
|
+
|
|
1269
|
+
Use engine-supported profiling where appropriate.
|
|
1270
|
+
|
|
1271
|
+
Evaluate:
|
|
1272
|
+
|
|
1273
|
+
- CPU.
|
|
1274
|
+
- GPU.
|
|
1275
|
+
- Memory.
|
|
1276
|
+
- Rendering.
|
|
1277
|
+
- Physics.
|
|
1278
|
+
- Scripts.
|
|
1279
|
+
- Garbage collection.
|
|
1280
|
+
- Asset loading.
|
|
1281
|
+
- Network traffic.
|
|
1282
|
+
|
|
1283
|
+
Profile representative scenes and target hardware.
|
|
1284
|
+
|
|
1285
|
+
Do not optimize solely from assumptions.
|
|
1286
|
+
|
|
1287
|
+
## 65. Mobile and Console Game Targets
|
|
1288
|
+
|
|
1289
|
+
When targeting additional platforms, apply their relevant constraints.
|
|
1290
|
+
|
|
1291
|
+
Consider:
|
|
1292
|
+
|
|
1293
|
+
- CPU and GPU budgets.
|
|
1294
|
+
- Memory.
|
|
1295
|
+
- Battery.
|
|
1296
|
+
- Thermal limits.
|
|
1297
|
+
- Storage.
|
|
1298
|
+
- Input methods.
|
|
1299
|
+
- Display characteristics.
|
|
1300
|
+
- Network behavior.
|
|
1301
|
+
- Platform certification requirements.
|
|
1302
|
+
|
|
1303
|
+
For mobile games, also consult docs/mobile-and-web.md.
|
|
1304
|
+
|
|
1305
|
+
For console development, verify applicable platform SDK, licensing, certification and confidentiality requirements.
|
|
1306
|
+
|
|
1307
|
+
Do not assume console development resources are publicly accessible.
|
|
1308
|
+
|
|
1309
|
+
## 66. VR and AR Applications
|
|
1310
|
+
|
|
1311
|
+
Where relevant, evaluate:
|
|
1312
|
+
|
|
1313
|
+
- Frame-time requirements.
|
|
1314
|
+
- Motion-to-photon latency.
|
|
1315
|
+
- Tracking.
|
|
1316
|
+
- Interaction comfort.
|
|
1317
|
+
- GPU performance.
|
|
1318
|
+
- Thermal limits.
|
|
1319
|
+
- Input devices.
|
|
1320
|
+
- Accessibility.
|
|
1321
|
+
- Platform SDK requirements.
|
|
1322
|
+
|
|
1323
|
+
Do not introduce VR or AR dependencies into unrelated projects.
|
|
1324
|
+
|
|
1325
|
+
## 67. Game Build and Distribution
|
|
1326
|
+
|
|
1327
|
+
Define appropriate release processes.
|
|
1328
|
+
|
|
1329
|
+
Consider:
|
|
1330
|
+
|
|
1331
|
+
- Target operating systems.
|
|
1332
|
+
- Engine version.
|
|
1333
|
+
- Build reproducibility.
|
|
1334
|
+
- Asset packaging.
|
|
1335
|
+
- Content licensing.
|
|
1336
|
+
- Platform requirements.
|
|
1337
|
+
- Signing.
|
|
1338
|
+
- Updates.
|
|
1339
|
+
- Compatibility.
|
|
1340
|
+
- Crash reporting.
|
|
1341
|
+
|
|
1342
|
+
Verify actual release builds.
|
|
1343
|
+
|
|
1344
|
+
Do not publish games automatically without explicit approval.
|
|
1345
|
+
|
|
1346
|
+
## 68. Game Content and Asset Licensing
|
|
1347
|
+
|
|
1348
|
+
Review applicable licenses for:
|
|
1349
|
+
|
|
1350
|
+
- Game engines.
|
|
1351
|
+
- Plugins.
|
|
1352
|
+
- Textures.
|
|
1353
|
+
- 3D models.
|
|
1354
|
+
- Audio.
|
|
1355
|
+
- Fonts.
|
|
1356
|
+
- Animation assets.
|
|
1357
|
+
- Middleware.
|
|
1358
|
+
- AI-generated assets.
|
|
1359
|
+
|
|
1360
|
+
Do not assume assets downloaded from the internet are free for commercial use.
|
|
1361
|
+
|
|
1362
|
+
Document required attribution and distribution restrictions.
|
|
1363
|
+
|
|
1364
|
+
## 69. Game Monetization and Cost
|
|
1365
|
+
|
|
1366
|
+
Evaluate applicable:
|
|
1367
|
+
|
|
1368
|
+
- In-app purchases.
|
|
1369
|
+
- Platform fees.
|
|
1370
|
+
- Payment processing.
|
|
1371
|
+
- Multiplayer hosting.
|
|
1372
|
+
- Matchmaking services.
|
|
1373
|
+
- Content delivery.
|
|
1374
|
+
- Storage.
|
|
1375
|
+
- Analytics.
|
|
1376
|
+
- AI inference.
|
|
1377
|
+
- Third-party services.
|
|
1378
|
+
|
|
1379
|
+
Do not introduce paid services or monetization mechanisms without authorization.
|
|
1380
|
+
|
|
1381
|
+
Consult docs/cost-engineering.md.
|
|
1382
|
+
|
|
1383
|
+
## 70. Software Licensing
|
|
1384
|
+
|
|
1385
|
+
Evaluate:
|
|
1386
|
+
|
|
1387
|
+
- Open-source licenses.
|
|
1388
|
+
- Proprietary dependencies.
|
|
1389
|
+
- Distribution obligations.
|
|
1390
|
+
- Copyleft requirements.
|
|
1391
|
+
- Attribution.
|
|
1392
|
+
- Commercial-use restrictions.
|
|
1393
|
+
- Runtime redistribution.
|
|
1394
|
+
- Engine licensing.
|
|
1395
|
+
|
|
1396
|
+
Do not assume all libraries and tools are freely redistributable.
|
|
1397
|
+
|
|
1398
|
+
Escalate uncertain licensing requirements for review.
|
|
1399
|
+
|
|
1400
|
+
## 71. Application Supply Chain
|
|
1401
|
+
|
|
1402
|
+
Protect:
|
|
1403
|
+
|
|
1404
|
+
- Source repositories.
|
|
1405
|
+
- Build systems.
|
|
1406
|
+
- Package registries.
|
|
1407
|
+
- CI/CD credentials.
|
|
1408
|
+
- Signing keys.
|
|
1409
|
+
- Update infrastructure.
|
|
1410
|
+
- Plugins.
|
|
1411
|
+
- Native dependencies.
|
|
1412
|
+
- Game assets.
|
|
1413
|
+
- Distribution packages.
|
|
1414
|
+
|
|
1415
|
+
Review new dependencies.
|
|
1416
|
+
|
|
1417
|
+
Avoid unverified external binaries and scripts.
|
|
1418
|
+
|
|
1419
|
+
Consult docs/security.md.
|
|
1420
|
+
|
|
1421
|
+
## 72. Crash Reporting and Observability
|
|
1422
|
+
|
|
1423
|
+
Monitor appropriate:
|
|
1424
|
+
|
|
1425
|
+
- Application crashes.
|
|
1426
|
+
- Unhandled exceptions.
|
|
1427
|
+
- Startup failures.
|
|
1428
|
+
- Resource exhaustion.
|
|
1429
|
+
- Rendering failures.
|
|
1430
|
+
- Network errors.
|
|
1431
|
+
- Game server failures.
|
|
1432
|
+
- FPS degradation.
|
|
1433
|
+
- Deployment regressions.
|
|
1434
|
+
|
|
1435
|
+
Protect personal information.
|
|
1436
|
+
|
|
1437
|
+
Consult docs/observability.md.
|
|
1438
|
+
|
|
1439
|
+
## 73. Performance and Scalability
|
|
1440
|
+
|
|
1441
|
+
Evaluate performance against actual requirements.
|
|
1442
|
+
|
|
1443
|
+
For online or distributed applications, assess:
|
|
1444
|
+
|
|
1445
|
+
- Peak concurrency.
|
|
1446
|
+
- Request throughput.
|
|
1447
|
+
- Server capacity.
|
|
1448
|
+
- Database demand.
|
|
1449
|
+
- Network usage.
|
|
1450
|
+
- Realtime traffic.
|
|
1451
|
+
- Recovery requirements.
|
|
1452
|
+
- Infrastructure costs.
|
|
1453
|
+
|
|
1454
|
+
Design for growth without prematurely provisioning expensive systems.
|
|
1455
|
+
|
|
1456
|
+
Consult docs/scalability.md.
|
|
1457
|
+
|
|
1458
|
+
## 74. Testing and Quality Gates
|
|
1459
|
+
|
|
1460
|
+
Use appropriate tools and tests according to the stack.
|
|
1461
|
+
|
|
1462
|
+
Possible checks include:
|
|
1463
|
+
|
|
1464
|
+
- Compiler validation.
|
|
1465
|
+
- Static analysis.
|
|
1466
|
+
- Unit tests.
|
|
1467
|
+
- Integration tests.
|
|
1468
|
+
- UI tests.
|
|
1469
|
+
- Runtime profiling.
|
|
1470
|
+
- Memory sanitizers.
|
|
1471
|
+
- Security scanning.
|
|
1472
|
+
- Dependency scanning.
|
|
1473
|
+
- Packaging verification.
|
|
1474
|
+
- Platform compatibility testing.
|
|
1475
|
+
|
|
1476
|
+
Do not impose irrelevant tools on unsupported languages.
|
|
1477
|
+
|
|
1478
|
+
Consult docs/quality-and-testing.md.
|
|
1479
|
+
|
|
1480
|
+
## 75. Existing Production Software Audits
|
|
1481
|
+
|
|
1482
|
+
For existing applications and games:
|
|
1483
|
+
|
|
1484
|
+
1. Inspect the actual project.
|
|
1485
|
+
2. Identify target platforms.
|
|
1486
|
+
3. Review languages and frameworks.
|
|
1487
|
+
4. Identify runtime dependencies.
|
|
1488
|
+
5. Review architecture.
|
|
1489
|
+
6. Review security boundaries.
|
|
1490
|
+
7. Assess data integrity.
|
|
1491
|
+
8. Review performance evidence.
|
|
1492
|
+
9. Evaluate compatibility.
|
|
1493
|
+
10. Review tests.
|
|
1494
|
+
11. Assess release processes.
|
|
1495
|
+
12. Identify confirmed risks.
|
|
1496
|
+
13. Prioritize findings.
|
|
1497
|
+
14. Propose incremental improvements.
|
|
1498
|
+
15. Wait for explicit human approval.
|
|
1499
|
+
|
|
1500
|
+
The initial audit must be read-only.
|
|
1501
|
+
|
|
1502
|
+
Do not rewrite functioning code merely to adopt newer technologies.
|
|
1503
|
+
|
|
1504
|
+
Do not migrate game engines without an approved technical justification.
|
|
1505
|
+
|
|
1506
|
+
## 76. Cross-Document Responsibilities
|
|
1507
|
+
|
|
1508
|
+
Consult:
|
|
1509
|
+
|
|
1510
|
+
- docs/security.md for security requirements.
|
|
1511
|
+
- docs/privacy.md for privacy and data protection.
|
|
1512
|
+
- docs/architecture.md for architectural decisions.
|
|
1513
|
+
- docs/data.md for persistence and data integrity.
|
|
1514
|
+
- docs/scalability.md for performance and capacity.
|
|
1515
|
+
- docs/cost-engineering.md for financial implications.
|
|
1516
|
+
- docs/ai-and-llm.md for AI features.
|
|
1517
|
+
- docs/quality-and-testing.md for verification.
|
|
1518
|
+
- docs/observability.md for operational monitoring.
|
|
1519
|
+
- docs/mobile-and-web.md for web and mobile requirements.
|
|
1520
|
+
|
|
1521
|
+
Resolve documentation paths relative to the engineering-standards repository.
|
|
1522
|
+
|
|
1523
|
+
Use only the specialized standards relevant to the actual project.
|
|
1524
|
+
|
|
1525
|
+
## 77. Safe Change Governance
|
|
1526
|
+
|
|
1527
|
+
Before significant changes:
|
|
1528
|
+
|
|
1529
|
+
- Identify affected components.
|
|
1530
|
+
- Establish current behavior.
|
|
1531
|
+
- Assess compatibility.
|
|
1532
|
+
- Review security.
|
|
1533
|
+
- Review data integrity.
|
|
1534
|
+
- Evaluate performance.
|
|
1535
|
+
- Assess costs.
|
|
1536
|
+
- Define tests.
|
|
1537
|
+
- Define rollback procedures.
|
|
1538
|
+
- Present a change plan.
|
|
1539
|
+
- Obtain explicit approval.
|
|
1540
|
+
|
|
1541
|
+
Do not make destructive or production-changing modifications automatically.
|
|
1542
|
+
|
|
1543
|
+
## 78. Platforms and Applications Definition of Done
|
|
1544
|
+
|
|
1545
|
+
For significant work:
|
|
1546
|
+
|
|
1547
|
+
- Requirements understood.
|
|
1548
|
+
- Target platforms identified.
|
|
1549
|
+
- Existing architecture respected.
|
|
1550
|
+
- Security reviewed.
|
|
1551
|
+
- Privacy considered.
|
|
1552
|
+
- Data integrity protected.
|
|
1553
|
+
- Performance evaluated.
|
|
1554
|
+
- Compatibility reviewed.
|
|
1555
|
+
- Licensing considered.
|
|
1556
|
+
- Relevant tests executed.
|
|
1557
|
+
- Distribution requirements assessed.
|
|
1558
|
+
- Operational costs considered.
|
|
1559
|
+
- Remaining risks documented.
|
|
1560
|
+
- Required approval obtained.
|
|
1561
|
+
|
|
1562
|
+
Never claim production readiness solely because software compiles or a game launches.
|
|
1563
|
+
|
|
1564
|
+
## 79. Final Platform Engineering Principles
|
|
1565
|
+
|
|
1566
|
+
Support the actual project technology.
|
|
1567
|
+
Preserve existing working applications.
|
|
1568
|
+
Protect operating system boundaries.
|
|
1569
|
+
Apply least privilege.
|
|
1570
|
+
Prioritize maintainability.
|
|
1571
|
+
Verify platform compatibility.
|
|
1572
|
+
Test representative environments.
|
|
1573
|
+
Profile performance before optimizing.
|
|
1574
|
+
Protect user data and credentials.
|
|
1575
|
+
Preserve application and game state.
|
|
1576
|
+
Validate multiplayer authority.
|
|
1577
|
+
Respect software and asset licenses.
|
|
1578
|
+
Control infrastructure and distribution costs.
|
|
1579
|
+
Avoid unnecessary migrations.
|
|
1580
|
+
Audit existing software before modifying it.
|
|
1581
|
+
Require approval for significant changes.
|