2011-07-11 25 views
6

Tôi đang trong giai đoạn thiết kế để tạo trò chơi "lập trình robot" 3d. Lấy cảm hứng từ các trò chơi như Colobot, Robot Odyssey, Cholo, v.v.Sử dụng máy ảo bên trong trò chơi?

Tôi muốn mọi rô bốt trong game có môi trường/hệ điều hành/máy ảo riêng biệt giống như trong cuộc sống thực. Mỗi môi trường nên được sandboxed để nó là địa phương cho robot về cách nó tương tác với phần còn lại của trò chơi.

Ban đầu tôi sẽ triển khai VM HACK như được mô tả trong cuốn sách "Các yếu tố của hệ thống máy tính", nhưng sau đó tò mò muốn xem có giải pháp nào tốt hơn về hiệu suất cho phong cách trò chơi này hay không.

Vì vậy, câu hỏi của tôi là: Có kiến ​​trúc máy ảo đã tồn tại để phục vụ mục đích của tôi tốt không?

P.s. Ngôn ngữ và công cụ trò chơi được sử dụng chưa được quyết định, nhưng có thể là C# hoặc smalltalk.

+0

Sử dụng máy ảo Smalltalk của bản cài đặt của bạn và có các nút giao tiếp qua IP không? – Marcin

+0

Tôi đang nghiên cứu ý tưởng này với HydraVM smalltalk. Tôi gặp phải một số vấn đề, và sau đó quên mất toàn bộ vấn đề. Tôi sẽ xem liệu tôi có thể tìm ra điều gì đã xảy ra không. – zenchess

+2

Vâng, tôi quản lý để tải 11 hình ảnh smalltalk trong HydraVM bên cạnh ... tiếc là hình ảnh bị rơi trên cố gắng để tải 12th. 200 MB bộ nhớ đã được sử dụng. Thời gian để xem xét thu nhỏ những hình ảnh đó. :) – zenchess

Trả lời

3

Hmm .. sử dụng hình ảnh riêng biệt trên mỗi rô-bốt là một chút IMO quá mức. Tôi không biết các yêu cầu của dự án của bạn, nhưng tại sao không chạy tất cả các rô bốt trong cùng một hình ảnh bằng cách sử dụng Quy trình riêng? (Bạn phải biết rằng smalltalk hỗ trợ mô hình luồng màu xanh lá cây).

Giới thiệu về HydraVM: ban đầu đó là bằng chứng về dự án khái niệm. Đáng ngạc nhiên là nó hoạt động tốt và khá ổn định. Nhưng để phát triển hơn nữa, bạn cần một dự án thực sự yêu cầu kiến ​​trúc như vậy. Và thẳng thắn, cơ sở hạ tầng cấp độ ngôn ngữ smalltalk đã không sẵn sàng cho nó vào lúc đó (tôi sẽ không nói rằng nó đã sẵn sàng ngày hôm nay;) Vì để tận dụng điều đó, bạn cần một công cụ tốt hơn như gỡ lỗi từ xa, duyệt từ xa, hình ảnh từ xa quản lý, v.v.

Tôi thực sự ngạc nhiên khi biết rằng bạn có thể chạy 11 hình ảnh song song. Thật tuyệt vời. Vì tôi chưa bao giờ cố gắng chạy nhiều hơn 2 :) Vấn đề với nhiều hình ảnh như vậy, bạn cần một hệ thống quản lý bộ nhớ khác. Và một trong đó được sử dụng trong Hydra được thừa hưởng từ máy ảo Squeak và không thực sự phù hợp với thiết kế như vậy.

+0

Vì vậy, tôi không biết nếu chạy các robot trong cùng một hình ảnh bằng cách sử dụng các quy trình riêng biệt sẽ làm việc cho ý tưởng trò chơi của tôi. Vấn đề là, tôi muốn người dùng có thể lập trình robot, tức là mỗi robot có một 'hệ điều hành' cơ bản. Lý tưởng nhất là họ có thể lập trình robot trong smalltalk, nhưng mọi ngôn ngữ kịch bản sẽ tốt cho tôi. Lý do tôi không nghĩ rằng quy trình sẽ hoạt động trong một hình ảnh là nếu bạn viết kịch bản cho một rô-bốt, tập lệnh này sẽ không có quyền truy cập vào bất kỳ rô bốt nào khác trong hình ảnh hoặc có thể thay đổi trạng thái trò chơi có thể cho robot đó. – zenchess

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