Jakiś czas temu zadałem podobne pytanie dotyczące rozwoju DOS i otrzymałem doskonałą odpowiedź: jaki był typowy zestaw narzędzi do tworzenia gier DOS?
Teraz zastanawiam się, jak wyglądało tworzenie gier na Apple II na przełomie lat 70. i 80. Interesują mnie głównie te wczesne: II i II +, ale chciałbym również uzyskać odpowiedzi na temat IIe itp.
Oto moje pytania:
Jakie języki były używane?
Zakładam, że asembler 6502, ale BASIC był w pakiecie i prawdopodobnie też dużo z niego korzystał. Czy myślisz o popularnych grach napisanych w języku BASIC? Co powiesz na C?
Jak wyglądało tworzenie asemblera 6502?
Zauważyłem, że możesz wprowadzić kody operacji bezpośrednio, jeśli uruchomisz monitor systemu, a nawet możesz uruchomić asembler bezpośrednio za pomocą mini asemblera. Ale nie mogę sobie wyobrazić, że gry były tak napisane, czy były edytory / IDE? Jak były przechowywane programy na dyskach / taśmach?
Jak wyglądał rozwój BASIC?
Interpretator Apple II BASIC nie jest w połowie zły, myślę, że można tam pisać pełne programy. Pozwala również na zapisywanie / ładowanie programów, jak sądzę na dysk / taśmę. Ale czy nie było edytora wizualnego?
Czy były jakieś interfejsy API lub oprogramowanie pośrednie?
A może trzeba było cały czas rozmawiać bezpośrednio ze sprzętem, jeśli chcesz coś narysować lub odtworzyć dźwięk? Czy w ogóle były jakieś biblioteki?
Czy jest coś jeszcze innego niż dzisiaj?
Z przyjemnością usłyszę wszelkie inne różnice, na przykład jakie formaty obrazu / dźwięku zostały użyte. Biorąc pod uwagę, że tak naprawdę nie było pojęcia plików, jeśli dobrze je rozumiem, zastanawiam się, jak to działało. Czy musiałeś wpisać swoją grafikę i dźwięki w asemblerze? Jak to działało w języku BASIC?
Odpowiedzi:
Dużo programowałem na Apple (nie profesjonalnie, ale tego się nauczyłem) i Applesoft BASIC i asembler, gdzie hobbystów. Dostępne były inne języki - logo było powszechne, Pascal było pisane wszędzie, ale nie znam nikogo, kto go używał, tak naprawdę nie wiedziałem, że C będzie używany na dowolnej platformie Apple, dopóki Orca C dla Apple IIGS nie było, interpreter z pływającą grafiką w stylu żółwia (lub nazwij to logo).
Odpowiem na niektóre pytania, a następnie podstawowe pomysły:
Wiele programów shareware zostało napisanych w języku BASIC, nie tylko Applesoft BASIC, ale także Integer BASIC (który, jak sama nazwa wskazuje, nie miał liczb zmiennoprzecinkowych). Przychodzi mi na myśl seria Eamon, ale tak naprawdę nie mogę myśleć o wielu innych. Ponadto wiele programów napisanych przez Beagle Bros. zostało napisanych w języku BASIC (głównie programy narzędziowe, a nie gry).
Uważam jednak, że większość komercyjnego oprogramowania została napisana w asemblerze.
Użyłem Merlin Assembler, aby nazwać to IDE, które może go rozciągać, ale działało dobrze. Jak powiedziałeś, możesz wpaść na monitor systemu i wprowadzić kody poleceń i uruchomić stamtąd. Merlin miał sposób na powrót do niego z monitora systemu (czego nie pamiętam jak teraz).
Było narzędzie innej firmy, które ulepszyło środowisko Applesoft i pozwoliło ci używać strzałek do przewijania ekranu i edycji jak edytor wizualny (wciąż musiałeś nacisnąć Return na końcu linii lub zmiany się nie utrzymały). Nie pamiętam, co to było, całkiem go wykorzystałem.
Na Apple II + / IIe / IIc prawie rozmawiałeś ze sprzętem. W ROM-ie było kilka programów, których można było użyć, ale były one bardzo ograniczone i zwykle PEEK i POKE różnych lokalizacji pamięci, aby zmienić rejestry, aby zrobić to, co chcesz, na przykład zmienić tryby graficzne, poke 49152, aby wyzwolić głośnik itp. .
W Apple IIGS ROM dostarczany był z zestawem bibliotek podobnych do tego, z którym przyszedł Macintosh, do robienia fantazyjnych graficznych interfejsów użytkownika i do tego. ROMy były aktualizowane z czasem, a jeśli załadowałeś dysk systemowy, który korzystał z nowszych bibliotek, czytałyby raczej z dysku niż z ROM-u, powodując, że czas uruchamiania NAPRAWDĘ POWOLI. Było ROM 01, 02 i 03, a 02 -> 03 było darmowym uaktualnieniem, a przed 01 było wydanie, które również zrobiliby darmowe uaktualnienie do 01.
Były pliki, nie jestem pewien, co przez to rozumiesz, a ProDOS nie mniej wspierał katalogi (wcześniejszy DOS nie miał, ale wciąż miał koncepcję pliku, który rozpoznajesz). Użyłem bitmap i .pcx. Nie pamiętam żadnych plików audio z serii II + / IIe / IIc, ale było tak dlatego, że ciężko było wydawać dźwięki bardziej wymyślne niż blipy i wpadki w grach wideo. Było kilka hacków, które wydawały wymyślne dźwięki (w szczególności miałem dysk, który grał w Gun N 'Roses), ale prawie zawsze robiono to gramatycznie.
W porównaniu ze współczesnymi środowiskami był wręcz prymitywny. Pamiętaj jednak, że nie było obsługi jednoczesnego uruchamiania wielu programów, więc Twój kompilator musiał być również Twoim edytorem - tak naprawdę nie można argumentować zalet vi przeciwko emacs, więc cokolwiek twój kompilator ci dał, nauczyłeś się używać. Myślę, że było to o wiele łatwiejsze niż korzystanie z bibliotek nakładanych na biblioteki i istnieje wiele sztuczek, jeśli pracujesz nad sprzętem i wiesz, co to jest. Na przykład powszechną implementacją „pauzy na chwilę” było „dla (int i = 0; i <1000; i ++)” (inaczej jest w języku BASIC), która nigdy nie jest używana, ponieważ sprzęt jest tak szybki, że „ d potrzebuje ogromnej liczby, a nawet gdyby nie była, byłaby uruchamiana na różnego rodzaju maszynach, więc byłaby to inna pauza dla różnych osób (II +, IIe,
To wszystko z pamięci, nie pisałem żadnych odniesień podczas pisania tego, więc przepraszam, jeśli moja pamięć jest wadliwa i powiedziałem wam złe rzeczy. Ale mam nadzieję, że daje to trochę smaku i odpowiada na kilka pytań.
źródło
Jakie języki były używane?
6502 dla większości, rzadko C (Aztek), dużo BASIC, trochę Pascal (Apple Pascal).
Jak wyglądało tworzenie asemblera 6502?
Było kilka porządnych asemblerów i narzędzi dla 6502: Orca / M, Merlin, a później można było opracować na PC i łącze szeregowe do Apple do zdalnego debugowania. Nie zapomnijmy o narzędziach Beagle Bros. Edytuj + kompiluj + uruchom, świat nigdy się nie zmienia ;-)
Jak wyglądał rozwój BASIC?
Brak edytora wizualnego, tylko konsola, która na początku umożliwia interakcję z buforem BASIC. Jednak Beagle Bros. miał kilka magicznych narzędzi, które sprawiły, że większość bólu zniknęła. A później były powłoki, które przynajmniej działałyby jak edytor liniowy do pisania. Było narzędzie (Expediter 2), które mogło rozbić BASIC do binarnego zestawu, który działał znacznie szybciej (podróż w jedną stronę).
Czy były jakieś interfejsy API lub oprogramowanie pośrednie?
Było kilka, ale głównie o bardzo wąskim zakresie, nic podobnego do tego, co dziś nazwałbyś SDK. Bądźmy szczerzy, w 48 KB nie stać Cię na interfejs API ogólnego przeznaczenia. W późniejszych dniach pojawiły się dwa lub trzy zestawy SDK o specjalnym przeznaczeniu do gier przygodowych typu Clicky, gier opartych na kafelkach,
Czy jest coś jeszcze innego niż dzisiaj?
Wszystko i nic. Praktyki pozostają takie same, narzędzia stają się lepsze.
źródło
Native Native Interpreter: Kiedy piszesz program, powinieneś numerować każdą linię, wprowadź swój kod i naciśnij enter. Podstawowy program wygląda następująco: 10: DOM 20: WYDRUKUJ „HELLO WORLD”
W tym przykładzie HOME wyczyść ekran, jeśli potrzebujesz, wprowadź linię pośrednią, np .:
15: DRUKUJ „POZDROWIENIA”
Jako wynik powinien wyczyścić ekran, pokaż POZDROWIENIA WITAJ NA ŚWIECIE
polecenie LISTA pokaż kod (bez pauzy!) Brak niektórych wielkich liter w niektórych trybach (tylko wielkie litery), żadnych znaków specjalnych. Nie napisano żadnych profesjonalnych gier w języku BASIC, ponieważ ze względu na wydajność można było zobaczyć, jak Twój program rysuje linie.
Po prostu efekty dźwiękowe, ciężko było odtwarzać muzykę, mamy tylko głośnik z JEDNYM bitem (bez żartów) wgląd 49152 zmień jego stan, tak, powinieneś kontrolować nawet częstotliwość i była to fala prostokątna.
przejść do montażu CALL -151
powinieneś kodować ręcznie na monitorze bez IDE wprowadź adres i swój kod (HEXA)
źródło