Am testat Pi-herness pe ASUS TUF Gaming A16 FA608WV

Scopul incercarii mele

Am incercat sa folosesc PI harnes agent pentru a crea o structura de baza pentru un joc RPG, cerusem doar folder structure base, adica sa faca cateva foldere, folosind deepseek/deepseek-r1-0528-qwen3-8b si nu a fost in stare de nimic.

Dupa primul esec

Voi incerca o alta metoda.
Chat in LM studio cu qwen3.6-35b-a3b si dupa implementare cu un model instruct

Cam asa sa miscat promptul din LM studio

2026-09-01 20:45:41 [DEBUG]

5.09.287.630 I slot print_timing: id 3 | task 0 | n_gen = 3246, tg = 14.53 t/s, tg_3s = 13.85 t/s

2026-09-01 20:45:44 [DEBUG]

5.12.325.284 I slot print_timing: id 3 | task 0 | n_gen = 3288, tg = 14.52 t/s, tg_3s = 13.83 t/s

2026-09-01 20:45:47 [DEBUG]

5.15.341.630 I slot print_timing: id 3 | task 0 | n_gen = 3329, tg = 14.51 t/s, tg_3s = 13.59 t/s

2026-09-01 20:45:50 [DEBUG]

5.18.371.605 I slot print_timing: id 3 | task 0 | n_gen = 3370, tg = 14.50 t/s, tg_3s = 13.53 t/s

2026-09-01 20:45:53 [DEBUG]

5.21.393.135 I slot print_timing: id 3 | task 0 | n_gen = 3411, tg = 14.48 t/s, tg_3s = 13.57 t/s

2026-09-01 20:45:54 [DEBUG]

5.23.173.283 I slot print_timing: id 3 | task 0 | prompt eval time = 805.66 ms / 28 tokens ( 28.77 ms per token, 34.75 tokens per second) 5.23.173.287 I slot print_timing: id 3 | task 0 | eval time = 237220.31 ms / 3435 tokens ( 69.08 ms per token, 14.48 tokens per second) 5.23.173.287 I slot print_timing: id 3 | task 0 | total time = 238025.97 ms / 3463 tokens 5.23.173.292 I slot print_timing: id 3 | task 0 | graphs reused = 3421

238 / 60 = 39.96 cam 4 minute a durat procesul si a rezultat asta:

Outputul in intregime:


Here’s a production-ready, scalable project structure tailored for a C++ RPG. It follows modern C++ practices, separates concerns clearly, and supports iterative development without becoming unmanageable.


:file_folder: Recommended Directory Structure

RPGProject/
├── src/
│   ├── engine/          # Core framework: window, input, audio, renderer, math, utilities
│   ├── game/            # Game managers & state machine (combat, inventory, quests, dialogue)
│   ├── entities/        # Components, entity factory, base classes for player/enemies/NPCs/items
│   ├── systems/         # ECS systems or OOP modules: AI, pathfinding, combat logic, etc.
│   ├── ui/              # HUD, menus, dialogs, inventory screens, notifications
│   └── main.cpp         # Entry point, initialization, game loop bootstrap
├── include/             # Public headers (optional; modern CMake often keeps them in src/)
├── assets/              # All non-code resources
│   ├── textures/        # Sprites, tilesets, UI elements
│   ├── audio/           # SFX, music, voice lines
│   ├── fonts/           # TTF/OTF + bitmap fallbacks
│   ├── maps/            # Level data, tilemaps, spawn points
│   └── configs/         # JSON/YAML for stats, items, quests, dialogue trees, balance tables
├── scripts/             # Optional: Lua/Python for gameplay logic or modding
├── tests/               # Unit & integration tests (Catch2/GTest)
├── tools/               # Asset converters, level editors, data validators
├── build/               # CMake output (gitignored)
├── docs/                # GDD, architecture diagrams, API references, dev logs
├── CMakeLists.txt       # Root build config + add_subdirectory() calls
└── .gitignore           # Exclude build/, IDE files, binaries, LFS pointers if needed


:brick: Core Architecture Recommendations

1. Entity & Component Design

  • Use an ECS (Entity Component System) or a lightweight component-based OOP approach.
  • Components are pure data: Position, Health, Inventory, AIState, Renderable.
  • Systems operate on components: CombatSystem, MovementSystem, QuestTrackerSystem.
  • Avoid deep inheritance hierarchies. Composition > Inheritance for RPG entities.

2. Data-Driven Design

  • Store all game balance, item stats, quest conditions, and dialogue in JSON or YAML.
  • Load configs at runtime or compile-time via a data manager.
  • Never hardcode HP values, damage formulas, or quest triggers.

3. Game Loop & State Management

while (gameRunning) {
    handleInput();
    update(dt);       // Systems + managers
    render();         // Draw frame
}

  • Use a state machine for game modes: MenuState, ExplorationState, CombatState, DialogueState.
  • Decouple input from logic (e.g., InputManagerActionMapGameSystem).

4. Save/Load System

  • Serialize component data + world state to binary or JSON.
  • Version your save format early (save_v1.json, save_v2.json) to avoid breaking changes.
  • Consider snapshot vs incremental saves depending on scope.

:hammer_and_wrench: Recommended Tech Stack (C++17/20)

Category Library/Tool Why
Window/Input SDL2 or SFML Cross-platform, mature, good C++ bindings
UI ImGui (immediate mode) Fast prototyping, built-in widgets, no layout boilerplate
Math GLM Standard for game math, SIMD-friendly
Audio FMOD or OpenAL-Soft FMOD: pro-grade; OpenAL: lightweight & open-source
Data Parsing nlohmann/json, yaml-cpp Header-only (json), robust YAML support
Testing Catch2 Modern, expressive, easy CMake integration
Build System CMake 3.16+ Industry standard, cross-platform, supports subprojects
Version Control Git + Git LFS Essential for tracking large assets (textures, audio)

:chart_increasing: Development Roadmap (Phased Approach)

Phase Focus Deliverable
1 Foundation Window, input, renderer, basic game loop
2 Core Framework ECS/components, entity factory, save/load
3 RPG Mechanics Inventory, combat, quests, dialogue system
4 UI & Polish HUD, menus, animations, SFX/music, VFX
5 Content & Optimization Level design, balancing, profiling, testing

:warning: Rule of thumb: Prototype each system in isolation before integrating. A working combat loop > a broken inventory+quest+dialogue mess.


:package: CMake Structure Example

# Root CMakeLists.txt
cmake_minimum_required(VERSION 3.16)
project(RPGProject LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)
add_subdirectory(src/engine)
add_subdirectory(src/game)
add_subdirectory(src/entities)
add_subdirectory(src/ui)
add_executable(rpg src/main.cpp)
target_link_libraries(rpg PRIVATE engine game entities ui)

Each src/ subfolder has its own CMakeLists.txt with add_library() and proper include paths.


:prohibited: Common Pitfalls to Avoid

  1. Over-engineering early: Start minimal. Add ECS, scripting, or mod support only when needed.
  2. Tight coupling: Systems should communicate via events/interfaces, not direct calls.
  3. Ignoring memory/performance: Profile early. Use object pools for frequent spawns (bullets, particles).
  4. Hardcoding assets/paths: Always use relative paths + asset manager with fallbacks.
  5. Skipping tests: Even simple unit tests for combat math or inventory logic save weeks of debugging.

:white_check_mark: Next Steps

  1. Initialize Git repo + .gitignore (include build/, *.o, IDE files, LFS if using assets)
  2. Set up CMake with SDL2/SFML + ImGui skeleton
  3. Implement a minimal game loop + window
  4. Build one vertical slice: e.g., move player → pick up item → display in HUD
  5. Iterate outward using the phased roadmap

If you share your team size, target platform (PC/console/mobile), and preferred graphics API (OpenGL/Vulkan/DirectX), I can tailor the structure further or provide starter CMake/config templates.


O prima concluzie

Clar se observa ca este un model mai mare si mai bun pe partea de planificare si gandire

Acum voi scoate modelul afara, si il voi reincarca numai cand voi mai avea nevoie de capabilitatiile extinse de gandire.

Prima incercare

Imi voi incerca norocul in executie cu qwen2.5-coder-7b-instruct
Am pornit serverul din LM Studio, deja pi harness este configurat are pluginul instalat.

Am deschis un terminal in locatia unde voi incepe proiectul si anume ~/Projects/C++/GameDevAI
Am scris pi si dat enter in terminal si apare si agentul

Modelul este incorect, o sa il schimbam.
Scriem comanda /model dam enter

Only showing models from configured providers. Use /login to add providers.

Cautam modelul pe care l-am incarcat, si dam Enter

Modelul acesta nu are reasoning deci nu trebue sa configuram reasoning-ul.
O sa incerc sa ii cer sa creeze structura intitiala

Prima incercare cu agentul cu model mic

Ce am cerut eu, si ce a facut el

Cred ca a halucinat crearea de fisiere

Macar comanda a fost buna


Si fisiserele par sa fie unde trebue

Concluzie pentru pimul Agent

Sunt dezamagit, ma asteptam sa faca ce trebue, nu sa dau eu comanda

A 2-oua incercare cu agentul cu model mediu

Voi sterge folderul si voi incerca modelul mai mare pe care l-am folosit in chat
Vom configura /thinking pe Low

Surpriza

Ii dam aceeasi comanda

Clar diferenta de la cer la pamant, alta viata

Face chiar mai mult decat am cerut


A incercat agentul sa controleze reasoning-ul dar degeaba

2026-09-01 21:28:26 [WARN]

[qwen3.6-35b-a3b] Reasoning setting 'low' is not supported by model 'unsloth/Qwen3.6-35B-A3B-GGUF/Qwen3.6-35B-A3B-UD-Q4_K_S.gguf'. Supported settings: 'on', 'off'. Falling back to reasoning setting 'on'.

Cateva rezultate tehnice de la aceasta rulare:

2026-09-01 21:27:09 [DEBUG]

5.50.646.608 I slot print_timing: id 3 | task 1029 | n_gen = 100, tg = 14.32 t/s, tg_3s = 14.46 t/s

2026-09-01 21:27:12 [DEBUG]

5.53.673.828 I slot print_timing: id 3 | task 1029 | n_gen = 142, tg = 14.18 t/s, tg_3s = 13.87 t/s

2026-09-01 21:27:15 [DEBUG]

5.56.702.978 I slot print_timing: id 3 | task 1029 | n_gen = 185, tg = 14.19 t/s, tg_3s = 14.20 t/s

2026-09-01 21:27:18 [DEBUG]

5.59.747.865 I slot print_timing: id 3 | task 1029 | n_gen = 227, tg = 14.11 t/s, tg_3s = 13.79 t/s

2026-09-01 21:27:21 [DEBUG]

6.02.770.924 I slot print_timing: id 3 | task 1029 | n_gen = 268, tg = 14.02 t/s, tg_3s = 13.56 t/s

2026-09-01 21:27:23 [DEBUG]

6.04.258.703 I slot print_timing: id 3 | task 1029 | prompt eval time = 792.96 ms / 29 tokens ( 27.34 ms per token, 36.57 tokens per second) 6.04.258.708 I slot print_timing: id 3 | task 1029 | eval time = 20526.07 ms / 288 tokens ( 71.52 ms per token, 13.98 tokens per second) 6.04.258.709 I slot print_timing: id 3 | task 1029 | total time = 21319.03 ms / 317 tokens 6.04.258.711 I slot print_timing: id 3 | task 1029 | graphs reused = 1288

2026-09-01 21:27:23 [DEBUG]

6.04.258.936 I slot release: id 3 | task 1029 | stop processing: n_tokens = 3405, truncated = 0

2026-09-01 21:27:23 [INFO]

[qwen3.6-35b-a3b] Finished streaming response

2026-09-01 21:27:30 [DEBUG]

6.12.085.943 I slot print_timing: id 3 | task 1319 | n_gen = 100, tg = 14.07 t/s, tg_3s = 14.22 t/s

2026-09-01 21:27:33 [DEBUG]

6.15.098.600 I slot print_timing: id 3 | task 1319 | n_gen = 141, tg = 13.93 t/s, tg_3s = 13.61 t/s

2026-09-01 21:27:36 [DEBUG]

6.18.124.235 I slot print_timing: id 3 | task 1319 | n_gen = 182, tg = 13.85 t/s, tg_3s = 13.55 t/s

2026-09-01 21:27:40 [DEBUG]

6.21.159.709 I slot print_timing: id 3 | task 1319 | n_gen = 222, tg = 13.72 t/s, tg_3s = 13.18 t/s

2026-09-01 21:27:43 [DEBUG]

6.24.166.914 I slot print_timing: id 3 | task 1319 | n_gen = 260, tg = 13.55 t/s, tg_3s = 12.64 t/s

2026-09-01 21:27:46 [DEBUG]

6.27.211.929 I slot print_timing: id 3 | task 1319 | n_gen = 298, tg = 13.40 t/s, tg_3s = 12.48 t/s

2026-09-01 21:27:49 [DEBUG]

6.30.253.373 I slot print_timing: id 3 | task 1319 | n_gen = 337, tg = 13.33 t/s, tg_3s = 12.82 t/s

2026-09-01 21:27:52 [DEBUG]

6.33.257.755 I slot print_timing: id 3 | task 1319 | n_gen = 375, tg = 13.26 t/s, tg_3s = 12.65 t/s

2026-09-01 21:27:55 [DEBUG]

6.36.263.622 I slot print_timing: id 3 | task 1319 | n_gen = 413, tg = 13.20 t/s, tg_3s = 12.64 t/s

2026-09-01 21:27:58 [DEBUG]

6.39.301.500 I slot print_timing: id 3 | task 1319 | n_gen = 454, tg = 13.23 t/s, tg_3s = 13.50 t/s

2026-09-01 21:28:00 [DEBUG]

6.41.711.499 I slot print_timing: id 3 | task 1319 | prompt eval time = 750.27 ms / 29 tokens ( 25.87 ms per token, 38.65 tokens per second) 6.41.711.503 I slot print_timing: id 3 | task 1319 | eval time = 36660.27 ms / 487 tokens ( 75.43 ms per token, 13.26 tokens per second) 6.41.711.504 I slot print_timing: id 3 | task 1319 | total time = 37410.54 ms / 516 tokens 6.41.711.505 I slot print_timing: id 3 | task 1319 | graphs reused = 1771

2026-09-01 21:28:00 [DEBUG]

6.41.711.674 I slot release: id 3 | task 1319 | stop processing: n_tokens = 3920, truncated = 0

Poza cu fisierele


Si acum sa va arat si cam cat GPU+RAM imi consuma, plus ca merge si pe CPU din cauza ca nu incape modelul pe GPU de 8GB VRAM

A 3-ea incercare pe iGPU AMD Radeon 890M

Mai incercam un task doar ca vom rula totul pe integrata
Schimbam setarile

Esecul complet

Nu vrea, da eroare, incearca sa incarce tot modelul in VRAM-ul shared dintr-o data si da eroare.

Incercam pe CPU sa vedem cat de rau poate sa fie.

A 4-a varianta pe CPU doar (torturarea sistemului de racire)

A inceput sa lucreze pe CPU

Concluzie

Nu a reusit sa temrine a ramas fara context, iam mai dat putin
Si avem si rezultatul de pe CPU, nu am mai avut rabdare am lasat laptopul pe maximum performance de la 4.2Ghz sa dus la 4.9Ghz cu TDP 55W


Si datele tehnice de la prompt

2026-09-01 22:02:42 [INFO]

[qwen3.6-35b-a3b] Running chat completion on conversation with 28 messages.

2026-09-01 22:02:42 [INFO]

[qwen3.6-35b-a3b] Streaming response...

2026-09-01 22:02:43 [DEBUG]

1.43.075.700 I slot get_availabl: id 3 | task -1 | selected slot by LCP similarity, f_sim_best = 0.959 (> 0.100 thold), f_keep = 1.000

2026-09-01 22:02:43 [DEBUG]

1.43.076.774 I slot launch_slot_: id 3 | task 61 | processing task, is_child = 0

2026-09-01 22:02:43 [INFO]

[qwen3.6-35b-a3b] Prompt processing progress: 0.0%

2026-09-01 22:02:45 [INFO]

[qwen3.6-35b-a3b] Prompt processing progress: 98.3%

2026-09-01 22:02:45 [INFO]

[qwen3.6-35b-a3b] Prompt processing progress: 100.0%

2026-09-01 22:02:51 [DEBUG]

1.51.747.271 I slot print_timing: id 3 | task 61 | n_gen = 100, tg = 16.94 t/s, tg_3s = 17.11 t/s

2026-09-01 22:02:54 [DEBUG]

1.54.785.300 I slot print_timing: id 3 | task 61 | n_gen = 151, tg = 16.89 t/s, tg_3s = 16.79 t/s

2026-09-01 22:02:57 [DEBUG]

1.57.799.060 I slot print_timing: id 3 | task 61 | n_gen = 202, tg = 16.90 t/s, tg_3s = 16.92 t/s

2026-09-01 22:03:00 [DEBUG]

2.00.813.291 I slot print_timing: id 3 | task 61 | n_gen = 253, tg = 16.90 t/s, tg_3s = 16.92 t/s

2026-09-01 22:03:03 [DEBUG]

2.03.825.322 I slot print_timing: id 3 | task 61 | n_gen = 304, tg = 16.91 t/s, tg_3s = 16.93 t/s

2026-09-01 22:03:06 [DEBUG]

2.06.871.682 I slot print_timing: id 3 | task 61 | n_gen = 355, tg = 16.88 t/s, tg_3s = 16.74 t/s

2026-09-01 22:03:09 [DEBUG]

2.09.918.842 I slot print_timing: id 3 | task 61 | n_gen = 402, tg = 16.70 t/s, tg_3s = 15.42 t/s

2026-09-01 22:03:12 [DEBUG]

2.12.929.737 I slot print_timing: id 3 | task 61 | n_gen = 452, tg = 16.69 t/s, tg_3s = 16.61 t/s

2026-09-01 22:03:15 [DEBUG]

2.15.970.261 I slot print_timing: id 3 | task 61 | n_gen = 501, tg = 16.63 t/s, tg_3s = 16.12 t/s

2026-09-01 22:03:16 [DEBUG]

2.16.170.380 I slot print_timing: id 3 | task 61 | prompt eval time = 2825.50 ms / 237 tokens ( 11.92 ms per token, 83.88 tokens per second) 2.16.170.388 I slot print_timing: id 3 | task 61 | eval time = 30267.97 ms / 504 tokens ( 60.17 ms per token, 16.62 tokens per second) 2.16.170.389 I slot print_timing: id 3 | task 61 | total time = 33093.46 ms / 741 tokens 2.16.170.392 I slot print_timing: id 3 | task 61 | graphs reused = 554

2026-09-01 22:03:16 [DEBUG]

2.16.170.908 I slot release: id 3 | task 61 | stop processing: n_tokens = 6250, truncated = 0

2026-09-01 22:03:16 [INFO]

[qwen3.6-35b-a3b] Finished streaming response

Va las sa trageti voi concluziile :smile:

Va urma data viitoare :slight_smile:.