Tanner's:
Videogames Programming Page
in Turbo PASCAL 7



Prefazione
Salve a tutti mi chiamo Tanner (Taio per gli amici) e sono un programmatore alle prime armi ma in stato abbastanza "avanzato" di conoscenza. Ho 15 anni e da quando ero piccolo, mentre giocavo con i vecchi videogames per DOS, mi chiedevo come avessero fatto a crearli... Aprivo gli eseguibili con l EDIT e li analizzavo: avevo capito pero che i giochi non li avevano fatti con l'EDIT... :) La domanda "che cosa hanno usato" è durata per molti anni, finchè un giorno sono venuto a conoscenza dei linguaggi di programmazione. Tutti mi parlavano del C++ e io ho cercato di trovarlo su internet (warez.... :)) ma senza risultato, cosi ho deciso di applicarmi col Turbo Pascal 7.0 visto che lo uso anche a scuola... Dunque in questo sito troverete dei sources e dei tutorials, alcuni fatti da me, e molti links utili. Passeremo gradualmente dalla programmazione in 2D con alcune Units grafiche per poi addentrarci nella grafica 3D (niente paura ancora nemmeno io l'ho capita bene...). Devo ringraziare per le conoscenze acquisite MSX del canale #Gameprog-ita, lo SWAG Team che mi ha aiutato con la loro utilissima raccolta di sources e Alexei Frounze per l'ispirazione tridimensionale :) Buon proseguimento!



La grafica 2D
Ohhh eccoci qua! Dunque la grafica 2D è la piu semplice da realizzare poichè sono sufficienti la conoscenza del piano cartesiano bidimensionale e di alcune tecniche per creare animazione nel proprio videogame:

-Double/Triple Buffering

-Scrolling verticale/orizzontale

-Page Flipping

Scommetto che la prima difficoltà che troverete nella creazione di un videogame 2D sarà togliere il cosiddetto fickering, lo sfarfallamento dello schermo. All'inizio del mio viaggio nella programmazione gli amici di GPI (gameprog-ita) mi hanno parlato del double / triple buffering e del page flipping: sono proprio loro la soluzione al problema! Il double buffering crea due pagine: la prima pagina viene mostrata sullo schermo mentre l'altra sta per essere disegnata, poi la seconda viene mostrata e la prima viene ridisegnata e poi viene di nuovo mostrata. In questo modo si riesce a creare l'effetto animazione senza lo sfarfallamento. Nei primi esempi che andremo ad analizzare vedrete che ho usato l'unit GRAPH della Borland, che a detta di tutti (compreso me) fa proprio schifo e non è assolutamente adatta alla realizzazione di videogames, anche se pero con vari artifizi è possibile sfruttarla nella maniera appropriata. (PS La Graph non permette l uso del double buffering per cui scordatevi per adesso le tecniche menzionate prima).

Sources Downloads

Rekosoft PG's PONG ver 0.8 commentati
11 Games by Someone Graph unit non commentati
KenGames (Poker e Monopoly) testuali non commentati
Esempio di scrolling commentati



Units utili

KojakVGA Grafica commentati
Grafix Grafica commentati
Keypres2 Keyboard Handler commentati
Gameunit Grafica e Mouse commenati



DJGPP e Free Pascal
Incuriosito dai compilatori freeware con licenza GNU mi sono messo a scaricarli come un pazzo per poterli provare. I risultati non sono stati tanto buoni come prevedevo: le IDE sono BETA perciò piene zeppe di bug.

Nel DjGPP speravo di trovare il tanto agongato compilatore di C++, visto che quello della Borland è introvabile (se ce l avete speditemelo Tanner), ma di compilare i sources non se ne parla. Oltretutto l'ho anche installato perfettamente.... voi ci credete che lo hanno usato gli ID per fare Quake??? Io no.
Il Free Pascal assomiglia molto al Turbo Pascal 7 solo che è "migliore" poichè lavora a 32 bit. L'installazione e configurazione non danno problemi di alcuna sorta; le note dolenti arrivano in fase di compilazione: il programmino "Hello World!" occupa più di 80 Kb!!! Oltre all'esagerata grandezza degli eseguibili rendo note delle incompatibilità con l'unit GRAPH visto che alcuni giochini che ne fanno uso funzionano male.
Se siete comunque interessati a provare questi compilatori gratuiti visitate i loro siti ufficiali:

Djgpp - DJ Delorie HomePage
www.delorie.com

Free Pascal
www.freepascal.org


Script Engines
Se volete cimentarvi nella realizzazione di una avventura grafica vi consiglio l'uso di uno script engine freeware. Un esempio di questi engines è l'AGAST, non ancora terminato ma in fase di beta testing. La realizzazione di un gioco 2d con questo engine è molto facile e non richiede particolari mezzi e conoscenze: sono indispensabili la fantasia e un buon disegnatore che vi realizzi locazioni e personaggi. La home page dell'AGAST è http://www.engr.csulb.edu/~tzankich/ dove potete scaricare la beta disponibile. Note: il sistema non consente l'uso dell'audio e i salvataggi, per il momento.

Le homepage di altri progetti simili sono:

S.cript C.reation for R.ebel A.dventure M.aking M.aniacs
www.scramm.org

Glumol Home Page
www.glumol.com

SAGE Story System
http://www.mixnmojo.com/sciencefact/

Se avete realizzato un gioco con uno di questi script engines fatemelo sapere! :)
Tanner



Links
#Gameprog-Ita
http://gpi.infomedia.it

Alexei Frounze Home Page
http://alexfru.chat.ru/eindex.html

Pascal Links Home Page
http://www.geocities.com/SiliconValley/2926/tp_1g.html

3D Engines List
http://cg.cs.tu-berlin.de/~ki/engines.html

Gamedev
www.gamedev.net


Copyright 2000 TAIOZ Productions. All Rights Reserved.