Sunday 16 June 2013

What is Asciilands?

What is Asciilands?

Asciilands will be, in essence, an open-world RPG with fairly accessible tools for creating content like maps, items, NPCs and story devices. This will mean we can roll out more and more fresh content or accept community created content and add it right into the game (perhaps with a little tweaking).

All graphics will be created using Unicode characters Lucida Console. Tiles will be three characters wide and two characters high meaning that at font size 13, the tiles will be 26 by 28 pixels. This is, we believe, acceptably close to a square-based grid. All that will be used to convey things graphically are characters, font background and font foreground colours.

The interface itself will consist of a number of windows or "panels" which will have various pieces of information about where you are, what you're doing etc.
Just as an example, if a player finds a sign in the map and reads it, the "Text" panel will be where the sign is read to.

This is hard to explain; screenshot required!


This screenshot is from the latest test build of the game. The player is in the center of the map and has just bumped into the sign which then displayed the text in the "Text" panel. This is how many of the game mechanics will work; you navigate with the map and "know everything else" by getting information from the panels which will come and go when they have something valuable to tell you or whatever.

Just ignore the debug panel; that's just used to help me get valuable information from the terrifying depths of code.

The ascii style graphics are also visible in the screenshot; what is not, however, is the subtle animation applied to most of the tiles.

Grass, sand and water tiles all oscillate in a randomised way while the bricks stay static. This really makes the game world feel more alive. It helps the turn-based nature of the movement feel less player driven and more like the player is participating. As you're standing still, the grass blows and the sea's waves move around.

There are two types of tiles: Static tiles (like the bricks) which are all the same and don't change, and amorphous tiles (like the grass and sea) which randomly generate themselves using a set of characters (i.e., W, w, V and v for the grass).

Scenery objects like the trees and walls from the bricks are made in a different way and help add a bit of character to the landscape.

The most recent additions at this point are objects in the map which can be interacted with. At this time, those interactions are teleporters (for doorways or portals), pushable objects (like those bricks, they can be moved around and have the same clipping rules as the player), collectible objects (behave as one might assume) and text objects (like the sign) which how the player some text when they interact with it.
The creation of new objects and new ways to interact with objects will be a primary focus going forward as this will be the cornerstone of all the game's mechanics!

One of the most major design challenges experienced by Uli and myself whilst trying to create maps is the quandary of how to create a sense of three dimensional land in a flat, square grid with only only ascii characters to represent what we need.

Obviously a screenshot of this problem is required:
Pictures is the section of the map (dubbed "the bluffs") where I felt out the solution to this problem. It's difficult to make clear but pictured is two raised areas of grass connected by a bridge. South of the player is a snaking wall.
The hardest part is communicating to the player that those brown surfaces are vertical and you can't simply walk over to them. That wooden pole is perpendicular to the sand and is connected to the underside of that wooden platform. The solution, as it stands, lies in using two different shades of the vertical surface. Each time the vertical surface changes "depth", the shade changes two. This communicates that it's the same surface (as it is the same colour and the same texture) but it's on a different level (as it is a different shade). It also creates vertical lines down the divide to help to separate the different depths of the same surface.

A simple play-test done on a few people consisted of instructing them to walk across the bridge. I knew I was getting closer to the solution when they stopped immediately trying to walk over the brown surfaces as if they were mud.

This pattern of changing shade and some creative use of the map-making tools will hopefully allow us to create maps which can be visually understood. Players should become better at understanding the landscapes as the various visual cues are reinforced.

The following is a screenshot of inside that cave where you can see more of the shade-swapping in action:

Do you feel like the depth cues are working? Are they clearer after they are explained? Share your thoughts in the comments below.

I think that's enough for now, the core engine is close to being stable enough to really churn out some content. Next on the agenda is an inventory system then hopefully NPCs!

3 comments:

  1. What a well written two posts. Well done.

    The depth queues seem alright, I'm sure the animated tiles will help with this.

    I've recently been playing a lot of gnomoria and I can tell you isometric design + sandbox makes for depth perception hell if left in the hands of players. I can appreciate the design difficulty.

    How did you calculate a 13pt character from Lucida Console to be 26x28? Its a fixed width font, I thought it would be square as a result.

    ReplyDelete
    Replies
    1. Thanks, Serge.

      Each 13pt Lucida Console character is 8x13 pixels and the tiles are composed of two rows of three characters so the tiles are 24x26 pixels. 28 was a mistake on my part.

      Delete