No custom assembler or machine code is reasonable - keep it pure BBC BASIC, but no SYS calls? At all? I think that would be too much of a limitation. For a start, contestants would therefore be restricted to BBC BASIC's native graphics commands (MOVE, DRAW, PLOT, LINE, RECTANGLE, etc.), and *(M)DISPLAY, but they can be very slow on some systems.My suggestion for limitations etc would be to avoid them as much as possible, though I wonder if it would be a good idea to limit it to "pure" BBC BASIC. I guess by that I mean no assembler, and probably not even SYS calls.
I was proposing a BBCSDL-only contest largely because it's freely available to everyone on a variety of platforms, and plotting sprites with it is comparatively easy. There are now reams of source code (and example programs) showing how to draw graphics/sprites, and play sound effects and music. The full version of BB4W is not freely available (the trial version is restricted). My other motivating factors for a BBCSDL-only contest is that Richard has put shedloads of work into cross-platform BBC BASIC, and it appears (to me at least) that there's not much going on in the way of 3rd party game-making with it despite what it's capable of. Making a game with it could help expose previously undiscovered bugs in the interpreter and IDE(s), and this helps Richard out (if he's willing and able to fix them!).
This is a good point. The SyntaxBomb code-a-game contests must appear quite intimidating to many inexperienced programmers who would like to take part, but probably think they don't stand a chance against brilliant and experienced regulars like STEVIE G, iWasAdam, and of course Qube himself. Even I felt that way quite recently!My reasons for suggesting that are:
1) It will mean most, if not all, programs should run happily in either BB4W or BBC-SDL
2) I hope it will encourage less experienced programmers to give it a go
Yeah, no custom C, pre-assembled/compiled machine code binaries, DLLs, Shared Objects (Linux dynamic libraries), or assembly language allowed. Only BBC BASIC and what comes 'as standard' library-wise with the BBCSDL package(s). Is everyone happy with this?3) It will highlight the abilities of BBC BASIC, in its modern incarnations, rather than the ability of people to use it as a platform to show off C coding/DirectX/Direct3D skills. On the other hand, if you want fancy 3D graphics, you'll probably need to allow (maybe library-mediated) access to something of the sort.... but then BB4W and BBC-SDL solutions will diverge.
If we agree to make it a BBCSDL-based contest, then DirectX/3D doesn't really come in to it, and SDL 2's API (SYS commands) seems quite well documented, if somewhat technical for newbies. Some might want to do stuff via the OpenGL API though, which I don't think should be disallowed because it's what SDL 2.0 is based on anyway, and in some cases it may be unavoidable to get certain operations done.
Again, I'm willing to be outvoted on my BBCSDL-only preference, but a 'no SYS calls allowed' rule seems too limiting, IMHO.
I'd like to also add that I have very little experience with BBCSDL (at least as far as using SDL 2's API to load graphics and plot sprites, etc.), so it's going to be a learning process for me too. But luckily, thanks to Richard, we've got tons of source code & example programs to peruse.