Shall we have a game coding contest?

Discussions related to graphics (2D and 3D), animation and games programming
David Williams

Re: Shall we have a game coding contest?

Post by David Williams »

DDRM wrote:
Fri 05 Nov 2021, 08:55
I think a game competition is a great idea. I'll take part if I can, though I'm notoriously bad at starting things and not finishing them....
Me too!

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.
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.

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!).

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
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!
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.
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?

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.


David.
--

DDRM
Posts: 398
Joined: Mon 02 Apr 2018, 18:04

Re: Shall we have a game coding contest?

Post by DDRM »

Happy to go with that, though it will probably mean I won't do anything using SYS calls, since I have neither the time nor the inclination to learn the SDL calls at the moment (I have a full-time job, which involves learning a pile of new programming tools / IDEs / sets of calls etc! I think my brain would fail if trying to add another one in my spare time, and I just wouldn't do it).

That would rather negate the point of making it BBC-SDL specific, and indeed I'd probably just write it in BB4W and then run it in BBC-SDL. That's probably OK (I like doing my graphics on the fly....).

Any thoughts on a title/theme?

D

David Williams

Re: Shall we have a game coding contest?

Post by David Williams »

DDRM wrote:
Fri 05 Nov 2021, 10:34
Prize fund: I'll PM you about this, David. Happy to chip something in, but my aversion to E-banking may be something of a challenge...
Excellent :)

I understand the aversion to E-banking (I used to share it, but I'm naively relaxed about it nowadays). The SyntaxBomb contests have prize money paid into (usually winners') PayPal accounts; all that's needed is a valid e-mail address linked to a PayPal account, which seems quite safe to me. Obviously, not everyone has a PayPal account, but almost everyone knows someone (friend or relative) who has one.
I liked the idea in the latest Syntaxbomb competition, where the prize fund was dependent on the number of entries - encouraged more people to enter, and avoids situations where there are only one or two entries, which might not be of suitable standard.
Assuming 3 cash prizes, I was thinking of stipulating a minimum of 4 entries? Any fewer than that, the contest is cancelled.

Ideas for titles/themes: my preference would be to make it quite open, so people can contribute whatever they fancy - especially for a first event like this (in this forum) - whether that be platform, board game, scrolling shoot-em up, text-based adventure, 3d role playing, or whatever.
Ok. I'm happy with that.

But maybe give a theme - what about "Climate Emergency"?
A bit of a hot potato for some, but I think that theme has a lot of potential. And those taking part in the contest can be as irreverent as they like, right? ;)

What limits would you impose on who could enter? group-funding the prizes implies those people could also enter?
I think anyone can enter (including Richard, if he's up to it). I would be a bit worried about entrants who insist on being completely anonymous because how can we know that they haven't submitted more than one entry?

Who gets to judge? Anyone on the forum who has actually played all the games?
How about this suggestion for a voting requirement: in order to vote on the best 3 entries, a voter (who may have submitted a game) cannot be anonymous and must have submitted at least 10 posts (before today!) to this or other BBC BASIC-related forums (e.g. Stardot, groups.io, the RISC OS Open forum). So, upon giving all the valid entries a fair play, votes for 1st, 2nd and 3rd place can be e-mailed to me confidentially. I don't the we want to bog people down into 'scoring' each game on originality, presentation, gameplay, graphics, and sound, do we? Or do we? What do you think? My suggestion at voting time is just to state which game you think comes 1st, 2nd and 3rd. (But what happens if there's a tie?)

In summary, as things currently stand (pending further discussion - but not too much!):

* Game theme: Climate Emergency
* Game type: Any
* Duration of competition: 4 months (start and end dates TBA)
* Language: BBC BASIC for SDL 2.0 (a.k.a. BBCSDL or BBC-SDL)
* Platform(s): Any of those supported by BBCSDL, but at a minimum the game must run correctly and be playable under the Windows version of BBC BASIC for SDL 2.0
* A game may (optionally) be written in such a way that it is compatible with BBC BASIC for WindowsTM, as long as it also runs correctly under the Windows version BBCSDL
* BBC BASIC only - no custom assembly language or machine code in any form whatsoever
* No custom or 3rd party libraries that contain assembly language or machine code
* The standard BBCSDL libraries that happen to rely on assembly language or machine code are permitted
* SYS calls are permitted
* All entries must include source code (any that don't get rejected)
* Prize fund is currently £500
* Prize allocations are currently £250, £150, £100 for 1st, 2nd, 3rd place respectively
* One entry per person only
* Those that have submitted a game cannot vote for their own game!
* Payment is by PayPal or BACS (the former involves giving an e-mail address linked to a PayPal account, the latter involves giving a bank account number and sort code)
* The contest must receive a minimum of 4 entries or else the contest is cancelled with absolutely no compensation for those that have already submitted a game
* At voting time, members of this and/or related forums (Stardot, groups.io, ROOL) with a minimum of 10 posts (made prior to today), and who wish to vote, should e-mail me (at a given e-mail address) with their choices for 1st, 2nd and 3rd place. They must give some kind of affirmation that they have given all the entries a fair play.

Once there's overall agreement regarding the theme and rules (and let's not string this out!), I will create a dedicated competition web page which I will 'advertise' here and at other relevant forums.

Any thoughts?


David.
--

David Williams

Re: Shall we have a game coding contest?

Post by David Williams »

DDRM wrote:
Sat 06 Nov 2021, 10:14
Happy to go with that, though it will probably mean I won't do anything using SYS calls, since I have neither the time nor the inclination to learn the SDL calls at the moment (I have a full-time job, which involves learning a pile of new programming tools / IDEs / sets of calls etc! I think my brain would fail if trying to add another one in my spare time, and I just wouldn't do it).
When it comes to plotting sprites it's very easy with BBCSDL's standard ImgLib library (imglib.bbc): you load your sprites (a number of image formats are supported) using the FN_imgLoad function, and plot them using PROC_imgPlot. Going by the aliens.bbc example program, it's all very straightforward.

And happily, there's a compatible BB4W version of the library (IMGLIB.BBC) which comes as standard with the latest version of BB4W. :)

I would urge everyone thinking of taking part in the contest to study aliens.bbc (it's part of the BBCSDL package - examples\graphics\aliens.bbc). It's very informative, and shows how easy it is to plot sprites. Some 'power users' will probably want to do away with the wrappers (namely PROC_imgPlot) and access the SDL 2.0 API directly via SYS statements for better performance.

In addition to aliens.bbc and other example programs, there's plenty of BBCSDL-based source code available from here:

http://www.proggies.uk/bbcsdl/index.html

I should also add that plotting sprites is (arguably!) even simpler using *MDISPLAY, but I don't think the rendering process is hardware- or GPU-accelerated. I think some speed tests are in order! See the example program 'chain.bbc' that comes with the BBCSDL package (examples\graphics\chain.bbc).

David.
--

DDRM
Posts: 398
Joined: Mon 02 Apr 2018, 18:04

Re: Shall we have a game coding contest?

Post by DDRM »

Hi David,

Happy with your suggestions for rules etc! I'll start thinking...

D

David Williams

Re: Shall we have a game coding contest?

Post by David Williams »

DDRM wrote:
Sat 06 Nov 2021, 22:04
Happy with your suggestions for rules etc! I'll start thinking...
I'm having second thoughts about the 'Climate Emergency' theme because I fear that it's a rather politically charged, contentious hot potato, and many potential contestants might feel uncomfortable with it. I wouldn't want anyone to think that the organiser of the contest (me!) has drawn any conclusions about climate change (I'm not a sceptic, btw), or is trying to push an agenda of some kind.

Therefore, shall we go for something more neutral albeit less topical?

I suggest something simple and familiar: "Alien Invasion"

EDIT: Perhaps a subsequent BBC BASIC code-a-game contest could go with the climate theme, but I think it's better to test the water with my alternative theme suggestion.

David Williams

Re: Shall we have a game coding contest?

Post by David Williams »

Upon much further reflection, I don't think my idea for a BBCSDL-specific game contest was very realistic after all. I now doubt that it would attract enough interest to make it worthwhile. So I've decided not to proceed with the contest, sadly. I'm grateful to David and Ric for their support and feedback.


David.
--

DDRM
Posts: 398
Joined: Mon 02 Apr 2018, 18:04

Re: Shall we have a game coding contest?

Post by DDRM »

Hi David,

I'm sorry to hear that. Would you consider running it with something like the following modifications, as a feeler for whether a more full-scale one might fly?

1) BBC-SDL or BB4W. A few extra points for cross-platform/language entries
2) Any topic/title/style, but a few extra points for something that isn't simply an implementation of an existing game (for example, Connect-4 or Reversi, or Donkey Kong). Significant variations acceptable. Maybe a tick-box for whether a game gets this bonus during voting?
3) Minimum of 3 entries overall. ?Max 1 per person?
4) Total prize fund £50 per entry, up to £250, split 50/30/20 across the top 3?

Consider making it less ambitious/long-term - maybe "12th Night"? That might (a) reduce prevarication, (b) reduce the expected scope/quality, (c) engender more excitement?

Justification: All the changes are designed to increase the chances of participation. I know reducing the scope/quality means it's less useful as a "sales pitch" for BBC BASIC, but it also means more people might get involved, since they probably won't be competing with (for example) one of your full-fledged, graphically rich, multi-level blockbusters! I've reduced the prize fund a bit to recognise this probable drop in standard, but it might still reach £125 for first, plus all the fame and glory, which should be enough to tempt people to have a go? Justification for 12th Night (Jan 5th): gives a fairly short deadline, but leaves scope for people to work on entries over the Christmas/New Year break.

Best wishes,

D