Một cuốn sách tốt để bắt đầu lập trình một trò chơi 2D C ++ là gì? [đóng cửa]


8

Tôi có bằng Khoa học Máy tính và khi còn học đại học, tôi đã tạo ra một trò chơi 2D đơn giản trong Game Maker. Tôi muốn tạo lại trò chơi này trong C ++ khi bắt đầu học cách tạo trò chơi trong C ++. Điều gì sẽ là một cuốn sách hay để bắt đầu trò chơi lập trình trong C ++ cho một người có một chút kinh nghiệm về C ++ (Các lớp CS chính của tôi được dạy bằng Java và tôi có một lớp trong C ++ để học cú pháp) và biết các khái niệm đằng sau các đối tượng, phương pháp, kế thừa, vv?

Đây sẽ là một sở thích của tôi trong khi tôi tích lũy kinh nghiệm cho đến khi một ngày nào đó tôi có thể làm việc trong ngành công nghiệp trò chơi Vide.


Nếu bạn cần động lực (và bạn đã có thời gian), bạn có thể muốn tham gia pyweek hoặc một trong những cuộc thi pygame
bobobobo

Câu trả lời:


8

Nhìn thấy như bạn đang sử dụng Trình tạo trò chơi, tôi giả sử bạn đang ở trên Windows, vì vậy hãy nhảy vào phần cuối sâu với SDK x trực tiếp. Các mẫu cung cấp mã nguồn, và cũng cung cấp cho bạn một hương vị của sức mạnh có sẵn cho bạn. Chỉ vì bạn muốn làm một trò chơi 2D không có nghĩa là bạn nên gắn bó với thư viện 2D, đôi khi bạn có thể muốn làm một cái gì đó mà thư viện không tự thực hiện (đổ bóng hoặc xoay hoặc một cái gì đó ngẫu nhiên mà bạn chỉ cần CẦN cho dự án của bạn).

SDL - và có lẽ là SFML và Cinder - cung cấp một cách tiếp cận "có những điều cơ bản" để trở thành một công cụ ở mức độ cao , do đó bạn sẽ có tất cả sức mạnh để làm điều đó từ đầu (vì vậy bạn có thể có các pixel shader trong SDL), nhưng bạn sẽ không học được cách mọi thứ đã được thực hiện. Sau đó, bạn sẽ thực hiện C ++ thực sự trong khuôn khổ người trợ giúp, điều này sẽ giúp hoàn thành công việc, nhưng sẽ không giúp ích gì trong việc dạy bạn cách phát triển trò chơi nếu bạn sẽ làm việc tại một công ty phát triển trò chơi.

SDL, SFML và thậm chí cả Cinder đều là những cách thông minh để tránh tìm hiểu về những thứ khó khăn trong C ++. Chúng thường bao bọc OpenGL, rất hữu ích để tìm hiểu nếu bạn muốn mã hóa đồ họa cho các máy không có cửa sổ, nhưng cũng có hàng tấn tài nguyên để hoàn thành công việc trong Direct-X (có lẽ nhiều hơn vì virus Windows đã lây lan sang mọi góc của thế giới).

Nếu bạn không muốn tìm hiểu những thứ nặng nề, thì tốt thôi, nhưng nếu không, đừng ngại bắt đầu từ một ứng dụng Win32 thô.

Tôi muốn đề nghị, để thoải mái, bạn bắt đầu với tất cả các gói trợ giúp khác nhau mà bạn có thể tìm thấy, nhưng hãy hướng tới việc viết công cụ kết xuất của riêng bạn. Viết một công cụ rất thú vị và có thể cung cấp cho bạn một nguồn lực để nhìn lại các dự án trong tương lai của bạn. Không có gì tạo ra mã tốt như sự khôn ngoan từ việc làm sai trong quá khứ.


Cảm ơn câu trả lời, tôi có kinh nghiệm về C ++ và muốn tham gia vào những thứ nặng nề để tôi có kinh nghiệm về nó. Tôi rất thích sở thích này để cuối cùng dẫn đến một sự nghiệp trong ngành công nghiệp trò chơi điện tử một khi tôi có được một số kinh nghiệm làm việc.
sange

7

Tôi khuyên bạn nên tránh xa thư viện Cinder đó. Duyệt qua các hướng dẫn là về dân số như nó có thể nhận được. Chọn một cái gì đó dễ dàng, thú vị và nhanh chóng để mã hóa, như SFML . Hãy nghĩ về nó như một sự thay thế hướng đối tượng hiện đại cho SDL. Nếu các tính năng đáp ứng nhu cầu của bạn, hãy cài đặt nó, xem qua các hướng dẫn và chỉ cần bắt đầu chơi với nó. Bạn có thể tìm mã nguồn cho các dự án SFML hiện có từ các diễn đàn để xem cách họ triển khai mọi thứ, như vòng lặp trò chơi, cách họ tổ chức mã và các đối tượng và khiến chúng giao tiếp với nhau và Wikicó một số hướng dẫn và mã nguồn bạn có thể sử dụng trong các dự án của mình. Và các diễn đàn đang hoạt động để bạn có thể yêu cầu giúp đỡ bất cứ lúc nào.


Tôi chưa bao giờ nghe về điều đó - có vẻ phù hợp hơn so với than cho các trò chơi! đẹp.
Iain

4

Tôi không biết bất kỳ cuốn sách nào dành riêng cho các trò chơi 2D, nhưng bạn nên xem các câu trả lời ở đây . Xét cho cùng, trò chơi 2D và 3D có rất nhiều điểm chung. Có rất nhiều game 3D có lối chơi 2D.

Có lẽ bạn có thể kiểm tra các hướng dẫn của Lazy Foo , chúng bao gồm nhiều chủ đề quan trọng theo từng bước một. Họ sử dụng SDL và OpenGL.


3

Có thể hơi hẹn hò nhưng Phát triển trò chơi 2D nâng cao là một cuốn sách khá hay. Kiểm tra nó ra.


Tôi mới mua cuốn sách này (chờ nó đến!) - bạn sẽ nói nó theo ngày nào?
Zolomon

Kể từ khi ra mắt vào năm 2008, công nghệ chắc chắn đã thay đổi. Nhưng các phương pháp rất có thể là như nhau. Xin lỗi đã được một lúc kể từ khi tôi đọc nó và không có gì xuất hiện trong tâm trí.
Miguel Moll

2

Tại sao không thử bắt đầu với một cái gì đó như http://libcinder.org/ - tất cả đều miễn phí và có tất cả các hướng dẫn bạn cần để bắt đầu.


0

Ngoài một cuốn sách, điều quan trọng là quyết định loại trò chơi bạn muốn làm. Điều đó sẽ giúp thông báo con đường của bạn nói chung. Tôi sẽ đề nghị chọn một cái gì đó đơn giản, Minesweeper hoặc Tetris hoặc có thể là Light Motorcycle of Tron, trong đó logic trò chơi khá đơn giản và yêu cầu đồ họa là tối thiểu chỉ để có được thứ gì đó cơ bản để chơi.


0

Mặc dù có rất nhiều sách ngoài đó, tôi chưa tìm thấy cuốn sách nào mà tôi hài lòng. Hầu hết dường như dính vào "trò chơi" không đặc biệt thú vị từ góc độ chơi và không thực sự đi sâu vào chi tiết triển khai đồ họa, vòng lặp trò chơi, v.v.

Đề nghị của tôi sẽ là, thay vì tìm kiếm một cuốn sách, hãy tự dạy mình thông qua tìm kiếm của Google. Có rất nhiều hướng dẫn trực tuyến để tạo các trò chơi đơn giản, chỉ cần chọn một trò chơi như Tetris (hoặc bất cứ điều gì), tạo cho mình một danh sách các nhiệm vụ lập trình và sau đó khi bạn gặp khó khăn với điều gì đó (có thể bạn không chắc chắn làm thế nào để chấp nhận đầu vào thời gian thực hoặc cách vẽ đồ họa lên màn hình) tìm kiếm câu trả lời cho một câu hỏi cụ thể đó. Lặp lại mỗi khi bạn gặp khó khăn và đến khi bạn hoàn thành, bạn sẽ có một ý tưởng khá hay về cách trò chơi được kết hợp với nhau.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.