Chào mọi người, trường em sắp cho 1 dự án tầm trung liên quan đến lập trình game bằng C++ và em thì chưa biết nên chuẩn bị những kiến thức gì và chưa biết code game gì, mọi người cho em ý tưởng với ạ.
Kiến thức cần có để lập trình game trên c++
Trước hết bạn nên chọn một game engine phù hợp với quy mô của dự án. Nếu là dự án tầm trung, mình nghĩ cocos2d-x cũng là một lựa chọn hợp lý, nó có khá nhiều video và tài liệu hướng dẫn cho người mới bắt đầu. Hoặc bất kỳ game engine nào bạn thích: https://en.wikipedia.org/wiki/List_of_game_engines
Tiếp theo là lên ý tưởng cho game: cốt chuyện, nhân vật chính (main character) có khả năng gì, trở ngại (obstables) gồm những gì, …
Không kém phần quan trọng là tìm assets cho game. Mới bắt đầu làm game thường thì sẽ kiếm những file hình ảnh, background, âm thanh, animation, … sẵn trên mạng để ráp vào chứ chưa cần đến team GUI/artist.
Sau khi đã có những thứ ở trên rồi thì bắt đầu code và fix bug thôi.
Còn về kiến thức, mình nghĩ chỉ cần biết C++, một vài thuật toán cơ bản, và lập trình hướng đối tượng (OOP) là đủ.
Làm game trên bất kỳ ngôn ngữ nào cũng vậy, luôn cần:
- Thấu hiểu ngôn ngữ + OOP
- CTDL & GT, toán ma trận, tích phân, vi phân
- Kiến thức về game engine đó (Unity, UE4…)
Cái thứ 1, nếu bạn ko hiểu về ngôn ngữ thì lên game engine lại càng khó. Vì kể cả UE4 dùng C++ thì C++ trong UE4 cũng là high-level C++, nó sẽ rất khác với những gì bạn học được. Còn OOP thì ko cần phải bàn, nó là nền tảng để học về ECS (Entity Component System) được áp dụng trong các game engine sau này.
Cái thứ 2 và 3, là kiến thức để làm game, AI. Ma trận, tích phân, vi phân là cơ sở để học shader, vật lý…
Anh thấy có rất nhiều bạn học hở chút là hỏi tại sao cái này lỗi, cái này để làm gì? Đó là vì nền tảng các bạn ko được vững chắc. Nếu nền tảng các bạn vững, các bạn sẽ ít nhất là hiểu được 1 phần nên sẽ tự search được cách giải quyết. Và cái gì cũng vậy, tự giải quyết được thì sẽ nhớ lâu hơn
Dạ em cảm ơn anh ạ !