[FONT="]Λοιπόν εκ πείρας στον τεχνικό τομέα μπορώ να σου πω τα εξής:[/FONT]
[FONT="] [/FONT]
[FONT="]Καταρχήν πρέπει να αποφασίσεις τι είδους παιχνίδι πρόκειται να σχεδιάσεις (η ΙΔΕΑ που λέμε), θα είναι 2[/FONT][FONT="]D[/FONT][FONT="] ή 3[/FONT][FONT="]D[/FONT][FONT="]; Αυτό το ερώτημα είναι πολύ σημαντικό διότι καθορίζει εάν θα ασχοληθείς με τον προγραμματισμό σε [/FONT][FONT="]Direct[/FONT][FONT="]3[/FONT][FONT="]D[/FONT][FONT="] / [/FONT][FONT="]OpenGL[/FONT][FONT="] ή [/FONT][FONT="]DirectDraw[/FONT][FONT="] (2[/FONT][FONT="]D[/FONT][FONT="]). Προσωπικά επειδή επέλεξα της 2[/FONT][FONT="]D[/FONT][FONT="] ασχολήθηκα με το τελευταίο ([/FONT][FONT="]DirectDraw[/FONT][FONT="] ή [/FONT][FONT="]DD[/FONT][FONT="]) του οποίου ο προγραμματισμός αποδείχθηκε κουραστικός διότι για κάθε σημαντικό τμήμα ορίζεις δομές αλλά εύκολος διότι από ένα σημείο και πέρα γίνεται τυφλοσούρτης ενώ το λογισμικό σου θυμίζει όλο και περισσότερο ανάπτυξη μονολιθικών εφαρμογών [/FONT][FONT="]DOS[/FONT][FONT="]. Από εκεί και πέρα η διαχείριση του πληκτρολογίου μπορεί να γίνει είτε μέσο [/FONT][FONT="]DirectInput[/FONT][FONT="] [/FONT][FONT="]είτε μέσο [/FONT][FONT="]WinAPI[/FONT][FONT="] (ακολούθησα τον δεύτερο δρόμο, αλλά δεν ήταν σοφή επιλογή επειδή υπάρχει ένα ανεπαίσθητο [/FONT][FONT="]lag[/FONT][FONT="]), για τον ήχο δες το [/FONT][FONT="]DirectSound[/FONT][FONT="] αλλά είμαι σίγουρος ότι θα προτιμήσεις το [/FONT][FONT="]Windows[/FONT][FONT="] [/FONT][FONT="]MultiMedia [/FONT][FONT="]API[/FONT][FONT="] αφού είναι σαφώς πολύ πιο φιλικό και ευέλικτο ([/FONT][FONT="]hint[/FONT][FONT="]: όταν με το καλό φτάσεις εκεί, φόρτωσε τα ηχητικά κατευθείαν στην μνήμη και κάνε τα [/FONT][FONT="]playback[/FONT][FONT="] από εκεί).[/FONT]
[FONT="] [/FONT]
[FONT="]Συνεπώς βάλε μικρούς στόχους (εγώ έφτιαξα ένα φιδάκι, όποιος θέλει να το δει το λέει και το κάνω ένα [/FONT][FONT="]upload[/FONT][FONT="]) ώστε να εξοικειωθείς με την πλατφόρμα ανάπτυξης που σε ενδιαφέρει ([/FONT][FONT="]Win[/FONT][FONT="]32), διάβασε το [/FONT][FONT="]SDK[/FONT][FONT="] της ([/FONT][FONT="]DirectX[/FONT][FONT="]) και κάνε πειραματισμούς, εάν τελικά πας σε 3[/FONT][FONT="]D[/FONT][FONT="] κατευθείαν (εμένα δεν μου αρέσουν καθόλου τα 3[/FONT][FONT="]D[/FONT][FONT="] [/FONT][FONT="]games[/FONT][FONT="], μεγάλωσα με 2[/FONT][FONT="]D[/FONT][FONT="] έτσι και αλλιώς) ακούγεται πως το [/FONT][FONT="]OpenGL[/FONT][FONT="] είναι ευκολότερο του [/FONT][FONT="]Direct[/FONT][FONT="]3[/FONT][FONT="]D[/FONT][FONT="] και μάλλον έτσι θα είναι (το δεύτερο από λίγο που το είδα φαίνεται μπελάς), πάντως και τα δυο 3[/FONT][FONT="]D[/FONT][FONT="] [/FONT][FONT="]environments[/FONT][FONT="] [/FONT][FONT="]προϋποθέτουν ικανή γνώση μαθηματικών για την απαιτούμενη γεωμετρία.[/FONT]
[FONT="] [/FONT]
[FONT="]Ένα ιδιαίτερο σημείο όσον αφορά τα 2[/FONT][FONT="]D[/FONT][FONT="] παιχνίδια είναι το [/FONT][FONT="]collusion[/FONT][FONT="] [/FONT][FONT="]detection[/FONT][FONT="], ο εντοπισμός σύγκρουσης, εδώ τα πράγματα εξαρτώνται από πολλές παραμέτρους όπως από τον τρόπο που κινούνται οι εχθροί στην οθόνη, το μέγεθος των [/FONT][FONT="]sprites[/FONT][FONT="] σου, γενικά από πειραματισμούς έχω καταλήξει στο συμπέρασμα ότι καλύτερα είναι να ελέγχεις την θέση σου και τους άλλους σε μορφή [/FONT][FONT="]rectangle[/FONT][FONT="] (βοήθα και ο έτοιμος τύπος του [/FONT][FONT="]WinAPI[/FONT][FONT="] [/FONT][FONT="]RECT[/FONT][FONT="]) και όποτε υπάρχει επαφή [/FONT][FONT="]rectangles[/FONT][FONT="] να θεωρείς ότι έχουμε σύγκρουση. [/FONT]
[FONT="] [/FONT]
[FONT="]Τέλος, ένα σημείο που σίγουρα θα σε κουράσει, εάν αναπτύσσεις [/FONT][FONT="]full[/FONT][FONT="]-[/FONT][FONT="]screen[/FONT][FONT="] εφαρμογή είναι το [/FONT][FONT="]debugging[/FONT][FONT="] [/FONT][FONT="]αφού το [/FONT][FONT="]step[/FONT][FONT="] [/FONT][FONT="]στο [/FONT][FONT="]source[/FONT][FONT="] είναι αδύνατο εκτός και αν έχεις δυο οθόνες ή κάτι τέτοιο, οπότε γράψε μερικές ρουτίνες που θα κάνουν [/FONT][FONT="]dump[/FONT][FONT="] σε αρχείο τις κρίσιμες μεταβλητές του λογισμικού (το φιδάκι μου ακόμα έχει ένα μικρό [/FONT][FONT="]bug[/FONT][FONT="] [/FONT][FONT="]

), η χρήση ειδικών [/FONT][FONT="]system[/FONT][FONT="] [/FONT][FONT="]level[/FONT][FONT="] [/FONT][FONT="]debuggers[/FONT][FONT="] [/FONT][FONT="]όπως του [/FONT][FONT="]SoftICE[/FONT][FONT="] (διαμάντι στον τομέα του) βοηθά πολύ εάν είναι συμβατός με τις [/FONT][FONT="]debugging[/FONT][FONT="] [/FONT][FONT="]πληροφορίες του [/FONT][FONT="]compiler[/FONT][FONT="] σου, όμως υπάρχει πάντα ο κίνδυνος του [/FONT][FONT="]reset[/FONT][FONT="] [/FONT][FONT="](για παράδειγμα ο [/FONT][FONT="]SoftICE[/FONT][FONT="] 5.1 αν και είναι συμβατός με τον [/FONT][FONT="]Borland[/FONT][FONT="] [/FONT][FONT="]C[/FONT][FONT="]/[/FONT][FONT="]C[/FONT][FONT="]++ [/FONT][FONT="]compiler[/FONT][FONT="] 5.6.4 που χρησιμοποιώ εντούτοις μετά από λίγο έβγαζε [/FONT][FONT="]BSOD[/FONT][FONT="]).[/FONT]
[FONT="] [/FONT]
[FONT="]Γενικά από την προσωπική μου πείρα θεωρώ ότι η ανάπτυξη ακόμα και του πιο απλού παιχνιδιού είναι μια επίπονη εμπειρία η οποία πέραν του τεχνικού τμήματος έχει και εικαστικό, οπότε εάν εξαιρέσεις κάποια [/FONT][FONT="]scrolling[/FONT][FONT="] [/FONT][FONT="]demo[/FONT][FONT="] που πάντα μου άρεσαν, ύστερα από το φιδάκι και μια προσπάθεια για ένα [/FONT][FONT="]shoot[/FONT][FONT="]-[/FONT][FONT="]em[/FONT][FONT="] [/FONT][FONT="]up[/FONT][FONT="] (γραμμένο σε καθαρό [/FONT][FONT="]WinAPI[/FONT][FONT="] αυτή την φορά) δεν προτίθεμαι να την επαναλάβω στο άμεσο μέλλον, δίχως αυτό να σημαίνει πως δεν είναι διασκεδαστική.[/FONT]
[FONT="] [/FONT]
[FONT="]Καλή τύχη!!

[/FONT]