Phát triển trò chơi trên Apple II như thế nào? [đóng cửa]


14

Tôi đã hỏi một câu hỏi tương tự về phát triển DOS cách đây một thời gian và nhận được một câu trả lời xuất sắc: chuỗi công cụ điển hình cho phát triển trò chơi DOS là gì?

Bây giờ tôi đang tự hỏi sự phát triển trò chơi như thế nào trên Apple II vào cuối những năm 70 / đầu thập niên 80. Tôi chủ yếu quan tâm đến những người đầu tiên: II và II +, nhưng tôi cũng muốn câu trả lời về IIe, v.v.

Vì vậy, đây là những câu hỏi của tôi:

Những ngôn ngữ đã được sử dụng?

Tôi đoán là trình biên dịch 6502, nhưng BASIC đã được đóng gói và có lẽ cũng được sử dụng rất nhiều. Bạn có thể nghĩ về các trò chơi phổ biến được viết bằng BASIC không? C thì sao?

Phát triển trình biên dịch 6502 như thế nào?

Tôi đã nhận thấy rằng bạn có thể nhập mã op trực tiếp nếu bạn khởi động màn hình hệ thống và thậm chí bạn có thể thực thi trình biên dịch trực tiếp với trình biên dịch mã mini. Nhưng tôi không thể tưởng tượng rằng các trò chơi được viết như thế, có biên tập viên / IDE không? Các chương trình được lưu trữ trên đĩa / băng như thế nào?

Phát triển BASIC như thế nào?

Trình thông dịch BASIC Apple II không phải là một nửa xấu, tôi đoán bạn có thể viết các chương trình đầy đủ trong đó. Nó cũng cho phép bạn TIẾT KIỆM / LOAD chương trình, tôi đoán là đĩa / băng. Nhưng không có trình soạn thảo trực quan?

Có API hay Middleware nào không?

Hoặc có cần thiết phải nói chuyện trực tiếp với phần cứng mọi lúc nếu bạn muốn vẽ một cái gì đó hoặc phát ra âm thanh? Có thư viện nào không?

Còn điều gì khác với ngày hôm nay không?

Tôi rất vui khi nghe bất kỳ sự khác biệt nào khác, như định dạng hình ảnh / âm thanh đã được sử dụng. Cho rằng thực sự không có khái niệm về các tập tin nếu tôi hiểu chính xác, tôi tự hỏi làm thế nào nó hoạt động. Bạn đã phải gõ đồ họa và âm thanh của bạn trong trình biên dịch chương trình? Làm thế nào mà làm việc trong BASIC?


Phần giới thiệu về Sách đen đồ họa của Michael Abrash được viết bởi John Carmack, và anh ta nói về việc làm đồ họa dễ dàng như thế nào - bạn chỉ cần thực hiện một lệnh vẽ và nó sẽ tự động chuyển qua. Từ những gì tôi nhớ từ khi chơi với nó trong những năm 80, bạn có thể thực hiện những cuộc gọi đó trực tiếp thông qua BASIC.
Philip

Tôi đã liên kết với điều này ở một nơi khác nhưng ... dù sao đi nữa, Jordan Mechner đã phát hành mã nguồn cho phiên bản Apple II của Prince of Persia . Điều đó có thể thú vị cho bạn!
Laurent Couvidou

Một trong những điểm đáng chú ý nhất của Apple II là đồ họa không được ánh xạ trực tiếp vào bộ nhớ; thay vào đó, hệ thống đã sử dụng một loại hệ thống xen kẽ kỳ lạ trong đó hàng tiếp theo hàng 0 trong bộ nhớ không phải là hàng 1 mà thay vào đó là hàng 64; sau đó hàng 128 theo sau đó trong bộ nhớ và chỉ sau đó hàng 1 mới xuất hiện. Đây là lý do tại sao bạn thấy các hiệu ứng tải 'ba dải' kỳ lạ trên các trò chơi Apple II.
Steven Stadnicki

Câu trả lời:


5

Tôi đã làm rất nhiều chương trình trên Apple (không chuyên nghiệp, nhưng đó là những gì tôi học được) và Applesoft BASIC và trình biên dịch, nơi nó dành cho những người có sở thích. Các ngôn ngữ khác đã có sẵn - Logo rất phổ biến, Pascal được viết ở khắp mọi nơi nhưng tôi không biết ai sử dụng nó, tôi thực sự không biết C được sử dụng trên bất kỳ nền tảng nào của Apple cho đến khi Orca C cho Apple IIGS, có Forth trình thông dịch với đồ họa kiểu rùa (hoặc gọi là kiểu Logo) cũng nổi xung quanh.

Tôi sẽ giải quyết một số câu hỏi của bạn, và sau đó là những ý tưởng cơ bản:

Bạn có thể nghĩ về các trò chơi phổ biến được viết bằng BASIC không? C thì sao?

Rất nhiều phần mềm chia sẻ được viết bằng BASIC, không chỉ Applesoft BASIC mà cả Integer BASIC (đúng như tên gọi của nó, không có số dấu phẩy động). Loạt Eamon xuất hiện trong tâm trí, nhưng tôi thực sự không thể nghĩ về nhiều người khác. Ngoài ra, rất nhiều phần mềm được viết bởi Beagle Bros. đã được thực hiện trong BASIC (chủ yếu là các tiện ích, không phải trò chơi).

Tôi tin rằng hầu hết các phần mềm thương mại đã được viết bằng trình biên dịch, mặc dù.

Nhưng tôi không thể tưởng tượng rằng các trò chơi được viết như thế, có biên tập viên / IDE không? Các chương trình được lưu trữ trên đĩa / băng như thế nào?

Tôi đã sử dụng Merlin Assembler, để gọi nó là IDE có thể kéo dài nó, nhưng nó hoạt động rất tốt. Như bạn đã nói, bạn có thể thả vào màn hình hệ thống và nhập opcodes và chạy từ đó. Merlin có một cách bạn có thể quay lại từ màn hình hệ thống (mà tôi không nhớ làm thế nào bây giờ).

Nhưng không có trình soạn thảo trực quan?

Có một công cụ của bên thứ ba làm cho môi trường Applesoft tốt hơn một chút và sẽ cho phép bạn sử dụng mũi tên của mình để cuộn quanh màn hình và thực hiện các chỉnh sửa như trình chỉnh sửa trực quan (bạn vẫn phải quay trở lại ở cuối dòng hoặc những thay đổi sẽ không còn nữa). Tôi không thể nhớ đó là gì, tôi đã sử dụng nó khá nhiều.

Hoặc có cần thiết phải nói chuyện trực tiếp với phần cứng mọi lúc nếu bạn muốn vẽ một cái gì đó hoặc phát ra âm thanh? Có thư viện nào không?

Trên Apple II + / IIe / IIc, bạn chỉ nói về phần cứng. Có một vài chương trình trong ROM bạn có thể sử dụng nhưng chúng rất hạn chế và thông thường bạn sẽ PEEK và ĐIỂM các vị trí bộ nhớ khác nhau để thay đổi các thanh ghi để làm những gì bạn muốn, ví dụ như thay đổi chế độ đồ họa, chọc 4952 để kích hoạt loa, v.v. .

Trên Apple IIGS, ROM đi kèm với một bộ thư viện tương tự như những gì Macintosh đi kèm, để thực hiện các GUI ưa thích và những gì không. Các ROM đã được cập nhật theo thời gian và nếu bạn đã tải một đĩa hệ thống sử dụng các thư viện mới hơn, chúng sẽ đọc từ đĩa thay vì ROM, khiến thời gian khởi động trở nên THỰC SỰ R SL RÀNG. Có ROM 01, 02 và 03 và 02 -> 03 là bản nâng cấp miễn phí và có bản phát hành trước ngày 01 mà họ cũng sẽ nâng cấp miễn phí lên 01.

Tôi rất vui khi nghe bất kỳ sự khác biệt nào khác, như định dạng hình ảnh / âm thanh đã được sử dụng. Cho rằng thực sự không có khái niệm về các tập tin nếu tôi hiểu chính xác, tôi tự hỏi làm thế nào nó hoạt động. Bạn đã phải gõ đồ họa và âm thanh của bạn trong trình biên dịch chương trình? Làm thế nào mà làm việc trong BASIC?

Có các tệp, tôi không chắc ý của bạn là gì và các thư mục được ProDOS hỗ trợ không kém (DOS trước đó không có nhưng vẫn có khái niệm về tệp bạn sẽ nhận ra). Tôi đã sử dụng bitmap và .pcx's. Tôi không nhớ bất kỳ tệp âm thanh nào trên sê-ri II + / IIe / IIc, nhưng đó là vì khó có thể tạo ra bất kỳ tiếng động nào lạ hơn các trò chơi video và cảnh quay. Có một số hack ngoài đó đã tạo ra âm thanh lạ mắt (đặc biệt, tôi có một đĩa chơi Gun N 'Roses), nhưng nó hầu như luôn được thực hiện theo ngữ pháp.

So với môi trường hiện đại, nó hoàn toàn nguyên thủy. Nhưng hãy nhớ rằng, không có hỗ trợ để chạy nhiều chương trình cùng một lúc, vì vậy trình biên dịch của bạn thực sự phải là trình soạn thảo của bạn - bạn thực sự không thể tranh luận về lợi ích của vi so với emacs, vì vậy bất cứ điều gì trình biên dịch của bạn cung cấp cho bạn, bạn đã học cách sử dụng. Tôi nghĩ rằng nó dễ dàng hơn nhiều so với việc sử dụng các thư viện chồng chất lên các thư viện và có rất nhiều thủ thuật nếu bạn đang làm việc cho phần cứng và biết nó là gì. Ví dụ: cách triển khai phổ biến "tạm dừng trong giây lát" là "for (int i = 0; i <1000; i ++)" (nó khác với BASIC), hiện chưa bao giờ được sử dụng, vì phần cứng quá nhanh đến nỗi bạn ' Tôi cần một số lượng lớn và thậm chí nếu không, nó sẽ được chạy trên các loại máy khác nhau, vì vậy nó sẽ là một sự tạm dừng khác nhau cho những người khác nhau (II +, IIe,

Đây là tất cả từ bộ nhớ, tôi đã không xem bất kỳ tài liệu tham khảo nào trong khi viết bài này, vì vậy tôi xin lỗi nếu bộ nhớ của tôi bị lỗi và tôi đã nói với bạn những thứ sai. Nhưng tôi hy vọng điều này mang lại cho bạn một chút hương vị và trả lời một vài câu hỏi của bạn.


4

Những ngôn ngữ đã được sử dụng?

6502 cho hầu hết, hiếm khi C (Aztek), rất nhiều BASIC, một số Pascal (Apple Pascal).

Phát triển trình biên dịch 6502 như thế nào?

Có một số công cụ lắp ráp và công cụ khá gọn gàng cho 6502: Orca / M, Merlin, cộng với những ngày sau đó, có thể phát triển trên PC và liên kết nối tiếp với Apple để gỡ lỗi từ xa. Chúng ta đừng quên các tiện ích Beagle Bros. Chỉnh sửa + biên dịch + chạy, thế giới không bao giờ thay đổi ;-)

Phát triển BASIC như thế nào?

Không có trình soạn thảo trực quan, chỉ có bảng điều khiển cho phép bạn tương tác với bộ đệm BASIC ngay từ đầu. Tuy nhiên, Beagle Bros đã có một vài tiện ích kỳ diệu khiến hầu hết nỗi đau biến mất. Và sau đó, có các shell ít nhất sẽ hoạt động như một trình soạn thảo dựa trên dòng cho bài viết của bạn. Có một công cụ (Expediter 2) có thể đưa BASIC của bạn xuống một nhị phân lắp ráp chạy nhanh hơn nhiều (chuyến đi một chiều).

Có API hay Middleware nào không?

Có một số, nhưng chủ yếu là trong phạm vi rất chặt chẽ, không có gì giống như những gì bạn gọi là SDK ngày hôm nay. Hãy trung thực, trong 48K bạn không thể mua API mục đích chung. Trong những ngày sau đó, có hai hoặc ba SDK mục đích cụ thể xuất hiện cho các trò chơi phiêu lưu nhấp chuột, trò chơi xếp gạch,

Còn điều gì khác với ngày hôm nay không?

Tất cả mọi thứ và không có gì. Thực tiễn vẫn như cũ, các công cụ đã tốt hơn.


-1

Trình thông dịch cơ bản gốc: Khi bạn viết chương trình, bạn nên đánh số từng dòng, nhập mã của bạn và nhấn enter. Một chương trình cơ bản trông giống như: 10: TRANG 20: IN "HELLO WORLD"

Trong ví dụ này TRANG CHỦ xóa màn hình, nếu bạn cần, bạn nên nhập một dòng trung gian, từ.:

15: IN "LỚN"

Khi xuất ra, màn hình sẽ hiển thị rõ ràng, hiển thị GREETING HELLO WORLD

lệnh LIST hiển thị mã của bạn (tạm dừng whitout!) Không có capslock trong một số chế độ (chỉ chữ hoa), không có ký tự đặc biệt. Không có trò chơi chuyên nghiệp nào được viết bằng BASIC, vì hiệu suất, bạn thực sự có thể thấy chương trình của mình vẽ các dòng.

Chỉ cần hiệu ứng âm thanh, thật khó để phát nhạc, chúng tôi chỉ có một loa với MỘT bit (không đùa) thay đổi trạng thái 4952, vâng, bạn nên kiểm soát ngay cả tần số và nó ở dạng sóng vuông.

để đi đến lắp ráp GỌI -151

bạn phải mã bằng tay trên màn hình không có IDE nhập địa chỉ và mã của bạn (HEXA)

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.