| Προγραμματίστε λέμε! |
|
|
| 13.12.07 | |
|
Για να μαθαίνει και ο κόσμος, όταν μιλάμε για DirectX, αναφερόμαστε σε ένα σετ εντολών το οποίο αυτοματοποιεί κάποιες διαδικασίες για τις οποίες ένας προγραμματιστής θα έπρεπε να γράψει αρκετές γραμμές κώδικα. Για παράδειγμα: Έχουμε ένα παιχνίδι στο οποίο υπάρχει μία πηγή φωτός. Παλαιότερα, ο προγραμματιστής έπρεπε να γράψει κώδικα για να πει στην κάρτα γραφικών (ή στον επεξεργαστή) πως «αν η πηγή φωτός βρίσκεται στο σημείο Α,Β,, τότε πρόβαλε την «Χ» σκιά στο σημείο Α1,Β1. Φανταστείτε λοιπόν για πόση δουλειά μιλάμε, αφού μόνο για τις σκιές ή για άλλα, απλά εφέ, ο προγραμματιστής έπρεπε να γράφει αρκετές γραμμές κώδικα. Παλαιότερα βέβαια τα πράγματα δεν ήταν και τόσο «βιαστικά» όσο σήμερα. Ένα παιχνίδι θα μπορούσε να βρίσκεται σε φάση development για αρκετά χρόνια και σε γενικές γραμμές δεν υπήρχε η πίεση που υπάρχει σήμερα η οποία απαιτεί από τους δημιουργούς να κυκλοφορήσουν έναν τίτλο το πολύ σε ένα χρόνο από την ημέρα που ανακοινώνεται στο κοινό. Προκειμένου λοιπόν ορισμένες διαδικασίες να αυτοματοποιηθούν, και να έχουν οι προγραμματιστές ελευθερία κινήσεων αλλά και άνεση χρόνου ούτως ώστε να μας δώσουν ένα (θεωρητικά πάντα) ανώτερο προϊόν, βγήκαν τα πρωτόκολλα DirectX.
Μιλώντας πάντα σε θεωρητική βάση, το DirectX δίνει την δυνατότητα στους προγραμματιστές να επισπεύδουν τη δουλειά που απαιτούν κάποιες απλές στη σύλληψη, αλλά δύσκολες στην υλοποίηση διαδικασίες, όπως οι σκιές ενός παιχνιδιού. Το μόνο που χρειάζεται να κάνουν πια είναι να «πουν» στο πρόγραμμα να πάει στην «τάδε» λειτουργία του DirectX όπου και υπάρχει ο έτοιμος κώδικας των σκιών και αυτό ήταν.
Θα περίμενε κάποιος πως με το DirectX οι δημιουργοί παιχνιδιών θα μπορούσαν αφενός να μας προσφέρουν ανώτερα γραφικά (πράγμα που σε γενικές γραμμές συμβαίνει), αλλά ταυτόχρονα θα μπορούσαν να επενδύσουν τον χρόνο που εξοικονομούν από τις χρονοβόρες αυτές διαδικασίες σε πιο δημιουργικά κομμάτια του παιχνιδιού (πράγμα που δεν συμβαίνει). Τελικά όμως, το μόνο που βλέπουμε είναι μια καλύτερη γραφική απεικόνιση, χωρίς όμως να υπάρχει (πλην ελάχιστων εξαιρέσεων) η αντίστοιχη βελτίωση σε άλλους τομείς των παιχνιδιών.
Αυτό το φαινόμενο γίνεται ακόμα πιο έντονο όταν βλέπουμε παιχνίδια όπως το Penumbra, το οποίο μπορεί να μην είναι ό,τι καλύτερο κυκλοφορεί, είναι όμως ένα κλασικό παράδειγμα σκληρής δουλειάς αφού πέρα από τα εξαιρετικά physics του, (αποτέλεσμα σωστού και μεθοδικού προγραμματισμού), προσφέρει και πολλές άλλες καινοτομίες. Στην ουσία, με σωστότερο προγραμματισμό δεν θα χρειαζόμασταν τις πολύπλοκες ρουτίνες του DirectX 10 για να απολαύσουμε γραφικά τύπου Crysis. Απλά οι προγραμματιστές θα έπρεπε να ξοδέψουν πολύ χρόνο για κάνουν «χειροκίνητα» πολλές από τις αυτοματοποιημένες διαδικασίες που μας δίνουν αυτά τα εκπληκτικά αποτελέσματα. Στο παρελθόν μάλιστα, είχαμε ένα παράδειγμα παιχνιδιού που με σωστό προγραμματισμό έδωσε γραφικά που δεν ήταν (για πολλούς) δυνατόν να εμφανιστούν με την τότε τεχνολογία. Ο λόγος για το Blade Runner το οποίο απεικόνιζε dynamic shadows και άλλα τέτοια καλούδια που τότε ήταν απλά… μύθος!
Και για να κλείσουμε, ας σκεφτούμε και αυτό: Πώς γίνεται και τα περισσότερα παιχνίδια παίζουν σε κονσόλες που τεχνολογικά βρίσκονται δύο και τρία χρόνια πίσω από το πιο σύγχρονο PC και μάλιστα χωρίς κανένα πρόβλημα frame rate; Γιατί πολύ απλά εκεί ο προγραμματιστής οφείλει να κάνει το παιχνίδι playable εφόσον δεν υπάρχει το άλλοθι του «να πάρεις άλλη κάρτα γραφικών / επεξεργαστή κλπ». Περιττό να σας πω πως περιμένω με μεγάλη αγωνία το Assassin’s Creed το οποίο λέγεται πως θα απαιτεί «τα κέρατά του» από υπολογιστική ισχύ, την ώρα που παίζει στα 60fps στο Xbox 360. Εκτός πια και αν τα γραφικά του έχουν τόσο μεγάλη διαφορά…
Save and Exit
Γιάννης “Tulkass” Μαργέτης Teh Godfather |
| < Προηγ. | Επόμ. > |
|---|

















