Tại sao một nhà phát triển trò chơi sẽ viết công cụ riêng của họ thay vì sử dụng công cụ hiện có?


41

Tôi đã quan sát thấy rằng nhiều nhà phát triển trò chơi lớn và nổi tiếng thường phát triển các công cụ riêng của họ. Ví dụ bao gồm Valve, Crytek, Ubisoft, Epic Games và Square-Enix.

Có thể đơn giản là vì họ có thể, hoặc có khả năng là các động cơ hiện tại không đáp ứng đủ yêu cầu, vì vậy chúng tôi sẽ tự phát triển? Tôi khó có thể tưởng tượng một trò chơi đòi hỏi một công cụ cụ thể. Những thứ như Unity hay Unreal chỉ đơn giản là đủ để tạo ra bất kỳ loại trò chơi nào; ngay cả khi không, họ có mã nguồn, có thể được sửa đổi để đáp ứng ngay cả một số nhu cầu đặc biệt.

Tại sao một nhà phát triển trò chơi sẽ viết công cụ riêng của họ thay vì sử dụng công cụ hiện có?



1
Họ không muốn cấp phép cho các công cụ trò chơi của các công ty khác và trả tiền cho họ.
János Turánszki

Tôi đoán đó là những gì bạn làm khi bạn có 9K + nhân viên đang nằm xung quanh ...
glampert

3
Có một số ví dụ ngược lại của các hãng phim lớn tạo ra các tựa game AAA sử dụng các công cụ của bên thứ 3 như Unreal hoặc CryEngine .
Philipp

3
Valve bắt đầu sử dụng công cụ Quake, sau đó cuối cùng đã viết riêng cho các trò chơi sau này. Đó thường là vấn đề học cách sử dụng những gì có sẵn, sau đó cuối cùng muốn đạt được thứ gì đó nhiều hơn những gì động cơ hiện có cung cấp. Tại thời điểm đó, bạn phải thực hiện các sửa đổi nặng hoặc cuộn của riêng bạn.
Nairou

Câu trả lời:


53

Có một số lý do mà một studio có thể chọn "xây dựng" thay vì "mua" công nghệ của họ:

  • Công nghệ kế thừa; một studio có thể đã bắt đầu xây dựng chuỗi công cụ của riêng họ trước khi có phần mềm trung gian khả thi cho nó.
  • Yêu cầu cụ thể; một studio có thể có một bộ yêu cầu cụ thể không phù hợp với phần mềm trung gian hiện có hoặc
  • Lo ngại về ngân sách; một studio có thể không đủ khả năng chi trả các chi phí hoặc nghĩa vụ theo hợp đồng của phần mềm trung gian hiện có.
  • "Không được xây dựng ở đây hội chứng;" lãnh đạo kỹ thuật của hãng phim có thể cảnh giác (một cách hợp lý hoặc không hợp lý) công nghệ mà họ không xây dựng và do đó không hiểu đầy đủ.

Nói chung, việc sở hữu và kiểm soát những điều quan trọng đối với sự thành công của doanh nghiệp của bạn và thuê ngoài những điều không hợp lý là điều hợp lý.

Đối với một số hãng phim, khía cạnh thiết kế hoặc kể chuyện trong các trò chơi của họ có thể là tài nguyên quan trọng mà họ mong đợi để tận dụng thành công. Đối với các hãng phim, thật đơn giản khi mua công nghệ cho phép các nhà thiết kế của họ nhận ra tầm nhìn phù hợp.

Đối với những người khác, công nghệ có thể là nền tảng để thành công. Các hãng xây dựng MMO, chẳng hạn, nói chung sẽ cần phải tự xây dựng cơ sở hạ tầng đó vì nó rất quan trọng đối với thành công của họ (và phần mềm trung gian hiện tại thường không phù hợp, ít nhất là cho các tựa game "AAA" lớn hơn).

Lưu ý rằng một số studio mà bạn liệt kê (đặc biệt là Crytek và Epic) đã ngừng cố gắng thống trị trực tiếp các lực lượng trong thị trường trò chơi và gần như chắc chắn kiếm được nhiều nhà cung cấp phần mềm trung gian hơn so với các nhà phát triển trò chơi.


20
Tôi sẽ nói thêm rằng đôi khi có những lợi thế cho các công nghệ được "xây dựng ở đây". Một ví dụ là cách Unity3D thay đổi EULAs của họ từng phiên bản và thêm các hạn chế lạ, chẳng hạn như không có "trò chơi đánh bạc". Khi bạn cấp phép cho một công nghệ, bạn không muốn người cấp phép quay lại và thu hồi giấy phép mà không có lý do cụ thể (điều đó xảy ra với quyền IP để tạo trò chơi được cấp phép) hoặc quyết định tính phí cho bạn để sửa lỗi cho họ.
Skrylar

Nghiêm túc mà nói, Unity nói "không có trò chơi đánh bạc"? Họ thậm chí đã từng có một trang cụ thể về cờ bạc trong phần Cộng đồng trên trang web của họ!
nhảy vào

Trang của Unity tại đây unity3d.com/industries/gamble nói rằng bạn có thể mua "Giấy phép đánh bạc Unity". Tôi chưa tìm thấy giá cho nó, nhưng có vẻ như họ vẫn cho phép bạn tạo các trò chơi để đánh bạc miễn là bạn phải trả tiền cho giấy phép đặc biệt.
Alex

1
Ngoài ra, dễ dàng hơn để bắt đầu với những gì bạn đã biết và kết thúc việc chế tạo một động cơ, thậm chí không biết động cơ là gì. Một động cơ không là gì ngoài một tập hợp các trường hợp sử dụng; Nếu bạn đang cố gắng giảm sự dư thừa, cuối cùng bạn sẽ viết một công cụ và nếu bạn đang cố gắng xây dựng trò chơi, bạn sẽ có một hệ thống nguyên khối. Rất khó để có được một công cụ trò chơi và tìm hiểu làm thế nào để nó hiển thị pixel, sau đó nhận ra rằng nó không thể làm điều đó bởi vì nó xem mọi thứ như một kết cấu. Bạn không phải đối phó với điều đó khi bạn tự viết.
Dmitry

18

như Josh Petrie đã nói :

" Không được xây dựng ở đây hội chứng ;"

Tôi cũng đang viết công cụ của riêng mình và tôi cho rằng lý do sẽ khác nhau đối với mọi nhà phát triển ngoài kia, nhưng thực tế - tôi thường không thích làm việc trong mã người khác. Tôi bị ép buộc theo nghĩa là nếu tôi cảm thấy tôi có thể tự xây dựng nó, thì không có gì phải giải quyết cho bất cứ điều gì khác .

Tôi đã thử nghiệm nhiều loại công cụ trò chơi, API kết xuất và như vậy, đáng chú ý là Ploobs, UNITY WaveEngine, XNAFinalEngine, Love, Ogre, v.v. nhiều hơn nữa ... Tôi muốn bắt đầu viết trò chơi - Tôi đã tải xuống rất nhiều và tài liệu nhập cảnh điểm ...

Tuy nhiên, vấn đề của tôi là vào thời điểm đó tôi không biết chuyện gì đang xảy ra bên dưới động cơ. Tôi muốn kiểm soát tốt, và tôi muốn một khuôn khổ mà tôi biết như mu bàn tay của tôi. Tôi đã nảy ra ý tưởng "HEY! Tôi nghĩ cách duy nhất tôi sẽ học được cách thức hoạt động của nó và hiểu nó là thử xây dựng công cụ của riêng tôi hoàn toàn và hoàn toàn từ đầu. Hầu hết lịch sử lập trình của tôi là với các giải pháp xử lý web và xử lý - đây là một trò chơi bóng hoàn toàn mới đối với tôi.

Đó là những gì tôi đã làm.

Vì vậy, tôi đã chọn thiết lập XNA vì tôi đã biết C # và bắt đầu suy nghĩ về việc tôi nên bắt đầu như thế nào hoặc ở đâu. Tôi cần một ý tưởng.

Tôi quyết định rằng, không có vấn đề gì, tôi sẽ đi thẳng vào 3D .

Làm cho các vấn đề cơ bản trở nên tuyệt vời - công cụ hàng loạt sprite, nhưng khi tôi tiến bộ, cuối cùng tôi đã phát hiện ra những rào cản và trở ngại mới - cái thực sự đầu tiên của tôi là giới hạn lô . Mục tiêu của tôi là xây dựng một trò chơi có thể kết xuất ít nhất 10000 thực thể trong chế độ xem bất cứ lúc nào.

Tôi bắt đầu một hành trình mới để thực hiện Shader Dựa Instance (và học được HLSL khi tôi ở đó), tôi đã bỏ các đối tượng Model và Effect được xây dựng của XNA để viết thay thế cho riêng mình. Tôi đã gặp khó khăn khi hiểu các luồng VBO lúc đầu; Tôi đã phá vỡ mọi thứ - Tôi đã lên mạng đặt câu hỏi về những thứ linh hoạt và giữ nó cho đến khi cuối cùng tôi hiểu GPU đang làm gì. Nó trả hết; bây giờ tôi đã có hơn hai mươi nghìn thực thể thử nghiệm phóng to xung quanh trong chế độ xem của tôi sau vài ngày gỡ lỗi VBO của tôi với PIX (dxsdk).

Bây giờ tôi đã có "một số" ý tưởng về cách hoạt động của các đường ống hoạt động, nhưng vẫn chưa được thực hiện - cuối cùng tôi đã tạo ra trạng thái trò chơi, máy ảnh, hiệu ứng bài đăng và các đối tượng thực thể của riêng mình, di chuyển khỏi Đường ống nội dung XNA bằng cách xây dựng đường ống của riêng tôi các trình tải (không thích cá nhân đối với điều XNB), đã tạo ra một chuỗi hình học phân tách trạng thái pha trộn và phân tách độ sâu phức tạp và cũng có các họa tiết và văn bản được thể hiện trong bối cảnh trò chơi.

Tôi liên tục bổ sung, sửa chữa, thay đổi và thử nghiệm điều này liên tục trong gần một năm. Cuối cùng, nó đi ra khá tốt. Bây giờ tôi đã hiểu được những gì đang diễn ra dưới mui xe, bởi vì tôi đã tạo ra nó - con tôi.

Bây giờ động cơ của tôi chủ yếu là ổn định và sắp hoàn thành. Nó không hoàn hảo: kịch bản rất tuyệt vời và GUI không tuyệt vời chút nào. Nhưng tôi vẫn yêu nó. Hàng ngàn dòng mã, tài sản và phương tiện - ẩn chứa trong kho lưu trữ git 2GB riêng tư và tất cả những vấn đề đau đầu mà tôi phải trải qua khi cố gắng thực hiện một loại phát triển mà tôi chưa từng làm trước đây. Mỗi trở ngại tôi vượt qua là một bài học kinh nghiệm - và một sự giải thoát.

Tôi rút ra gần như mọi thứ tôi muốn trong đó.

Nhưng cuối cùng - tôi quyết định đã đến lúc đặt cô ấy xuống. Tôi cảm thấy hài lòng khi tự mình viết một công cụ khổng lồ như vậy, với lời khuyên từ mạng và những người bạn chơi game khác, tôi quyết định rằng tôi sẽ làm lại từ đầu - và làm tốt hơn - bởi vì bây giờ tôi hầu như biết những gì tôi đang làm

Dự án đó vẫn nằm gọn trong repo GIT của tôi.

Lần thứ hai của tôi khi viết một công cụ mới (lần này là trên MonoGame), đang tiến triển tốt. Khi một cái gì đó bị phá vỡ, nó dễ dàng hơn để sửa chữa. Ít lộn xộn. Tôi hy vọng sẽ công khai khoe trò chơi của mình trong năm nay, bởi vì tôi có xu hướng hơi "quá" với mã của mình.

Cuối cùng, viết động cơ của riêng tôi là cách tôi học 'cách' để làm điều đó, trong khi có thể nói rằng tôi biết và hiểu chính xác mọi thành phần làm gì, và cách chúng hoạt động. Tôi thực sự ghét đọc mã của người khác, đặc biệt là đối với các dự án lớn không có giấy tờ. Tôi muốn mọi thứ tôi sử dụng được xây dựng bởi tôi.

Đây chỉ là tôi mặc dù. Tôi nghi ngờ tôi sẽ không bao giờ sử dụng một công cụ được tạo sẵn, có lẽ bởi vì tôi nghĩ việc viết các khung của riêng tôi sẽ vui hơn là ngồi và xử lý mã của người khác - toàn quyền kiểm soát.


13
Điều này đọc rất nhiều giống như một giai thoại cá nhân lan man; bạn có thể có thể chỉnh sửa nó để làm cho nó ngắn gọn hơn nhiều và nó sẽ làm cho một câu trả lời tốt hơn.
Josh

2
Đây là tất cả chắc chắn tuyệt vời cho việc học và cũng để làm cho trò chơi của bạn khi bạn có thời gian để làm mọi thứ. Khi nó thực sự chỉ là bạn. Nhưng nếu bạn muốn hợp tác với ai đó thì sao? Hoặc làm việc trong một công ty với các lập trình viên khác? Nếu ai đó muốn tham gia dự án của bạn, không có gì lạ khi họ sẽ đọc mã của bạn - đối với họ là mã của người khác .. chính là điều bạn ghét. Tôi thấy rằng đọc mã là một kỹ năng rất quan trọng quá. Không xúc phạm, tôi chắc chắn rằng bạn đã học được rất nhiều và viết một công cụ tuyệt vời - chỉ cần lưu ý rằng đó không phải là tất cả.
antont

Tôi biết điều đó, chỉ mỗi công việc tôi có liên quan đến bất kỳ loại mã nào trong bất kỳ ngôn ngữ nào, luôn luôn là độc tấu đối với tôi D;
Codie Morgan

Tôi phải nói rằng, tôi biết chính xác lý do tại sao một người tung ra công cụ / công cụ của riêng mình / bất cứ điều gì. Nhưng nó có giá (như tất cả mọi thứ) ... Tôi có cảm giác rằng tất cả các ông chủ chỉ ghét nó khi bạn không thể đọc / hiểu mã điên rồ nhất ngoài kia, vì vậy hãy tiếp tục và ném mình vào như ** * tấn mã được viết xấu được bảo trì xấu mà không có tài liệu, chỉ cần cảm nhận về nó (thế giới "thực"). Không xúc phạm.
Quonux

Đó là lý do chúng tôi, lập trình viên, không thể có những điều tốt đẹp. Bởi vì chúng tôi luôn muốn tự làm mọi thứ thay vì sử dụng các phương pháp làm việc và đáng tin cậy. Tôi có nhu cầu bắt buộc phải tự viết mọi thứ, nhưng tôi đang dần học cách tin tưởng người khác và cho đến nay điều đó làm tôi tốt hơn là xấu :)
Maurycy

15

Lý do chính tuyệt đối để viết công cụ của riêng bạn (và điều đó làm tôi ngạc nhiên rằng chưa có ai gọi nó ra) là để gỡ lỗi .

Nếu bạn đã viết một trò chơi lớn, phức tạp và có một lỗi sự cố trong đó và bạn có mã nguồn (và rất quen thuộc với mã nguồn đó nhờ vào việc đã viết nó), thì bạn có thể chỉ cần đính kèm một trình gỡ lỗi vào quá trình và tìm thấy những gì gây ra vụ tai nạn. Làm xong.

Nếu bạn đang sử dụng công cụ có sẵn trên thị trường của người khác và bạn không có mã nguồn cho công cụ đó (thông thường bạn không), thì việc gỡ lỗi bất kỳ vấn đề nào xảy ra - ngay cả trong mã của riêng bạn - sẽ xảy ra trở nên khó khăn hơn Và nếu bạn gặp phải một lỗi bên trong động cơ, bạn sẽ không thể tự giải quyết chúng. Làm thế nào bạn muốn có một tuần kể từ ngày phát hành của bạn và có ai đó phát hiện ra lỗi sự cố trong công cụ bạn đang sử dụng - một lỗi sự cố mà bạn không thể khắc phục vì nó nằm trong một công cụ độc quyền mà bạn không có mã nguồn không? Tôi đã thấy điều này xảy ra - bạn không có lựa chọn nào khác ngoài việc thực hiện một cuộc gọi hỗ trợ khẩn cấp với nhà cung cấp và hy vọng rằng họ có thể (và quan tâm đến) khắc phục sự cố cho bạn, trong khi bạn loay hoay xung quanh,

Phát triển trò chơi là khó, nhưng gỡ lỗi là thứ tự cường độ khó hơn. Trong cuốn sách của tôi, bất cứ điều gì làm cho việc phát triển trò chơi trở nên khó khăn hơn nhưng việc gỡ lỗi dễ dàng hơn là một chiến thắng ròng lớn .


3
Đây là một ưu điểm lớn mà chúng tôi đã trải nghiệm khi sử dụng công cụ nguồn mở (cocos2d-iphone). Chúng ta có thể gỡ lỗi chính xác giống như mã chúng ta đã viết. Tôi thực sự thấy rằng cách nghĩ về nguồn mở là mã của bạn. Nếu có lỗi, chúng tôi sẽ phải sửa chúng, như trong bất kỳ phần nào khác trong mã của chúng tôi ..
antont

1
Điều này có thể được nói về bất kỳ phần mềm trung gian. Mã gỡ lỗi là 80% công việc của lập trình viên và xử lý phần mềm trung gian là một vấn đề phổ biến với công nghệ chúng ta đang sử dụng ngày nay với nhiều phần mềm trung gian hơn chúng ta có thể đếm được. Học cách vượt qua đó chỉ là một phần của công việc. Nếu động cơ không bị hỏng, một cái gì đó khác mà bạn không có quyền kiểm soát sẽ. Các bộ phận ít chuyển động là một ý tưởng tốt, nhưng khi nó trở nên phức tạp như nhà phát triển trò chơi, thì dù sao bạn cũng sẽ phải đối phó với rất nhiều trong số chúng.
Tim

@Tim Tôi hoàn toàn không đồng ý - rằng một điều bên ngoài có thể hoạt động sai theo cách khó gỡ lỗi không có nghĩa là chúng ta chỉ nên nhún vai và từ bỏ chính mình để mọi thứ hoạt động sai theo cách khó gỡ lỗi. Một người rõ ràng cần phải thực hiện mọi thứ trong từng trường hợp cụ thể, nhưng một động cơ là một hệ thống lớn , nơi các lỗi khó khăn thường ẩn nấp. Tại sao bạn không muốn điều đó dưới sự kiểm soát của bạn, nếu bạn có thể đủ khả năng để tự làm điều đó?
Trevor Powell

@TrevorPowell Rõ ràng là do sự phức tạp của dự án và như bạn nói, tùy từng trường hợp cụ thể, nhưng chỉ cần phát minh lại một bánh xe (đặc biệt nếu đó là một bánh xe lớn) cần được xem xét nghiêm túc về thời gian tiết kiệm bằng cách không làm nó Middleware làm cho mọi thứ dễ dàng hơn. Là một nhà phát triển, chúng tôi tin rằng chúng tôi luôn có thể phát minh lại một giải pháp để làm cho nó tốt hơn mà không cần xem xét giải pháp đó được kết hợp tốt như thế nào. Một vài lần va chạm> tái phát minh> Giải pháp sai hoàn toàn
Tim

2
@Tim RE: "Middleware làm cho mọi thứ dễ dàng hơn", rõ ràng tôi đã có những trải nghiệm rất khác so với bạn.
Trevor Powell

9

Có những câu trả lời rất hay ở đây nhưng họ đang thiếu một điểm bổ sung quan trọng.

Nhiều động cơ có thể cấp phép ngày nay bắt đầu như các động cơ chuyên dụng .

Hãy lấy Unreal làm ví dụ vì nó rất phổ biến.

Ngày nay khi bạn nghĩ về Unreal, bạn có xu hướng nghĩ về một công cụ mà bạn cấp phép và có thể sử dụng thay vì phải tự chế tạo, nhưng điều đó không phải luôn luôn như vậy, và đã có lúc động cơ Unreal thậm chí không tồn tại như một thực thể riêng biệt.

Ngày xửa ngày xưa có một trò chơi tên là Unreal . Các nhà phát triển của nó đã quyết định xây dựng công cụ riêng của họ thay vì cấp phép cho một công cụ hiện có . Chuyển tiếp nhanh qua nhiều lần lặp và động cơ đó trở thành công cụ Unreal mà chúng ta biết ngày nay.

Vấn đề là đây là một vấn đề gà và trứng. Mỗi bit phần mềm trung gian bạn có thể cấp phép bắt đầu ở đâu đó và nó thường không bắt đầu như phần mềm trung gian (đôi khi nó thậm chí không được viết với ý định trở thành phần mềm trung gian và tình trạng hiện tại thực sự là một tai nạn ). Mọi người viết công cụ riêng của họ bởi vì cuối cùng ai đó phải viết công cụ này và công cụ chuyên dụng ngày nay có thể trở thành phần mềm trung gian có thể cấp phép.


2
Đáng chú ý, vào thời đó, khi các trò chơi như Unreal lần đầu tiên được xây dựng, đơn giản là không có lựa chọn nào khác là viết tất cả từ đầu. Chỉ vài năm gần đây, chúng ta có lựa chọn động cơ N ...
joltmode

3

Có nhiều lý do khác mà một studio có thể chọn "xây dựng" thay vì "mua" công nghệ của họ:

  • Nền tảng mới: HĐH di động mới, bảng điều khiển hoặc bộ điều khiển. Hãy suy nghĩ về bước nhảy vọt, kính google, v.v ... Việc hỗ trợ đa dạng rất khó
  • Cơ chế trò chơi mới và / hoặc trình chỉnh sửa trong trò chơi : Hãy nghĩ về FEZ, một số năm trước (2D so với 3D)
  • Thiếu các trình soạn thảo trò chơi mã nguồn mở miễn phí tốt . Thiếu tài liệu tốt về nguồn trò chơi cũ hiện có
  • Sự phát triển của các công cụ trong studio toolchain (hoặc thêm những công cụ mới)
  • Giá động cơ và cuộc chiến giấy phép

Tôi cũng đồng ý với các yêu cầu / nhu cầu cụ thể và giá cả động cơ và cuộc chiến giấy phép buộc một số hãng phim tung ra một số động cơ.

Động cơ tốt để "mua" hoặc "sử dụng" các động cơ khác là:

  • Tái sử dụng mã : một công cụ đã được sử dụng trong các trò chơi khác được thử nghiệm nhiều hơn, ổn định hơn và có thể có hầu hết các tính năng cần thiết, bắt đầu từ ngày đầu tiên.
  • Mở rộng : bạn có thể mở rộng một số công cụ nguồn mở.
  • Miễn phí : hoặc gần như miễn phí, vì ngay cả các công cụ nguồn mở miễn phí, cũng cần một số thời gian để nhà phát triển tìm hiểu.

2

Lý do lịch sử (chủ yếu).
Mà có liên quan đến giá cả.

Mỗi trò chơi bạn thấy chạy Unreal hoặc CryEngine trong những năm qua phải trả một số tiền rất lớn. Đặc biệt nếu bạn muốn lấy mã nguồn (ví dụ: bạn muốn UE, không chỉ UDK.)

Nhưng điều này đã thay đổi. Bây giờ tất cả mọi người có thể mua động cơ thậm chí lớn hơn, khi cuộc đua giá bắt đầu.
Điều đó có nghĩa...

  • Bạn sẽ thấy nhiều trò chơi hơn sử dụng cả UE4 và CryEngine.
    Mặc dù vậy, chúng sẽ không phải là trò chơi AAA như chúng đã từng.
  • Yêu cầu và nhu cầu tùy chỉnh cho từng dự án sẽ không biến mất.
    Xem công cụ Warhammer40k / COH tại Relic hoặc công cụ mà các Tướng sử dụng tại EA.
    Vì vậy, ngay cả khi bất cứ ai có thể mua các động cơ lớn hơn, họ không nhất thiết phải cung cấp một sự lựa chọn tốt hơn.
  • Có những cái khác trên thị trường. Giống như Thống nhất.
    Mọi người thích nó vì nó dễ sử dụng, hiệu suất nhanh và kho tài sản khổng lồ.
    Tất nhiên, Unity có thể triển khai đến hầu hết mọi nền tảng.

Vì vậy, vâng. Nhu cầu, giá cả trong quá khứ và như vậy.


1
Tôi sẽ không gọi Havok là "sửa đổi nhiều."
Josh

Không phải Havok chỉ là một động cơ vật lý sao?
Philipp

Đó là, và GW2 đã không lưu ý nhiều đến nó mà tôi có thể nhớ lại.
Josh

Ý bạn là (ie.: you want UE, not UDK only.)sao?
Keavon

#JoshPetrie: Xin lỗi, thành thật mà nói tôi không có kinh nghiệm ở Havok / chưa bao giờ chơi với nó. Vì vậy, tôi tình cờ thấy tập tin LICENSE của GW2 và sau đó truy cập trang wiki của nó vài ngày trước và thấy Havok. Sau đó, tôi đã có một số ký ức cũ về việc nhìn thấy "Havok" khi bắt đầu trò chơi, nơi tôi nghĩ rằng đó là động cơ. Nhưng sau đó tôi cũng nhìn lên Havok và tôi biết đó là một động cơ vật lý. tl; dr: Tôi đã trộn lẫn nhiều thứ về Havok. | | #Philipp: Nó còn hơn thế một chút, nhưng thực sự đó không phải là một công cụ trò chơi, xấu của tôi. | | #Keavon: Phải, đã sửa. Cảm ơn!
Apache

0

Còn tổ chức đội thì sao?

Đằng sau các công cụ gỡ lỗi là tài liệu & hỗ trợ, không có mã, vì cuối cùng tôi không muốn rằng nhóm xây dựng của tôi sẽ chạm vào mã của công cụ của riêng tôi. Đó có thể là một mớ hỗn độn.

Vì vậy, tôi cần một nhóm hỗ trợ để làm điều đó. Nhưng điều đó làm tăng chi phí: nhiều người hơn, nhiều địa điểm hơn, nhiều điện thoại hơn, nhiều quản trị hơn ...

Một giải pháp cho vấn đề này có thể là thuê ngoài ... cho một công ty phần mềm trung gian, giải phóng tài nguyên cho doanh nghiệp sản xuất trò chơi của tôi, tức là cho nhóm sáng tạo và nhà văn.

Đối với một công ty mới thành lập, đó không phải là một lựa chọn tồi để sử dụng và không xây dựng. Và, sau khi nhận được một khối thu nhập quan trọng, có thể, chỉ là có thể, bạn sẽ muốn xây dựng công cụ của riêng mình ...


0

tốt. cho hầu hết các trò chơi sử dụng công cụ riêng do các nhà phát triển của họ tạo ra. thường xuyên họ không thể làm mọi thứ với động cơ của bên thứ 3. vì vậy họ tự làm để phát triển trò chơi của riêng mình dễ dàng hơn. hoặc ít nhất có thể

và nhiều trò chơi sử dụng công cụ riêng của họ nói chung. làm việc tốt hơn bởi vì họ tùy chỉnh hơn và 100% phù hợp với nhiệm vụ của họ. và bản thân trò chơi cảm thấy khác biệt. nó thực sự dễ dàng để chơi một trò chơi và nói rằng đó là do. động cơ không thực hoặc bất cứ điều gì. công cụ tùy chỉnh nhiều hơn nói chung và sẽ dẫn đến một trò chơi cảm thấy độc đáo. trông độc đáo và hoạt động độc đáo và nó sẽ hoạt động tốt hơn một trò chơi được tạo ra trên một công cụ được tạo sẵn.


0

Câu trả lời của tôi khác với những câu hỏi hiện có, vì vậy tôi thêm nó vào mặc dù đã muộn:

Nếu bạn lấy ví dụ về Valve từ câu hỏi hoặc loạt Witcher, quy trình là:

  • Cấp phép cho một động cơ
  • Sửa đổi / điều chỉnh động cơ theo mục đích của bạn
  • Phát hành trò chơi và tạo ra tiền
  • Tạo công cụ riêng cho trò chơi tiếp theo

Cách tiếp cận tương tự được thực hiện bởi hầu hết tất cả các nhà phát triển hợp lý về tài chính, những người phát triển động cơ của riêng họ. Bằng cách sửa đổi một công cụ, họ xây dựng kiến ​​thức về cách một công cụ hoạt động và gặp phải các hạn chế thiết kế do động cơ được cấp phép. Cuối cùng, họ có kiến ​​thức nội bộ cần thiết để tạo ra một động cơ, tiền mặt để tài trợ cho việc tạo ra một động cơ và một dự án sẽ được hưởng lợi từ một động cơ chuyên dụng. Tại thời điểm đó, lý do để chế tạo một động cơ là: Bởi vì đó là điều thông minh để làm.


-2

giáo viên lập trình của tôi nói với chúng tôi, chỉ sử dụng API / phương thức / lớp / hàm mà bạn biết cách xây dựng

bởi vì nếu bạn không biết cách xây dựng nó và đang sử dụng cơ hội làm việc của người khác thì bạn không biết nó hoạt động như thế nào và khi bạn không biết cách thức hoạt động của một cái gì đó thì bạn sẽ dễ bị lỗi và gặp rắc rối hơn

học những điều đơn giản có thể khi kết hợp với các vấn đề lạ, huống chi là một thứ phức tạp như công cụ trò chơi, đặc biệt là khi bạn phải sử dụng công cụ trò chơi đó để chạy trò chơi của mình, điều này có thể dẫn đến nhiều kết quả và sự cố không mong muốn

và công cụ trò chơi không tuân theo mã logic hoặc bất kỳ logic nào khác khi chúng được xây dựng, chắc chắn có một số điều có thể xảy ra nhưng thực tế mọi thứ sẽ được xây dựng dựa trên sự hiểu biết và kiến ​​thức về ngôn ngữ lập trình nào đó hoặc cách một số hệ thống hoạt động

ví dụ nếu tôi chọn viết phương trình toán học, tôi có thể viết nó theo nhiều cách tôi có thể biểu diễn nó bằng đa thức, hoặc phép tính vi phân hoặc hình học cơ bản hoặc đại số hoặc bất cứ điều gì phù hợp với tôi nhưng đôi khi tôi sẽ viết theo một hình thức / định dạng nhất định vì tôi muốn để có thể điều khiển những gì dễ dàng có sẵn, chẳng hạn như nếu tôi dự định thực hiện nhiều thao tác đỉnh, tôi có thể viết mô hình toán học này bằng hình học cơ bản, tuy nhiên nếu tôi muốn thay đổi đường cong bằng cách sử dụng độ dốc, tôi có thể tập trung vào phép tính vi phân để có thể để dễ dàng thao tác với độ dốc, v.v. và tôi cũng có thể truy cập dễ dàng hơn

và đôi khi công cụ trò chơi hiện tại có thể không cho tôi sự linh hoạt của những gì tôi dự định làm hoặc thậm chí có thể nó cung cấp cho bạn tùy chọn đó nhưng rất khó để thực hiện vì công cụ trò chơi tập trung vào lực vật lý là nguồn chuyển động và thao tác chính của nó đồ vật trong game

dù sao tôi hy vọng tôi đã làm rõ những gì tôi đang cố gắng chỉ ra


6
-1 Nếu bạn làm việc trên bất kỳ dự án có quy mô đáng nể nào, bạn thực sự sẽ sử dụng chức năng / lớp mà bạn không biết nó được viết như thế nào và bạn có thể không thể tự viết một cuốn sách mà không phải nghiên cứu số lượng sách trên đề tài. Tôi không nói về những gì mọi lập trình viên nên biết, nhưng công cụ trò chơi là một dự án lớn và dự kiến ​​rằng lập trình viên X chuyên đề X không có kiến ​​thức về chủ đề Y và do đó phải sử dụng chức năng, tôi cũng không ngụ ý rằng bạn không nên biết cách sử dụng API nhưng bạn có thể không có đủ kiến ​​thức để viết API.
Concept3d

2
Giáo viên của bạn có biết làm thế nào để xây dựng một chiếc xe hoàn chỉnh từ các yếu tố hóa học từ đầu không? Hoặc anh ta lái nó giả sử nó chỉ hoạt động ;-)
Kromster nói hỗ trợ Monica

1
@ concept3d có một sự khác biệt giữa làm việc trong một dự án nơi người khác thiết kế các hàm / lớp bạn sử dụng, bởi vì thông thường nếu bạn không hiểu điều gì đó thì có thể dễ dàng giải thích, một lập trình viên sử dụng các lớp / hàm / thư viện mã / cô ấy không biết là một người ngu ngốc, ngay cả các lớp và API có sẵn công khai đi kèm với sách hướng dẫn và wiki giải thích những gì các chức năng hoặc API đó làm, chỉ mong đợi sử dụng nó mà không biết nó giống như đang cố gắng bơi vào vùng nước sâu mà không biết bơi, và thực sự không biết gì và dễ mắc lỗi
thingybingytie

@ hopjoppe5 Nếu bạn kiểm tra câu trả lời được chấp nhận, đây là những lý do duy nhất để mọi người xây dựng công nghệ của riêng họ. Rất nhiều thư viện / mã được thuê ngoài trong thế giới thực và bạn phải sử dụng nó. Đọc hướng dẫn sử dụng khác với việc biết cách thực hiện, đối với một số thuật toán, bạn thậm chí không khuyến khích tự thực hiện và nên được thực hiện bởi các chuyên gia trong chủ đề này, nếu bạn có bất kỳ kinh nghiệm thực tế nào bạn sẽ hiểu điều này. Biết tất cả mọi thứ là không thể.
Concept3d

Một trong những lý do chính cho sự trừu tượng là viết mã để những người không biết nó hoạt động như thế nào, vẫn có thể sử dụng nó. Khi làm việc trên một trò chơi lớn hơn pong, không có khả năng bạn quen thuộc với mọi đoạn mã. Và trong hầu hết các trường hợp đó là một điều tốt, bởi vì điều đó có nghĩa là bạn có thể tập trung tâm trí vào những gì bạn đang làm việc ngay bây giờ, thay vì lo lắng về cách hệ thống đầu vào có thể xử lý yêu cầu của bạn cho sự kiện "On Action Key Down".
Aidiakapi
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.