- Có hứng thú với mảng nào trong lập trình game, học mảng đó.
- Thích AI: tìm đọc tài liệu về decision tree, FSM, GOAP, A*, navigation mesh, đọc source code của các game có hệ thống A. I. khá như F. E. A. R., Grand Theft Auto IV, Half-Life 2, Left 4 Dead, papers từ GDC
- Thích rendering: tìm đọc sách về graphics API, graphics pipeline, shaders (shadows, normal mapping, per-pixel lighting), animation, rendering paths (forward, deferred, pre-pass, tile-based), PBR, IBL, tham khảo source code các thư viện như bgfx, Irrlicht, Ogre, vân vân, cũng đọc papers từ GDC, có rất nhiều. Nếu là game 2D thì đọc về 2D rendering.
- Thích system: đọc và viết nhiều để có thể rút ra cách tổ chức, sắp xếp bố trí engine architecture cho phù hợp, thành thạo I/O (i18n, unicode, đọc/viết log file, serialization để save game, platform-independent APIs), multi-threading (720p@60fps với 1 core 1 thread bây giờ là không đủ), resource management, scripting integration, IK, một số pattern thông dụng (command, observer, factory, state, flyweight, memento) và một số pattern nghiêng về game development (component, ECS). Đừng học MVC, nó không giúp ích gì cho làm game cả.
- Thích tools: quen và thành thạo với pipeline để có thể sản xuất tools cho dev, có thể là game editor, asset importer, cái này thì tùy nhu cầu của tools mà ứng biến. Ví dụ như viết tool để import asset thì phải integrate được AssImp, thạo các format (để debug khi bị sai) như collada, fbx, obj, 3ds, x, v…v… hoặc với editor thì tùy nhu cầu game mà xây editor cho phù hợp.
- Thích gameplay scripting: Chơi game để theo dõi hành vi của object, và thạo một scripting language. Ví dụ như cửa mở ra, đóng vào, va chạm giữa người chơi và cánh cửa, inventory system, combat, vehicle, camera controller,… scripting thì có nhiều: js, ts, lua, python, angelscript, squirrel, c#…
- List trên rất sơ sài vì còn tùy vào nhu cầu game mà bạn định làm, có thể thêm bớt một số thứ như networking, procedural generation (nếu muốn)…
- Dù theo đuổi bất cứ nhánh nào thì điều kiện đầu tiên vẫn là đam mê với game. Đam mê làm game ≠ đam mê chơi game
- Học tiếng Anh.
- Nản chưa? Nếu nản rồi thì bạn có thể cân nhắc lại về việc theo đuổi lập trình game.