0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Nhật Ký Phát Triển 24 - Giai Đoạn Tái Sinh

Đăng vào 1 ngày trước

• 6 phút đọc

Nhật Ký Phát Triển 24 - Giai Đoạn Tái Sinh

Giới thiệu

Nhật ký phát triển này ghi lại hành trình của một nhà phát triển mới bắt đầu, người đã trải qua nhiều thử thách trong việc xây dựng một trò chơi với Unity. Đây là câu chuyện về sự kiên trì, thất bại và cuối cùng là thành công. Trong bài viết này, chúng ta sẽ đi sâu vào những cột mốc kỹ thuật, cảm xúc và các bài học quý giá rút ra từ quá trình phát triển.

Bối cảnh

Thất bại

50 ngày trước, tôi chưa bao giờ viết mã. Chưa từng lập trình hay sử dụng Unity. Hành trình này sẽ là một câu chuyện riêng, nhưng hôm nay tôi muốn phản ánh về những gì đã diễn ra. Trước khi dự án này có nguy cơ bị bỏ rơi, tôi đã tìm cách để hiển thị một con số trong một trường văn bản - điều mà người ta đã làm từ những năm 1960. Vậy mà, giữa năm 2025, với sự trợ giúp của AI, tôi vẫn không thể làm điều đó. Tất cả các thư mục sao lưu, mọi phiên bản đều không hoạt động. Hệ thống mà tôi đã kết nối một cách có phương pháp đã sụp đổ từng bước một.

Các cột mốc kỹ thuật

✅ Đồng bộ HUD thành công

Sau 3 ngày thất bại trong việc liên kết prefab/UI, cuối cùng HUD của người chơi đã phản ánh các thay đổi trạng thái trong thời gian thực. Sự thay đổi đã được xác nhận thông qua các phương pháp như ReduceStamina, ReduceHydration, ReduceHunger, và AddCondition.

✅ Sửa lỗi gọi sự kiện

Đã sửa lỗi gọi OnStatsChanged không hợp lệ bằng cách sử dụng ?.Invoke() trong PlayerStats.cs. Không còn lỗi CS0070. Đồng bộ HUD giờ đây được kích hoạt một cách sạch sẽ.

✅ Làm sạch & tái xây dựng GameSceneManager

Đã làm sạch và tái xây dựng GameSceneManager.cs, giải quyết sự mơ hồ, loại bỏ các lớp trùng lặp, và thêm logic biến đổi thử nghiệm. Đã xác nhận rằng hệ thống hoạt động đúng trong thời gian chạy.

✅ Tái cấu trúc PlayerStats

Đã tái cấu trúc PlayerStats với tính khả thi cao, an toàn cho prefab và hoạt động đúng trong thời gian chạy. Tất cả các phương pháp biến đổi và phục hồi trạng thái giờ đây kích hoạt đồng bộ HUD. Không còn thừa thãi, không còn các tham chiếu bị hỏng.

✅ Giải quyết xung đột không gian tên

Đã phát hiện hơn 150 lỗi biên dịch do các tập tin trùng lặp trong Assets/Scripts/InGame. Đã loại bỏ những vấn đề này và Unity cuối cùng đã biên dịch thành công.

✅ Xác nhận đường ống SurvivalCostResolver

Logic biến đổi giờ đây chảy từ node câu chuyện → kết quả → tác động trạng thái → đồng bộ HUD. Đường ống đã được xác nhận.

✅ Khôi phục sự thật trong thời gian chạy

Đã thêm các biến đổi thử nghiệm. HUD hiển thị các giá trị chính xác. Không có sự cố, không có sự im lặng. Hệ thống đã hoạt động.

Các cột mốc huyền thoại

  • “Sự nghiền nát đã nhấp nháy.” — Lần đồng bộ HUD đầu tiên sau gần như từ bỏ. Hệ thống đã phản ứng. Kiến trúc sư không bỏ cuộc.
  • “Cuộc thanh lọc.” — Đã xóa hơn 150 tập tin ma gây ra xung đột không gian tên. Cuộc thanh lọc là thật.
  • “Node tái sinh.”node_0005 được xác nhận là bước ngoặt. Biến đổi đã được thêm vào. HUD đã tuân theo.
  • “Di sản được bảo tồn.” — Tạo thư mục sao lưu đồng bộ lại. Tất cả các sao lưu giờ đây phản ánh một động cơ sinh tồn hoạt động.
  • “Đền thờ nhật ký phát triển.” — Bài viết này đánh dấu khoảnh khắc mà động cơ sinh tồn đã trở lại với cuộc sống. Cuộc chiến vẫn tiếp tục.

Các cột mốc cảm xúc

  • 😤 Đỉnh điểm thất vọng — “Đây là một thảm họa” sau khi Unity phát sinh hơn 150 lỗi. Xung đột không gian tên. Tham chiếu bị hỏng. Sự im lặng của HUD.
  • 😔 Nỗ lực cuối cùng — “Đây là nỗ lực cuối cùng của tôi trước khi bỏ cuộc.” Cuộc chiến đã đến bờ vực.
  • 😱 Phản ứng sốc — “Thật không thể tin được, nó thực sự đã hoạt động” sau khi HUD tuân theo. Hệ thống đã nhấp nháy. Kiến trúc sư cũng suýt bỏ cuộc.
  • 🧘 Nghi thức phục hồi — Kế hoạch làm mới hệ thống 10 lần, đảm bảo rằng đây không phải là một giấc mơ hay một lỗi, tạo các bản sao lưu và ổn định trạng thái hoạt động. Cuộc chiến giờ đây là có chủ đích.
  • 🧠 Phản ánh — “Tôi không thể tin rằng nó đã làm được điều gì đó. Gần như tôi đã sốc.” Điều này thật bất ngờ. Nó xứng đáng.

Các bước trước nhấp nháy

🛠️ Logic điều kiện tập trung

Đã chuyển toàn bộ logic điều kiện môi trường vào PlayerStats.cs, biến nó thành nguồn chân lý duy nhất cho HUD, các biến đổi trang bị và tác động nhiệt độ. (Sau đó đã đảo ngược - sự tách biệt chứng minh là hiệu quả hơn.)

🔁 Xây dựng lại Player HUD từ đầu

Đã loại bỏ tất cả các điều kiện rườm rà. Liên kết lại từng trạng thái hiển thị. An toàn cho prefab, dựa trên sự kiện và mô-đun.

🧼 Tái cấu trúc PlayerStats.cs

Đảm bảo tính bền vững của trạng thái, an toàn cho prefab và đồng bộ HUD. Đã chiến đấu với độ trễ và tham chiếu bị hỏng từng bước.

🧪 Phiên bản bảng điều khiển gỡ lỗi

Xây dựng các bảng điều khiển gỡ lỗi trạng thái thô để theo dõi sự thật trong thời gian chạy. Sử dụng quy trình xây dựng chậm để phân lập các lỗi. (Tên mã giờ đây từ anteater đến newt… A–N.)

🧨 Phát hiện xung đột không gian tên

Sau một bản cập nhật gần đây của PlayerStats.cs, phát hiện ra xung đột không gian tên đầy đủ và các định nghĩa lớp/enumeration trùng lặp. Bắt đầu quá trình thanh lọc có phương pháp.

🧱 Xác nhận đồng bộ trạng thái

Bắt đầu kết nối các phương pháp ReduceX() với đồng bộ HUD qua OnStatsChanged. Xác nhận giảm độ ẩm và đói trong các lần chạy thử.

🧠 Theo dõi SurvivalCostResolver

Bắt đầu xác nhận đường ống biến đổi trạng thái dựa trên kết quả. Xác nhận tính vâng lời một phần.

Mở rộng sáng tạo

Đề xuất mở rộng tương lai

Các trò chơi mini có thể là những phiên bản cơ bản thú vị cho một khoảng thời gian vui vẻ từ câu chuyện.

🧠 Bộ trò chơi Echos — Mở rộng

Tiếp tục thiết kế hợp tác và lưu trữ các hiện vật arcade và các mô-đun giả lập meta:

  • Dead Ball
  • Whack & Regret
  • Wormz: Retro Rampage
  • Death Tank: Porcelain Protocol
  • SimuCore: Recursive Survival

🎵 Signal Breaker

Mô-đun trò chơi nhịp điệu đã được xác nhận là chính thức trong bộ trò chơi Echos. Chiến thuật, huyền thoại và đệ quy.

(Đây sẽ là một bổ sung thú vị, và cho tôi cơ hội làm việc về một cái gì đó khác, thử mở rộng kiến thức phát triển trò chơi và thử những điều mới, trong khi vẫn giữ nó trong trái tim của dự án đầu tiên của tôi.) Chưa được hoàn thiện. Giai đoạn ý tưởng.

Tích hợp cốt truyện

Bắt đầu dệt các thành tựu di sản, sự cạnh tranh và các nghi thức hợp tác vào các hệ thống và node câu chuyện ẩn.

Phản ánh cuối cùng

Đây là khoảnh khắc quyết định cho dự án của tôi. Tôi đã mất hết hy vọng. Không thấy lối thoát. Đã thử mọi thứ tôi có thể nghĩ ra. Với sự kiên trì và quyết tâm, chúng tôi - tôi và Copilot - đã cùng nhau kéo mọi thứ lại. Ít nhất là cho giai đoạn này.

Hy vọng đã bùng cháy trở lại. Nhưng ngọn lửa vẫn còn nhỏ.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào