2010-06-08 70 views
8

Tôi đã thực hiện một vài trò chơi đơn giản: nhập một cấp độ, nhận được đến cùng, tiếp tục đến cấp độ tiếp theo.
Nhưng tôi vẫn tự hỏi các nhà phát triển trò chơi "thực sự" tạo trò chơi bằng một câu chuyện như thế nào.Phát triển trò chơi: Bạn tạo trò chơi câu chuyện bằng cách nào?

Dưới đây là một vài điều gì một trò chơi câu chuyện có (và nơi tôi đang tự hỏi về cách họ làm cho nó):

  • Một chuỗi các nơi người chơi có đến thăm và làm ở đó rằng, đó và cái đó.
  • Lần đầu tiên bạn nhìn thấy một anh chàng, anh ấy nói xin chào. Sau một vài giờ chơi game, anh ấy đưa cho bạn một gợi ý để đi đến một nơi cụ thể.
  • Lần đầu tiên bạn đi bộ qua cầu không có gì xảy ra, lần thứ hai: cây cầu rơi và bạn sẽ nhập một vị trí mới dưới cầu.
  • Lần đầu tiên bạn nhập một vị trí mới, bạn sẽ nhận được rất nhiều thông tin từ ví dụ: dân làng, v.v. Lần tới không có gì xảy ra

Điểm cuối cùng hơi gấp ba lần.
Nhưng, tôi không nghĩ rằng họ có một lưu file với rất nhiều phép toán và số nguyên để đựng những thứ như:

  • chơi đã lần đầu tiên ....
  • chơi đi vào thời gian mười vị trí đó
  • chơi nói chuyện cho ### thứ thời gian để người đó
  • vv

Khi tôi nói về trò chơi câu chuyện, tôi đang nghĩ đến:

  • The Legend of Zelda (tất cả các trò chơi của serie)
  • Okami

Và đây là một vài ví dụ về level-trong-level-ra trò chơi:

  • Mario
  • Braid
  • Crayon Physics

Cảm ơn

+4

"Nhưng, tôi không nghĩ rằng họ có một tệp lưu với nhiều boolean và số nguyên để giữ mọi thứ". Mục đích của một tập tin lưu là gì? Những gì bạn sẽ lưu trữ trong một tập tin lưu nếu không phải là tình trạng của thế giới của trò chơi? – JAB

+0

Danh sách được đưa ra cho thấy rằng ý nghĩ là trạng thái lưu sẽ thực sự giữ mọi hành động mà người chơi đã từng thực hiện cũng như ý nghĩa của nó đối với một ngữ cảnh cụ thể. Rõ ràng hệ thống cần phải đơn giản hơn thế, ít nhất là đối với hầu hết các trò chơi. Thành phố anh hùng trong một thời gian cảm thấy như nó đã làm chính xác rằng, tất cả như nhau - bạn sẽ có được những thành tựu hồi tố để làm những điều mà bạn thậm chí không nhớ làm. –

Trả lời

5

Thông thường, các trò chơi này sử dụng bộ sưu tập cờ để điều chỉnh hành vi của các ký tự cụ thể và đặt các phần. Điều này làm việc rất giống nhau (thường trực tiếp tương đương) với một máy trạng thái hữu hạn, đó là một cách tiếp cận chung chung và mạnh mẽ hơn một chút cho vấn đề.

  • Một FSM theo dõi "tiến bộ" của một nhiệm vụ đặc biệt - những gì công tắc được ném, những gì cuộc nói chuyện được tổ chức, vv
  • Mỗi NPC có một FSM để theo dõi "nhà nước thông tin của NPC đó - mỗi tương quan nhà nước đến một giai đoạn cụ thể trong hồ quang của NPC trong game, thường kết thúc trong tình trạng ngẫu nhiên báo giá.
  • một lưu trò chơi có thể, như một ví dụ, theo dõi tình trạng của mọi đối tượng trong vũ trụ game.

Phần quan trọng là thiết kế không chỉ các tiểu bang mà còn là các quá trình chuyển đổi để ey là dễ dàng để treo lên càng tốt.

+0

Tại thời điểm nào sẽ sử dụng FSM trở nên quá khó sử dụng?Tôi sẽ nghĩ rằng, nếu các đối tượng của bạn có vô số các thuộc tính, có thể có một điểm mà bạn kết thúc với quá nhiều trạng thái để giải quyết dễ dàng. – JAB

+0

Có nhiều cách để phá vỡ các hành vi cá nhân để ít gây ra vấn đề. Ví dụ, trong một mô hình cuộc trò chuyện, nơi bạn có một số dòng yêu cầu, bạn có thể có một số máy nhà nước mà chủ yếu là độc lập theo dõi từng dòng cụ thể. Rõ ràng bạn phải cân bằng độ phức tạp của mô hình (khả năng tương tác giữa các cốt truyện, ví dụ, đòi hỏi các máy trạng thái phức tạp hơn) với độ phức tạp của giải pháp kỹ thuật. FSM là tốt hơn cho quản lý hành vi cấp cao, tuy nhiên. Chúng tốt cho những câu chuyện, nhiệm vụ, cuộc trò chuyện, nhưng không phải là AI nói chung. –

1

Tôi nghĩ rằng bạn sẽ tìm thấy nó thay đổi từ thể loại đến thể loại nhưng khi chơi nó có lẽ chỉ diễn ra trong một cấu trúc dữ liệu trong bộ nhớ và khi lưu nó vẫn kiên trì vào tập tin lưu (chỉ cần nhìn vào kích thước của một số tập tin lưu cho các trò chơi khác nhau, tôi đã nhìn thấy đa MB lưu các tập tin).

1

Tôi chưa bao giờ làm việc như thế, nhưng tôi cho rằng cách tiếp cận chung là tải/lưu/truy vấn cấu trúc "GameState" chứa tất cả thông tin cần thiết cho trò chơi để thực hiện các hành động thích hợp.

ví dụ:

if(GameState.Player.Karma < 0 && GameState.NPCs.BillyTheInnocentLamb.KilledByPlayer) 
{ 
    GameState.NPCs.FredTheShephard.HatesPlayer == true; 
} 

Bây giờ hãy thực hiện hàng triệu lần và bạn đã có một trò chơi nhập vai.

+1

'GameState.NPCs.BillyTheInnocentLamb.Killer.equals (GameState.Player)' sẽ có ý nghĩa hơn với tôi, trừ khi bạn không muốn có mối quan hệ giữa NPC và vì vậy đừng quan tâm ai đã giết con cừu nếu nó không phải là ' t người chơi. – JAB

+0

@JAB: Ai đó có thể bị giết chỉ một lần. Và nó sẽ là người chơi trong ví dụ này. Vì vậy, tôi không thấy vấn đề là gì. –

0

Nếu bạn có thể quản lý để có một cái nhìn tại Oblivion (tuyệt vời trò chơi!), Bạn có thể thử và sử dụng Set Xây dựng của họ cho phép bạn hoàn toàn cá nhân các trò chơi bằng cách xây dựng bản đồ thêm nhiệm vụ, vv

Bằng cách sử dụng nó, bạn sẽ thấy rằng cơ chế cơ bản là những gì người khác đã nói: ví dụ bạn có một vài câu mà một NPC có thể nói, và nó sẽ nói một hay cái khác tùy thuộc vào các điều kiện nhất định. Ví dụ như bạn giỏi hay xấu, bạn giỏi thuyết phục anh ta về điều gì đó hoặc bạn giỏi hối lộ anh ta như thế nào, những món đồ cụ thể mà bạn có/không có, nhưng ngay cả những thứ như thời gian trong ngày!

Như bạn có thể thấy bất kỳ điều nào trong số này có thể dễ dàng thể hiện bằng giá trị (ví dụ: tốt/xấu có thể là giá trị từ 0 đến 100, tương tự cho kỹ năng hối lộ của bạn, v.v ...) và chỉ nhiều IFS :)

0

"Nhưng, tôi không nghĩ rằng họ có một lưu file với rất nhiều các phép toán luận và số nguyên để giữ mọi thứ"

tôi nghĩ rằng họ làm. :)

Đôi khi có thể có một cấu trúc chính thức với nó: ví dụ, nó có thể là danh sách các bộ đếm và cờ được đặt tên có thể được truy vấn từ ngôn ngữ kịch bản của trò chơi và có thể tương ứng trực tiếp với các mục trong tài liệu thiết kế. Trò chơi có thể tăng bộ đếm và lật cờ để phản hồi các sự kiện trong trò chơi và truy vấn các cờ và bộ đếm đó khi quyết định hành động nào sẽ thực hiện và toàn bộ rất nhiều tác vụ có thể được lưu dễ dàng ở định dạng nhỏ gọn.

Các vấn đề liên quan