Tôi nên xem xét gì khi đánh giá thư viện, công cụ và khung để tạo trò chơi?


10

Tôi sẽ làm một trò chơi. Tôi đã nhận thấy rằng có rất nhiều công cụ trò chơi, thư viện và khung công tác có sẵn và tôi gặp một chút khó khăn khi quyết định sử dụng cái nào.

Tôi đã khá giỏi với một số ngôn ngữ lập trình, nhưng có những ngôn ngữ khác mà tôi không biết chút nào. Tôi không chống lại việc học các ngôn ngữ lập trình mới, nếu điều đó có ích, nhưng mục tiêu thực sự của tôi chỉ là tạo ra trò chơi của mình.

Tôi nên sử dụng tiêu chí nào để so sánh các công cụ, thư viện và khung công tác với nhau, để tôi có thể quyết định cái nào sẽ cho phép tôi làm việc hiệu quả nhất để kết thúc trò chơi của mình?


11
Để biết giá trị của nó, tôi sử dụng cách tiếp cận hai bước: (1) chọn một cách tùy ý; (2) hối hận về quyết định sau này. Ưu điểm là nó giúp bạn vượt qua bước đầu tiên một cách nhanh chóng.
Cameron Fredman

2
Đây không phải là một câu hỏi Wiki cộng đồng?
Marton

Tôi rất vui vì điều này đã được đưa vào câu hỏi Community Wiki, nhưng không có tùy chọn nào cho tôi để làm điều đó. Tôi cho rằng CW về các câu hỏi là một điều chỉ dành cho người điều hành, những ngày này.
Trevor Powell

@Marton Tại sao bạn nghĩ nó nên là một CW?
MichaelHouse

1
@ Byte56 Bởi vì câu hỏi này luôn xuất hiện, khi ai đó muốn bắt đầu phát triển trò chơi. Hiện đã có rất nhiều khung / công cụ hiện có, và một mục nhập Wiki "cần xem xét" chung chung như vậy sẽ thực sự hữu ích. Tôi nghĩ rằng nó sẽ trả lời nhiều câu hỏi "tôi nên sử dụng công cụ nào" sẽ xuất hiện trên trang web này. Các cụm từ sau này thực sự sẽ làm cho những câu hỏi như vậy 'không mang tính xây dựng'.
Marton

Câu trả lời:


14

Nó giống như chọn một chiếc xe hơi hoặc máy tính. Hoặc gần như bất cứ thứ gì có các loại tính năng, một số trong đó bạn quan tâm rất nhiều, những thứ khác bạn không bận tâm và một số bạn thậm chí không muốn bao gồm.

  1. Lập danh sách các tính năng bạn quan tâm. Ví dụ: hỗ trợ 2D / 3D, ánh sáng, vật lý, sử dụng ngôn ngữ bạn biết rõ, v.v.
  2. Xếp hạng chúng dựa trên tầm quan trọng đối với bạn, dựa trên dự án hiện tại của bạn.
  3. Nghiên cứu các tùy chọn của bạn và cho từng tùy chọn, cố gắng xếp hạng các tính năng hỗ trợ của chúng dựa trên mức độ chúng phù hợp với mục tiêu dự án của bạn.
  4. Sử dụng một trong những phù hợp nhất với mục tiêu của bạn. Ngoài ra, bạn có thể chọn một vài đầu và cung cấp cho họ một ổ đĩa thử nghiệm. Thực hiện một số tính năng đơn giản của trò chơi của bạn và xem cái nào bạn thích hơn.

Tôi nghĩ rằng rất nhiều điều này sôi nổi để thực sự biết những gì bạn muốn. Điều đó có nghĩa là bạn sẽ cần phải có một ý tưởng khá hay về trò chơi bạn đang thực hiện. Điều đó có thể có nghĩa là bạn sẽ cần một kế hoạch khá chi tiết về cách triển khai trò chơi của bạn và những gì nó sẽ bao gồm. Như một phần thưởng, có tất cả thông tin chi tiết đó thực sự sẽ giúp bạn hoàn thành trò chơi của mình. Thực hiện theo một kế hoạch dễ dàng hơn nhiều và kiểm tra mọi thứ trong danh sách hơn là chỉ có ý tưởng cho một trò chơi và chỉ bắt đầu viết mã.


3

Trước tiên, bạn nên có tối thiểu một ý tưởng sơ bộ về trò chơi của bạn sẽ là gì và nó sẽ cần gì. Có những câu hỏi thông thường như liệu trò chơi của bạn có cần vật lý hay không. Sau đó, có những câu hỏi liên quan đến nhau, chủ yếu là về môi trường mà trò chơi của bạn sẽ được phát triển và chạy và cách trò chơi của bạn thương mại hay không.

  • Những nền tảng nào bạn sẽ hỗ trợ? Nền tảng nào bạn đang phát triển trò chơi của mình trên?
  • Ngôn ngữ lập trình nào bạn dự định thực hiện trò chơi của mình?
    • Điều này bị ảnh hưởng bởi các nền tảng bạn dự định hỗ trợ.
  • Trò chơi của bạn sẽ có loại đồ họa, âm thanh và đầu vào nào?
  • Là phần mềm miễn phí trò chơi của bạn hoặc nguồn mở, hoặc nó là thương mại?
    • Nếu là nguồn mở, bạn sẽ muốn quảng cáo sau, với trò chơi của bạn hay với một trò chơi khác sử dụng công cụ trò chơi đầu tiên của bạn?

Nếu bạn chỉ là Windows thì các thư viện dựa trên DirectX và C # là những ứng cử viên nặng ký. Nếu bạn muốn trở thành đa nền tảng thì bạn muốn xem các thư viện dựa trên OpenGL và C / C ++ hoặc Flash nếu trò chơi của bạn là 2D và bạn có thể mua các công cụ của Adobe. Giống như nền tảng của bạn, ngôn ngữ lập trình của bạn sẽ ảnh hưởng đến các thư viện có sẵn của bạn. Một chương trình được viết bằng C ++ sẽ gặp khó khăn khi gọi thư viện Java.

Nếu trò chơi của bạn là thương mại thì bạn có thể xem xét việc mua một công cụ như Unity. Nếu trò chơi của bạn là phần mềm miễn phí hoặc nguồn mở, bạn sẽ muốn tập trung vào những kẻ giả mạo cũng là nguồn mở hoặc ít nhất là miễn phí cho các dự án phi thương mại. Tất nhiên các thư viện nguồn mở rất hữu ích cho các dự án thương mại. Khi nhìn vào các thư viện nguồn mở, hãy đảm bảo kiểm tra giấy phép của họ. Một số giấy phép yêu cầu bạn tạo các phần của nguồn mở phần mềm của riêng bạn tùy thuộc vào cách bạn sử dụng thư viện. Việc giới hạn bản thân đối với các thư viện nguồn mở rõ ràng sẽ đặt một giới hạn khác cho những thư viện bạn có thể sử dụng.

Khi nhìn vào một thư viện, hãy đảm bảo kiểm tra mức độ phát triển và cộng đồng của nó. Tôi tin tưởng một thư viện nổi tiếng và được duy trì tích cực hơn một thư viện được lưu trữ trên trang web của trường đại học của ai đó chưa được cập nhật từ năm 1999.

Một câu hỏi cuối cùng, đặc biệt nếu đây không phải là dự án trò chơi đầu tiên của bạn, là liệu trò chơi của bạn có cần hay không mà bạn biết bạn sẽ phải vật lộn nếu bạn cố gắng tự làm. Bởi vì những khía cạnh này đặc biệt là các ứng cử viên để tìm một thư viện. Nếu trò chơi của bạn cần phát hiện va chạm và bạn biết rằng bạn không thể tự thực hiện phát hiện va chạm (như tôi không thể), hãy cân nhắc chọn một công cụ vật lý và tận dụng các tính năng phát hiện va chạm trong đó.


1
  • Thư viện có làm những gì bạn cần không?
  • Có chuyên môn để làm những gì bạn cần? Bao nhiêu lộn xộn được gắn vào nó?
  • Nó được thiết kế như thế nào? Bạn có muốn nôn khi nhìn thấy nó? Nếu có, thì đó có lẽ không phải là lựa chọn tốt nhất cho cả sức khỏe và sự tỉnh táo của bạn.
  • Có đủ linh hoạt cho nhu cầu của bạn? Thật không hay khi thư viện không hoạt động sau khi bạn đã viết một nửa mã của mình với nó.
  • Làm thế nào bằng chứng trong tương lai là thư viện? Là nhà phát triển thêm các tính năng theo thời gian? Là anh ấy sửa chữa mọi thứ? Là anh ấy cải thiện mọi thứ? Điều này có thể tạo ra sự khác biệt nếu có thể phát triển trò chơi của bạn mất vài năm. Không quá quan trọng đối với các dự án nhỏ bạn sẽ có trong một tháng.
  • Là kích thước phù hợp? Đối với các dự án nhỏ, nó có thể tạo ra sự khác biệt lớn cho dù người chơi phải tải xuống 20MB hay 200MB. Các dự án lớn hơn có lẽ đủ lớn để kích thước của phần mềm trung gian tạo ra sự khác biệt nhỏ.

1

Ngoài các tính năng dành riêng cho trò chơi mà mọi người đã nhận xét, bạn cũng nên xem xét một số câu hỏi chung.

  1. cấu trúc hỗ trợ - ngay cả khi công cụ trò chơi hoàn hảo, có lẽ hỗ trợ quá đắt hoặc không tồn tại.
  2. thật dễ dàng để học - bạn có thể không muốn một cái gì đó quá lớn, vì thời gian để học có thể bị cấm.
  3. nó có bao gồm các kế hoạch tương lai của bạn không - bạn có thể không muốn đầu tư thời gian để học một công cụ hoàn hảo cho hiện tại, chỉ để học lại một công cụ hoàn toàn mới từ đầu cho dự án tiếp theo. Hoặc có thể bạn muốn điều đó.
  4. giấy phép - nếu bạn đang tạo một trò chơi nguồn đóng, hãy đảm bảo rằng giấy phép của công cụ không làm cho nó mở ra.

0

Một bảng cheat ngắn để đánh giá thư viện, khung, công cụ và SDK và chọn thứ tốt nhất

  • Thư viện, khung, SDK công cụ, v.v. là những công cụ nhằm giải quyết vấn đề cho bạn hoặc hỗ trợ bạn giải quyết vấn đề và đáp ứng một số yêu cầu nhất định.
  • Đánh giá có nghĩa là tìm ra cái nào đáp ứng được nhiều yêu cầu nhất.

Do đó, trước khi bạn bắt đầu đánh giá, bạn cần phải rõ ràng về kịch bản nào và yêu cầu nào bạn có / muốn có vì đây là những câu hỏi cần được trả lời bởi đánh giá.

Kịch bản xác định nơi các yêu cầu đến từ đâu (ai quyết định đâu là yêu cầu và không phải là gì).


Các kịch bản điển hình là:

Kịch bản dự án hobbiest

Bạn tự mình hoặc cùng với một số người bạn muốn tạo trò chơi (có thể đầu tiên) của bạn. Hoàn hảo, bạn có thể tự quyết định mọi thứ và bạn chỉ bị giới hạn ở những mong muốn kỹ thuật cơ bản và yêu cầu kỹ thuật (nên là game di động, game PC, game console, game web, ....). Bạn có thể quyết định bất cứ điều gì bạn muốn.

Yêu cầu tiềm ẩn sẽ là bạn có thể muốn học một cái gì đó cụ thể (ngôn ngữ, khung / công cụ cụ thể)

Kịch bản học sinh

Yêu cầu có thể đến từ giáo viên của bạn. Yêu cầu điển hình tôi có trong trường hợp đó: trò chơi cần phải có một số yếu tố vật lý và hỗ trợ mạng nhiều người chơi. Hoặc nó phải được viết bằng C ++. Vì vậy, đánh giá trở nên dễ dàng. Bạn đang tìm kiếm một công cụ trò chơi cho phép bạn viết mã bằng c ++ và có thể đã bao gồm một công cụ mạng và vật lý.

Một yêu cầu xấu xa hơn (đời thực): mọi thứ phải được viết từ đầu (nhưng sử dụng thư viện được cho phép). Vì vậy, không có trình soạn thảo nào được cho phép (ví dụ Unity3D). Vì vậy, bạn không tìm kiếm động cơ / sdks mà cho các thư viện.

Kịch bản game indie

Bạn muốn kiếm tiền với trò chơi sau này. Do đó, bạn sẽ cần phải bán nó bằng cách nào đó mang đến cho bạn để kiểm tra những yêu cầu nào đến từ cửa hàng mà bạn muốn bán trò chơi của mình.

Nó có cho phép các trò chơi Java, trò chơi HTML5, ....)

Có yêu cầu bạn bao gồm các thư viện cụ thể không (nếu có, trong đó ngôn ngữ là những thư viện có sẵn)

Google Playstore sẽ yêu cầu bạn viết trò chơi của mình dưới dạng trò chơi Android, Apple AppStore sẽ yêu cầu bạn viết trò chơi của mình dưới dạng ứng dụng iOS. Hoặc bạn có yêu cầu chọn một công cụ đa nền tảng.

Kịch bản chuyên nghiệp

Bạn không chỉ có một cửa hàng cung cấp các yêu cầu mà rất có thể là một nhà xuất bản hoặc khách hàng có quyền yêu cầu riêng. Trong kịch bản này, bạn cũng sẽ có một nhóm lớn hơn các nhà phát triển được tuyển dụng. Tùy thuộc vào bộ kỹ năng của họ, các yêu cầu mới phát sinh (lập trình viên của chúng tôi chỉ có thể viết c ++ để chúng tôi không thể sử dụng công cụ trò chơi Java / Android thuần túy mà không cần (nhiều) thời gian để tìm hiểu điều gì đó mới).

Tôi không đi sâu vào chi tiết cho kịch bản này, một khi bạn quản lý để xây dựng một nhóm các nhà tuyển dụng và tìm một khách hàng / nhà xuất bản, bạn đã biết những gì bạn đang tìm kiếm để đánh giá mọi thứ.


Làm thế nào để tôi quyết định những yêu cầu của tôi là gì khi tôi là một hobbiest hoặc indi và không ai khác nói với tôi?

Đặt câu hỏi cho bản thân về mục tiêu và trò chơi của bạn?

  • Trò chơi của tôi nên là gì? điện thoại di động, pc, web (html / Js), tôi sẽ sử dụng bộ điều khiển nào (màn hình cảm ứng, con quay hồi chuyển, bảng trò chơi)

  • Có gì mới trong trò chơi của tôi và những trò chơi khác cũng có. Những phần mà các trò chơi khác cũng có (kết xuất, âm thanh, xử lý đầu vào) sẽ được thực hiện bằng hầu hết các công cụ (công cụ trò chơi) bạn có thể tìm thấy hoặc dễ dàng đóng gói các thư viện có chức năng đó trong trò chơi hoặc công cụ trò chơi của riêng bạn.

  • Kích thước của dự án của tôi: chim giận dữ hay skyrim là gì? Angry Birds có thể được thực hiện trong gần như mọi công cụ và skyrim sẽ bị giới hạn ở các công cụ hiệu suất cao với (tùy chọn) năm tùy chỉnh bổ sung (động cơ địa hình hiệu suất cao không dễ dàng)

  • Là mục tiêu duy nhất của tôi chỉ để hoàn thành một trò chơi? Đúng? hoàn hảo, bạn có thể sử dụng một số thứ rất tiên tiến như Unity, Unreal, ... có một trình soạn thảo tiện dụng và một cộng đồng lớn cung cấp cho bạn các hướng dẫn và trả lời các câu hỏi của bạn. Nó lấy đi gánh nặng xử lý các nhiệm vụ cấp thấp như tải lưới, thực hiện các chức năng toán học của riêng bạn, ....

  • Là mục tiêu của tôi để tìm hiểu một cái gì đó cụ thể? Đúng? bạn muốn học gì?

  • Nên chọn ngôn ngữ nào? Nếu mục tiêu vẫn chỉ là để hoàn thành trò chơi của bạn, hãy chọn mục tiêu mà bạn / nhóm của bạn biết rõ nhất? Nếu bạn muốn học một ngôn ngữ cụ thể, bạn sẽ chọn một công cụ bằng ngôn ngữ đó.

  • Công cụ X sẽ có đủ hiệu suất cho trò chơi của tôi chứ? Có thể, bạn sẽ không bao giờ biết. Ngay cả trong các sản phẩm lớn, giai đoạn tối ưu hóa và đánh bóng mất nhiều thời gian và là một nỗ lực rất lớn để hoàn thành nó. Bắt đầu quan tâm về hiệu suất khi bạn gặp vấn đề về hiệu suất. Bạn không biết công cụ sẽ hoạt động như thế nào trừ khi đạt đến giới hạn của nó. Tất cả mọi thứ trên trang web của nhà phát triển công cụ chỉ là một phỏng đoán sơ bộ. Sau nhiều năm đánh giá các công cụ, tôi đã ngừng tin tưởng bất cứ điều gì từ trang web của nhà phát triển.


Trả lời các câu hỏi như vậy đưa bạn đến các yêu cầu. Việc đánh giá là tìm ra danh sách các công cụ và KIỂM TRA (không chỉ đọc trang chủ) những gì công cụ có thể cung cấp hoặc không thể.


Yêu cầu không được cắt thành đá nhưng là năng động. Họ sẽ đến và đi trong quá trình phát triển. Nếu trò chơi cần vật lý hay không chẳng hạn phụ thuộc vào thiết kế. Nếu thiết kế thay đổi yêu cầu có thể thay đổi quá.

Thực hiện các yêu cầu bạn có và bắt đầu. Thay đổi yêu cầu là bánh mì hàng ngày của sự đau khổ, ahm, các nhà phát triển hạnh phúc độc lập với quy mô dự án và mức độ kinh nghiệm.


0

Tới đây .

Mặc dù số lượng công cụ trò chơi ngoài kia, bạn thực sự không có nhiều sự lựa chọn.

  1. hạn chế giấy phép. Một số công cụ sẽ cản trở khả năng phát hành sản phẩm của bạn mà không phải trả phí cấp phép lớn, ví dụ như Unity , được sử dụng để tính phí bổ sung để biên dịch sang iOS, ví dụ (điều này đã thay đổi vào năm 2016 )
  2. nền tảng. Bạn có quan tâm đến việc nhắm mục tiêu nhiều nền tảng? Những cái nào?
  3. 2D hay 3D? Một số động cơ phục vụ cho 2D.
  4. Yêu cầu vật lý? Một số động cơ cung cấp vật lý
  5. FPS, RTS? Có thể là khôn ngoan khi sử dụng một công cụ dành riêng cho loại trò chơi bạn đang tạo.
  6. Rõ ràng là bạn muốn làm việc trong ngôn ngữ yêu thích của bạn. Không thích C? Vậy thì đừng dùng Allegro!
  7. Bạn có phải là một mẫu thiết kế khổng lồ, quạt OOP? Các mẫu "lạm dụng" OGRE nổi tiếng
  8. Phát triển tích cực? Bạn nên xem xét sự đánh đổi giữa tính khả dụng của các tính năng cạnh chảy máu (DX11 / OGL 4) so ​​với tính ổn định của động cơ có sự phát triển giảm dần vài năm trước
  9. Cơ sở người dùng? Một cơ sở người dùng lớn thường có nghĩa là các diễn đàn tốt hơn, vì vậy dễ dàng hơn để trả lời câu hỏi của bạ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.