Author |
Topic: Example program challenge (Read 4013 times) |
|
michael
Full Member
member is offline


Posts: 157
|
 |
Re: Example program challenge
« Reply #2 on: Jan 15th, 2017, 01:51am » |
|
With 714 views since December 27, 2016 (just on BBC4W forum), RETROLIB 10 does have the interests of many. I have publicly offered it to everyone . I have expanded it further into version 12.( not seen here)
It has some premade objects that can be customized and works extensively with palettes and shading and graphics controls. It also has special input tools. It is still being improved, but does provide some help for those who might want to slap stuff together fast.
I can modify it into 2 versions. One for BBC4W (which is what it works on..), and the reduced object assist version.
There is some testing to be done for the colour checking tools on BBCSDL. I offer it once again.
|
| « Last Edit: Jan 15th, 2017, 02:01am by michael » |
Logged
|
I like reinventing the wheel, but for now I will work on tools for D3D
|
|
|
Richard Russell
Administrator
member is offline


Posts: 803
|
 |
Re: Example program challenge
« Reply #3 on: Jan 15th, 2017, 09:49am » |
|
on Jan 15th, 2017, 01:51am, michael wrote: Thanks for the offer, but I am not currently looking for libraries. Potential new users, evaluating BBC BASIC (e.g. using the trial version), may form a view on its capabilities and strengths by running the supplied example programs, which is why I am keen that they should give a good impression. Libraries are 'invisible' to such people so aren't really relevant to that concern.
The new BOUNCE program kindly provided by Howard (see the thread at groups.io) filled a gap in the coverage of BBC BASIC's features, in respect of structure arrays. I have also added a couple of new programs of my own recently, such as POLYFIT and SNOWSCENE. Looking across the set of examples as a whole it is apparent that the GAMES directory is very sparse compared with GENERAL and GRAPHICS.
I know that a lot of people, like me, are not very interested in games but nevertheless they can be colourful, dynamic, and - hopefully - a good demonstration of the capabilities of the language across the board. Also, many of the most spectacular programs ever written in BBC BASIC have been games (although too large and, probably, non-portable to be of direct relevance).
Richard.
|
|
Logged
|
|
|
|
hellomike
Junior Member
member is offline


Gender: 
Posts: 55
|
 |
Re: Example program challenge
« Reply #4 on: Jan 16th, 2017, 2:52pm » |
|
Hi Richard,
Yesterday I added the BB4W version for the 2048 game Rosetta task. See: http://rosettacode.org/wiki/2048
It's a very rudiment implementation. Just enough to meet the requirements of the task. For example, I didn't adopt the recommended naming conventions, used local variables, added any comments or provided help for the user.
If you agree with the quality level, I could upgrade with a visually more attractive interface, add comments etc and then it would be an honor to donate it as an example game.
Just let me know.
Regards,
Mike
|
|
Logged
|
|
|
|
Richard Russell
Administrator
member is offline


Posts: 803
|
 |
Re: Example program challenge
« Reply #5 on: Jan 16th, 2017, 8:50pm » |
|
on Jan 16th, 2017, 2:52pm, hellomike wrote:| If you agree with the quality level, I could upgrade with a visually more attractive interface, add comments etc |
|
You only need to look at the existing example programs to appreciate that the code quality is highly variable: many of them are poor from that point of view. So I wouldn't worry too much about that aspect, at least not as a priority.
The challenge is to give a good first impression, and it's hard to judge what that program could become if given a graphical interface. It's described as a "sliding block puzzle" so if it could be made photo-realistic (or close) it could well be the sort of thing I am looking for. It's perfectly acceptable for the program to need separate bitmap files if necessary.
David Marples (of the BB4W forum) has offered a vaguely similar program involving draggable 'gemstones', so it could be that they have too much in common for me to want to use both. I don't know whether some liaison might be desirable.
Richard.
|
|
Logged
|
|
|
|
michael
Full Member
member is offline


Posts: 157
|
 |
Re: Example program challenge
« Reply #6 on: Jan 17th, 2017, 04:34am » |
|
I could offer Volatile Vases game I recently made, which has code based board and vase design. I could improve the help screen and make it gather automatically after a swap.
Here is a link to the code and bmp files it created:
https://1drv.ms/f/s!AmYwmTjbmULXlDz300rujXJ6xSfI
It works on BBC4W. It would require modifications to make it work on BBCSDL (mainly replacing TINT type tracking with arrays) and I may need to use a diffrent technique for the sprites. Maybe redraws.
|
| « Last Edit: Jan 17th, 2017, 05:16am by michael » |
Logged
|
I like reinventing the wheel, but for now I will work on tools for D3D
|
|
|
Richard Russell
Administrator
member is offline


Posts: 803
|
 |
Re: Example program challenge
« Reply #7 on: Jan 17th, 2017, 08:59am » |
|
on Jan 17th, 2017, 04:34am, michael wrote:| It would require modifications to make it work on BBCSDL (mainly replacing TINT type tracking with arrays) |
|
That's a valuable reminder that TINT (and POINT) are very slow in BBCSDL (not my fault - all to do with the way OpenGL and SDL work), so should be avoided whenever possible.
Richard.
|
|
Logged
|
|
|
|
hellomike
Junior Member
member is offline


Gender: 
Posts: 55
|
 |
Re: Example program challenge
« Reply #8 on: Jan 17th, 2017, 09:59am » |
|
Quote:| The challenge is to give a good first impression, and it's hard to judge what that program could become if given a graphical interface. |
|
Well, I have something like this in mind: https://gabrielecirulli.github.io/2048/
which is what the game generally looks like. See also: https://play.google.com/store/search?q=2048
Note that I'm not that keen to include animated sliding though. Would be hard, I assume and would defy the purpose of serving as an example for newbie's in my opinion.
So if including such an implementation has a chance, let me know and then I start coding.
Mike
|
|
Logged
|
|
|
|
Richard Russell
Administrator
member is offline


Posts: 803
|
 |
Re: Example program challenge
« Reply #9 on: Jan 17th, 2017, 2:22pm » |
|
on Jan 17th, 2017, 09:59am, hellomike wrote:| Note that I'm not that keen to include animated sliding though. Would be hard, I assume and would defy the purpose of serving as an example for newbie's in my opinion. |
|
The supplied programs have multiple purposes, only one of which is to serve as "an example for newbies". If that was their primary purpose we would not have mandel.bbc or teapot.bbc or sheet.bbc, none of which can by any stretch of the imagination be described as the sort of program that could be written or understood by a 'newby'!
Rather what I am looking for is a program or programs with the 'wow factor'. Elegance and simplicity are desirable, of course, but not at the expense of the impression they give of the capabilities and power of BBC BASIC.
In any case I wouldn't agree that animating a sliding block is hard:
Code: MODE 20 : VDU 5 w% = 240 : h% = 80 GCOL 11 : RECTANGLE FILL 0, 0, w%, h% GCOL 0 : MOVE 16,60 : PRINT "Sliding block" bx% = 0 : by% = 0 drag% = FALSE MOUSE ox%, oy%, b% REPEAT WAIT 1 MOUSE x%, y%, b% IF x% > bx% IF x% < bx%+w% IF y% > by% IF y% < by%+h% THEN MOUSE ON 137 IF b% drag% = TRUE ELSE MOUSE ON 0 ENDIF IF b% = 0 drag% = FALSE IF drag% THEN RECTANGLE FILL bx%, by%, w%, h% TO bx%+x%-ox%, by%+y%-oy% bx% += x%-ox% : by% += y%-oy% ENDIF ox% = x% : oy% = y% UNTIL FALSE Quote:| So if including such an implementation has a chance, let me know and then I start coding. |
|
Definitely worth pursuing.
Richard.
|
|
|
|
hellomike
Junior Member
member is offline


Gender: 
Posts: 55
|
 |
Re: Example program challenge
« Reply #10 on: Jan 17th, 2017, 7:25pm » |
|
Thanks for the reply. Of course, "RECTANGLE TO". Keep forgetting about its power.
OK, I will give it a try. Where should I post the beta for evaluation?
Mike
|
|
Logged
|
|
|
|
Richard Russell
Administrator
member is offline


Posts: 803
|
 |
Re: Example program challenge
« Reply #11 on: Jan 17th, 2017, 8:10pm » |
|
on Jan 17th, 2017, 7:25pm, hellomike wrote:| Where should I post the beta for evaluation? |
|
I really don't mind. If you have some private webspace (a small amount is often bundled with a broadband package) you can put it there. Or if you've got a cloud storage account (Dropbox, OneDrive, Google Drive, iCloud etc.) they all, I think, provide publicly-accessible spaces - and even if you haven't you can open one for free!
Wherever you choose to put it, just post the URL in a message here so that anybody who wants to can download it.
Richard.
|
|
Logged
|
|
|
|
Richard Russell
Administrator
member is offline


Posts: 803
|
 |
Re: Example program challenge
« Reply #12 on: Jan 18th, 2017, 08:19am » |
|
on Jan 17th, 2017, 7:25pm, hellomike wrote:| Of course, "RECTANGLE TO". Keep forgetting about its power. |
|
I should add that, because it involves 'reading back' from the screen, it shares with POINT and TINT that it is very slow in BBCSDL. If you are wanting to 'animate' a sprite that is easy to redraw (e.g. a BMP image) then you will probably find it faster to redraw it in the new position than to 'copy' it with RECTANGLE TO.
Richard.
|
|
Logged
|
|
|
|
Richard Russell
Administrator
member is offline


Posts: 803
|
 |
Re: Example program challenge
« Reply #13 on: Jan 21st, 2017, 9:45pm » |
|
on Jan 17th, 2017, 7:25pm, hellomike wrote:OK, I will give it a try. Where should I post the beta for evaluation? |
|
Any progress on this front? The next release of BBCSDL is due in only 10 days time so there's a degree of urgency.
For my own peace of mind can you confirm that there are no IPR issues surrounding this game? Obviously I cannot distribute with BBCSDL any program that may raise questions of legality.
Richard.
|
|
Logged
|
|
|
|
hellomike
Junior Member
member is offline


Gender: 
Posts: 55
|
 |
Re: Example program challenge
« Reply #14 on: Jan 23rd, 2017, 2:40pm » |
|
Richard,
Developing the graphical form for the game, I arrived at the infamous last 5% (taking 95% of the time).
Concerning licensing, as per the following Wikipedia link, the concept is free and open-source. "https://en.wikipedia.org/wiki/2048_(video_game)"
I uploaded the unfinished beta for the game to Dropbox. Its location is: https://www.dropbox.com/s/p8hfsq13m6vkn4w/2048beta.bbc?dl=0
Main concern to have this working with BBCSDL, is the font.
The original 2048 game uses open-source font "Clear Sans". I installed that in windows and then in BB4W, the display mimics the original game at https://gabrielecirulli.github.io/2048/ very close, although the score in not kept (yet) nor any animated sliding is implemented. To be SYS "GetTextExtentExPoint" independent, values are kept in the TW&() and TH&() arrays.
The font is at: https://www.dropbox.com/s/k8kyy0gt3zshk78/clearsans-1.00.zip?dl=0 In Windows, when this font isn't installed, the alternative chosen is okay-ish too but BBCSDL just states "No such font".
To overcome the font problem, I could delived a BMP file with the different squares in it and use the same technique as in "PacMan.bbc". However I'm not sure I then can make the deadline.
OK, well that's the current state.
Regards,
Mike
|
|
Logged
|
|
|
|
Richard Russell
Administrator
member is offline


Posts: 803
|
 |
Re: Example program challenge
« Reply #15 on: Jan 23rd, 2017, 6:17pm » |
|
on Jan 23rd, 2017, 2:40pm, hellomike wrote:| Main concern to have this working with BBCSDL, is the font. |
|
The fonts currently supplied with BBCSDL are:
DejaVuSans.ttf DejaVuSansMono.ttf FreeMono.ttf FreeSans.ttf FreeSerif.ttf
I would hope that one of those would be suitable. If not, I would be prepared to include another font but obviously it would need to be 'free' and not governed by licensing conditions that I cannot meet.
You can copy the font-selection code from any of the other examples supplied with BBCSDL to ensure compatibility. There should certainly be no need to resort to a bitmap.
Richard.
|
|
Logged
|
|
|
|
hellomike
Junior Member
member is offline


Gender: 
Posts: 55
|
 |
Re: Example program challenge
« Reply #16 on: Jan 24th, 2017, 08:04am » |
|
This is where I got the font from: https://01.org/clear-sans
It does state that it is free to use. To mimic the original gameplay as close as possible, including the font would help.
One of the BBCSDL font supplied might serve as an alternative, so I wouldn't mind having to add code similar to Code:IF (INKEY(-256) == &57) GUIFONT$="Clear Sans Bold" ELSE GUIFONT$="FreeSans"
However I can't seem to get it to work. In SDLIDE version 0.15a, I can change the display font without a problem (Options -> Set Font...) to e.g. FreeSans,Regular,18.
But when I run the following program I get a "No such font" error.
Code:
Mike
|
|
Logged
|
|
|
|
|