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.

Tuesday, March 21, 2017

Soko Banish 1.3 - Choose Your Destiny

Progress has been slow on Sokobanish 1.3, but it's still going somewhere when I'm not too occupied with drawing comic pages and wallowing in self-pity. Showcased here is the new level select screen! I posted a sneak peek of this in the Lanschilandia Games news a while ago, and as I promised there, here's a more detailed look.

More intelligent discourse than my usual writing.
So, what's new? Quite a lot, in fact, since I finally separated all this stuff from its primitive home on the old title screen. In the top-left corner, you can see the overview of level sets - this is roughly the same list as the old one, but looking quite a bit neater, framed by a sort of book shelf. Because it's the level library. Get it? Me neither.

In place of putting in a level number, the levels are now listed as fancy soulstone spheres in the somewhat stage-like section of the screen. (Because they're stages. Hehehe.) This not only gives you an overview of how many levels are actually in the set, but also lets me do some other neat things.

For starters, selecting them now reveals meta info! This can be set in the updated Level Creator, with the exception of the preview, which is generated automatically by rendering the level data with tiny-sized versions of the game elements. Since it shrinks the actual in-game graphics, custom tiles will also show up as they should in the preview. The level sets have meta info as well, which is simply the contents of a file named "info.txt" that can be placed in the level set folder.

You may also notice the little rune circle icon on one of my test levels - it indicates that the level has been completed. In the top-right corner are the player profiles, framed by, well, a picture frame. Selecting "<New player>" and attempting to start a level will prompt the user to enter a name, thus creating a profile for them. Huzzah!

And yes, as the good old gear button between "Play!" and "Quit" implies, the game now has an actual options dialogue with fascinating basic settings like volume controls and switching off the game's full-screen mode. It's funny how the need for basic GUI functionality never seemed to occur to me back in 2006, but I like to pretend I've gotten better with that sort of thing. Maybe.

Oh, and there's an experimental new feature implied by the contents of the level set list. Can you guess what it is?

##  #####
# .$. @ #
# #  $  #
#   #####

Wednesday, March 8, 2017

Review: Sokoban Online

Wait, what's that? Shouldn't I be talking about my own projects here? I probably should, but in absence of much to report and a lack of motivation to devote what time I can find outside of my webcomic to working on my projects over at Lanschilandia Games, you may be seeing the occasional review from me.

Today's subject is Sokoban Online, a free browser game by Uphill Studio LLC. The game can be played here. Let's kick it off then, shall we?

So, what is it?

Sokoban is a puzzle game published in 1982 by Thinking Rabbit about pushing boxes onto goal fields. It's spawned probably thousands of clones and variations and hundreds of thousands of Sokoban puzzles can be found on the internet. My own game, Soko Banish, is obviously a clone as well at its core.

How does this one hold up?

Sokoban Online, as the name would indicate, is an online adaptation of the classic game. It can be played directly in a browser and registering an account enables it to keep track of solved levels, scores and more.

Levels can also be built and shared, either using the classic Sokoban tiles by themselves or in combination with a number of new puzzle elements that more-or-less fit into the game concept. This easy online level sharing and playing is perhaps the game's strongest point, being neatly integrated with the website and player accounts. There's a limit of how many levels can be shared, after which a small fee is required to unlock more space, but prices are reasonable at only a dollar for 100 slots (which most people never seem to fill, according to site statistics). Everything else is completely free, save for a few purely optical replacements for the player character graphics (there are two included with a free account).

One of over 100,000 puzzles in Sokoban Online.
After a quick optional sign-up process, what sticks out is the number of levels available - over 100,000 as of writing this review. Now, these of course weren't all made for Sokoban Online, but include conversions of multitudes of puzzles scattered around the internet (and other Sokoban games), grouped by author. Added to that are the new levels, created by players and staff. Even after solving hundreds of puzzles, the statistics on the main page still tease with a completion percentage of less than 1% that will most likely never reach 100. Overwhelmed yet?

You very well may be, because browsing this database isn't always easy. After finishing a short tutorial and official "lessons", you are largely on your own in trying to find something that interests you, which can be difficult, as browsing is basic and there is no search. Nothing can be sorted (it's always by alphabet), no tags and almost no filtering, ratings are basic and so under-utilised they may as well not exist, descriptions are sparse at best. There are a few ways to get "recommendations", but they don't seem to be personalised and finding puzzles of a particular style, size or difficulty is impossible if you don't already know where to look. Even finding most of the staff-made levels is tricky (hint: look for "Jeffrey" in the directory for community-built puzzles). A help tab currently offers some outdated info, including links to sections that no longer exist.

The game itself is decently realised, if very basic. Arrow keys to move, U to undo, R to restart. No mouse controls, but the mouse is used for site navigation (including going to the next puzzle), so the player has to switch back and forth a lot. There is also a full-screen mode, but it doesn't remain active when the puzzle changes. The new elements are nice to have, but a mixed bag - some fit quite well, like the grey blocks and holes straight from "Sokonex", while others, like the magnets, feel unnecessary or too complex. There is also a bug involving icy floors and the undo function that makes boxes disappear. Levels can play quite differently depending on which of the new elements they use (if any), so it would have been great to have a filter for that.

What seems like more of a curse than a blessing is the game's competitive focus. When you solve a puzzle, the site saves the number of steps you took - not just for yourself, but it's also shared publicly, whether you want it to be or not. This score may then appear on the level's leaderboard, where the first three places are awarded with trophy badges and "EXP" displayed on the account. While it's all optional, the omnipresence of this aspect around the site creates pressure to solve levels in the fewest steps possible (and some are specifically built to be hard to optimise rather than hard to solve), which limits the feeling of accomplishment from solving the puzzles. Planning an optimal solution manually is hard to impossible, and Sokoban Online with its lack of features makes it a pain in the box, requiring many restarts and memorising your steps because the game won't do it for you. Adding to that, the availability of automatic move optimisers means that the top score on almost all (classic) levels is the absolute lowest amount of steps possible, so unless you want to waste time with external tools or a lot of trial and error, expect the game to continuously taunt you with the "invisible" trophies you're earning.

So, is it worth checking out?

Definitely, for its online approach alone - and there's no harm, after all, as it's free and runs in the browser. It also makes for an easily accessible way to try out a whole bunch of classic Sokoban puzzles without downloading them (if you can find the sort you're looking for), and new elements can introduce interesting challenges in the levels that utilise them well. For comfort and quality-of-life features while playing classic Sokoban, there are certainly better and much more customisable options available, though as a completely web-based clone with account integration and online level sharing, Sokoban Online is still worth a look.

Saturday, October 8, 2016

Soko Banish 1.3 - Custom Tiles!

Here's some actual work done on the new version of the game rather than just the editor! Though the editor is involved as well. Mostly the editor.

As the title already spoiled, the game now supports custom tiles. Yaaaay! So how do they work?
The Level Creator now includes 64 additional elements that can be placed on the toolbar or transformed. They're grouped into their own sections in the tile picker popup - clicking the flower with the C brings you to the custom decorations, while the wall stands for custom walls (how unexpected!).

By default, however, those are simply slime puddles and basic walls with numbers on them. So how do we turn them into something more suitable for Ardos Balmung's incredible stone-pushing adventures? Simple - the editor and game will look for PNG files with certain file names inside the level pack folder and replace the custom tile graphics with those. For instance, a file named "cwall07.png" would replace the custom wall that usually has the big honking "07" on it and could perhaps look like the ice blocks I scribbled for testing the feature.
In conclusion, you can now give your levels their own look, different from anything that comes with the game! Unless you want to replace the standard objects and floor tiles, of course, but that may be coming up in a future version. Right now, with this implemented and the new Level Creator mostly functional, I'd like to focus on the new level selection menu and adding various fancy stuff to make the game more user-friendly. Stay tuned!

Monday, September 19, 2016

Creating the Level Creator - The Sharpest Tools in the Shed

As the newest version of the Soko Banish Level Creator continues to evolve, I continue having more stuff to show and talk about. A lot is new and different even since the last post I made, as you can see the in the first good look at the work-in-progress Level Creator below.

Level Creator 1.2 in action!

Although the most visible features are the graphical changes, toolbar extension (two more objects! Just enough for all the wall styles currently in the game) and the optional grid (the rulers slide back when the cursor is near them!), the most notable one I'd like to talk about are the tools. You can see them in the bottom-left - the four little grey buttons taking up conveniently little space to the left of the game elements instead of needing a separate bar. So what's hiding behind these little icons?

The first, as you have have guessed already, is the draw function - it's the standard mode for object placement that the editor has always had. The icon is a little paintbrush painting a line, in case it's hard to make out. And speaking of little paintbrushes, the cursor also becomes one now while the tool is selected! The moving square on the grid remains, but the shape of the mouse cursor changes for each tool to make it easier to know which one is selected.

And speaking of selecting, that's the little cursor icon to the right of the brush. I'm fairly excited about this one and may expand its abilities some more in a future version, but right now it can do three things, each of which first required drawing a selection rectangle on the grid:
  1. Delete the contents of the rectangle, making for a quick way to erase a chunk from the level,
  2. Drag & drop the section somewhere else, overwriting anything it's plopped on top of (empty fields are part of the rectangle), and
  3. Transform all objects of a certain type within the selection into another object.
The last one was actually the reason for implementing the tool - I needed a more practical way for the user to quickly change walls and decorations to their alternative appearances, replacing the cycling-by-clicking method (I talked about this in my previous blog post). The way it works is simple: You select an area, double-click on an object within the area and get a pop-up identical to the one used for replacing objects on the toolbar (which looks much nicer by now). Pick anything and you're all set! Since it's not limited to alternative appearances, you can change any object into anything else - if you need to replace a bunch of wooden gates with golden ones or somesuch, you can also do that now!

But that's not all that can be done with rectangles in the updated Level Creator - a rectangle draw tool (which doubles as a line tool for horizontal and vertical lines) was long overdue and is now in as well, functioning in pretty much the same manner as drawing the selection rectangle except that it's filled with the object you have selected. Large areas can now be filled with a single mouse click, which certainly beats the click-fest that was version 1.0 and also freehand drawing.

And in case there's more filling to be done, the last new addition is the fill bucket tool, which can work in two ways: if you click on an already placed object that's on a different layer than the one you're filling the level with, that layer is ignored (e.g. soulstones will be filled on top of rune circles if you start the filling action on a rune circle). If you start filling on an empty field, only empty fields will be filled. The first option was going to be the only one until I realised that it would cause void tiles to slip under the boundary walls, which made the fill tool nearly useless as filling in the outer boundaries with void is probably the single most useful thing it can do. Instead of working around by implementing special behaviours for certain objects only, I instead did it like this. I'm not sure if it's self-evident enough, but it certainly beats having inconsistencies in handling the objects.

There's more, but I'm saving that for another time. Stay tuned for more news and surprises! We may even begin to advance into the actual game - after all, Soko Banish 1.3 is to be the main attraction.

Friday, August 26, 2016

Creating the Level Creator - Toolbar News

For the next Soko Banish release (1.3), I'll be updating its Level Creator to version 1.2 as well - a much needed update and one of my top priorities right now, as it barely received any changes outside of restoring the old functionality with a faster engine in its 1.1 (with game version 1.2) release. While one of the biggest changes is overhauling the level format (more on that in a later post), the coolest change I can talk about right now is what's been happening with the toolbar.

The 1.0 Level Creator toolbar is incredibly simple - not surprisingly so when you consider that the project was one of the first editors I ever created. It started as a simple toolbar for an unfinished Bomberman clone I was working on at the time, and when I repurposed the code for a Soko Banish editor, it retained that simple, static form, with some statues to make it reflect the in-game GUI. Unfortunately, that greatly limits it in what it can do, and it also makes it hard to add more objects or alternative looks for them. Previously, I've been solving this problem with a method very much inspired by Epsitec's Speedy Blupi editor - placing down an object and clicking on it multiple times with the same tool cycles through its looks. This is, unfortunately, a rather clunky way to do it. So how will the new toolbar figure into solving it?

What I've added to the toolbar is the simple but (in my eyes) disproportionately cool feature to replace individual items on it. Right now, this is done by double-clicking them, which opens a small pop-up with icons of all the choices available. Select one from there, and voila - the item on the toolbar has been replaced! This is possible thanks to a complete overhaul of the hardcoded toolbar (part of an effort to hardcode as little as possible in the new version) to instead generate itself dynamically, and the Level Creator will save your own personal setup for the next startup as well. Since the choices for what to put on the toolbar include variations, that makes for an easy way to plop down a lot of bones and kettles without feeling like you're playing a clicker game, though the old method will remain in the editor as an optional choice for those who are more used to it (developers, take note! Improving != removing). Since you need to replace items on the toolbar for it, it will naturally be widened as well to include more of those; maybe at the expense of the silly statues.

Of course, this likely won't be the only change to the interface. I'm toying with the thought of adding something like a select tool, which would let you move things that you already placed and also change the appearance of blocks and decorations (i.e. what the old method of placing those allowed you to do but the putting-them-on-the-toolbar approach would not). Nothing is coded yet, but this editor could definitely benefit from some user-friendly tools. There's also an exciting idea for the walls and decorations in my head that goes beyond a simple interface change which would have never worked properly without the dynamic toolbar, but I'm keeping that a secret for now. Stay tuned for more updates here and on Lanschilandia Games!

Thursday, August 18, 2016

Hello World!

Well, here it is now: the blog of Grifkuba Gaming Services. Founded c. 2011 as a hosting provider and network for game enthusiasts and other creative individuals, we're now giving our members an opportunity to speak, and if you like playing or making games, you may wish to stay a while and listen. Check out the About Grifkuba page for more about us!

Be on the lookout for news from the Grifkuba network and our projects here, as well as general game and game design talk from our contributors. We don't have a schedule for updating yet, but may settle into something like that later as the blog builds up some steam.

Thanks for stopping by!
- The Grifkuba team