Trang 1 / 2 12 LastLast
Hiển thị kết quả từ 1 đến 10 / 11
  1. #1
    Tham gia
    12-04-2008
    Bài viết
    87
    Like
    1
    Thanked 3 Times in 3 Posts

    Có bác nào học lập trình game chưa, em hỏi tý?

    Em thấy nghề này hot hot, mấy công ty tuyển nhiều, em cũng thích chơi game nữa. Em tính học, các bác nào học rùi cho em hỏi học cái này thì cần những điều kiện gì, nếu học thì học ở đâu là ok nhất.
    Em cám ơn trước ạ.
    Quote Quote

  2. Thành viên Like bài viết này:


  3. #2
    Tham gia
    26-06-2007
    Bài viết
    275
    Like
    2
    Thanked 40 Times in 33 Posts
    Câu hỏi hay, trúng cái mình chuyên làm nên cũng xin tư vấn thế này;
    1) Đầu tiên: Bạn phải giỏi 1 trong các ngôn ngữ lập trình phổ biến sau: c++, c#, java. Đặc biệt phải có kỹ năng lập trình OOP điêu luyện với 1 trong các NN này.
    2) Tiếp theo, học thêm một số kiến thức bổ trợ
    2.1) Xử lý đồ họa và hoạt hình căn bản; thực ra chỉ cần biết cách biểu diễn ảnh/đối tượng, đổi trục, tọa độ, di chuyển và họa màu...; chỉ cần biết và đọc hiểu, ko cần siêu đến mức tự nghĩ ra cái mới.
    2.2) Một chút kiến thức về âm thanh (ko thực cần lắm)
    2.3) Lập trình mạng; cũng chỉ cần hiểu giao thức truyền thông (network protocols) là đủ.
    2.4) Trí tuệ nhân tạo (artificial intelligence): Thực ra chỉ cần khi bạn phái làm game có option cho máy chơi với người hoặc game có mức độ khó thông minh, đa dạng. Còn game có kịch bản cố định thì ko cần. Yêu cầu chỉ là những thuật toán tối ưu xấp xỉ hoặc sử dụng cs tri thức, heuristics căn bản. Như vậy ko cần lao đầu vào machine learning và data mining, những cái đó cũng sẽ cần, nhưng mãi khi nào bạn muốn cái machine player của bạn càng chơi với người thì nó càng "mưu mô" hơn.
    3) Sau đó, làm quen với game engines (GE)
    Mỗi game engine chỉ phát triển cho 1 NN cụ thể (có thể 1 platform cụ thể). Sau bước 1) bạn đã biết bạn thực sự giỏi nhât NN nào, vậy hãy chọn GE của NN đó. Tuy nhiên, java có vẻ có lợi thế hiện nay vì chạy được nhiều platforms. Tôi cũng cảm thấy java GE có tốc độ tốt hơn C# GE, có lẽ bytecode tốt hơn mid-script, nhưng cả 2 khó bì với C++ GE. Tuy nhiên JVM là sát thủ bộ nhớ; chỉ cần chạy minecraft sẽ thấy 2G ram chẳng là gì cả.
    Tại sao cần biết GE? đó là vì nó sẽ giúp bạn mọi thứ ở mục 2.1, 2.2 và 2.3; giá trị nhất là render engine và collision engine, tất nhiên networking và media engines trong hầu hết các GE thực sự rất cần thiết.
    4) Xây dựng kịch bản và phát triển game software; bây giờ bạn đã có đủ những thứ cần thiết. Đầu tiên bạn có thể "mượn" kịch bản của 1 vài games nổi tiếng. Nhưng sẽ có lúc bạn cần xây dựng kịch bản games của bạn.
    Điều thú vị và cốt lõi nhất của lập trình games là thực thi kịch bản, tất nhiên ko phải ở chổ render hay collision chí chóe đì đùng, cái này cũng có nhưng mà lúc mới làm thôi Thú vị nhất là "đồng bộ", đặc biệt là "đồng bộ" qua mạng máy tính; nó đòi hỏi người lập trình có kỹ thuật lập trình song song với óc tổ chức và tư duy trừu tượng rất cao, nhiều LTV rất yếu điều này, tích hợp thêm yêu cầu sử dụng AI, nó cần bạn phải thiết kế những thuật toán tối ưu thời gian thực. Đó là những cái thú vị làm đê mê nhất chứ ko phải vì game developers có lương bằng 10 desktopings hay 30 lần web developers.
    Để có những thứ 2), 3) và 4), tôi không nghĩ bất kỳ trung tâm tin học nào ở VN có thể làm được, vì muốn thế, người dạy phải từng tham gia 1 team làm games, khi đó ko có mức lương/học phí như hiện nay đc.
    Tôi cũng có nhiều kinh nghiệm với game programming, hy vọng sẽ có dịp chia sẽ cùng mọi người.

  4. 2 thành viên Like bài viết này:


  5. #3
    Tham gia
    18-02-2010
    Bài viết
    57
    Like
    0
    Thanked 0 Times in 0 Posts
    Cũng đang ngâm cứu, thanks bạn nhé !

  6. #4
    Tham gia
    23-08-2011
    Bài viết
    7
    Like
    2
    Thanked 2 Times in 1 Post
    đọc bài của anh Ebookfinder thiệt là gãi đúng chỗ ngứa mờ, thx kiu anh nhìu nhá !!!!!!!!!!!!

    cái Game Developer em chỉ thấy mới có bên NIIT có thôi anh ạ, anh qua xem chương trình dạy của nó thế nào, hình như học có 2 năm ah. Theo em đc biết thì ngành này trên thế giới hot lâu rùi á, VN mình mới dạo mấy năm gần đây thôi nên anh cứ học đi, 2 năm sau ra trường, tha hồ mà hốt bạc + thỏa mãn cái đam mê

  7. #5
    Tham gia
    10-09-2011
    Location
    Q11
    Bài viết
    56
    Like
    4
    Thanked 4 Times in 4 Posts
    ebookfinder - cảm ơn thông tin của bạn đã cung cấp mình cũng đang tìm hiểu

  8. #6
    Tham gia
    12-04-2008
    Bài viết
    87
    Like
    1
    Thanked 3 Times in 3 Posts
    Quote Được gửi bởi ebookfinder View Post
    Câu hỏi hay, trúng cái mình chuyên làm nên cũng xin tư vấn thế này;
    1) Đầu tiên: Bạn phải giỏi 1 trong các ngôn ngữ lập trình phổ biến sau: c++, c#, java. Đặc biệt phải có kỹ năng lập trình OOP điêu luyện với 1 trong các NN này.
    2) Tiếp theo, học thêm một số kiến thức bổ trợ
    2.1) Xử lý đồ họa và hoạt hình căn bản; thực ra chỉ cần biết cách biểu diễn ảnh/đối tượng, đổi trục, tọa độ, di chuyển và họa màu...; chỉ cần biết và đọc hiểu, ko cần siêu đến mức tự nghĩ ra cái mới.
    2.2) Một chút kiến thức về âm thanh (ko thực cần lắm)
    2.3) Lập trình mạng; cũng chỉ cần hiểu giao thức truyền thông (network protocols) là đủ.
    2.4) Trí tuệ nhân tạo (artificial intelligence): Thực ra chỉ cần khi bạn phái làm game có option cho máy chơi với người hoặc game có mức độ khó thông minh, đa dạng. Còn game có kịch bản cố định thì ko cần. Yêu cầu chỉ là những thuật toán tối ưu xấp xỉ hoặc sử dụng cs tri thức, heuristics căn bản. Như vậy ko cần lao đầu vào machine learning và data mining, những cái đó cũng sẽ cần, nhưng mãi khi nào bạn muốn cái machine player của bạn càng chơi với người thì nó càng "mưu mô" hơn.
    3) Sau đó, làm quen với game engines (GE)
    Mỗi game engine chỉ phát triển cho 1 NN cụ thể (có thể 1 platform cụ thể). Sau bước 1) bạn đã biết bạn thực sự giỏi nhât NN nào, vậy hãy chọn GE của NN đó. Tuy nhiên, java có vẻ có lợi thế hiện nay vì chạy được nhiều platforms. Tôi cũng cảm thấy java GE có tốc độ tốt hơn C# GE, có lẽ bytecode tốt hơn mid-script, nhưng cả 2 khó bì với C++ GE. Tuy nhiên JVM là sát thủ bộ nhớ; chỉ cần chạy minecraft sẽ thấy 2G ram chẳng là gì cả.
    Tại sao cần biết GE? đó là vì nó sẽ giúp bạn mọi thứ ở mục 2.1, 2.2 và 2.3; giá trị nhất là render engine và collision engine, tất nhiên networking và media engines trong hầu hết các GE thực sự rất cần thiết.
    4) Xây dựng kịch bản và phát triển game software; bây giờ bạn đã có đủ những thứ cần thiết. Đầu tiên bạn có thể "mượn" kịch bản của 1 vài games nổi tiếng. Nhưng sẽ có lúc bạn cần xây dựng kịch bản games của bạn.
    Điều thú vị và cốt lõi nhất của lập trình games là thực thi kịch bản, tất nhiên ko phải ở chổ render hay collision chí chóe đì đùng, cái này cũng có nhưng mà lúc mới làm thôi Thú vị nhất là "đồng bộ", đặc biệt là "đồng bộ" qua mạng máy tính; nó đòi hỏi người lập trình có kỹ thuật lập trình song song với óc tổ chức và tư duy trừu tượng rất cao, nhiều LTV rất yếu điều này, tích hợp thêm yêu cầu sử dụng AI, nó cần bạn phải thiết kế những thuật toán tối ưu thời gian thực. Đó là những cái thú vị làm đê mê nhất chứ ko phải vì game developers có lương bằng 10 desktopings hay 30 lần web developers.
    Để có những thứ 2), 3) và 4), tôi không nghĩ bất kỳ trung tâm tin học nào ở VN có thể làm được, vì muốn thế, người dạy phải từng tham gia 1 team làm games, khi đó ko có mức lương/học phí như hiện nay đc.
    Tôi cũng có nhiều kinh nghiệm với game programming, hy vọng sẽ có dịp chia sẽ cùng mọi người.
    Cám ơn bạn đã chia sẻ, nhờ bạn mà mình biết những thứ cần phải học. Bạn có thể chia sẻ trung tâm hoặc team nào mà bạn cho rằng mình có thể học được không?

  9. #7
    Tham gia
    26-06-2007
    Bài viết
    275
    Like
    2
    Thanked 40 Times in 33 Posts
    Thực sự là tôi ko biết gì về các team phát triển game ở VN; có thể họ đã sang Nhật làm việc. Rất nhiều cty Nhật tìm game developers ở VN và trả lương rât cao, chắc là cao nhất TG. Cách đây 2-3 năm, tôi biết 1 cty đã thâu nạp khoảng 4 cao thủ người Việt, những người như thế mà về VN thì chắc kinh khủng lắm. Bạn thử tham khảo NIIT do lenguyencat gợi ý, có thể giúp ích cho bạn.

  10. #8
    Tham gia
    17-04-2012
    Bài viết
    63
    Like
    10
    Thanked 1 Time in 1 Post
    cho mình hỏi chút, ngoài C++, C#, Java ra thì còn ngôn ngữ nào có thể viết game ko?

  11. #9
    Tham gia
    18-05-2012
    Bài viết
    55
    Like
    14
    Thanked 9 Times in 8 Posts
    Con đường làm game là một con đường thú vị nhưng không phải là được trải bằng hoa hồng vì nó cần rất nhiều kiến thức, sự trải nghiệm và niềm đam mê.

    Để bắt đầu với ngành game, mình xin trích một số thảo luận về khởi đầu nghiệp game tại diễn đàn vietgamedev (dot net nha bạn vì mình mới nên không có cho post link)

    Hi bạn, cám ơn bạn đã bỏ thời gian tham gia Cộng đồng phát triển Game Việt. Câu hỏi bạn đặt ra thật ra cũng là 1 câu hỏi mình tự đặt cho chính mình cách đây 2 năm. Lúc ấy mình sắp tốt nghiệp đại học, cũng đang rất phân vân không biết nên đi theo đường nào: học tiếp cao học hay là đi làm. Không biết trời xui đất khiến hay sao mình chọn đi làm, với ý nghĩ là "đi 1 ngày đàng, học 1 sàng khôn", và cũng không biết may mắn hay là số phận mà mình lại đầu quân 1 công ty Game, cuối cùng là đi đến bây giờ. Theo những gì mình đã trải qua, mình xin góp ý cho bạn thế này:
    - Nếu bạn vẫn chưa thật sự trải qua 1 khóa học hay 1 chương trình đào tạo nào (kể cả tự học hay đi học ở 1 trung tâm), thì bạn nên đi học 1 khóa, dù ngắn hạn hay dài hạn đều được. Mục đích của khóa học không phải là để nâng cao kỹ năng lập trình, hay là học 1 ngôn ngữ lập trình nào đó, mà là để nâng cao khả năng tư duy, nhận xét đối tượng lập trình của bạn. Những kiến thức này rất khó để bạn có thể học được trong thực tiễn, đặc biệt là khi bạn đang phải gấp rút hoàn thiện sản phẩm để giao hàng cho kịp thời hạn.
    - Nếu bạn đã có cơ bản (kỹ năng lập trình, lý thuyết cấu trúc dữ liệu,...), thì bạn nên chọn đi làm ở 1 công ty Game, tham gia vào nhóm "sản xuất Game" (Creation Team). Khi 1 công ty chuyên về sản xuất 1 lĩnh vực nào đó, tự thân công ty đó sẽ chuyên môn hóa và công nghiệp hóa phương thức sản xuất của họ. Khi bạn tham gia vào quá trình sản xuất thực tiễn, bạn sẽ thấy được muôn vàng khó khăn, rất nhiều vấn đề mà khi bạn tự tu luyện sẽ không bao giờ gặp phải như: làm việc nhóm, xây dựng công cụ, xây dựng cấu trúc, thiết lập process,...

    Tất nhiên là khả năng tự học của mỗi người sẽ khác nhau, nhưng thay vì học và tái sử dụng những kết tinh của người đi trước mà mình bỏ công mày mò những gì họ đã làm được cách đây chục năm thì thật sự không đáng, phải không? Đây chỉ là ý kiến của cá nhân mình thôi. .

    Chúc bạn thành công trên con đường bạn đã chọn.
    Thân
    Mình không phải là người giỏi trong ngành này nhưng cũng là người đang theo đuổi và có vài năm làm việc trong công ty làm game nên mình chỉ muốn chia sẻ thêm một số điều như sau:
    1. Con đường gamedev không hề trơn tru, bằng phẳng và ngắn hạn. Nếu bạn xác định làm game để chơi hoặc khoe bạn khoe bè thì lên cộng đồng vietgamedev tập tành làm theo những tutorial trên này là đủ rồi.

    2. Còn nếu bạn chọn Game là sự nghiệp, mục tiêu nghiêm túc là kiếm tiền và sống với nó thì bạn bắt tay ngay vào tìm hiểu và chọn ngay lĩnh vực mà bạn phù hợp nhất, các lĩnh vực (nghề) chính trong ngành game: Lập trình, Thiết kế (designer), họa sỹ (Artist), Quản lý dự án (producer), hoặc QA (tester). Như bạn nói, biển học là vô biên, mỗi ngành nghề trong danh sách này bạn theo cả đời cũng chưa đến đích nên bạn chọn một cái trước thôi ha, nếu trong quá trình đi thấy không phù hợp thì chuyển đổi cũng không muộn nhưng đừng chuyển nhiều quá rốt cuộc không được gì.

    3. Nếu bạn chọn programmer (phổ biến và dễ nhất với đa phần sinh viên CNTT hiện nay) thì bạn chọn một ngôn ngữ cho mình trước (C++ hoặc Javascript cho HTML5 hoặc ngôn ngữ bạn thích) sau đó là kiến thức rất nền tảng như cấu trúc dữ liệu, thuật toán, có thể chán lúc đầu như nó kiến thức bắt buộc của programmer. Nếu bạn đang học đại học CNTT như Tự Nhiên, BK, SPKT,CNTT,... thì bạn yên tâm họ có dạy ha, chỉ cần bạn chịu học là được. Ngoài ra còn có một số kiến thức khác như Đồ họa máy tính (computer graphics) rất cần cho game, xử lý tối ưu (game luôn cần chạy nhanh), kiến thức về hệ điều hành, hệ thống,... Mấy cái thêm này bạn có thể tự học, nếu có điều kiện thì cứ đăng ký trung tâm nhưng theo mình thấy các trung tâm hiện nay chưa có TT nào đào tạo về Game đầy đủ .

    Programmer có thể chuyển sang Designer hoặc Producer.

    4. Nếu bạn chọn Designer thì bạn nên là QA trước, QA là một người kiểm định chất lượng game (tên khác là tester), là người đam mê game, chơi rất nhiều thể loại game, và có cái nhìn chi tiết để bắt lỗi, cái nhìn tinh tế để phân tích ưu khuyết của một game và gợi ý những thay đổi hợp lý để nâng cao độ hấp dẫn cho game và gần với user hơn. Nếu tiến lên QA chuyên nghiệp có thể là người đánh giá chất lượng và mức đón nhận của game thủ trong giai đoạn phát triển game và trước khi release game để giúp công ty tiên liệu được mức độ thành công của game để quyết định đi tiếp hay ngừng sản xuất. Chú ý là QA ở mức này ở VN hơi hiếm, vì đơn giản QA ở VN đang bị coi nhẹ .

    QA có thể chuyển trực tiếp sang Designer, hoặc Producer (hoặc pro nếu bạn thích).

    5. Designer là người có cái nhìn rất bao quát về các thể loại game, có khả năng sáng tạo và phân tích tốt. Khả năng trình bày ý tưởng, có tầm nhìn tốt, thực tế (designer rất hay mơ mộng cao siêu) và kiên định với đứa con tinh thần của mình (kiên định khác với cố chấp ha ). Designer là người đem lại linh hồn cho game, game hay hay dở đều do anh này quyết định đầu tiên .

    Designer có thể chuyển qua Producer (hoặc Pro nếu thích)

    6. Tin buồn là Artist không phải ai muốn theo cũng được, vì đòi hỏi phải có năng khiếu vẽ (vẽ giấy trước ha), nên cái này không thể tự do chọn lựa . Artist là người đảm bảo sức sống cho game, người biến ý tưởng của design thành cái hữu hình, thấy được. Game có thể ý tưởng hay mà vẽ xấu thì cũng mất đi tính hấp dẫn ngược lại nếu ý tưởng cũ nhưng đồ họa đẹp thì vẫn có khả năng thành công. Artist phải qua trường lớp đào tạo, tự học cũng được nhưng mất rất nhiều thời gian .

    Artist có thể chuyển lên Producer, designer (nếu thích). Nhưng mình chưa thấy artist nào chuyển đổi nghề của mình cả, vì mình nghĩ để làm được Artist thì phải có đam mê và không ai từ bỏ đam mê dễ dàng vậy đâu .

    7. Producer, khỏi nói nhiều về anh này ha, là người chịu trách nhiệm cao nhất về game. Game hay, dở, đồ họa xấu, bug,... đều là do anh này cả. Producer cũng là người liên kết các bộ phận kia lại thành một khối và hướng họ về một hướng. Producer đòi hỏi kỹ năng mềm nhiều, như kỹ năng giao tiếp, quản lý, lãnh đạo, xử lý xung đột, đàm phán,... Mấy cái này hiện ở VN dạy khá nhiều, chỉ có điều tìm trường hoặc trung tâm chất lượng hơi khó và hơi mắc xiền .

    Producer thì hình như là đích đến của nhiều người, nhiều bộ phận khác nên chả ai muốn chuyển nghề đâu, có thể chuyển lên làm Manager thì hợp lý hơn. Producer mà có thêm kiến thức về lập trình thì tuyệt vời.

    Tóm lại: Mình xuất thân từ programmer, những miêu tả trên chỉ mang tính tham khảo, có thể chưa chính xác hoàn toàn nhưng nó sẽ giúp bạn định hình những điều cơ bản và cái bạn cần.

    Và cuối cùng, có điều kiện thì đăng ký học ở trung tâm hoặc trường ĐH nhưng tự học vẫn là điều kiện cần để bạn thành công trong ngành công nghiệp game. Tập tành làm game đơn giản đến phức tạp kết hợp với nhiều người khác,một mình bạn rất khó để làm được game kiếm tiền nhiều (ngoại trừ bạn là một người cực kỳ xuất sắc ). Nếu bạn muốn học hỏi nhanh và chưa có định hướng cụ thể thì nên đi làm một thời gian (ít nhất 2 năm) sẽ giúp bạn tiếp xúc với thực tế và lựa chọn của bạn sẽ phù hợp nhất.

    Chúc bạn có được sự lựa chọn tốt nhất cho mình.
    Và còn nhiều chia sẻ thú vị khác nữa, nếu bạn thật đam mê thử thách với ngành game, hãy bắt đầu bằng việc tìm hiểu và trao đổi với những người đã có kinh nghiệm trong ngành game trong diễn đàn vietgamedev

    Thân.

  12. #10
    Tham gia
    17-04-2012
    Bài viết
    12
    Like
    1
    Thanked 2 Times in 1 Post
    thật ra bất cứ ngôn ngữ nào cũng có thể viết game, chỉ có thích hợp và không thích hợp thôi. Nếu muốn viết những game flash đơn giản, bạn có thể xài action script. nếu nắm vững c++ bạn có thể học bất cứ ngôn ngữ cấp cao nào khác. Mà tại sao bạn không dùng c++ chứ. Hầu hết các engine đều dùng c++ đó

Trang 1 / 2 12 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •