Bắt đầu từ đâu với phát triển game? [đóng cửa]


65

Tôi đã hỏi điều này sớm hơn trong chủ đề này tại stackoverflow.com. Một trong những bình luận ban đầu đã chuyển hướng tôi đến đây để gamedev.stackexchange.com, vì vậy tôi đang đăng lại ở đây.

Tìm kiếm các câu hỏi liên quan Tôi đã tìm thấy một số câu hỏi rất cụ thể, nhưng tôi e rằng các chi tiết cụ thể đã tỏ ra vô ích đối với tôi và sau 4 giờ trên Google tôi không còn thân thiết hơn tôi đã bắt đầu, vì vậy tôi cảm thấy có thể tiếp cận cộng đồng theo thứ tự.

Đầu tiên, mục tiêu của tôi: Tôi chưa bao giờ thực hiện một trò chơi trước đây, mặc dù tôi đã nhầm lẫn về khả năng này nhiều lần. Cuối cùng tôi quyết định ngồi xuống và bắt đầu học cách viết mã trò chơi, sử dụng công cụ trò chơi, v.v ... Tất cả chỉ để một ngày nào đó (hy vọng sớm thôi) tôi sẽ có thể tạo ra các trò chơi chức năng (mặc dù đơn giản). Tôi có thể bắt đầu thêm sự phức tạp sau này, bây giờ tôi rất vui khi có một máy ảnh điều khiển bằng bàn phím di chuyển trong thế giới 3D mà không có tương tác nào vượt quá điều đó.

Nền tảng của tôi: Tôi đã làm việc trong các ngôn ngữ lập trình SEVERAL, từ PHP đến C ++ đến Java đến ASM. Tôi không sợ bất kỳ thách thức nào khi học cú pháp mới hoặc giới hạn vốn có trong một ngôn ngữ mới. Tuy nhiên, tất cả kinh nghiệm lập trình trước đây của tôi hoàn toàn không có đồ họa và thường có ít hoặc tương tác cực kỳ đơn giản trong khi thực hiện. Tôi đã tạo ra các thuật toán mở rộng và tuyệt vời để giải quyết các vấn đề logic và toán học cũng như các vấn đề về đồ thị. Tuy nhiên, trong mọi trường hợp, đầu vào được xác định trong một tệp, được chuyển qua biểu mẫu HTML hoặc được nhập vào bảng điều khiển. Tương tác thời gian thực với người dùng là điều mà tôi không có kinh nghiệm.

Câu hỏi của tôi: Tôi nên bắt đầu từ đâu để thử làm game? Tốt hơn hết - tôi nên bắt đầu từ đâu khi cố gắng tạo môi trường 3D có thể điều hướng bằng bàn phím? Khi tìm kiếm trực tuyến, tôi đã tìm thấy một số tài nguyên liên kết với công cụ trò chơi, công cụ đồ họa và công cụ vật lý. Dưới đây là một bản tóm tắt ngắn gọn về những trải nghiệm của tôi với một vài động cơ tôi đã thử:

Unreal SDK: Các video hướng dẫn giả định rằng bạn đã có kiến ​​thức chuyên sâu về mô hình 3D, công cụ đồ họa, hoạt hình, v.v. Trang "Bắt đầu" không đưa ra lời giải thích chính thức nào về phát triển trò chơi nhưng nhảy vào cách Unreal có thể hợp lý hóa quy trình mà nó giả định Tôi đã quen thuộc với. Sau khi tải xuống SDK và khởi chạy nó để xem các công cụ có trực quan như họ tuyên bố hay không, tôi đã được chào đón với khoảng 60 nút và một khoảng trống trống cho mô hình 3D của tôi. Nhấp vào "thêm âm lượng" (để cố gắng thêm một khối cơ bản) tôi đã gặp một menu gồm 30 tùy chọn. Hoảng sợ, tôi đóng cửa biên tập.

Crystal Space: Trang web có vẻ khá nhiều thông tin, giải thích rằng Crystal Space chỉ dành cho đồ họa và phần mềm đồng hành, CEL, đã cung cấp logic thực thể để tạo trò chơi. Một trò chơi demo đã được cung cấp, được xây dựng bằng "CELStart", công cụ đơn giản của họ dành cho những người không có kiến ​​thức về lập trình trò chơi. Tôi đã khởi chạy trò chơi để xem những gì tôi có thể mong muốn tạo ra. Nó bị đóng băng nhiều lần, các menu bị lỗi, có hàng ngàn trục trặc đồ họa, kẻ thù không phản ứng với thiệt hại, và khi tôi đóng trò chơi thì nó bị khóa. Đưa lên trên động cơ đó.

DrainLicht: Hướng dẫn giả định rằng tôi có Visual Studio 6.0 (Tôi có Visual Studio 2010). Theo hướng dẫn của họ, tôi không thể nhập đúng thư viện vào Visual Studio và không thể gọi bất kỳ chức năng nào mà họ tiếp tục sử dụng. Sao chép thủ công các tệp tiêu đề, tệp lớp và tệp DLL vào thư mục dự án của tôi - dự án không thể biên dịch đúng.

Rõ ràng tôi không có một khởi đầu tốt và tôi sẽ đi theo vòng tròn. Ai đó có thể chỉ cho tôi đi đúng hướng? Tôi có nên bắt đầu bằng cách tải xuống một chương trình như Blender và học mô hình 3D hay tôi nên học cách sử dụng công cụ đồ họa? Tôi có nên tìm kiếm một công cụ trò chơi bao gồm tất cả, hay tốt hơn là thử và viết mã logic trò chơi của riêng tôi? Nếu bất cứ ai đã thực sự làm trò chơi của riêng họ, tôi muốn nghe làm thế nào họ bắt đầu.

Ngoài ra, tham gia các lớp học tại trường của tôi không phải là một lựa chọn. Không có gì được cung cấp.


3
+1 Nền tảng lập trình tốt tìm kiếm nhu cầu cụ thể.
Will Marcouiller

6
+1, đây là một câu hỏi được suy nghĩ và nghiên cứu kỹ về cách bắt đầu phát triển trò chơi. Ngoài ra, tôi cảm thấy nỗi đau của bạn về SDK Unreal.
James

Tôi khuyên bạn nên kiểm tra hướng dẫn của Raven67854 cho UDK. Chúng được liệt kê dưới video, mọi người dường như thích chúng.
Jesse Dorsey

Lời khuyên của tôi là hãy bắt đầu làm một cái gì đó. Thông thường những người hỏi loại câu hỏi này muốn mở đường một cách tuyến tính (bởi vì tôi đã từng hỏi loại câu hỏi tương tự). Tuy nhiên, từ kinh nghiệm trong quá khứ của tôi, đường cong học tập phát triển trò chơi là một đường cong phi tuyến tính. Tôi thường chuyển từ vấn đề này sang vấn đề khác --- nếu tôi gặp khó khăn, sau đó tôi hỏi / tìm kiếm câu trả lời. Do đó, chỉ cần thử công cụ, học hỏi từ thử nghiệm và lỗi. Thông thường tôi bắt đầu với các hướng dẫn. Tuy nhiên, các hướng dẫn này chưa bao giờ cung cấp đủ chi tiết, vì vậy tôi phải hỏi / tìm kiếm / thử nghiệm để tìm câu trả lời.
dùng1542

Câu trả lời:


38

Tôi đã hỏi một câu hỏi như vậy khi tôi tham gia GD. Dưới đây là một số liên kết có thể khiến bạn quan tâm mà tôi hy vọng sẽ hướng dẫn bạn hướng tới mục tiêu của bạn.

Nói tóm lại, tôi sẽ đi cùng XNA Game Studiođể nắm bắt sự phát triển trò chơi. Sau đó, tiến tới những gì bạn muốn đạt được như kiến ​​thức / công nghệ. XNAdạy tôi về cách làm việc với các họa sĩ, và cho phép tôi áp dụng một số kiến ​​thức của mình ngay từ khi bắt đầu học, để tôi có thể nắm bắt đủ nhanh để hiểu cách tôi nên thiết kế trò chơi của mình để sử dụng các lớp trong khi làm việc với tiêm phụ thuộc và vv. Vì vậy, tôi đang giữ bạn chờ đợi không còn nữa.

  1. Nơi để bắt đầu viết trò chơi, bất kỳ hướng dẫn hoặc tương tự?
  2. Các nguyên tắc cơ bản của phát triển trò chơi là gì? (Câu hỏi thú vị, IMHO)
  3. Tách vật lý và logic trò chơi khỏi mã UI
  4. Di chuyển sprite của tôi trong XNA bằng các lớp

Tại sao XNA bạn sẽ hỏi? Đơn giản vì nền tảng Java của bạn. XNA sử dụng C # tương tự như Java trên một số cách và cũng là một khung đơn giản để sử dụng để tóm tắt Vòng lặp trò chơi và các công cụ để bạn có thể tập trung vào những gì quan trọng.

Tôi thực sự hy vọng điều này sẽ giúp bạn bắt đầu. =)


1
Xin lỗi vì phản hồi chậm =) Tôi đã đọc từng bài đăng mà bạn đã chuyển hướng cho tôi (Ngoài ra, một trong những bài đăng được liên kết với trang MSDN khi tạo trò chơi 3D với XNA, điều mà tôi quan tâm vì trang công cụ trò chơi XNA ban đầu trông giống như vậy được nghiêm ngặt cho các trò chơi 2D). Tôi chắc chắn nghĩ rằng đây là một điểm khởi đầu tốt. Cảm ơn bạn. Tôi sẽ tải xuống XNA tối nay và đi ngủ, sau đó hy vọng ngày mai tôi có thể thử tạo ra Pông hoặc một cái gì đó.
stevendesu

@Steven: Không sao! Tôi đã đăng câu trả lời này với mục đích giúp đỡ một nhà phát triển đam mê giống như tôi đã yêu cầu hướng dẫn! Tôi thực sự hy vọng bạn sẽ thích làm điều đó! Thử thách đầu tiên và vẫn còn của tôi là phát triển một trò chơi đơn giản giống Arkanoid, nơi tôi phải làm việc theo cách của mình để phát hiện va chạm trong khi viết các lớp của mình cho mỗi tàu vũ trụ, quả bóng năng lượng và cục gạch. Sau đó, Game1lớp của tôi được sử dụng như một bộ điều khiển trò chơi, theo ý kiến ​​của tôi là lớp sẽ điều khiển và cho các lớp khác biết phải làm gì, v.v. Tôi giải thích một chút về khía cạnh này liên kết # 4 và # 5.
Will Marcouiller

Tôi có thể sẽ hỏi một câu hỏi khác rất sớm (ngày mai) xx Đã tải xuống XNA Game Studio 4.0, đã cài đặt nó .... Và không có hướng dẫn rõ ràng nào để làm gì tiếp theo. Toàn bộ trang web chính thức của XNA chỉ nói "tạo trò chơi cho Windows Phone 7" trên tất cả - không có gì về việc tạo trò chơi cho Windows. Tôi sẽ tìm ra nó vào buổi sáng hoặc hỏi ở đây nếu tôi không thể.
Giờ đi

1
Tạo một dự án mới bằng Visual Studio, sau đó, chọn XNA ở đâu đó bạn có thể chọn loại dự án. Sau đó, bắt đầu làm game cho windows! Mẫu dự án trò chơi XNA của bạn (dự án mới) sẽ biên dịch và chạy trên Windows nguyên bản. XNA là thư viện Microsoft để phát triển trò chơi, do đó, bạn có thể phát triển trò chơi cho Windows và XBox.
Will Marcouiller

1
Vì lợi ích của tương lai, đáng để chỉ ra rằng XNA về cơ bản không được dùng nữa, nhưng Monogame vẫn tiếp tục. Đối với hầu hết các phần, cùng một mã sẽ hoạt động.
Magus

8

Bạn có thể thử Unity 3D , bởi vì

  • nó có thể được lập trình bằng JavaScript, C # hoặc Boo
  • nó có một hướng dẫn tốt ở đây
  • đường cong học tập của nó không quá dốc
  • câu trả lời Unity , nơi bạn tìm thấy nhiều tài nguyên hơn.

(Tuyên bố miễn trừ trách nhiệm: Tôi không có cách nào liên quan đến các nhà sản xuất Unity, tôi chỉ sử dụng nó và thấy nó là một công cụ tuyệt vời để tìm hiểu những điều cơ bản).

Nhưng vâng - bạn tự đặt ra cho mình một số nhiệm vụ. Bây giờ tôi đang học lớp 6 học thiết kế trò chơi, và tôi vẫn không cảm thấy mình bị trầy xước nhiều hơn bề mặt. Không có gì lạ khi ngành công nghiệp này có các chuyên gia cho hầu hết mọi khía cạnh của quá trình tạo ra một trò chơi.

Chỉnh sửa: Đã có một nhận xét về Unity được xem là không phải là một công cụ trò chơi "phù hợp", có thể bị hiểu nhầm khi tôi nói điều đó - do đó sinh ra các bình luận bên dưới. Tôi không có ý định đề xuất rằng Unity không thể được sử dụng để thiết kế trò chơi phù hợp, ngược lại. Tôi sử dụng nó cho mình, và tôi thích nó. ;)


3
Có gì không đúng về nó?
lathomas64

Tôi cũng tò mò.
Jesse Dorsey

Có lẽ thực tế là (như Flash hoặc Java) nó yêu cầu một chương trình container để chạy, vì vậy anh ta coi nó là "không phù hợp" ở chỗ nó không thể được biên dịch và phân phối cho đối tượng lớn mà không gặp rắc rối? Dù bằng cách nào, tôi đang tìm kiếm XNA ngay bây giờ. Tôi có thể kiểm tra Unity3D nếu XNA tỏ ra quá khó khăn.
stevendesu

Chà, tôi nghe người ta nói rằng đối với thiết kế trò chơi "đúng đắn", Unity không được coi trọng. Như đã nói trước đây - tôi đang sử dụng nó và tôi khá hài lòng với nó. Trong một số trường hợp, Unity chỉ khiến mọi thứ trở nên dễ dàng một cách đáng ngờ, tôi đoán là can;) Tôi chỉ đơn thuần là phòng ngừa rủi ro, vì tôi không biết mọi người sẽ phản ứng ở đây như thế nào khi đề cập đến Unity. Có lẽ điều đó gây ra downvote?
xeophin

@steven_desu: Thật ra, bạn chỉ cần một chương trình chứa cho trình phát web. Các trò chơi được biên dịch để chạy trên Windows hoặc Mac hoàn toàn khép kín.
xeophin

2

Chà, nếu bạn gặp vấn đề với irrlicht, bạn cũng nên dùng thử Ogre3D; nó không dễ dàng hơn, nhưng nó có thể hoạt động tốt hơn nếu bạn dành thời gian cho nó. Điều quan trọng bạn phải hiểu là framelistener là gì, làm thế nào để có được thời gian kể từ khi khung cuối cùng được hiển thị và đó là điều duy nhất bạn phải hiểu nếu bạn muốn làm cho ứng dụng này mà bạn đang nói đến.

Tôi cũng gặp một số khó khăn với irrlicht, các hướng dẫn không được cập nhật, nhưng bạn nên thử các mẫu!

Tôi cũng đã chạy rất nhiều vòng tròn khi bắt đầu, chơi với panda3d và những thứ khác như pygame, v.v ... Hãy cố gắng tập trung vào một số ý tưởng trò chơi và thực hiện từng việc một.

Và cố gắng nhớ một số phép toán ma trận, nó sẽ có một số sử dụng trong 3D!


2

Gần đây tôi đã bắt đầu theo đuổi như bạn. Tôi chạy vào một công cụ java thuần túy có tên là jMonkeyEngine , nó đã đưa tôi qua một bộ hướng dẫn tuyệt vời. Tôi không biết nếu nó thực sự giải thích thiết kế trò chơi ở mức độ lớn nhưng nó giúp bạn bắt đầu trên mặt trận đồ họa.

Nó gợi ý / liên kết đến các công cụ bạn có thể sử dụng để lập mô hình và có các ví dụ được mô tả tốt và có thể dán để đưa bạn qua việc đặt một hộp trên màn hình để thiết lập công cụ vật lý.

Chắc chắn đáng đọc - tôi đã có một ý tưởng tốt về những gì tôi đã làm chỉ sau vài giờ.


Các hướng dẫn đáng để đọc ngay cả khi bạn không sử dụng công cụ. Ngoài ra còn có hướng dẫn tốt đẹp về một số toán học 3D.
DMan

2

Bạn thực sự nên thử Flixel http://flixel.org/ Tôi đã tạo trò chơi "demo" đầu tiên của mình bằng flixel. Cộng đồng tốt đẹp, hướng dẫn tốt đẹp.

Nó không phải là 3D nhưng nó có nhiều tính năng hay giúp cho những bước đầu tiên của bạn vào môi trường lập trình trò chơi trở nên dễ dàng.

Như vậy: Hiển thị hàng ngàn đối tượng chuyển động
Va chạm cơ bản giữa các đối tượng Các đối tượng
nhóm với nhau để đơn giản
Dễ dàng tạo và phát ra các hạt
Tạo cấp độ trò chơi bằng cách sử dụng tilemaps
Hiển thị văn bản, lưu trò chơi, cuộn
Chuột và bàn phím Nhập
các tiện ích toán học & màu sắc

Và nó miễn phí cho sử dụng thương mại, đó là tuyệt vời.


1

Nếu bạn chưa từng làm việc với đồ họa. Trước khi chỉ cần học mở gl hoặc direct x là bắt đầu. Tôi đã lập trình trò chơi đầu tiên của mình theo cách đó. Động cơ công ty của chúng tôi đang ở trong nhà và hầu hết các hệ thống hỗ trợ mở gl dưới một số hình thức. Tôi đã học được trong khi làm việc xem qua mã được viết trước khi tôi bắt đầu làm việc. Bạn có thể muốn xem một số dự án nguồn mở để xem cách cấu trúc trò chơi được thiết lập và bắt đầu sửa đổi những dự án đó cho đến khi bạn cảm thấy thoải mái về việc bắt đầu điều của riêng mình. Tôi cũng đề xuất "Hoàn thành mã hóa trò chơi" như một tài liệu tham khảo tuyệt vời cho tất cả các phần nhỏ của lập trình trò chơi mà bạn không nhận ra ở đó, như cấu trúc tệp và quản lý tài nguyên phù hợp.


1

Hãy thử Công cụ nguồn . Thật dễ dàng để phát triển các trò chơi trên đó và bạn có thể có được nền tảng phân phối (Steam) và bán trò chơi của bạn miễn phí nếu bạn ký thỏa thuận với Valve Corportaion.


1

Tôi khuyên bạn nên bắt đầu với các trò chơi flash, vì bạn thực sự có mọi thứ bạn cần trong một gói để tạo ra các trò chơi đơn giản. Có rất nhiều blog với các hướng dẫn, ví dụ như Emanuele Feronato . Anh ấy thậm chí còn có một cuốn sách với 10 trò chơi hoàn chỉnh.

Tôi đã sử dụng FlashDevelop, đủ để phát triển.

"Tạo ra một trò chơi flash tiểu hành tinh" của Chris Moeller là một trường hợp xuất sắc, với cách tiếp cận từng bước hoàn chỉnh bằng cách sử dụng flash phát triển.

Đối với các trò chơi dựa trên Ngói, có một hướng dẫn tuyệt vời tại Ironcoding .

Được trang bị tất cả những điều đó, đề nghị của tôi là tìm một nơi nào đó có một thử thách trò chơi video, với một cộng đồng người xây dựng trò chơi. Xây dựng một trò chơi video một tháng, tập trung vào một cái gì đó nhỏ mà bạn có thể hoàn thành, đánh bóng và trình bày trước khi đi vào dự án tiếp theo của bạn. Tôi đang tham gia một thử thách trò chơi video hàng tháng tại đây .

Giữ nó nhỏ để bạn có thể hoàn thành nó và phát hành nó.

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.