Tư vấn chỗ học lập trình game trên C++ online tốt

Chào anh chị ạ, hiện tại em là sv năm 1 đang có mong muốn trở thành nhà lập trình game bằng ngôn ngữ C++ nhưng không biết học từ đâu, rồi làm sao để tạo thành phần mềm nhờ anh chị tư vấn hộ và giới thiệu cho em chổ học lập trình game bằng C++ online tốt ạ. Cảm ơn

năm 1
không biết thớt đã học c++ chưa
đã học các môn cơ sở ngành chưa
đã có kiến thức về game chưa
đã học các môn đi sâu về độ họa, xử lý đồ họa chưa
… đã học n thứ chưa
bụp 1 phát bạn khuyến thớt dùng 1 framework
-> sau này thớt sẽ bèo dạt mây trôi về đâu :grin:

2 Likes

Mình học xong phần cơ sở lập trình rồi, hiện tại đang học kỹ thuật lập trình chưa biết gì về game chưa học đồ họa, mình giờ trong sáng như tờ giấy trắng vậy :v thánh nào rành training mình một buổi đi ạ :))) cảm ơn nhiều

Bạn có thể học từ SFML, sau đó lên Coccos-2dx, cuối cùng là Unreal

SFML bạn nên đọc sách SFML Game Development

Cocos học ở trang chủ:
http://www.cocos2d-x.org/docs/cocos2d-x/en/

Unreal thì học Udemy course


Song song nên học đầy đủ C++



Sau đó bạn tìm hiểu các chức năng thấp hơn, như Vulkan, OpenGL,… Các công thức toán học, giải thuật AI cho game. Các Design Pattern thường dùng.

Chúc bạn học tốt


Kết: Mong phần chém gió mình chính xác

5 Likes

Cảm ơn phần hướng dẫn của bạn mong là sách có vietsub :))))

1 Like
  1. 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#…
  1. 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)…
  2. 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
  3. Học tiếng Anh.
  4. 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.
7 Likes

Cảm ơn lời khuyên của bạn mình đam mê nhất mảng AI bạn còn có thông tin nhiều về mảng đó thì giới thiệu cho mình nha cảm ơn bạn
P/s mặc dù vậy chứ phải làm được 1 game đơn giản trước rồi mới mơ tiếp :joy::joy::joy:

Lục lại được cái learning path mà bạn mình share, hiện đang làm mobile game

6 Likes

Có 2 cách học (phổ biến):

  1. Dùng tools có sẵn, làm 1 game nho nhỏ, kiểu cưỡi ngựa xem hoa để “nếm” tất cả các thành phần trong đó để rút ra kết luận mình thích mảng nào nhất. Ví dụ sau khi xong game chặt mía, bạn thấy thích scripting nhất thì có thể đào sâu vào scripting như mình đã nói ở trên. Tóm lại: làm game nhỏ -> rút ra chuyên môn sẽ theo -> đào sâu chuyên môn đó. Cách này phổ biến, ít nhàm chán, nhưng hiểu không được sâu (tùy người học)
  2. Học sâu chuyên môn ngay từ đầu. Hiểu từ gốc tới ngọn, và có thể làm độc lập ngoài game (như áp dụng pathfinding khi làm app dò tuyến bus chẳng hạn). Nhưng học chay cũng có giá của học chay, có giá ăn phở mới ngon - Hung said

Nếu chọn cách 1, mình có một số libraries C++ bạn có thể tham khảo: SDL2, SFML, Allegro, Godot, Ogre. Tốt nhất là 2 thư viện đầu. Có thể dùng Unreal, Unity, CryEngine hay các tools cấp cao nhưng mình không khuyến khích vì chúng thường tạo thói quen lười và ỷ lại đặc biệt là đối với người mới học.

5 Likes

Thấy nhiều người chê việc dùng engine vì nó gây ỷ lại cho người dùng, ý này vừa đúng lại vừa sai! Chính xác phải là, 1 game dev thông minh sẽ biết cách tự cân bằng mọi thứ, cái gì cần thì sẽ tự đào sâu tìm hiểu, cái gì ko cần thì xài của engine cho nó nhanh! Vì dù sao mục đích cuối cùng cũng là ra game chứ ko phải để show là mình giỏi!

Còn với cách học thụ động thì dùng cái gì cũng thế, kiểu như em có nên học cái này cái kia ko! Dùng framework càng chết vì support của nó ko tốt bằng các engine cao cấp!

Thêm nữa việc xài các framework thì cũng gần giống với dev 1 game engine khác, cho nên thời gian sẽ kéo dài gấp mấy lần việc dùng 1 game engine thông dụng, có thể gây nản nếu như mục đích của em là làm game! Mà thật ra nếu mục đích có là làm engine đi nữa thì cũng đừng xen lẫn nó vào trong làm game, điều này rất nguy hiểm, có thể gây fail cho mục đích học tập ban đầu!

3 Likes

Em thì thiên về sử dụng Engine trước làm được ra game. Sau đó bắt đầu đào sâu. Không chỉ game mà lĩnh vực khác như Web, Mobile, Desktop cũng vậy.

Khi biết Engine, thì bắt đầu mở source code của Engine đọc. Đọc code nhanh hơn nhiều so với cách tự build 1 engine từ scratch.

Vì vậy mà cái learning path em gợi ý có 2 hướng: sử dụng Engine để làm game, học vững C++ để đọc source code.

4 Likes

Mình thích cách học t2 dù nó khó nhưng mình muốn hiểu rõ vậy mới thỏa mãn đối với mình =)) cảm ơn bạn nhiều

Well, em cũng không phủ nhận sự tiện lợi đối với người mới học của game engine, nhưng thớt đang hỏi riêng về C++ programming nên em chỉ trả lời theo đúng hướng thuần túy lập trình và đưa ra công cụ để luyện C++ để hợp với ý muốn học lập trình của bạn ấy. SFML, SDL2, Allegro và những libraries đã đưa ra ở trên đều có sẵn renderer, audio, networking và nhiều thứ khác, có thể viết game ngay, cũng không quá khó khi trong hầu hết mọi trường hợp chỉ cần gọi đúng API.

Và với mục đích chỉ cần học programming và C++ thì những libraries em đưa ra đủ đơn giản và đáp ứng được nhu cầu của bạn này, chỉ cần biết vài khái niệm cơ bản như context, windowing, sprite, rectangle, clipping… này nọ đủ hiểu. UE4 C++ thì ngoài một đống concept về game programming còn phải theo luôn cả cái engine hierarchy của nó mới có thể bắt đầu code được, điều này sẽ dễ gây rối với newbie khi phải ôm đồm quá nhiều khái niệm một lúc.

1 Like

Thì vậy mới cần phải học tiếp, đâu phải dùng 1 engine có sẵn là dễ! :smiley: Making game is hard, don’t make it harder!

4 Likes

Ngành chuyên môn của mình là kỹ thuật lập trình nên không có chuyên về dev game với lại mình mới định hướng là trở thành 1 game dev nên đối với mình mấy cái đó mới hoàn toàn nên khá phân vân không biết bắt đầu từ đâu, mong bạn cho mình thêm nhiều thông tin về engine. Cảm ơn bạn

Con đường để học lập trình game 1 cách bài bản, ko mì ăn liền, hiểu chuyên sâu:
1/ CTDL & GT, chọn ngôn ngữ nào cũng được

2/ 3D Mathematics : books:



3/ Framework/engine:

  • Java : Libgdx, AndEngine
  • C# : Unity
  • C++ : Cocos2d-x, Unreal engine 4 (UDK, Unreal engine 3 dùng Unrealscript, 1 script riêng biệt của UDK), SDL2, SFML
    4/ Chọn chuyên sâu: AI, physic, gameplay programmer, game tool programmer, network programmer. Lưu ý computer graphic ko nằm trong game dev vì nó là bên game engine dev với engine rendering dev!

Học thì học 3D nhưng 2D cũng có thể làm tốt, vì 2D là 3D bỏ đi trục Z thôi!

4 Likes

Anh có cuốn nào về AI không? Trong post trước thì bạn này bảo có hứng thú với AI, em có mấy cuốn mà từ AI thời 2005 nên không dám recommend :sweat_smile:

Game AI learning path:
1/ Newbie:


2/ Intermediate :

3/ New technologies : Game AI Pro, hiện đang ra tới cuốn 3

Tất cả đều dùng C++

2 Likes

Mấy bạn thích C++ thì hi vọng các bạn có thể theo nó tới cùng! Vì khi startup dự án này anh tìm đỏ mắt cũng ko thấy 3D C++ game dev ở đâu cả! :smiley:

1 Like

Phần này e có bổ xung thêm cuốn Game Coding Complete rất hay cho bạn nào muốn tìm hiểu cách build framework.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?