Ανάπτυξη λογισμικού / Build Pipeline

Γεια σε όλους,

Ποια εργαλεία χρησιμοποιείτε στην ανάπτυξη λογισμικού; Ποια έχετε γράψει μόνοι σας και πώς μοιάζει το 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).
    • Μπορείς να αποθηκεύσεις και να φορτώσεις την τρέχουσα κατάσταση
    • Εξαγωγή σε C και Assembler.
    • Animations
    • Χρώματα οθόνης CPC.

Εσείς πώς δουλεύετε;

Χαιρετισμούς,
S.D.

3 «Μου αρέσει»

NTC BASIC (υποστηρίζει προγράμματα σε BASIC, JS ή PHP ή όλα μαζί σε συνδυασμό με inline Z80), Claude, JSASMPLUS, WINAPE, JNEXT, CHROME

Κυρίως CPCTelera και σπιτικά εργαλεία Python…

VSCode ως IDE.

Όλα τα πρότζεκτ μου χρησιμοποιούν το 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, αλλά αυτό απαιτεί πολλή προσπάθεια).

1 «Μου αρέσει»

Εργαλεία:

  • Ο δικός μου εξομοιωτής «Arnold» - 80% του χρόνου κατά την ανάπτυξη
  • rasm, pasmo, sjasmplus assemblers.
  • vscodium/visual studio code/notepad++
  • Microsoft visual studio 2022 community edition (όπου πρωτοτυποποιώ μερικές ιδέες σε c και μετά τις υλοποιώ σε asm).
  • SDCC, Z88dk με τις δικές μου βιβλιοθήκες για ορισμένα παιχνίδια
  • cpctelera επίσης για μερικά
  • δικά μου εργαλεία για τη δημιουργία δίσκων, επεξεργασία header
  • παλαιότερα δικό μου εργαλείο σε c για μετατροπή γραφικών αλλά τώρα χρησιμοποιώ python πολύ περισσότερο
  • έχω χρησιμοποιήσει ένα-δυο προγράμματα επεξεργασίας βασισμένα σε tile maps παλαιότερα (το tiled είναι ένα από αυτά).
  • gimp (για όσα γραφικά μπορώ να φτιάξω μόνος μου, που δεν είναι και πολλά)

Μηχανήματα:

* Κυρίως windows αλλά κατά καιρούς και linux.

Διαδικασία build (pipeline):

  • bat αρχεία που κάνουν τα πάντα ξανά και ξανά - θα έπρεπε να χρησιμοποιώ κάτι σαν το make, αλλά δεν μου αρέσουν τα makefiles.

Έλεγχος/διαχείριση εκδόσεων κώδικα:

  • fossil scm
  • συμπίεση σε zip

Δοκιμές

  • Σε GX4000 με pico cart (πάντα έτοιμο)
  • CPC6128 όταν μπορώ να τον βγάλω από την αποθήκη.
  • Έχω διάφορες πλακέτες ram και πλακέτες rom τις οποίες χρησιμοποιώ
  • Δεν έχω CRT ή CTM οθόνη, οπότε όλες οι δοκιμές γίνονται σε σύγχρονη τηλεόραση συνδεδεμένη με scart.

Μπορώ να γράψω κώδικα, δεν μπορώ να φτιάξω γραφικά, δεν μπορώ να φτιάξω ήχο, οπότε εκτιμώ πραγματικά τη βοήθεια των άλλων σε αυτά.

@awergh

Αξίζει σίγουρα να μεταβείς στο cpctelera_next.

Εκτός από όλες τις εξαιρετικές νέες δυνατότητες, βασίζεται πλέον στο 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.

1 «Μου αρέσει»

Η 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) σε αυτόν τον τομέα.

1 «Μου αρέσει»

Πραγματικά χρήσιμο νήμα για περαιτέρω έρευνα.

Είμαι αρκετά καινούργιος στη σύγχρονη ανάπτυξη για 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.

1 «Μου αρέσει»

orgams, ο κύριος πηγαίος κώδικας συνήθως χτίζει τα πάντα, αλλά μπορεί επίσης να προγραμματιστεί μέσω σεναρίων από τη BASIC.

OCP / impdraw