Jump to content
IGNORED

Sokoban


Andrew Davie

Recommended Posts

36 minutes ago, Andrew Davie said:

I wonder if there's any interest in a polished, cartridge version...

It would be nice to see another puzzle game on the 2600.  I will say, though, that they don't fly off the shelves (Jammed, Crazy Valet, AStar, Poker Squares, Three-s, Euchre).  Of those, probably AStar has done the best, and that's similar to Sokoban. 

 

 ..Al

Link to comment
Share on other sites

5 hours ago, sramirez2008 said:

That settles that.  There’s two of us now.  It’ll have to be made available in the Store. ?

I'm definitely going to release a playable binary first, and hopefully the source code.

One interesting "problem" would be that anyone could then make their own sokoban cart with their own levels and sell as a cart.

Not sure how I'd feel about that!

 

Link to comment
Share on other sites

I've been "un-programming" the engine - removing anything and everything that is related to BD, but also removing systems that make no sense in a generic tile-scroller. This appears the easiest way as the system is functional at every step of the way. This in turn has given me a significant amount of speed improvement. I upped the frame rate just to see how the system will cope. Very well, as it happens. Video shows the system running at about 75% of full-throttle.

  • Like 3
Link to comment
Share on other sites

I've now completed the level unpacking code that works with compressed XSB data. XSB is a Sokoban level exchange format designed to allow levels to be shared by email as simple text. It's pretty simple, but opens up the thousands of pre-built online levels with a simple cut/paste. I did a short video showing a random level being grabbed from a list, put through a converter to RLE encode it, then cut/pasted directly into the source code and run on Stella. It just took a few seconds. These online levels can be quite small in dimension but fiendishly tricky in solving.

You can also see that I've done a little bit of graphics tweaking - you now see when a box is over a target. I'm working on getting the purple area to correctly surround the generated 'board', and also need to get that board centered.

So, next I think I'll put in a bunch of levels, and a selector to allow you to choose. Then, maybe, scoring and keeping track of your best efforts on each level. This is probably a good use for savekey, I think.
 

  • Like 2
Link to comment
Share on other sites

Well the engine is pretty clean now - no BD content. I've just got to change the tile graphics to something different and we're set to go. I had a play with the colours - will have different colour schemes on each level... this one looks quite pretty. You can see the crap graphic replacement for the man - I'll get something reasonable done tomorrow; this is just a placeholder "blobby thing".

Game is essentially "complete" now I need to just put sounds in, "take-back", scoring, savekey, title screen... lots of levels...and we're done. Give me a couple of days.

 

  • Like 7
Link to comment
Share on other sites

On 7/18/2019 at 8:52 AM, Albert said:

It would be nice to see another puzzle game on the 2600.  I will say, though, that they don't fly off the shelves (Jammed, Crazy Valet, AStar, Poker Squares, Three-s, Euchre).  Of those, probably AStar has done the best, and that's similar to Sokoban. 

 

 ..Al

Chetiry didn't do well?

Link to comment
Share on other sites

Here's my regular update. A bit of progress. I have made a character set so it no longer has BD digits.

The screen unpacking is now working perfectly, and I have a few levels in. But no way to select them, so it's all hardwired in code at the moment.

I have implemented the move count (top right), and the "target count" (top left). The target count goes up and down - it counts the number of targets which do NOT have a box on them. When it gets to 0, then the level is complete.  
I've changed the man a little bit - this is still just crappy graphics.

Well, that's about it. A new colour scheme for you to enjoy. I like this one.

 

Seems I suck at Sokoban because I find all the levels I import from online way, way too tricky for me.

My current thinking is you start at level 0.
when you complete the level, that's marked in savekey. Next time you play, you start at level 1

you can still go back and select/do level 0 again. Why?  Because you might want to beat your "best score" on that level.

What's a best score?  That would be a level completed in fewer moves, or the same # moves but less time.

If you don't have a savekey, well that would suck, wouldn't it. You'd have to start from level 0 all the time.

 

  • Like 4
Link to comment
Share on other sites

1 hour ago, Andrew Davie said:

My current thinking is you start at level 0.
when you complete the level, that's marked in savekey. Next time you play, you start at level 1

you can still go back and select/do level 0 again. Why?  Because you might want to beat your "best score" on that level.

What's a best score?  That would be a level completed in fewer moves, or the same # moves but less time.

If you don't have a savekey, well that would suck, wouldn't it. You'd have to start from level 0 all the time.

This!

Instant replayability.  This is why I'm excited about savekey support.  Might help sell a few more savekeys too.

  • Like 2
Link to comment
Share on other sites

Well, I'm having a bit of fun implementing a circular screen erase. The video shows work in progress. Basically it's flickering all over the place because the code isn't timed out properly. Rather than one monolithic routine, using the tile engine you need to think about how to break down tasks into much smaller tasks that can run one after the other. But first you do a monolithic to see if it works. So, I present... circular screen erase version 0. I plan to use it at the end of each level when you complete the puzzle. The circle is calculated in real-time (i.e., it's not hardwired into tables). That may seem kind of expensive - but here's the pretty cool little algorithm I'm using - in particular the pseudo-code at the bottom of page... worked first time.

https://www.cs.helsinki.fi/group/goa/mallinnus/ympyrat/ymp1.html
 

  • Like 5
Link to comment
Share on other sites

Here's a playable binary for you to have at.
It's NTSC-only, runs in the 3E bankswitch scheme if you have any issues there, but stella should auto-detect.

If you're not familiar with how to play - use the yellow + to move the brown blocks onto the jiggling white squares.

Another way of saying the same thing: reduce the number at top left to zero.
This is pretty basic; I've removed the player graphic because my dying snowman mutant player blob didn't do it for me. I'll get some nice animations in sometime soon. I think I'll have to write an animation editor or at least a converter, because doing it with a text editor is a nightmare.
There's only one level; a random one I found online. The final version will need to chase down copyright owners of the levels used, I think.

Hold the button down and use a direction to "look around". There's no "take-back" yet, so you stuff it up, you press reset.
Give me some feedback, if you would be so kind. I haven't "solved" this level yet so if you manage to do that, post a video :)

 

Sokoboo.bin

Edited by Andrew Davie
updated attachment and changed colour description
  • Like 5
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...