À quoi ressemblait le développement de jeux sur l'Apple II? [fermé]

14

J'ai posé une question similaire sur le développement DOS il y a quelque temps et j'ai obtenu une excellente réponse: Quelle était la chaîne d'outils typique pour le développement de jeux DOS?

Maintenant, je me demande à quoi ressemblait le développement de jeux sur l'Apple II à la fin des années 70 / début des années 80. Je suis principalement intéressé par les premiers: II et II +, mais j'aimerais aussi des réponses sur IIe etc.

Donc, voici mes questions:

Quelles langues ont été utilisées?

Je suppose que l'assembleur 6502, mais BASIC était fourni et probablement beaucoup utilisé aussi. Pouvez-vous penser à des jeux populaires écrits en BASIC? Et C?

Comment était le développement d'un assembleur 6502?

J'ai remarqué que vous pouvez entrer des codes op directement si vous démarrez le moniteur système, et vous pouvez même exécuter l'assembleur directement avec le mini assembleur. Mais je ne peux pas imaginer que les jeux ont été écrits comme ça, y avait-il des éditeurs / IDE? Comment les programmes ont-ils été stockés sur des disques / bandes?

Comment était le développement BASIC?

L'interprète Apple II BASIC n'est pas à moitié mauvais, je suppose que vous pouvez y écrire des programmes complets. Il vous permet également d'enregistrer / charger des programmes, je suppose sur disque / bande. Mais n'y avait-il pas d'éditeur visuel?

Y avait-il des API ou des middlewares?

Ou était-il nécessaire de parler directement au matériel tout le temps si vous vouliez dessiner quelque chose ou jouer un son? Y avait-il des bibliothèques?

Quelque chose d'autre qui est différent d'aujourd'hui?

Je serais heureux d'entendre d'autres différences, comme les formats d'image / audio utilisés. Étant donné qu'il n'y avait pas vraiment de concept de fichiers si je le comprends bien, je me demande comment cela a fonctionné. Avez-vous dû taper vos graphiques et sons dans l'assembleur? Comment cela a-t-il fonctionné en BASIC?

futlib
la source
L'intro du Graphics Black Book de Michael Abrash est écrite par John Carmack, et il explique à quel point il était facile de faire des graphiques - vous venez de faire une commande de dessin et elle basculerait automatiquement. D'après ce dont je me souviens d'avoir joué avec dans les années 80, vous pouviez passer ces appels directement via BASIC.
Philip
J'ai déjà lié cela ailleurs mais ... de toute façon, Jordan Mechner a publié le code source de la version Apple II de Prince of Persia . Cela pourrait vous intéresser!
Laurent Couvidou
L'une des particularités les plus notables de l'Apple II était que les graphiques n'étaient pas directement mappés en mémoire; au lieu de cela, le système a utilisé une sorte étrange de système entrelacé où la ligne qui a suivi la ligne 0 en mémoire n'était pas la ligne 1 mais plutôt la ligne 64; puis la ligne 128 a suivi celle en mémoire, et ce n'est qu'après cela que la ligne 1 apparaît. C'est pourquoi vous voyez les étranges effets de chargement «à trois bandes» sur les jeux Apple II.
Steven Stadnicki

Réponses:

5

J'ai fait beaucoup de programmation sur Apple (pas professionnellement, mais c'est ce que j'ai appris) et Applesoft BASIC et assembleur où en était-il pour les amateurs. D'autres langues étaient disponibles - Le logo était courant, Pascal était écrit partout mais je ne connais personne qui l'utilisait, je n'étais pas vraiment au courant que C était utilisé sur n'importe quelle plate-forme Apple jusqu'à Orca C pour l'Apple IIGS, il y avait un Forth interprète avec des graphiques de style tortue (ou appelez-le Logo) flottant également.

Je vais répondre à certaines de vos questions, puis des idées de base:

Pouvez-vous penser à des jeux populaires écrits en BASIC? Et C?

Beaucoup de shareware ont été écrits en BASIC, non seulement Applesoft BASIC mais aussi Integer BASIC (qui, comme son nom l'indique, n'avait pas de nombres à virgule flottante). La série Eamon me vient à l'esprit, mais je ne peux pas vraiment penser à beaucoup d'autres. De plus, une grande partie des logiciels écrits par les Beagle Bros. ont été créés en BASIC (principalement des utilitaires, pas des jeux).

Je pense que la plupart des logiciels commerciaux ont été écrits en assembleur.

Mais je ne peux pas imaginer que les jeux ont été écrits comme ça, y avait-il des éditeurs / IDE? Comment les programmes ont-ils été stockés sur des disques / bandes?

J'ai utilisé Merlin Assembler, pour l'appeler un IDE peut-être l'étirer, mais cela a très bien fonctionné. Comme vous l'avez dit, vous pouvez passer au moniteur système et entrer des opcodes et exécuter à partir de là. Merlin avait un moyen de revenir dessus depuis le moniteur système (dont je ne me souviens plus comment maintenant).

Mais n'y avait-il pas d'éditeur visuel?

Il y avait un outil tiers qui améliorait un peu l'environnement Applesoft et vous permettait d'utiliser vos flèches pour faire défiler l'écran et effectuer des modifications comme un éditeur visuel (vous deviez toujours appuyer sur Retour à la fin d'une ligne ou les changements ne resteraient pas). Je ne me souviens pas ce que c'était, je l'ai utilisé un peu.

Ou était-il nécessaire de parler directement au matériel tout le temps si vous vouliez dessiner quelque chose ou jouer un son? Y avait-il des bibliothèques?

Sur l'Apple II + / IIe / IIc, vous parliez à peu près au matériel. Il y avait quelques programmes dans la ROM que vous pouviez utiliser, mais ils étaient très limités et généralement vous PEEK et POKE divers emplacements de mémoire pour changer les registres pour faire ce que vous vouliez, par exemple pour changer les modes graphiques, piquer 49152 pour déclencher le haut-parleur, etc. .

Sur l'Apple IIGS, la ROM était livrée avec une suite de bibliothèques similaires à celles fournies avec le Macintosh, pour faire des interfaces graphiques sophistiquées et quoi. Les ROM ont été mises à jour au fil du temps et si vous avez chargé un disque système qui utilisait des bibliothèques plus récentes, elles liraient à partir du disque plutôt que de la ROM, ce qui ralentirait le démarrage. Il y avait ROM 01, 02 et 03, et 02 -> 03 était une mise à niveau gratuite, et il y avait une version avant 01 pour laquelle ils feraient également une mise à niveau gratuite vers 01.

Je serais heureux d'entendre d'autres différences, comme les formats d'image / audio utilisés. Étant donné qu'il n'y avait pas vraiment de concept de fichiers si je le comprends bien, je me demande comment cela a fonctionné. Avez-vous dû taper vos graphiques et sons dans l'assembleur? Comment cela a-t-il fonctionné en BASIC?

Il y avait des fichiers, je ne suis pas sûr de ce que vous entendez par là, et ProDOS ne supportait pas moins les répertoires (le DOS précédent n'en avait pas mais avait toujours un concept de fichier que vous reconnaîtriez). J'ai utilisé des bitmaps et des .pcx. Je ne me souviens pas de fichiers audio de la série II + / IIe / IIc, mais c'était parce qu'il était difficile de faire des bruits plus fantaisistes que les blips et les bloops des jeux vidéo. Il y avait des hacks qui faisaient des sons fantaisistes (en particulier, j'avais un disque qui jouait Gun N 'Roses), mais c'était presque toujours grammaticalement.

Comparé aux environnements modernes, il était carrément primitif. Mais rappelez-vous, il n'y avait pas de support pour exécuter plusieurs programmes en même temps, donc votre compilateur devait également être votre éditeur - vous ne pouviez pas vraiment discuter des avantages de vi vs emacs, donc quoi que votre compilateur vous donne, vous avez appris à utiliser. Je pense que c'était beaucoup plus facile que d'utiliser des bibliothèques empilées sur des bibliothèques, et il y a beaucoup d'astuces si vous travaillez pour le matériel et savez ce que c'est. Par exemple, une implémentation courante de "pause pendant un moment" était "pour (int i = 0; i <1000; i ++)" (c'est différent en BASIC), qui n'est jamais utilisé maintenant, car le matériel est si rapide que vous ' J'ai besoin d'un nombre énorme, et même s'il ne l'était pas, il serait exécuté sur différents types de machines, ce serait donc une pause différente pour différentes personnes (II +, IIe,

Tout cela vient de mémoire, je n'ai pas regardé de références en écrivant ceci, donc je m'excuse si ma mémoire est défectueuse et je vous ai dit de mauvaises choses. Mais j'espère que cela vous donne un peu de goût et répond à quelques-unes de vos questions.

laaphé
la source
4

Quelles langues ont été utilisées?

6502 pour la plupart, rarement C (Aztek), beaucoup de BASIC, certains Pascal (Apple Pascal).

Comment était le développement d'un assembleur 6502?

Il y avait des assembleurs et des outils assez soignés pour 6502: Orca / M, Merlin, et plus tard, il était possible de développer sur un PC et une liaison série vers Apple pour un débogage à distance. N'oublions pas les utilitaires Beagle Bros. Edit + compile + run, le monde ne change jamais ;-)

Comment était le développement BASIC?

Aucun éditeur visuel, juste une console qui vous permet d'interagir avec le tampon BASIC au début. Cependant, Beagle Bros. avait quelques utilitaires magiques qui ont fait disparaître la plupart de la douleur. Et plus tard, il y avait des obus qui agiraient au moins comme un éditeur de ligne pour votre écriture. Il y avait un outil (Expediter 2) qui pouvait réduire votre BASIC en un binaire d'assemblage qui fonctionnait beaucoup plus rapidement (un aller simple).

Y avait-il des API ou des middlewares?

Il y en avait, mais surtout d'une portée très étroite, rien de comparable à ce que vous appelleriez un SDK aujourd'hui. Soyons honnêtes, en 48K, vous ne pouvez pas vous permettre une API à usage général. Dans les derniers jours, deux ou trois SDK spécifiques ont émergé pour les jeux d'aventure clicky, les jeux basés sur des tuiles,

Quelque chose d'autre qui est différent d'aujourd'hui?

Tout et rien. Les pratiques restent les mêmes, les outils se sont améliorés.

Patrick Hughes
la source
-1

Interpréteur de base natif: lorsque vous écrivez un programme, vous devez numéroter chaque ligne, entrer votre code et appuyer sur Entrée. Un programme de base ressemble à: 10: ACCUEIL 20: IMPRIMER "BONJOUR MONDE"

Dans cet exemple, HOME efface l'écran, si vous en avez besoin, vous devez entrer une ligne intermédiaire, par exemple:

15: IMPRIMER "SALUTATIONS"

En sortie, il devrait effacer l'écran, montrer SALUTATIONS MONDE BONJOUR

commande LISTE affichez votre code (sans pause!) Pas de majuscule dans certains modes (juste en majuscules), pas de caractères spéciaux. Aucun jeu professionnel n'a été écrit en BASIC, en raison des performances, vous pouvez réellement voir votre programme tracer les lignes.

Juste des effets sonores, il était difficile de jouer de la musique, nous avons juste un haut-parleur avec UN bit (sans blague).

pour aller à l'assemblage CALL -151

vous devez avoir à coder à la main sur le moniteur sans IDE entrer l'adresse et votre code (HEXA)

Alex
la source