Thursday, July 5, 2018

Obligatory Soko Banish 1.5 Post

It's that time of the year again - the time where I talk about the not so super secret project I've been working on without posting very much about. It's... Pop Rock 'n' Roll! No, just kidding, it's another Soko Banish version. Last one, I swear! Until the expansion comes out.

So what's coming in Soko Banish 1.5? What could be so big to warrant increasing the second digit in the version number after the near-complete overhaul that was 1.4.0? I'm not sure, but you're getting this stuff instead:

Custom Skins!

This looks familiar... oh no, my game is ugly again!
This is something I've been wanting to do for a long, long time - ever since the customisable walls and decorations were added in 1.3.0, actually! Now it looks like it's finally happening, barring some unexpected glitch (early experiments broke up the game into its molecules and reconstructed all the graphics from GUI fragments, so who knows what may happen). Essentially, a skin is a sub-folder containing PNG graphics to be used for the in-game objects. These are then applied by the game in three "layers":

The player's skin preference (which can be changed in the game settings) is the top layer - graphics from this skin are used whenever possible. If it's missing graphics, these gaps are first filled in by any level-specific skins defined in the editor and finally by the default graphics. Why make it so complicated? Because it's now possible to re-skin only certain objects while leaving the rest intact. Ever wanted to play as a rubber chicken but afraid of breaking the rest of the graphics with your chickeny goodness? Now you can! Get out there and squeak with the best, bucko.

Mouse Controls!

Did your keyboard spontaneously combust in the middle of playing a level? No problem! (Well, except for the fire, but that's a lower priority issue.) Simply click anywhere in the level, and Ardos will do his best to reach that spot on the most direct route, walking into danger whenever possible (hey, I said it was direct, not smart). Objects won't be pushed unless they were specifically clicked on, though it's possible to hold down the mouse button and keep pushing. There is certainly room for improvement here, but it's more of an experimental feature - something I've wanted to do, but which I don't see replacing the keyboard method as the primary input method.

Solutions!

The "light and holograms" switch.
While the game still won't solve your financial problems (it can, but it chooses not to), you will now be able to save your solutions for the Sokoban levels. You will in fact be forced to save your solution if it's shorter than the previous one. Sorry, kid - that's how it goes sometimes. Once a level has a solution stored, a light bulb button appears on the GUI bar - click it to activate hint mode, which causes a ghostly apparition of Ardos to show you where you should probably be depending on the step number you're on. Keep following that marker to re-enact the complete solution, or turn it on/off at any time as you please! Solutions are stored in the standard u/r/d/l* format so they're compatible with other Sokoban games (not that you would ever want to play a different one again *ahem*).

So when is all this happening? It's hard to say, as I haven't been terribly motivated. I must admit I'm getting a bit tired of this particular project, and as hinted earlier, 1.5 will likely be the last major release for a while to come, finally leaving the game with all or most of the expected features of a decent Sokoban adaptation. There are of course clones that take these a lot further, but Soko Banish is not those games. Even disregarding the new gameplay elements, I feel it's got enough individual charm and polish by this point to not be made entirely obsolete, and that's all I could have wanted out of the project.

Until I get to explore my options for an extended edition... "Necronomicon" is still somewhere in the idea bank.

*That's up/right/down/left, chum.

Saturday, March 31, 2018

Creating the Level Creator - 1.4 is Coming!

It's that time of the year again: I'm doing stuff! A new version of the Level Creator for Soko Banish is in the works, and it's going to add tons of long-awaited features (awaited by whom? By me, of course!). Here's a quick run-down of some major upcoming features.

Testing!

Levels can now be tested via a handy menu option in the editor, which calls sokobanish.exe from wherever it is located on the harddrive and opens the level in it - you don't even have to save! Once you finish or quit, the game closes automatically. This is possible due to some sneaky magic razzle-dazzle and fairy farts I added to the game with the 1.4.1 update, so be sure that's at least the version you're using before trying to test levels.

Managing Files!

The info.txt, levels.txt and custom graphics, that is. One of the things that's been bothering me was the levelpacks' reliance on external files that have to be added to the folder (with the correct names and formatting) manually. It's not exactly convenient. The new in-editor interface not only lets you import/create them more easily, but also gives you an overview of all the custom graphics currently in the pack and a browseable list of levels, complete with previews and level info so you know exactly what level you're moving where. You can even hide the extra info so you don't know what you're doing anymore. Gnarly!

The menu, please.

Undo & Redo!

This is a big one and was competing for top spot with the other two. (It finished in third, but nothing it can do about that.) If you ever accidentally turn your walls into ghosts and fill up the whole place with 173 cauldrons (it happens to everyone!) you can now undo your mistakes and no one will ever know. No one! Except you. Ten (10) revisions are saved, though this number can be customised by manually editing the less and less appropriately named "toolbars.ini".

Random Placement!

An idea I've been toying with for a while is a randomiser function, and now it's here. Well, not yet, but you get the idea. Simply input a density in percent and the editor will randomly spread the selected object across the level or the selected area. Now you don't even have to build it yourself! (Note: For an actual fun and solvable level, you still have to build it yourself.)

Counting!

One rune circle! Two rune circles! Three rune circles! Ah-ah-ah! And if you don't have a vampire to do it for you, the select tool will now count elements by pointing at them. If an area is selected, only objects inside it are counted, and if there are too few rune circles in the level, a status bar with a warning pops up that tells you how many are missing. Nifty!

So when is all this happening? Soon-ish, I guess. All these features and more are actually in as of writing this, but I'm too lazy to properly release the new version there's still some testing to be done. Stay tuned, and see you in Greifenhausen Keep!

Wednesday, October 4, 2017

GNOP 2.0 - The Gnopening

With Soko Banish 1.4 released (grab it here if you haven't yet!) and no other versions planned for the near future, you may be wondering what I've been up to. You may be sitting there, playing your favourite Sokoban clone and thinking "there must be something amazing in the works from my favourite computer game developer right now". And you may be right, but I can't speak for other people, so I'll just tell you what I've been doing:

Nothing!

Working on the newest version of GNOP! What's that, you ask? GNOP is a Pong clone I first created in 2005. (Try reading it backwards - it's "PONG". Clever, aren't I?) The idea was to create a version of this simple game that is customisable and has different AI levels. It also had better physics than I was used to. So I slapped a settings screen together, released the whole thing, updated it a couple times with exciting things like improved AI and a bug that completely broke the 2-player mode, shared it with no one significant and put it in cryostasis for a decade until I eventually re-released it on Lanschilandia Games when the site launched, barely altered from its original state.

This original state is now gone. No, really. Surprisingly, it turns out that what I created a decade ago doesn't really match my present day standards anymore (*cough*Soko Banish*cough*) and won't do with merely a few feature upgrades, so I overhauled the entire core engine and replaced pretty much everything apart from some assets. This made the planned 0.1.0 version step increase look a bit silly, hence GNOP 1.3 is now known under the ever-so-fancy name GNOP 2.0. But what is actually new in this upcoming release (apart from, y'know, everything)?

Can you pong with all the colours of the wind?
Shown here is the new game configuration screen in its current work-in-progress form. When you compare it to the old one, it becomes fairly apparent that I have changed the game logo. If you look closely, however, you may also notice a bunch of new settings. So what do these entail? Briefly put, what can be changed now about the game experience?

Apart from the core engine, nearly everything. Both paddles can be customised, not just in the colour as before, but their entire graphics (you can import your own), sizes, speeds, the sounds they make and how (or by what) they are controlled. Then there's the ball, which can now be recoloured, resized, re...speeded and even spin. Heck, you can replace it with da Vinci's Last Supper (or even his lunch from two weeks ago) and fling it all over the screen. And speaking of the screen, you can customise that as well with very flexible stage sizes (the window resizes automatically), backgrounds and (unfortunately pre-defined) special effects, specially copied largely from Soko Banish because I'm lazy and no longer limited to the starfield from the original game. The possibilities are endless!* (*NOTE: Possibilities are not actually endless.)

Want to re-enact historical ping-pong battles? Pretend you're Yogi Berra pilfering those pic-a-nic baskets? Have an epic light sabre fight, only the light sabres are inexplicably Pong paddles? Now you can! Well, not now, actually. But when the new version is out, you most certainly can. Maybe.

Oh, if you look at the bottom left, you'll see a save/load feature for the different configurations, so you don't have to set up everything again later. The game will also come with a few premade configuration files, and more might show up on the website รก la Soko Banish level sets. Stay tuned!

Monday, August 21, 2017

Soko Banish 1.4 is Here!

Who you gonna call? No one. Bad reception in here.
First things first - download the game here:

http://games.lanschilandia.com/g_sb.php#downloads

Soko Banish 1.4.0 (and version 1.3.0 of the Level Creator!) is out and a lot sooner than expected - a lot of its features were still on the "some day" list, but hey, today is quite some day as well.

It's been great to pick up this old project again and slowly turn it into something worth sharing with people, and I hope people had fun following my progress! (And speaking of progress, I've made an attempt to let you keep your completion status on each level apart from the ones that have been changed significantly. Huzzah!) So, what's up next for the game? An expansion pack to buy with money, eventually. That won't happen for a while, though, so enjoy 1.4 for now! There's a lot to do, and more levelpacks may yet arrive.

New in this version:

- New graphics! (Backgrounds! Weather effects! Pretty stuff!)
- Two new game elements: Rocks and Grates.
- Support for larger levels - up to 40x40 tiles!
- Reworked and rearranged levels in the Standard set.
- Save & load buttons - save your progress on a puzzle and return later!
- ...And a lot more! Check the readme or installer notes for a complete list.

See you in Greifenhausen!

Thursday, August 17, 2017

Soko Banish 1.4 - Level Order and Chaos

Soko Banish has come a long way since 1.0. Websites changed; titles changed; presentation, graphics, and antiquated engine anomalies have been cleaned up. We have laughed, cried and possibly even expressed a feeling of complete indifference together. But throughout all this, one tumultuous tangle of chaos has persisted, indomitable... until now.

I'm talking about level order. When I created Soko Banish in 2006, I was mainly concerned with reaching my target amount of Standard levels, which happened to be 44 (giving the game 100 levels in total together with the Tutorial and conversions of the original Sokoban levels, which were included with the game prior to version 1.2). Since I was also impatient to release the game, this amounted to... well, untested and sometimes crudely designed levels. But more to the point of this article, it resulted in level numbering that was at best arbitrary, made worse by the inflexibility of organising level sets.

Whoops, I had my eyes closed. Can we Retry?
Then, everything changed when the file nation attacked and lifted the requirement to number the files. Huzzah! In Soko Banish 1.4, levels can finally be given descriptive names - and you can even name them Fred. Their order is now alphabetical or defined in a file named levels.txt, which simply lists them all from top to bottom. (No relation to the deprecated file named levels.txt from older game versions. We don't talk about that one.) And of course, I'm not letting this opportunity pass without finally rearranging the levels in the Standard set to reset your profile provide a more sensible progression to people who like to actually play things in order.

Unfortunately, this sounds a lot easier than it is (trust me, I listen to myself). In general, these were the things I considered in deciding on the new level order:
  1. The Difficulty. This one's a no-brainer, though rather hard for me to determine by myself. What I did was write all the level names down in a text file and assign them numbers based on how complex I felt the solution was. As a handy side-effect, this has also helped me identify pitifully easy levels to improve, as well as any remaining unsolvable levels to disprove. (All levels have always been solvable. *waves hand* Always.)
  2. Skill themes. These aren't necessarily very clear, as I didn't really have them in mind when I first threw the game's levels together, but to a more basic degree, elements and puzzle types recur throughout the set. Orbs, ghosts, unsolvable soulstone arrangements, that sort of thing. My goal here, rather than keeping them together, was to keep them apart - it makes the set feel a lot more colourful, especially when the orbs are now purple.
  3. And speaking of colours, Backgrounds. Soko Banish 1.4 introduces actual level background images in place of the ominous black void outside the boundaries of every stage. By default, this is now a black and blue void, but they can get as creative as a magic purple void or even some dirt. Unfortunately, this makes for a jarring effect when a unique-ish background repeats across multiple puzzles that are close to (or even directly next to) one another in the level sequence. Yes, levels are one very dysfunctional family, and these too had to be kept apart.
  4. Whatever the heck I felt like. In all seriousness, there was a certain sensation with some of the levels in which they only "felt" right when put into certain places (notably the "key" levels and the iconic Tower Bell stage) or a specific order. Determining this order sometimes involved reading their names aloud, traversing the rooms in sequence in my mind or contacting the spirits of my ancestors. Of course, I may just be going crazy, but the voices assure me that I'm not.
So what's the best way to balance these? I'm not entirely sure, but I did find myself paying a lot less attention to the difficulty than I thought I would. Because at its heart, Soko Banish is a journey. A journey through disjointed rooms that by some unlikely chance contain Sokoban puzzles, but a journey no less. I feel that the game's theme and potential for atmosphere - especially with the updated graphics! - is what offsets it from other Sokoban-like games (which may in other ways be more refined), and it's something to foster.

Not coming soon: the potboiler novelisation.

Friday, August 11, 2017

Soko Banish 1.4 - Sokoban Rocks

Last time, I talked about the new graphics of Soko Banish 1.4, but naturally, this update isn't all about graphics. It's also about minor quality-of-life improvements. But on top of that, it's about Rocks and Grates, two not-so-sparkly new puzzle elements that will make Ardos's task even more difficult than his refusal to pull the stuff he's pushing (in his defence, he hasn't any arms). Rocks can be pushed like soulstones, but don't have to be on goal fields, making them obstacles that get in the way of the ever-so-important blue balls. Grates can be moved across, but not pushed across (and you can see the new level backgrounds through them!). Deceptively simple, eh? Or maybe just simple in general, whichever you feel it is. So where did these neat thingamabobs suddenly come from?

Make no-push tiles grates again.
Unlike Grates, which are a more spontaneous addition, Rocks were one of the new elements in the scrapped "Soko Banish Necronomicon" expansion all the way back in 2006 and would have found their way into modern Soko Banish sooner or later, as I do still plan to revisit the concept of an extended commercial version. Fortunately for those without the monetary means to purchase chunks of pixelated minerals, they have rumbled and tumbled their way into the free version instead. Why this decision? Why not retain the exclusivity of these precious geological features?

Because they fulfill a basic purpose and were just as basic to implement. Painfully basic, in fact. I'm still recovering from the injuries. So what made them so essential? Arcane Orbs. The idea of the Arcane Orbs was that you'd push something between them to break the invisible stream and be able to pass safely; the problem with that was the absence of any way to remove the object from in-between without substituting another. If that object was a soulstone, there had better be a rune circle somewhere between those orbs or any attempts to still solve the level would become more futile than resisting the Borg. In short, an object was needed that could disable the Orbs without needing to be retrieved afterwards, and that object was the Rock. Thank you, Dwayne.

So where will we be seeing these new elements? Not in too many places, unfortunately. The 44 "Standard" puzzles already exist and I'm not adding any more for the time being, so after the Tutorial, Rocks and Grates will only be sprinkled across the few levels that I'm improving or replacing (unsolvable "Rooms" level, I'm looking at you). The big benefit of them is that you (yes, you specifically) can use them in custom levels made in the editor, which we will hopefully be seeing more of. (Seriously, send me your levels! There's no time like the present, except for the near future when this release is actually out.)

Oh, and also, walls cast shadows now.

Up next: the non-science of level order and chaos!

Friday, August 4, 2017

Soko Banish 1.4 - Ruin Improvement

Soko Banish 1.4 development is officially underway! It's actually been underway for a bit now, but not officially, so you may have been forgiven for thinking that it was still overway. So what's on the horizon for everyone's favourite Sokoban clone? And more importantly, what's happening with Soko Banish?

Pimp my vault.
Well, quite a lot, actually, but let's focus on the one aspect that immediately sticks out for now: graphics! As I've hinted at before, Soko Banish has been long overdue for a complete visual overhaul and it looks like it's finally happening as I purge the mediocrity of 2006 from the realm of Sokobania and replace it with the newest in bush league Photoshop dorkery.

Two concerns come to mind here. The first is obvious: making the game look presentable and in line with the new interface graphics. The trickier part, however, is how to keep it looking like Soko Banish at the same time. The new graphics are admittedly a forced change - one that I feel is for the better, but also one where I'm giving players of previous versions as little choice as a kid being made to eat broccoli if the broccoli consisted of delicious true colour pixels.

This is the second worst
position to be in.
So what exactly does that entail? Keeping the illogical Boulder Dash perspective was a big part. Keeping the decorations in their essence, the basic designs of objects, the main character as an unimaginative green ball. Trying to find a way to keep the ghosts as budget Medusa Head wannabes but still worthy of the upgraded McRuins they haunt. Some graphics were painted over from their original sprites, others used their old appearances as a close reference. Wheels now look like proper spinny crank thingies. Cauldrons used actual cauldrons for reference, but hey, that's what they were intended to be in the first place.

There was one instance where I defied this, and that was the arcane orb. While there wasn't much of a problem with blue balls, it certainly wasn't one of my brightest ideas to make the insta-kill hazards essentially the same thing as what you're trying to push around. "Push the blue spheres onto goals but avoid the blue spheres" is not the clearest set of instructions I could imagine, hence I put my creativity to good use and reimagined the boring old blue balls as flashy new purple balls. Because who doesn't like those? Ardos, that's who. Because they kill him.

Haven't tried Soko Banish yet? Check out the current version here.