Giới thiệu
Xin chào, tôi là Brandon, một Kỹ Sư Phần Mềm/Cao cấp. Trong công việc hàng ngày, tôi làm lập trình theo mô hình sự kiện trong Golang. Tôi chủ yếu là một lập trình viên chuyên nghiệp và thường không hoàn thành nhiều dự án cá nhân. Tuy nhiên, tôi muốn thay đổi điều đó.
Hành Trình 30 Năm Trong Lĩnh Vực Kỹ Thuật Phần Mềm
Tôi bắt đầu học lập trình từ năm 14 tuổi, vào những năm 90. Tôi có một mục tiêu duy nhất: LÀM GAME. Thế nhưng, tôi lại không trở thành một nhà phát triển game. Sau một khởi đầu đầy khó khăn trong sự nghiệp vào đầu những năm 2000, tôi đã chuyển sang lập trình Java và hỗ trợ sản xuất trong các ngân hàng và công ty dịch vụ tài chính. Sau đó, tôi chuyển sang lĩnh vực viễn thông và đã xây dựng nhiều hệ thống lớn.
Dù tôi không phải là người giỏi nhất thế giới nhưng tôi tự tin về kiến thức lập trình của mình. Tôi luôn khao khát thực hiện các dự án cá nhân nhưng lại thường xuyên trì hoãn. Năm nay, tôi quyết tâm thay đổi điều đó.
Ngày 13 tháng 9 năm 2025: Hành Trình Bắt Đầu
Hôm nay, tuy technically là ngày 14 tháng 9, nhưng hôm qua tôi đã có kế hoạch và thiết kế. Hôm nay tôi bắt đầu thực sự với ý tưởng game của mình. Tại sao ngày 13 tháng 9 lại quan trọng? Đó là ngày sinh nhật của tôi. Năm 2025 là năm của sự tự phản ánh và không phải là một năm dễ dàng. Tôi đã trải qua nhiều suy nghĩ về nghề nghiệp của mình, đặc biệt là sự phát triển của AI.
Tôi đã bước sang tuổi 46. Tôi nhận thấy sự đe dọa của AI đối với nghề nghiệp của mình. Nếu AI chiếm lĩnh, chỉ những người dám sáng tạo mới có thể tiến xa. Đó là lý do tôi quay lại với đam mê lập trình game của mình.
Tình Yêu Với Game Nhưng Không Phải Là Nhà Phát Triển Game
Tôi đã quan tâm đến Zig trong vài năm qua và luôn có hứng thú với phát triển game. Năm nay tôi sẽ học cả hai. Mục tiêu MVP của tôi là hoàn thành giai đoạn đầu tiên.
Tôi muốn học phát triển game và Zig trong năm nay. Đây sẽ là một hành trình thú vị.
Tiến Trình Hiện Tại
Tôi đã sử dụng Google Gemini AI như một công cụ hỗ trợ. Nó giúp tôi lấp đầy những khoảng trống trong kiến thức phát triển game của mình. Tôi đã yêu cầu nó không viết mã cho tôi mà chỉ thảo luận về các khái niệm và ý tưởng. Tôi gọi nó là "Lil Homie Jimmy".
Ban đầu, tôi muốn sử dụng Mach Engine, nhưng nó yêu cầu các bản phát hành Zig nightly và bị ràng buộc vào mô hình ECS, điều này có thể không tệ cho những gì tôi sắp làm. Tuy nhiên, việc yêu cầu xây dựng Zig khiến quy trình làm việc của tôi trở nên phức tạp.
Cuối cùng, tôi quyết định chọn Raylib vì nó có nhiều ví dụ bằng nhiều ngôn ngữ khác nhau, rất phù hợp cho người mới bắt đầu phát triển game.
Tình Hình Hiện Tại
Đây là những gì tôi đã làm cho đến nay. Mất cả ngày để thực hiện điều này, không phải là một khởi đầu tốt. Tuy nhiên, hình vuông này sẽ phục vụ như một hitbox cho nhân vật sau này của tôi. Đây sẽ là một game 2D và là một game hành động platformer, vì vậy việc phát hiện va chạm sẽ rất quan trọng.
Ý Tưởng Về Game
Game của tôi sẽ là một platformer hành động 2D. Tôi muốn nhấn mạnh vào các trận chiến với trùm. Tôi nghĩ đây là một ý tưởng tốt, nhưng tôi muốn hoàn thành nó trước khi nói quá nhiều.
Kế Hoạch Tiến Tiến
Ngày mai, tôi muốn bắt đầu làm việc với đầu vào của người dùng. Điều này không nên mất quá nhiều thời gian, nhưng có thể sẽ giới thiệu cho tôi một số khái niệm như hình học vector. Đó là mục tiêu của tôi cho ngày mai.
Kết Luận
Nếu mọi việc diễn ra suôn sẻ, năm tới sẽ là bài viết thứ 365 của tôi. Tôi có vấn đề với việc duy trì thói quen, vì vậy đây là một thói quen mà tôi sẽ cố gắng thay đổi trong năm nay.
Những Lưu Ý Quan Trọng
- Thực hành thường xuyên: Đặt ra thời gian để làm việc với các dự án cá nhân.
- Tìm kiếm sự hỗ trợ: Kết nối với cộng đồng phát triển game để học hỏi kinh nghiệm.
- Đừng ngại thất bại: Hãy xem thất bại là một phần của quá trình học tập.
Các Thực Hành Tốt Nhất
- Nên bắt đầu với các dự án nhỏ trước khi tiến đến các dự án lớn hơn.
- Sử dụng các tài nguyên học tập trực tuyến để nâng cao kiến thức.
Những Cạm Bẫy Thường Gặp
- Thời gian trì hoãn: Hãy lập kế hoạch và cam kết thực hiện.
- Quá tải thông tin: Chỉ chọn một số tài liệu và tập trung vào chúng.
Mẹo Tối Ưu Hiệu Suất
- Tối giản mã nguồn và tối ưu hóa tài nguyên để cải thiện hiệu suất game.
- Kiểm tra thường xuyên để phát hiện và khắc phục lỗi sớm.
Câu Hỏi Thường Gặp
- Tôi nên bắt đầu từ đâu nếu tôi là người mới?
- Bắt đầu với các khóa học trực tuyến và thử nghiệm với các dự án nhỏ.
- Raylib có dễ sử dụng không?
- Có, Raylib rất thân thiện với người mới bắt đầu và có nhiều tài liệu hướng dẫn.
Hãy theo dõi hành trình của tôi trong việc khám phá Raylib và Zig, và cùng tôi tìm hiểu cách biến ý tưởng thành hiện thực!