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.


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


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:


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:

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

Tuesday, May 2, 2017

Soko Banish 1.3 - Status Symbols

Dah-dah-dah-dah! It's that time of the year again where I show you things from Soko Banish 1.3 to drool over - or perhaps even vaguely appreciate. Huzzah! Let's get on with it, shall we?

Conserve energy: turn off the lights when you change your settings.

There are two things to see here, the first of which are the settings. These are what pops up when the player presses "Escape" now, replacing the ugly old retry and quit pop-up and darkening the rest of the screen as is all the rage in pop-up menu fashion. I mentioned the settings on [my previous post] and I don't think there are any big surprises here, but I still wanted to showcase how it actually looks in action right now. The runes spell "Soko", in case you were wondering - the game has had that little thing going about Germanic runes appearing here and there because old-timey magicks, though I may not be doing much more with that.

Perhaps more surprisingly (and illuminated for your convenience), we can see the new status bar thingy, formerly known as wasted screen space. I'm not sure what I was thinking when I originally dedicated the entire bottom row of tiles to only a small level changer, but the bar finally has all the kinds of useful things one would expect to find there, like basic GUI functions.

I had actually already done this in what would have become Soko Banish's "Necronomicon" expansion before I scrapped it, but I'm not exactly crazy about recycling old material from 2006/07 when I don't absolutely have to, so I started it over from scratch, taking the opportunity to tinker with the graphics a bit to turn vaguely wood-looking blocks into something more akin to limestone. The wyvern(?) statues are still the old ones - I might update them some day, but I'll need to be careful with that; they're a very characteristic part of the game's appearance.

So, what's new here? From left to right, we first see the new step counter in action, counting steps like a step counter does. Those are footprints on the icon, in case it's too tiny to tell. Next to that is the timer, counting in minutes and seconds and going up to 99:99, which I hope no one's going to legitimately want to exceed in a single session of playing a 20x14 Sokoban puzzle (though if you do have that sort of time to waste, let me know and I may have some tasks for you!). Both of these can be switched off in the settings and will be switched off by default, as this kind of game honestly ought to be about finding solutions to the puzzles and not optimising your performance. Results aren't saved, but if you care about such stats, you can now see them while you play! Oh, and there's the level name at the bottom, which is automatically filled in as "Level #" for untitled levels - such as this one, and pretty much every other level right now because the meta data pixies are lazy clods.

On the other side of the level selection (which works the same as it always has) are a couple of useful buttons. Retry and Quit are finally where you would expect them to be instead of being confined to an unnecessary Esc menu - this also means no menu will pop up when the player character dies now, allowing you to undo if you'd rather not start the whole thing over. The gear once again opens the settings, while the fat "i" stands for info and displays the level's meta data in a pop-up. I was considering showing this automatically at the start of each level, as happens in the brilliant MESH: Hero games that I heartily recommend and am not being paid to advertise, but I figured it's probably nicer to see the actual levels when zapping around. No more pop-ups! Except when you want them.

So, what's next? Apart from some graphics work: converting all the old stages, finishing up a half-finished feature or two and a lot of testing. There are tons of things that I'd love to see in the game eventually (saving solutions! Saving level states! Saving Private Ryan!), but I think people would rather be able to actually play this than listen to me rant and rave about all the things they don't get to try out yet. Considering the 1.1 update was as significant as fixing a bug and adding a blinking animation, it's about time to get 1.3 ready for release before it turns into version 3.1, growing up without its version number parents so it can dress like a flying mammal to spread fear into the hearts of software bugs and terrible GUI approaches.