dimitris kalamaras

mathematics, social network analysis, free software…

Tag: graphics

Qt (Μέρος IV): Φτιάξτε παιχνίδια

Στα τρία προηγούμενα μέρη αυτού του tutorial, μάθαμε τα βασικά κόλπα της Qt, και την αξιοποιήσαμε στη δημιουργία διαχειριστικών εργαλείων για βάσεις δεδομένων. Καλά όλα αυτά, αλλά πως χειριζόμαστε γραφικά με την Qt; Λοιπόν, δεν υπάρχει τίποτε πιο εύκολο από αυτό! Για να σας το αποδείξουμε, θα φτιάξουμε ένα μικρό παιχνίδι σκοποβολής, το MouseShooter.

Το παιχνίδι θα αποτελείται από ένα μοναδικό παράθυρο, πάνω στο οποίο θα τοποθετήσουμε δύο κουμπιά (για Εναρξη και Τερματισμό του παιχνιδιού) και από κάτω ένα καμβά, όπου θα εμφανίζονται τα γραφικά. Είναι πρωτόγονο, αλλά ο στόχος είναι να δούμε τις βασικές έννοιες, όχι να ξαναφτιάξουμε το …DOOM! Αυτή τη φορά, δεν θα χρησιμοποιήσουμε το QtDesigner για να σχεδιάσουμε κάποια φόρμα για το MouseShooter. Το παιχνίδι μας θα έχει ένα πολύ απλοικό interface, οπότε θα είναι εύκολο να του στήσουμε το περιβάλλον κατευθείαν από τον κώδικα – για να δείτε πως γίνεται κι αυτό…

Η ιδέα για το γραφικό θέμα του MouseShooter είναι απλή μέχρι αηδίας: τα ποντίκια έχουν πέσει πάνω στο τυρί, και εμείς τα πιάνουμε στα πράσα και τα …πυροβολούμε. Αυτά πανικοβάλλονται και αρχίζουν να τρέχουν αριστερά και δεξιά. Τα γραφικά, δηλαδή το spite του ποντικιού και το φόντο του τυριού, τα “δανειστήκαμε” από ένα απλοικό παράδειγμα της Qt. Εμείς όμως θα φτιάξουμε κάτι πολύ πιο σύνθετο…Ας ξεκινήσουμε λοιπόν!


Εικόνα 1: Το εκπληκτικό shooter μας σε όλο του το μεγαλείο! Τα ποντίκια δεν μένουν ακίνητα βέβαια…

Read More

OGD1: Μια κάρτα γραφικών ανοικτού κώδικα

Ένα φιλόδοξο project στοχεύει να φτιάξει κάρτες γραφικών, με ανοικτές και δημόσια διαθέσιμες προδιαγραφές…

Ένα από τα μεγάλα πλεονεκτήματα του ελεύθερου και ανοικτού κώδικα λογισμικού είναι ακριβώς η δυνατότητα που δίνει σε εσάς, σε εμένα, στον οποιονδήποτε να πάρει τον πηγαίο κώδικα μιας εφαρμογής, να τον μελετήσει, να τον διορθώσει και γιατί όχι να τον αξιοποιήσει για να φτιάξει κάτι καλύτερο. Η βιωσιμότητα και η επιτυχία αυτού του εντελώς διαφορετικού μοντέλου ανάπτυξης της Πληροφορικής αντικατοπτρίζεται στην ανάπτυξη ολόκληρων λειτουργικών συστημάτων ανοικτού κώδικα (Linux, FreeBSD, κλπ) αλλά και δεκάδων χιλιάδων εφαρμογών ανοικτού κώδικα (Firefox, OpenOffice, Inkscape, Gimp, κλπ) που χρησιμοποιούμε καθημερινά ακόμα και σε “κλειστά” λειτουργικά όπως τα Windows.

Τι γίνεται όμως με το hardware; Αναμφισβήτητα, η ανάπτυξη hardware για υπολογιστές (μητρικές, επεξεργαστές, κάρτες γραφικών, κλπ) απαιτεί πολλαπλάσια έξοδα απ’ ότι η ανάπτυξη μιας οποιασδήποτε εφαρμογής. Αυτά τα έξοδα απαιτούν αντίστοιχα έσοδα (από πωλήσεις, δικαιώματα, κλπ) για να έχουν νόημα για μια εταιρεία και γι’ αυτό δεν θα βρείτε πολλά παραδείγματα εταιρειών που προσφέρουν ελεύθερα τον “κώδικα” του hardware που κατασκευάζουν, δηλαδή τις προδιαγραφές του, υπό τον φόβο της αντιγραφής τους από ανταγωνιστές. Πηγαίνετε, λόγου χάρη, στο site της nVidia και ψάξτε έστω και για ένα σχεδιάγραμμα των chips της. Δεν πρόκειται να βρείτε τίποτε. Ειδικά στον τομέα των γραφικών, τα έξοδα ανάπτυξης ενός chip σαν το G70 (το chip της GeForce 7800GTX) είναι τεράστια και η εταιρεία δεν διακινδυνεύει την ανακοίνωση λεπτομερειών της υλοποίησης. Γι’ αυτό και δεν πρόκειται να βρείτε πουθενά drivers ανοικτού κώδικα με αντίστοιχες επιδόσεις με εκείνους που διανέμει η ίδια η nVidia. Με άλλα λόγια, αν πάρεις μια κάρτα nVidia είσαι υποχρεωμένος να χρησιμοποιήσεις τους drivers της και να εμπιστεύεσαι την εταιρεία χωρίς να ξέρεις τι ακριβώς κάνουν αυτοί στον υπολογιστή σου.

Υπάρχει όμως ένα project, που σκοπεύει να κάνει ακριβώς το αντίθετο: να αναπτύξει ένα νέο hardware για γραφικά και να δώσει τις προδιαγραφές του και τον κώδικα των drivers στους πάντες…

Read More

Creative Commons License
Licensed under a Creative Commons Attribution-ShareAlike 4.0 International License - Powered by Linux