Apple II의 게임 개발은 어땠습니까? [닫은]


14

얼마 전 DOS 개발에 대해 비슷한 질문을했고 DOS 게임 개발의 일반적인 툴체인은 무엇입니까?

이제 70 년대 후반 / 80 년대 초 Apple II의 게임 개발이 어떤지 궁금합니다. 나는 주로 II와 II +에 관심이 있지만 IIe 등에 대한 답변을 원합니다.

내 질문은 다음과 같습니다.

어떤 언어가 사용 되었습니까?

6502 어셈블러를 가정하지만 BASIC은 번들로 제공되어 아마도 많이 사용되었을 것입니다. BASIC으로 작성된 인기있는 게임을 생각할 수 있습니까? C는 어때?

6502 어셈블러 개발은 어떻습니까?

시스템 모니터를 시작하면 직접 op 코드를 입력 할 수 있으며 미니 어셈블러로 직접 어셈블러를 실행할 수도 있습니다. 그러나 게임이 그런 식으로 작성되었다고 상상할 수 없습니다. 편집자 / IDE가 있습니까? 프로그램은 디스크 / 테이프에 어떻게 저장 되었습니까?

기본 개발은 어땠습니까?

Apple II BASIC 인터프리터는 나쁘지 않습니다. 전체 프로그램을 작성할 수 있다고 생각합니다. 또한 디스크 / 테이프를 사용한다고 가정하여 프로그램을 저장 /로드 할 수 있습니다. 그러나 시각적 편집기가 없었습니까?

API 또는 미들웨어가 있습니까?

아니면 무언가를 그리거나 소리를 재생하려면 항상 하드웨어와 직접 대화해야합니까? 도서관이 전혀 없었습니까?

오늘과 다른 점이 있습니까?

사용 된 이미지 / 오디오 형식과 같은 다른 차이점을 듣고 기쁩니다. 파일을 올바르게 이해하면 실제로 파일 개념이 없다는 것을 감안할 때 어떻게 작동했는지 궁금합니다. 그래픽과 사운드를 어셈블러에 입력해야 했습니까? BASIC에서 어떻게 작동 했습니까?


Michael Abrash의 Graphics Black Book에 대한 소개는 John Carmack이 작성했으며 그래픽이 얼마나 쉬운 지에 대해 이야기합니다. 그리기 명령을 수행하면 자동으로 전환됩니다. 80 년대에 연주 한 것을 기억하면서 BASIC을 통해 직접 전화를 걸 수있었습니다.
Philip

나는 이미 다른 곳에서 이것을 연결했지만 어쨌든 Jordan Mechner 는 Apple II 버전의 Prince of Persia의 소스 코드를 공개 했습니다 . 그것은 당신에게 흥미로울 것입니다!
Laurent Couvidou

Apple II의 가장 눈에 띄는 점 중 하나는 그래픽이 직접 메모리 매핑되지 않았다는 것입니다. 대신, 시스템은 이상한 종류의 인터리브 시스템을 사용했는데, 메모리에서 행 0 다음에 오는 행은 행 1이 아니라 대신 행 64였습니다. 그런 다음 128 행은 메모리에서 그 다음에 행 1이 나타납니다. 이것이 Apple II 게임에서 이상한 '트라이 밴드'로딩 효과를 보는 이유입니다.
Steven Stadnicki

답변:


5

나는 애플 (전문적으로는 아니지만 내가 배운 것)과 많은 사람들에게 프로그래밍을했습니다. 애플 소프트 베이직과 어셈블러는 애호가를위한 곳입니다. 다른 언어도 사용 가능-로고는 일반적이며 파스칼은 모든 곳에서 작성되었지만 아무도 그것을 사용하는 사람을 알지 못했으며, Apple IIGS의 Orca C, Forth가있을 때까지 어떤 Apple 플랫폼에서도 C가 사용되는 것을 알지 못했습니다. 거북이 스타일 (또는 로고 스타일이라고 부름) 그래픽이있는 인터프리터도 주위에 떠 있습니다.

몇 가지 질문과 기본 아이디어를 다룰 것입니다.

BASIC으로 작성된 인기있는 게임을 생각할 수 있습니까? C는 어때?

Applesoft BASIC뿐만 아니라 Integer BASIC (이름에서 알 수 있듯이 부동 소수점 숫자도 없음)도 많은 쉐어웨어가 BASIC으로 작성되었습니다. Eamon 시리즈는 생각 나지만 실제로는 다른 많은 것을 생각할 수 없습니다. 또한 Beagle Bros.가 작성한 많은 소프트웨어는 BASIC (대부분 게임이 아닌 유틸리티)에서 수행되었습니다.

그래도 대부분의 상용 소프트웨어는 어셈블러로 작성되었다고 생각합니다.

그러나 게임이 그런 식으로 작성되었다고 상상할 수 없습니다. 편집자 / IDE가 있습니까? 프로그램은 디스크 / 테이프에 어떻게 저장 되었습니까?

나는 Merlin Assembler를 사용하여 IDE가 그것을 확장하고 있다고 부를 수 있었지만 잘 작동했습니다. 당신이 말했듯이 시스템 모니터에 드롭하고 opcode를 입력하고 거기에서 실행할 수 있습니다. 멀린은 시스템 모니터에서 돌아올 수있는 방법을 가지고있었습니다 (지금은 기억이 나지 않습니다).

그러나 시각적 편집기가 없었습니까?

Applesoft 환경을 조금 더 좋게 만드는 타사 도구가 있었으며 화살표를 사용하여 화면을 스크롤하고 시각적 편집기처럼 편집 할 수 있습니다 (여전히 줄 끝에서 리턴을 누르거나 변경 사항이 적용되지 않습니다). 나는 그것이 무엇인지 기억할 수 없다, 나는 그것을 조금 사용했다.

아니면 무언가를 그리거나 소리를 재생하려면 항상 하드웨어와 직접 대화해야합니까? 도서관이 전혀 없었습니까?

Apple II + / IIe / IIc에서는 거의 하드웨어와 대화하고있었습니다. ROM에 사용할 수있는 몇 가지 프로그램이 있지만 매우 제한적이며 일반적으로 그래픽 모드를 변경하거나 스피커를 트리거하기 위해 49152를 찌르는 등 원하는대로 메모리를 변경하기 위해 레지스터를 변경하기 위해 다양한 메모리 위치를 PEEK 및 POKE합니다. .

Apple IIGS에서 ROM에는 멋진 GUI를 구현하기 위해 Macintosh와 유사한 라이브러리가 포함되어 있습니다. ROM은 시간이 지남에 따라 업데이트되었으며 최신 라이브러리를 사용하는 시스템 디스크를로드 한 경우 ROM이 아닌 디스크에서 읽히므로 부팅 시간이 매우 느려집니다. ROM 01, 02 및 03이 있었고 02-> 03은 무료 업그레이드였으며 01 이전에는 01로 무료 업그레이드를 할 수있는 릴리스가있었습니다.

사용 된 이미지 / 오디오 형식과 같은 다른 차이점을 듣고 기쁩니다. 파일을 올바르게 이해하면 실제로 파일 개념이 없다는 것을 감안할 때 어떻게 작동했는지 궁금합니다. 그래픽과 사운드를 어셈블러에 입력해야 했습니까? BASIC에서 어떻게 작동 했습니까?

파일이 있었고 그 의미가 무엇인지 잘 모르겠으며 ProDOS는 디렉토리를 지원했습니다 (이전의 DOS는 인식하지 못한 파일의 개념을 가지고 있었음). 비트 맵과 .pcx를 사용했습니다. II + / IIe / IIc 시리즈의 오디오 파일은 기억 나지 않지만 비디오 게임 블립 및 루프보다 잡음을 더 멋지게 만들기가 어렵 기 때문입니다. 멋진 소리를내는 일부 해킹이 있었지만 (특히 Gun N 'Roses를 연주 한 디스크가 있음) 거의 항상 문법적으로 이루어졌습니다.

현대 환경과 비교했을 때, 그것은 완전히 원시적이었습니다. 그러나 동시에 여러 프로그램을 실행할 수있는 지원이 없었기 때문에 컴파일러도 효과적으로 편집기 여야했습니다. vi와 emacs의 이점을 실제로 논쟁 할 수는 없었으므로 컴파일러가 제공 한 모든 내용, 당신은 사용법을 배웠습니다. 라이브러리에 쌓여있는 라이브러리를 사용하는 것보다 훨씬 쉽다고 생각하며 하드웨어 작업을하고 그것이 무엇인지 알고 있다면 많은 트릭이 있습니다. 예를 들어, "일시 중지"의 일반적인 구현은 "for (int i = 0; i <1000; i ++)"(기본과는 다릅니다)였습니다. 하드웨어는 너무 빠르기 때문에 지금은 사용되지 않습니다. d는 엄청난 수의 숫자가 필요하지만, 그렇지 않은 경우에도 다른 종류의 컴퓨터에서 실행되므로 다른 사람들 (II +, IIe,

이것은 모두 메모리에서 가져온 것이므로이 글을 쓰는 동안 참조를 보지 않았기 때문에 내 메모리에 결함이 있고 사과하지 않은 경우 사과드립니다. 그러나 나는 이것이 당신에게 약간의 맛을주고 몇 가지 질문에 대답하기를 바랍니다.


4

어떤 언어가 사용 되었습니까?

6502 대부분, 거의 C (아즈텍), 많은 베이직, 일부 파스칼 (애플 파스칼).

6502 어셈블러 개발은 어떻습니까?

6502 : Orca / M, Merlin에 대한 깔끔한 어셈블러 및 도구가 있었으며, 나중에 PC에서 개발하여 원격 디버그를위한 Apple의 직렬 링크를 개발할 수있었습니다. 비글 브라더스 유틸리티를 잊지 마십시오. 편집 + 컴파일 + 실행, 세상은 절대 변하지 않습니다 ;-)

기본 개발은 어땠습니까?

시각적 편집기는 없으며 처음에는 기본 버퍼와 상호 작용할 수있는 콘솔입니다. 그러나 Beagle Bros.는 고통의 대부분을 없애는 몇 가지 마법 유틸리티를 가지고있었습니다. 그리고 나중에 여러분의 글쓰기를위한 줄 기반 편집기처럼 행동 할 쉘이있었습니다. BASIC을 훨씬 빠르게 실행되는 (일방 여행) 어셈블리 바이너리로 크래킹 할 수있는 도구 (Expediter 2)가있었습니다.

API 또는 미들웨어가 있습니까?

오늘날 SDK라고 부르는 것과는 거리가 좁지 만 범위가 매우 좁았습니다. 솔직히 말해서, 48K에서는 범용 API를 감당할 수 없습니다. 후기에는 클릭 어드벤처 게임, 타일 기반 게임,

오늘과 다른 점이 있습니까?

모든 것과 아무것도. 연습은 동일하게 유지되고 도구가 향상되었습니다.


-1

Native Basic Interpreter : 프로그램을 작성할 때 각 줄에 번호를 매기고 코드를 입력 한 후 Enter 키를 누르십시오. 기본 프로그램은 다음과 같습니다. 10 : HOME 20 : "HELLO WORLD"인쇄

이 예에서 HOME 화면을 지우십시오. 필요한 경우 중개 회선을 입력해야합니다.

15 : "인사말"인쇄

출력으로 화면을 비워야합니다. GREETINGS HELLO WORLD

LIST 명령은 코드를 보여줍니다 (whitout pause!) 일부 모드 (대문자 만)에는 대문자가없고 특수 문자는 없습니다. BASIC으로 작성된 프로 게임은 없었습니다. 성능 때문에 실제로 프로그램이 선을 그리는 것을 볼 수있었습니다.

그냥 음향 효과, 음악을 연주하기가 어려웠습니다. 우리는 1 비트 (농담 없음) peek 49152 스피커로 상태를 변경했습니다. 예, 주파수조차 제어해야하며 구형파 형태였습니다.

어셈블리 전화 -151로 이동

IDE에서 주소와 코드 (HEXA)를 입력하지 않아도됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.