การพัฒนาเกมบน Apple II เป็นอย่างไร [ปิด]


14

ฉันถามคำถามที่คล้ายกันเกี่ยวกับการพัฒนา DOS เมื่อไม่นานมานี้และได้รับคำตอบที่ยอดเยี่ยม: Toolchain ทั่วไปสำหรับการพัฒนาเกม DOS คืออะไร

ตอนนี้ฉันสงสัยว่าการพัฒนาเกมเป็นอย่างไรใน Apple II ในช่วงปลายยุค 70 / ต้นยุค 80 ฉันสนใจส่วนใหญ่ในช่วงต้น: II และ II + แต่ฉันต้องการคำตอบเกี่ยวกับ IIe ฯลฯ ด้วย

ดังนั้นนี่คือคำถามของฉัน:

ใช้ภาษาอะไร

ฉันคิดว่าแอสเซมเบลอร์ 6502 แต่ BASIC รวมอยู่ด้วยและอาจใช้บ่อยเช่นกัน คุณนึกถึงเกมยอดนิยมที่เขียนในภาษาเบสิกได้ไหม? แล้ว C ล่ะ

การพัฒนาแอสเซมเบลอร์ 6502 เป็นอย่างไร

ฉันสังเกตเห็นว่าคุณสามารถป้อนรหัส op โดยตรงถ้าคุณเริ่มการตรวจสอบระบบและคุณยังสามารถเรียกใช้แอสเซมเบลอร์โดยตรงด้วยแอสเซมบลีมินิ แต่ฉันไม่สามารถจินตนาการได้ว่าเกมถูกเขียนขึ้นเช่นนั้นมีบรรณาธิการ / IDE หรือไม่ โปรแกรมถูกเก็บไว้ในดิสก์ / เทปอย่างไร

การพัฒนาพื้นฐานเป็นอย่างไร

ล่ามพื้นฐานของ Apple II นั้นไม่เลวเลยนะผมว่าคุณสามารถเขียนโปรแกรมแบบเต็ม ๆ ได้ นอกจากนี้ยังช่วยให้คุณสามารถบันทึกโปรแกรม / โหลดฉันเข้าใจว่าดิสก์ / เทป แต่ไม่มีโปรแกรมแก้ไขภาพ?

มี API หรือ Middleware หรือไม่

หรือจำเป็นต้องคุยกับฮาร์ดแวร์โดยตรงตลอดเวลาหากคุณต้องการวาดบางสิ่งหรือเล่นเสียง? มีห้องสมุดใด ๆ บ้างไหม?

มีอะไรแตกต่างจากวันนี้บ้าง

ฉันยินดีที่จะรับฟังความแตกต่างอื่น ๆ เช่นรูปแบบภาพ / เสียงที่ใช้ เนื่องจากไม่มีแนวคิดเรื่องไฟล์ถ้าฉันเข้าใจอย่างถูกต้องฉันจึงสงสัยว่ามันทำงานอย่างไร คุณต้องพิมพ์กราฟิกและเสียงในแอสเซมเบลอร์หรือไม่? มันทำงานอย่างไรใน BASIC


คำนำของสมุดรายชื่อหนังสือกราฟิกสีดำของ Michael Abrash เขียนโดย John Carmack และเขาพูดถึงความง่ายในการทำกราฟิกคุณเพียงแค่ใช้คำสั่งวาดและมันจะสลับไปมาโดยอัตโนมัติ จากสิ่งที่ฉันจำได้จากการเล่นกับมันใน 80 คุณสามารถโทรเหล่านั้นได้โดยตรงผ่าน BASIC
ฟิลิป

ฉันได้เชื่อมโยงกับที่ไหนสักแห่งอื่น แต่ ... anyways จอร์แดน Mechner ปล่อยออกมารหัสที่มาสำหรับรุ่นแอปเปิ้ลที่สองของเจ้าชายแห่งเปอร์เซีย นั่นอาจจะน่าสนใจสำหรับคุณ!
Laurent Couvidou

หนึ่งในองค์ประกอบที่โดดเด่นที่สุดของ Apple II คือกราฟิกไม่ได้ถูกแมปหน่วยความจำโดยตรง แทนระบบใช้ระบบอินเตอร์เล็ดแบบแปลก ๆ โดยที่แถวที่ตามหลังแถว 0 ในหน่วยความจำไม่ใช่แถวที่ 1 แต่เป็นแถว 64 แทน จากนั้นแถว 128 ตามด้วยหน่วยความจำและหลังจากนั้นแถว 1 จะปรากฏขึ้น นี่คือเหตุผลที่คุณเห็นเอฟเฟกต์การโหลดแบบ 'แบนด์แบนด์' แปลก ๆ ในเกม Apple II
Steven Stadnicki

คำตอบ:


5

ฉันได้เขียนโปรแกรมจำนวนมากบน Apple (ไม่ใช่มืออาชีพ แต่เป็นสิ่งที่ฉันเรียนรู้) และ Applesoft BASIC และแอสเซมเบลอร์ที่ซึ่งมันเกี่ยวกับที่สำหรับนักอดิเรก มีภาษาอื่นให้ใช้ - โลโก้เป็นเรื่องธรรมดาปาสคาลเขียนเกี่ยวกับทุกที่ แต่ฉันรู้ว่าไม่มีใครใช้มันฉันไม่ได้ตระหนักถึงการใช้ C บนแพลตฟอร์ม Apple จนกระทั่ง Orca C สำหรับ Apple IIGS มี Forth อยู่ ล่ามที่มีกราฟิกแบบเต่า (หรือเรียกว่ากราฟิกแบบโลโก้) ลอยไปมาด้วย

ฉันจะตอบคำถามของคุณแล้วคิดพื้นฐาน:

คุณนึกถึงเกมยอดนิยมที่เขียนในภาษาเบสิกได้ไหม? แล้ว C ล่ะ

แชร์แวร์จำนวนมากเขียนด้วยภาษา BASIC ไม่เพียง แต่ Applesoft BASIC เท่านั้น แต่ยังเป็น Integer BASIC (ซึ่งชื่อมีความหมายว่าไม่มีเลขทศนิยม) ซีรีย์ Eamon มาถึงใจ แต่ฉันไม่สามารถคิดอื่น ๆ อีกมากมาย นอกจากนี้ซอฟต์แวร์จำนวนมากที่เขียนโดย Beagle Bros. ยังทำในภาษาเบสิก (ส่วนใหญ่เป็นยูทิลิตี้ไม่ใช่เกม)

ฉันเชื่อว่าซอฟต์แวร์เชิงพาณิชย์ส่วนใหญ่เขียนด้วยแอสเซมเบลอร์

แต่ฉันไม่สามารถจินตนาการได้ว่าเกมถูกเขียนขึ้นเช่นนั้นมีบรรณาธิการ / IDE หรือไม่ โปรแกรมถูกเก็บไว้ในดิสก์ / เทปอย่างไร

ฉันใช้เมอร์ลินแอสเซมเบลอร์เพื่อเรียกว่า IDE อาจยืดได้ แต่ก็ใช้ได้ดี อย่างที่คุณบอกว่าคุณสามารถไปที่การตรวจสอบระบบและป้อน opcodes และเรียกใช้จากที่นั่น เมอร์ลินมีวิธีที่คุณสามารถย้อนกลับไปได้จากการตรวจสอบระบบ (ซึ่งฉันจำไม่ได้ว่าตอนนี้)

แต่ไม่มีโปรแกรมแก้ไขภาพ?

มีเครื่องมือของบุคคลที่สามที่ทำให้สภาพแวดล้อมของ Applesoft ดีขึ้นเล็กน้อยและจะช่วยให้คุณใช้ลูกศรของคุณเพื่อเลื่อนดูหน้าจอและทำการแก้ไขเช่นโปรแกรมแก้ไขภาพ (คุณยังต้องย้อนกลับเมื่อสิ้นสุดบรรทัดหรือ การเปลี่ยนแปลงจะไม่เกิดขึ้น) ฉันจำไม่ได้ว่ามันคืออะไรฉันใช้มันไม่น้อย

หรือจำเป็นต้องคุยกับฮาร์ดแวร์โดยตรงตลอดเวลาหากคุณต้องการวาดบางสิ่งหรือเล่นเสียง? มีห้องสมุดใด ๆ บ้างไหม?

ใน Apple II + / IIe / IIc คุณเกือบจะแค่พูดคุยกับฮาร์ดแวร์ มีโปรแกรมอยู่สองสามโปรแกรมใน ROM ที่คุณสามารถใช้ได้ แต่มันมีข้อ จำกัด มากและโดยปกติคุณจะต้องการ PEEK และ POKE ตำแหน่งหน่วยความจำต่าง ๆ เพื่อเปลี่ยนการลงทะเบียนเพื่อทำสิ่งที่คุณต้องการตัวอย่างเช่นเปลี่ยนโหมดกราฟิกโผล่ 49152 เพื่อกระตุ้นลำโพง ฯลฯ .

ใน Apple IIGS นั้น ROM มาพร้อมกับชุดของไลบรารีที่คล้ายกับที่ Macintosh มาด้วยสำหรับการทำ GUI ที่สวยงามและอะไรที่ไม่ ROM ได้รับการอัปเดตเมื่อเวลาผ่านไปและหากคุณโหลดดิสก์ระบบที่ใช้ไลบรารีรุ่นใหม่พวกเขาจะอ่านจากดิสก์มากกว่า ROM ทำให้เวลาในการบู๊ตช้าลงจริง ๆ มี ROM 01, 02 และ 03 และ 02 -> 03 เป็นการอัพเกรดฟรีและมีการเปิดตัวก่อน 01 ซึ่งพวกเขาจะทำการอัปเกรดฟรีเป็น 01 เช่นกัน

ฉันยินดีที่จะรับฟังความแตกต่างอื่น ๆ เช่นรูปแบบภาพ / เสียงที่ใช้ เนื่องจากไม่มีแนวคิดเรื่องไฟล์ถ้าฉันเข้าใจอย่างถูกต้องฉันจึงสงสัยว่ามันทำงานอย่างไร คุณต้องพิมพ์กราฟิกและเสียงในแอสเซมเบลอร์หรือไม่? มันทำงานอย่างไรใน BASIC

มีไฟล์ฉันไม่แน่ใจว่าคุณหมายถึงอะไรและไดเรกทอรีที่รองรับ ProDOS ไม่น้อย (DOS รุ่นก่อนหน้าไม่ได้ แต่ยังมีแนวคิดของไฟล์ที่คุณจำได้) ฉันใช้บิตแมปและ. pcx ของ ฉันจำไฟล์เสียงใด ๆ ในซีรีส์ II + / IIe / IIc ไม่ได้ แต่นั่นเป็นเพราะมันยากที่จะทำเสียงที่น่าสนใจกว่าการทำวิดีโอเกมและบล็อก มีบางแฮ็กที่ทำเสียงแปลก ๆ (โดยเฉพาะฉันมีดิสก์ที่เล่น Gun N 'Roses) แต่มันก็มักจะทำทางไวยากรณ์

เมื่อเทียบกับสภาพแวดล้อมที่ทันสมัยมันเป็นแบบดั้งเดิมอย่างจริงจัง แต่จำไว้ว่าไม่มีการสนับสนุนให้เรียกใช้หลาย ๆ โปรแกรมในเวลาเดียวกันดังนั้นคอมไพเลอร์ของคุณจะต้องเป็นบรรณาธิการของคุณอย่างมีประสิทธิภาพเช่นกัน - คุณไม่สามารถโต้แย้งข้อดีของ vi vs. emacs ได้ดังนั้นสิ่งที่คอมไพเลอร์ของคุณมอบให้คุณ คุณเรียนรู้ที่จะใช้ ฉันคิดว่ามันง่ายกว่าการใช้ห้องสมุดที่ซ้อนอยู่บนห้องสมุดและมีกลอุบายมากมายถ้าคุณทำงานกับฮาร์ดแวร์และรู้ว่ามันคืออะไร ตัวอย่างเช่นการใช้งานร่วมกันของ "หยุดชั่วขณะ" คือ "สำหรับ (int i = 0; i <1,000; i ++)" (มันแตกต่างกันในภาษาเบสิก) ซึ่งไม่เคยใช้ตอนนี้เพราะฮาร์ดแวร์เร็วจนคุณ ต้องมีจำนวนมากและแม้ว่ามันจะไม่เป็นเช่นนั้นมันก็จะถูกเรียกใช้บนเครื่องที่แตกต่างกันดังนั้นมันจะเป็นการหยุดที่แตกต่างกันสำหรับคนอื่น (II +, IIe,

ทั้งหมดนี้มาจากความทรงจำฉันไม่ได้ดูข้อมูลอ้างอิงใด ๆ ในขณะที่เขียนสิ่งนี้ดังนั้นฉันจึงขออภัยถ้าหน่วยความจำของฉันมีข้อผิดพลาดและฉันบอกสิ่งที่คุณผิด แต่ฉันหวังว่าสิ่งนี้จะให้รสชาติและตอบคำถามของคุณเล็กน้อย


4

ใช้ภาษาอะไร

6502 สำหรับส่วนใหญ่ไม่ค่อย C (Aztek) พื้นฐานจำนวนมากบาง Pascal (Apple Pascal)

การพัฒนาแอสเซมเบลอร์ 6502 เป็นอย่างไร

มีแอสเซมบลีและเครื่องมือที่ค่อนข้างเรียบร้อยสำหรับ 6502: Orca / M, Merlin และในอีกไม่กี่วันต่อมามันก็เป็นไปได้ที่จะพัฒนาบนพีซีและเชื่อมโยงอนุกรมกับ Apple เพื่อดีบักแบบรีโมท อย่าลืมสาธารณูปโภค Beagle Bros. แก้ไข + คอมไพล์ + รันโลกไม่เคยเปลี่ยนแปลง ;-)

การพัฒนาพื้นฐานเป็นอย่างไร

ไม่มีโปรแกรมแก้ไขภาพเพียงคอนโซลที่ให้คุณโต้ตอบกับบัฟเฟอร์ BASIC ในตอนแรก อย่างไรก็ตาม Beagle Bros. มียูทิลิตี้เวทมนต์คู่ที่ทำให้ความเจ็บปวดส่วนใหญ่หายไป และต่อมาก็มีกระสุนที่อย่างน้อยจะทำหน้าที่เหมือนเครื่องมือแก้ไขบรรทัดสำหรับการเขียนของคุณ มีเครื่องมือ (Expediter 2) ที่สามารถกระทืบ BASIC ของคุณลงไปสู่ไบนารีแอสเซมบลีที่วิ่งเร็วกว่ามาก (เที่ยวเดียว)

มี API หรือ Middleware หรือไม่

มีบางอย่าง แต่ส่วนใหญ่อยู่ในขอบเขตที่แน่นมากไม่มีอะไรเหมือนสิ่งที่คุณจะเรียก SDK ในวันนี้ มาเป็นคนซื่อสัตย์ใน 48K คุณไม่สามารถจ่าย API เอนกประสงค์ได้ ในวันต่อมามี SDK วัตถุประสงค์เฉพาะสองหรือสามอย่างที่เกิดขึ้นสำหรับเกมผจญภัยแบบคลิกเกมแบบอิงไทล์

มีอะไรแตกต่างจากวันนี้บ้าง

ทุกอย่างและไม่มีอะไร การปฏิบัติยังคงเหมือนเดิมเครื่องมือก็ดีขึ้น


-1

Native Basic Interpreter: เมื่อคุณเขียนโปรแกรมคุณควรกำหนดหมายเลขแต่ละบรรทัดป้อนรหัสของคุณและกด Enter โปรแกรมพื้นฐานดูเหมือนว่า: 10: HOME 20: PRINT "HELLO WORLD"

ในตัวอย่างนี้ HOME ล้างหน้าจอหากคุณต้องการคุณควรป้อนบรรทัดตัวกลาง fe .:

15: การพิมพ์ "ทักทาย"

ควรล้างหน้าจอออกด้วยการแสดงผลสวัสดีสวัสดีโลก

รายการคำสั่งแสดงรหัสของคุณ (หยุด whitout!) ไม่มี capslock ในบางโหมด (เพียงตัวพิมพ์ใหญ่) ไม่มีอักขระพิเศษ ไม่มีเกมมืออาชีพเขียนในภาษาเบสิกเพราะประสิทธิภาพคุณสามารถเห็นโปรแกรมของคุณวาดเส้นได้

แค่เอฟเฟกต์เสียงมันยากที่จะเล่นเพลงที่เรามีเพียงลำโพงที่มีหนึ่งบิต (ไม่ล้อเล่น) มอง 49152 เปลี่ยนเป็นรัฐใช่คุณควรควบคุมแม้แต่ความถี่และมันเป็นรูปคลื่นสี่เหลี่ยม

เพื่อไปประกอบ CALL -151

คุณควรมีรหัสด้วยมือบนหน้าจอไม่มี IDE ป้อนที่อยู่และรหัสของคุณ (HEXA)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.