Hey there! Well done so far, keep up the good work! What is your dev stack if I may ask? I am assuming VS Code with some Asm integration?
Viewing post in Sparkpaw: The Stormstone Quest (Amiga 1200) comments
Thanks! Well this is being developed in Codex Desktop/ChatGPT with 5.6 SOL as model, I instructed it to make Amiga games in C / lowlevel and started from there and from scratch. Now many hours later we have a complete toolchain. Because I'm a software engineer I do regularly check what is being produced in code in VSCode which sometimes determines my next prompt/question
I just let Codex summarize the the complete toolchain/dev-env:
- C — the main programming language for the game and direct Amiga hardware control
- VBCC — cross-compiles the C code for the Motorola 68020
- VASM — assembles the generated and low-level 68k code
- VLink — links everything into the final Amiga executable
- AmigaOS NDK — provides the AmigaOS headers, system structures and hardware definitions
- GNU Make — automates asset generation, compilation, testing and release builds
- Python and Pillow — convert artwork into Amiga palettes, bitplanes, sprites, masks and packed runtime assets
- Git — version control and development history
- FS-UAE — emulator testing at both 68020 and 68030 configurations
- Real hardware — final testing on an A1200/68030
- ADF, HD and WHDLoad packaging tools — create bootable floppy images and installable release packages
The game is mostly written in C rather than handwritten assembly, but it directly controls the Copper, Blitter, hardware sprites, DMA and Paula audio.
The AI models are indeed improving in leaps and bounds in a matter of weeks! I used AI to optimize my Blitz Basic code for Hyper Runner, specifically by converting hot-path logic from BASIC to Assembler and I saw a lot of performance improvements, to the point where Hyper Runner could run on a stock 1200.
I think going with the C approach is a good idea as the models deal better with higher level languages, while on the other hand C is also good for the low level operations (register access etc) required.
I will certainly adopt this approach in future Amiga projects.
My current project is for Neo Geo, using NgDevKit and a setup very similar to the above, using Python and Powershell for data processing tools etc.
Ah just now I realize you're behind Hyper Runner, awesome game, I have a reminder set to order the physical version. Really nice work and good luck with your new project!
Now you mention Blitz Basic, when I started I asked to do it in C but also look for other options, Blitz Basic, Amos, Scorpion etc we're all mentioned and researched but for my usecase we sticked to C
About performance, my mistake was test too much on 030 so 020 became horrible FPS wise. Gained a lot FPS back and fixed other issues along the way by letting ai inspect and debug the compiled code. Fun times.