Ποια εργαλεία χρησιμοποιείτε στην ανάπτυξη λογισμικού; Ποια έχετε γράψει μόνοι σας και πώς μοιάζει το build pipeline σας;
Κάνω απλώς την αρχή:
Εξομοιωτές CPC 6128:
caprice32
Retro Virtual Machine
Assembler: rasm
Build: Makefile / make / shell (<-- κυρίως) / python.
Code-Editor: vs code
Sprite-Editor: SpriteBuilder.html.zip (20,6 KB) Δική μου ανάπτυξη. Είναι απλώς ένα αρχείο html, το οποίο υλοποιεί όλες τις βασικές λειτουργίες μέσω JavaScript.
Ο sprite editor είναι εμπνευσμένος από πολλούς υπάρχοντες editors, αλλά προσαρμοσμένος ειδικά για τον CPC και τις γλώσσες προγραμματισμού που χρησιμοποιώ (C και Assembler).
Μπορείς να αποθηκεύσεις και να φορτώσεις την τρέχουσα κατάσταση
Όλα τα πρότζεκτ μου χρησιμοποιούν το CPCtelera (πρέπει να δοκιμάσω σύντομα το CPCtelera next).
Γράφω σχεδόν αποκλειστικά σε C, αλλά έχω τη φιλοδοξία να γράψω λίγη Z80 ASM, αν και δεν έχει ενσωματωθεί ακόμα σε κάποιο πρότζεκτ.
Η μουσική και ο ήχος γίνονται με το Arkos 2
Για εξομοιωτές (emulators) χρησιμοποιώ τα WinAPE και CPCEC.
Ο κώδικας γράφεται κυρίως στο Visual Studio με το Wincpctelera, αλλά μερικές φορές χρησιμοποιώ και το VSCode.
Τα γραφικά σχεδιάζονται με το RGAS 1.2.5
Οι πίστες φτιάχνονται σε ένα προσαρμοσμένο πρόγραμμα επεξεργασίας χαρτών (map editor) που εξάγει τον χάρτη σε αρχεία πηγαίου κώδικα C, τα οποία μπορώ να συμπεριλάβω στο πρότζεκτ του παιχνιδιού. Διαβάζει επίσης απευθείας τα αρχεία του RGAS, κάτι που είναι εξαιρετικά βολικό.
Για τη διαχείριση πηγαίου κώδικα, την παρακολούθηση εργασιών (task tracking) και τις ροές αυτοματοποίησης (build pipelines) χρησιμοποιώ το Azure DevOps Server (σκέφτομαι να μεταβώ κάποια στιγμή στο forgejo, αλλά αυτό απαιτεί πολλή προσπάθεια).
Εκτός από όλες τις εξαιρετικές νέες δυνατότητες, βασίζεται πλέον στο SDCC 4.6, το οποίο τα πηγαίνει πολύ καλύτερα με τον z80 σε σχέση με τις προηγούμενες εκδόσεις.
απλά σκέφτηκα να αναφέρω ότι προσπαθώ να κάνω λίγο πιο εύκολη τη χρήση του CPCtelera_next και του SDCC/z88dk σε windows με τον emulator μου, το CPCSyntaxError.. μπορείτε να αναπτύξετε κώδικα BASIC, ASM (με ενσωματωμένο RASM) και C, να τον κάνετε build/compile και να τον στείλετε απευθείας στη μνήμη, και μετά να τον τρέξετε, με ένα κλικ, με πλήρες debugging
κάνει τα πράγματα πολύ πιο εύκολα για τους χρήστες windows, οι οποίοι δεν χρειάζεται πλέον να εγκαθιστούν το cygwin και άλλες εξαρτήσεις.. ή να τρέχουν γραμμές εντολών κλπ κλπ. οι χρήστες linux και macos θα πρέπει να εγκαταστήσουν το cpctelera και το SDCC/z88dk όπως θα έκαναν κανονικά στο σύστημα.
σε windows, δεν χρειάζεται να εγκαταστήσετε το CPCtelera όπως θα κάνατε κανονικά, απλά κάντε extract το zip και υποδείξτε το στον emulator. εγκαταστήστε το SDCC και το z88dk κανονικά στο σύστημα, και μετά υποδείξτε τα στο CPCSyntaxError.
Η NTC BASIC μπορεί πλέον να στοχεύσει στα παρακάτω, ως επί το πλείστον με τον ίδιο πηγαίο κώδικα — και μπορείτε να συμπεριλάβετε υπό συνθήκη μεταγλώττιση (conditional compilation) με ενσωματωμένη assembly (inline assembly). Η δημιουργία παιχνιδιών εμπορικής ποιότητας δεν ήταν ποτέ ευκολότερη.
Με ενδιέφεραν εργαλεία ανεξάρτητα από το λειτουργικό σύστημα (OS-agnostic) που θα μπορούσαν να δουλέψουν σε οποιοδήποτε σύστημα χωρίς ιδιαίτερο κόπο. Τελικά, έγραψα τα δικά μου εργαλεία σε Python για αυτόν τον σκοπό, παρόλο που χρησιμοποιώ ήδη υπάρχοντες emulators. Αυτήν τη στιγμή, η εργαλειοθήκη μου (toolchain) περιλαμβάνει:
Emulators για CPC 6128/6128+:
Retro Virtual Machine (έκδοση 2.0 για debugging στον 6128)
WinAPE
Assembler:
ABASM
BASIC compiler:
ABASC (περιλαμβάνει bindings για CPCTelera και CPCRSLib)
Packaging:
DSK.py (προσαρμοσμένο εργαλείο)
CDT.py (προσαρμοσμένο εργαλείο)
Build:
Batch/Bash scripts
Code editor:
VS Code
Sprite editor:
Tixel για επεξεργασία (άλλο ένα εργαλείο σε Python)
IMG.py για μετατροπή εικόνας
Ωστόσο, δεν είμαι ιδιαίτερα ικανοποιημένος με τα εργαλεία εικόνας που χρησιμοποιώ/αναπτύσσω, οπότε θα δοκιμάσω το δικό σου εργαλείο HTML. Επίσης, δεν έχω καθόλου εργαλεία για δημιουργία/επεξεργασία μουσικής. Δεν είμαι σίγουρος τι θα ήταν το καλύτερο για έναν εντελώς αρχάριο (noob) σε αυτόν τον τομέα.
Είμαι αρκετά καινούργιος στη σύγχρονη ανάπτυξη για CPC, αλλά τα τελευταία χρόνια έχω ασχοληθεί πολύ με το Vic 20 dev.
Το κύριο εργαλείο/IDE μου για προγραμματισμό είναι το Turbo Rascal.
Για τα γραφικά, χρησιμοποιώ δικά μου εργαλεία (φτιαγμένα με τη βοήθεια τεχνητής νοημοσύνης) που ονομάζονται Imagery και 8bit pixel lab. Το δεύτερο συνδέεται με το Turbo Rascal, οπότε μπορείς να εξάγεις γραφικά ως μέρος της διαδικασίας build.
Χρησιμοποιώ το Caprice, στο οποίο συνεργαστήκαμε με τον Colin για να υλοποιήσουμε memory injection, ώστε να γίνεται build και run γρήγορα μέσα από το Turbo Rascal. Επίσης, πλέον χρησιμοποιώ τον εξομοιωτή cpc syntax error, ο οποίος διαθέτει έναν ωραίο debugger και υποστηρίζει επίσης τη λειτουργία injection.