#screenshotsaturday #pixelart
#indiedev
#screenshotsaturday #pixelart #indiedev
#screenshotsaturday
The traditional first enemy: a rat. Our rats are descendants of lab rats that escaped during The Event.
We got animated doors! #pixelart #gamedev
Walk in a “forest”: good hunt!
Walls and y-order in Tiled maps
This post talks about 2d maps created in Tiled, and how we implemented walls and
Y-order. You may think about it as Z-order, but as our maps are flat, we only need to arrange things by their Y coordinate.
On thin walls in Tiled
How do I know which tile in Tiled is passable, and which is not?
Especially that we have such a luxury as thin walls.
My answer is Tiled feature – Terrains (https://doc.mapeditor.org/en/stable/manual/terrain/),
AKA Wang tiles (a good article for gamedevs: https://dev.to/joestrout/wang-2-corner-tiles-544k).
If a side of a tile has a terrain named “wall”, it’s not passable – as simple as that.
This way, our level designers don’t have to mark up the map – the walls are already in the tileset.
On Y-order
So, our objects (and object layers in Tiled) do have Y coordinate, so we know in what order
to draw them.
But what about tiles on a map?
What if our maps have multiple complex layers, maybe even a tree of layers?
What if these layers have similar objects with different Y coordinates, like multiple trees
or pillars or whatever?
Shall the level designer split each object into a separate layer and assign it a Y-order property?
This sounds like too much manual work, prone to error.
Our answer is – automatically split layers into “island” segments, and internally set
each segment’s Y-order according to the lowest tile (with the highest Y).
3 segments for 3 trees on a single layer, with a different Y-order
The next step is to only assign Y-order to segments based on the walls
assigned to tiles of that segment. The engine reasonably assumes that
a wall is on a floor level, and everything above it is fluff – tree top,
wall bottom, and so on.
Think of a door mat:
This is more precise, because sometimes our wall tiles have tiles
both above and below them.
Devblog #2: Tools for writing an interactive narrative
Greetings.
In today’s devblog I’d like to share a part of my journey into the world of game development, as well as give some advice to all those who are also thinking about getting into writing for video games.
A few words about my background.
I studied in Poland to become an animator, and later in my career I switched to writing screenplays for TV and feature films. Together with my co-writer, Helga, we wrote a few episodes for shows here and there, and successfully sold one feature film, which we’re really proud of. Though, unfortunately the development on that film was halted due to the ongoing war in our country. In parallel to all that I wrote various film reviews and think pieces for mine and my co-writers facebook page. Ours is a small and humble blog, but we did go viral a few times. The blog is what actually led to me being noticed by our team lead, Hugh Hoyland. He had this idea for an old-school RPG videogame brewing in his head, and was in search of a writer who could help flesh out the concept and write the narrative content for the game.
Now, it’s been my dream for quite a while to switch to the videogame medium, so I was quite excited to jump onto this opportunity. However, this was uncharted territory for me and I was lost at first. I was used to writing non-interactive media, where everything went according to my whims. Trying to write with a player interaction in mind was a completely different beast.
My biggest question at first was about the format in which a game narrative would be written. After all, my task was to write a non-linear narrative with lots of branching paths. I remember designing short narrative adventures in Microsoft Powerpoint using hyperlinks, but other than that I had no idea on how this is done by professionals.
Fortunately I knew someone who could help: Brian Bucklew, the developer of an insanely complex roguelike called Caves of Qud. He introduced me to some key concepts about writing games and also recommended some software I could work with. Many thanks to you, Brian!
First, he introduced me to a concept of a Storylet — a unit in non-linear storytelling. You can read more on the concept here: https://emshort.blog/2019/11/29/storylets-you-want-them/
Storylets are what makes writing for a game difficult. A standard document such as a screenplay no longer fits. We need something that can create branching paths, a tree of decisions and variables.
That’s where Brian recommended some engines I could use. The engine is what determines the format in which you will write, so you better make sure you and the rest of the development team are on the same page. You don’t want to be in a situation where you write something big and cool in an engine that the devs don’t know how to implement in the game.
Tool #1: Twine
First up is Twine — a free open-source tool for interactive fiction. It does not require programming knowledge and it’s very easy to learn and easy to use. It might seem a bit basic at first, and Twine probably won’t be your final choice when it comes to engines. But it’s a great tool for initial prototyping and testing various ideas.
I used it at the very start in order to demonstrate how my narrative would work.
In the game I can have a situation where you do a quest with many possible outcomes. But for the sake of clarity I’d break the quest down to its most basic components, such as “Player does X” and “X leads to character B dying”, and then I’d put it all on the board in order to see how a narrative evolves. You can also use Twine to make very simple narrative text adventures.
Twine can be found here. It’s free and open source.
Tool #2: Ink
Next up is Ink. It’s a narrative scripting language for games, made by Inkle Studios. It’s a very cool tool for making your interactive story more stimulating in terms of visuals and audio. It’s very cool and also you can integrate it with a game engine such as Unity or Unreal.
Tool #3: Inform7
Then there’s Inform7, a language for writing parser games. In case you don’t know, parser games are a genre where you give computer commands by typing complete words and sentences. This might be not a great fit for writing a modern RPG, but if you want to create something like an old-school adventure game, Inform7 is your ticket.
Tool #4: Articy Draft 3.0
Finally, I’d like to share what tool I ended up using — Articy Draft. ArticyDraft is an purchasable app you can use for writing you can use for complex video game narratives.
I picked it up because the devs behind Disco Elysium said they were using it.
On the most basic level you can use this app to write branching stories, add images to them, and then you can test them inside the app to see how it all looks. Additionally, you can create pages for character and location descriptions, draw maps, create outlines for the plot etc. You can even do a little bit of scripting, such as adding RPG skill checks.
The app it’s also versatile. You can use it to write lore for your game, diaries, design docs. It’s pretty great. It also has Unity and Unreal integration tools, though I can’t speak for them as we are using a custom engine for our game. I’ve been using Articy Draft 3 extensively for our project, and also I now use it for almost all of my narrative writing.
It currently costs 69.99$ on Steam, though be aware that Steam has only the older 3.0 version. Or you can purchase a subscription on the developer’s website for 6,99 EUR. There’s also a free version that has some limitations. You can try it out to see if Articy is to your liking.