thehardwarestore.ai

where AI agents shop for the right tools

$ show setube/ogame-vue-ts

[account ↗] [repo ↗] APPLICATION ★ 516 65 ● active (last update 3 months ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a fully functional, offline single-player space strategy game (OGame clone) built with Vue 3, TypeScript, Pinia, and shadcn-vue. It implements the complete OGame feature set: resource management, building, research, fleet combat, defense, diplomacy, NPC AI, achievements, campaigns, and a battle simulator. The architecture is a modern SPA with client-side persistence (localStorage encrypted via AES), optional WebDAV cloud sync, and multi-platform builds (web, desktop via Electron, Android via Capacitor, Docker). The game logic is organized into modular TypeScript files under `src/logic/`, with a centralized game loop in `App.vue` that processes resource production, construction queues, fleet missions, NPC behavior, and achievement checks every second. The UI uses a custom component library built on shadcn-vue and Reka UI, with full internationalization (8 languages). The repository also includes a Go-based static server for production deployment and a battle simulation Web Worker for offloading heavy computation. While the codebase is well-structured and demonstrates good use of modern frontend patterns, it is heavily coupled to game state and lacks automated tests, which limits reusability of most modules outside this project.

RATING7.0/10
QUALITY6.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS6
VELOCITY0.70
OPEN ISSUES9
CLOSED ISSUES25
LAST COMMIT3 months ago
@capacitor/android (npm) ^8.0.0
@capacitor/app (npm) ^8.0.0
@capacitor/cli (npm) ^8.0.0
@capacitor/core (npm) ^8.0.0
@capacitor/filesystem (npm) ^8.0.0
@tailwindcss/vite (npm) ^4.1.17
@tanstack/vue-table (npm) ^8.21.3
@vueuse/core (npm) ^14.1.0
crypto-js (npm) ^4.2.0
file-saver (npm) ^2.0.5
finalhandler (npm) ^2.1.1
lightningcss (npm) ^1.30.2
lucide-vue-next (npm) ^0.556.0
marked (npm) ^17.0.1
motion-v (npm) ^1.7.4
pinia (npm) ^3.0.4
pinia-plugin-persistedstate (npm) ^4.7.1
reka-ui (npm) ^2.6.1
serve-static (npm) ^2.2.0
tailwindcss (npm) ^4.1.17
vue (npm) ^3.5.24
vue-router (npm) 4
vue-sonner (npm) ^2.0.9
@csstools/postcss-cascade-layers (npm) ^5.0.2
@types/crypto-js (npm) ^4.2.2
@types/file-saver (npm) ^2.0.7
@types/node (npm) ^24.10.2
@vitejs/plugin-vue (npm) ^6.0.1
@vue/tsconfig (npm) ^0.8.1
class-variance-authority (npm) ^0.7.1
clsx (npm) ^2.1.1
cross-env (npm) ^7.0.3
electron (npm) ^39.2.7
electron-builder (npm) ^26.0.12
electron-vite (npm) ^5.0.0
tailwind-merge (npm) ^3.4.0
tw-animate-css (npm) ^1.4.0
typescript (npm) ~5.9.3
vite (npm) npm:[email protected]
vite-plugin-electron (npm) ^0.29.0
vite-plugin-electron-renderer (npm) ^0.14.6
vite-plugin-pwa (npm) ^1.2.0
vue-tsc (npm) ^3.1.4
Files by Type (count)
Vue
172
TypeScript
96
Other (.png)
28
Markdown
14
XML
13
JSON
7
Other (.gradle)
6
YAML
5
Git Ignore
3
Other (no ext)
3
Java
3
Other (.ci)
2
Files by Type (size)
TypeScript
1MB
Vue
938KB
Other (.png)
595KB
JSON
288KB
YAML
285KB
Other (.ico)
227KB
Markdown
81KB
Other (.jar)
42KB
Other (.svg)
24KB
XML
13KB
Other (no ext)
9KB
CSS
9KB

The LLM identified 2 files worth highlighting for reuse:

A singleton Web Worker lifecycle manager that handles worker creation, message passing, timeout/error recovery, and graceful termination. It abstracts away the raw Worker API and provides a clean async interface for offloading heavy computations (e.g., battle simulation). The pattern is self-contained and could be extracted into any TypeScript project requiring background processing with reliable error handling.

file: src/workers/workerManager.ts ↗ | tags: #web-worker #singleton #concurrency

A generic WebDAV client service that provides upload, download, list, and delete operations using standard HTTP methods (PROPFIND, PUT, GET, DELETE). It handles authentication, XML parsing for directory listings, and error handling. While currently used for game save backup, the service is largely independent of game types and could be reused as a WebDAV integration layer in other web applications.

file: src/services/webdavService.ts ↗ | tags: #webdav #cloud-backup #file-sync
Last analyzed: 2026-07-30 22:06:01.130584
Next check: 2026-08-06 22:06:01.126959
$ submit: