Jump to content
IGNORED

Sokoban


Andrew Davie

Recommended Posts

55 minutes ago, Andrew Davie said:

Here's a (hopefully) clean binary with the levels in the correct order. I thought I'd release this before embarking on the changes mentioned above.

I'm really digging the level progression. :thumbsup: It's almost tutorial-like, which is nice for those of us unfamiliar with Sokoban.

Edited by Nathan Strum
Because auto-correct is stupid and annoying
  • Like 1
Link to comment
Share on other sites

10 hours ago, Nathan Strum said:

I'm really digging the level progression. :thumbsup: It's almost tutorial-like, which is nice for those of us unfamiliar with Sokoban.

I agree, it's well graded. But I can't take credit for that.

Again, the levels are from a package designed by Lee J Haywood.

Link to comment
Share on other sites

I had earlier tried to convert the system to 9 character rows in order to give more visibility around the player. That failed, but I realised that since I have more scanlines I might as well try using them. So I've increased the character size from 4x21 to 4x24. This effectively puts an extra 'RGB' triplet line in each character, and stretches the screen by 8 (rows) x 3 (more scanlines per row) = 24 scanlines. It looks much more fullscreen now, and as a beneficial side-effect, things are less squashed looking.

Before and after pictures...

 

aScreen Shot 2019-07-27 at 1.06.12 pm.png

aScreen Shot 2019-08-09 at 1.54.18 pm.png

  • Like 2
Link to comment
Share on other sites

Here is an update. Dual-system binary, colours should be the same for both NTSC and PAL people. I have 4 different level colour-schemes. I can add more, but for now they cycle between the 4 as you go up the levels. There are now (hex) 99 levels installed. That's 153 decimal, for the hexadecimally challenged. Use select to skip levels, reset to restart a level.

This is the new "bigger" characterset - 24 lines deep instead of the previous 21 deep. Consequently, 24 more scanlines of the screen are used (8 rows x 3 scanlines per row), pretty much filling up the screen. Look-around with the fire button held down.
The assembler source-code listing file is over 15,000 lines long!  Lots of that may be auto-generated, but still... big.
 

Screen Shot 2019-08-09 at 11.27.36 pm.png

 

Screen Shot 2019-08-09 at 11.26.57 pm.png

 

Screen Shot 2019-08-09 at 11.26.22 pm.png

 

Screen Shot 2019-08-09 at 11.25.53 pm.png

 

Screen Shot 2019-08-09 at 11.25.33 pm.png

sokoboo_SOURCE_20190809.zip

sokoboo_20190809b.bin

Edited by Andrew Davie
Bugfix binary - move counter was not resetting.
  • Like 2
Link to comment
Share on other sites

1 hour ago, NostAlgae37 said:

Is it just me or is Sokoboo a strange sounding name for the game?  Wouldn't something like Shove Off! be more apropos (I am aware that there was an American version for a vintage system with a similar title)? 

 

The original was called "Sokoban". All my close friends and family call me "Boo". It's a play on names.

  • Like 1
Link to comment
Share on other sites

16 minutes ago, Andrew Davie said:

 

The original was called "Sokoban". All my close friends and family call me "Boo". It's a play on names.

Yeah, I knew the title of the original, but wasn't aware of your nickname so didn't realize how it tied in.  Kind of an in-joke that nobody else would get though, right?

Link to comment
Share on other sites

23 minutes ago, NostAlgae37 said:

Yeah, I knew the title of the original, but wasn't aware of your nickname so didn't realize how it tied in.  Kind of an in-joke that nobody else would get though, right?

Yep. Sokoban the name is copyrighted/trademarked. It is common for clones to use a different name.

I don't know about the original game mechanics being copyright. I'm looking into that.

Link to comment
Share on other sites

'Tis but thy name that is my enemy;
Thou art thyself, though not a Montague.
What's Montague? It is nor hand, nor foot,
Nor arm, nor face, nor any other part
Belonging to a man. O, be some other name!
What's in a name? That which we call a rose
By any other name would smell as sweet;
So Romeo would, were he not Romeo call'd,
Retain that dear perfection which he owes
Without that title. Romeo, doff thy name,
And for that name which is no part of thee
Take all myself.'

 

Link to comment
Share on other sites

The asynchronous, multitasking nature of the tile engine means that things happen "when they can" rather than "when they're called".  This shows up in the initial screen draw, when you see a kind of "draw" happening as the initial tiles are drawn on the screen. At the moment this is particularly noticeable (well, once you're aware of it) because I have very slack tolerances on the timings. That is, where a draw might require 80 cycles to happen, I have it set to 280 just to make sure that there are no issues with things not having sufficient time to draw. The consequence of this is that the whole system tends to slow down a tad, waiting for sufficient "time gaps" in which to draw things.  Everything gets zippy when these timings are tight, but the chance of running overtime increases. Overtime means screen flicker/roll.  Anyway, with the slack tolerances everthing works OK but the drawing is more noticeable.  I tried a little experiment - don't turn on the visible screen until ALL of the initial screen has completed drawing. So it's all there in one "flash" so to speak, but it takes longer for the screen to be visible while that's happening. Anyway, it does work nicely and I did a little comparison video to show the difference...  I think I'll keep it. It's on a toggle/switch in the code, so easy to insert/remove as required.

 

Link to comment
Share on other sites

3 minutes ago, Thomas Jentzsch said:

How about making the image appear even slower and in a more controlled way? E.g. from left to right, or from center to outside or randomly or...

 

 

 

Would require more work :P

LOL


Edit: see my earlier work on the "circle clear" which is still on the backburner - the idea is/was to bring in the screen as a circular visible area.

 

Edited by Andrew Davie
Link to comment
Share on other sites

29 minutes ago, NostAlgae37 said:

The Marketing major inside me is convulsing, but I'll let him die a peaceful death as he didn't bring me a dime in my lifetime anyway.  ;-)

Atari2600 is a marketing world unto its own. If this game becomes a bestseller it might, just might, sell 100 copies.

This is kind of a hobby where traditional marketing nous doesn't really apply. 

  • Like 1
Link to comment
Share on other sites

6 minutes ago, Andrew Davie said:

Atari2600 is a marketing world unto its own. If this game becomes a bestseller it might, just might, sell 100 copies.

This is kind of a hobby where traditional marketing nous doesn't really apply.  

Yeah I realized that, hence the winking smiley emoji.  Sometimes it's just hard to let old habits die when one's mind was trained to think a certain way, but I'm learning to let things go, it's just a work in progress.  

Link to comment
Share on other sites

I loaded this onto my Harmony (not Encore) cartridge and... yeah, it didn't work on mine either.  So instead I dug out my trusty Krokodile cart, flashed it with Sokoboo, and my Atari was perfectly happy playing the game.

 

I kind of expected not to be able to make screen caps.  My capture card, an old All-in-Wonder Radeon, doesn't handle things very well if the number of scanlines ventures too far beyond standard.  Consequently, certain games like Thrust and Boulder Dash don't play nice with it.  Sokoboo gave it some conniptions, but despite a persistent full-screen flicker which I blame squarely on the capture card, I actually was able to make some recordings and get some screen caps:

 

title.png.c965e60e5f09ef86ec026cf7f226876b.png   game.png.334d802a3429d1fdf1f32378d40deed1.png

 

I like it!

  • Like 2
Link to comment
Share on other sites

Well, "take back" is proving really really really tricky. You wouldn't think so, but for some reason the complex flow and asynchronous nature has had me stumped for quite a few days. I'm almost on top of it now - I have the moves saved in a buffer, and all the various restore parameters needed (you have to factor in pushing boxes, restoring the characters behind the box where it WAS, where it IS, and the character the man was on/is on, etc. Anyway, it's not quite fully functional yet - I have to have more than one take-back (it's one because the move counter isn't quite handled correctly). I also need to keep a proper track of how many targets left, as this will change in take-back, too. But here's a short video showing a couple of deliberate mistakes here and there with take-back being used. The background flashes (very briefly) red when I press the joystick button for take-back. The button is used for BOTH look-around (hold and scroll), and for take-back (press/release). Works well. When I get this all functional, I plan to allow 100 moves take-back. Any more than that, you might as well press reset!

 

Edited by Andrew Davie
edited the wrong message :P
  • Like 2
Link to comment
Share on other sites

Finally. Takeback. I spent many hours on this; it did my head in. But it's now working. I think I might have an out-by-one error when the very first takeback move disappears. Other than that it looks OK to me. There are 32 takeback moves available... it keeps a track of the most recent 32. When you run out of takebacks and try to do one, the screen will flash red to let you know. Operation is to just press/release the fire button. Look-around is still there - press fire and use joystick direction.  Video shows takeback in action, though you have to look closely to see exactly when it's being used because mostly it looks like any other move (except when boxes have been pushed).  The counters are all working OK - the number of moves decrements, and the targets-to-get adjusts appropriately.
 

Edit: forgot to mention - this version also has the super-quick screen startup/draw that avoids the previous 'flicker' that was evident if you looked closely. In other words, screen draw happens with screen off. I sped up things, so the delay is really negligible.


 

sokoboo_SOURCE_CODE_20190812.zip sokoboo_20190812.bin

Edited by Andrew Davie
  • Like 4
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...