Skip to content

Ink & Paper Engine (Traveler's Tale ; Away Mission) #408

Open
@CarterG81

Description

@CarterG81

Traveler's Tale (thus Paper Engine) DevLog can be found over at the Unity Forums.

Paper Engine is designed to allow game writers to create (nearly) their entire (more than Text) game without ever leaving Ink. The goal is to eventually deliver games of ever-increasing complexity without losing the casual-friendly focus on Writers being the main skill required to make awesome games.

Major features include

  • v1.0; Hexagonal Map & Player Movement, and Entering Locations (ex. Dungeons, Cities, etc.) or other Hexagonal Maps (World Map, Region Map, City Map, etc.).
  • v1.0; Polyhedral Dice System for Conflict Resolution (D2, D4, D6, D8, D10, D12. D20)
  • v1.0; Combat Positioning System (Unique to Traveler's Tales)
  • v1.0; Skill / Task Assignment System (Unique to Traveler's Tales)
  • v1.0; Text Rendering - Narration Dialogue, Titles (Big font, centered, bold), Character Dialogue (Portraits, small GUI boxes appearing over or near character entities like chat Bubbles)
  • v1.0; Static Image Rendering - Backgrounds, Characters, Props, Commands to manipulate Images, etc.
  • v1.0; Audio Control - Play Music, Sound Effects, etc.
  • v1.5; Special Effects - Particle Effects, small animations, etc.
  • v1.5; Procedural HexMap Generation
  • v1.5; Random Name Generation
  • v2.0; Advanced A.I.
  • v2.0; 2D Animation, Cinematic sequences, etc.

What is Paper Engine?

Ink & Paper Engine is a combination of Ink, JSON, C#, & Unity, which allows game developers to write their games entirely in INK, supplemented by gamer-friendly Game Tools made in Unity or JSON edited text.

The most important function of Paper are the Commands, written in Ink.

Story Text Story Text 
>>Command(Parameters)
Character: Dialogue Text

and the "Game Modes" which are optional features which rely on Ink / JSON parsed by Unity.

An example of going from GAMEMODE(MAP) to GAMEMODE(SCENE)
travelerstale halfsize

Paper Engine is, in fact, the technology I will be developing for my team's games. So if our game has a feature, Paper Engine will have it too.

Since our games will be fully moddable (with all the tools, source, art, and Ink functions packaged with the games), anyone who owns our games will be able to make games with Paper Engine.

Why Paper engine?

Our games can be created in Paper Engine, one after the other.

Our team has worked on three unreleased games: Traveler's Tales, Away Mission, and Beyond the Forest. To be brief,
Traveler's Tale is our attempt at turning our favorite PnP moments into a semi-roguelike, semi-RPG game about Travel and More-Than-Violence conflict resolution. Inspired by books like The Hobbit and games like Curious Expedition, Neo Scavenger, and retro Tolkien game freeware.
new gui los
camp

Away Mission is our attempt at creating a game which puts the Player in the role of Captain of their very own Treky spaceship.
spaceexplore2
cargobay

The design is best summed up as attempting to be a "Starflight-like StarTrek:TNG-like Captain Simulator with FTL inspired artstyle", obviously within our own unique IP of what we think a Treky future would actually be like (with a rainbow of uniform colors to show the great variety of Scientific fields of study)
200x professions

Both of these games share a lot in common; especially Ink for their dynamic story content & our desire to allow them both to be heavily or entirely MODDABLE. Edit these games or create your own games or fan-fiction using the game logic or start from scratch with Paper Engine and all its features.

Who are you?

We are currently part time developers who have been working the past 8 years, trying to release our first game. Traveler's Tale is our mini-scope game, Away Mission (Paused) our more complex game, and Beyond the Forest (Paused) our biggest scope project. Away Mission was quickly prototyped, then put on hold to make a smaller scope game due to the complexity of its systems & our desire to make sure it is the best game it can be. Beyond the Forest has simpler systems (far less innovation or complexity), but ended up being a larger scope game which we devoted over 2000 hours into, creating a fully working multiplayer server and a lot of art & systems for our open world game.
physics1 small

We paused development of Beyond the Forest, despite having so much progress, because of Financial Reasons. Release was still 1-2 years away. Traveler's Tale is our 1-3 month attempt at creating a game which will allow us to become Full Time Developers. Our costs of living are quite low considering our team & skills, but without income we work at a snail's pace. We want this part time work to end so we can begin creating games significantly faster. Significantly.

So... should we take development of Paper Engine... Seriously?

Here is the Caveat: Our first priority is in developing our games. While Traveler's Tale will definitely include the first version of Paper Engine, with the game being fully moddable at or shortly after release, we cannot guarantee that Paper Engine 2.0 will be the best choice for Away Mission. That requires a discussion, engineering, and plans for a game we have on the backburner.

I'd love to release Paper Engine as an open source project, but for now we're planning on just bundling it (and likely as much of the source as possible) with the sale of our game Traveler's Tale. I'm not really sure we can survive if we don't sell Traveler's Tale as both a Game AND an Engine. I hate corporations, greed, and I love an open internet & open world, but we are just a small team of skilled developers who currently have very low income levels. I myself work full time as a mentor for underprivileged children and counselor's assistant, for the last 6 years.

Passionate, Experienced, and Devoted

However it is important to note that I personally have been working since 2009 to learn to make, and then actually create, games. This has been a non-stop, all-consuming passion of mine for the last >8 years. So this isn't a matter of "Will we Release these 3 games?" but a matter of "WHEN will we release these 3 games?" Our success with Traveler's Tales will decide the difference between these 3 games being released over the years or over decades. There is an enormous difference between being a part time hobbyist & full time developer.


CURRENT PROGRESS - COMMANDS LIST


GAMEPLAY

Game Modes

>>GAMEMODE:SCENE
Switch to SCENE Mode to show pictures, display sprites, tell story, and receive choice input.
>>GAMEMODE:MAP
Switch to MAP Mode to allow the Player to move around a Map.


SCENE MODE

BACKGROUND

>>SetBackgroundImage(ImageName)
Changes the Background to this Image.

SPRITES

>>CreateSprite(SceneID, ImageName, PositionX, PositionY, Flipped)
Reference sprite by its SceneID, for any future commands.
ImageName should include the filename without the extension (Bob.png would just be “Bob”)
Flipped is a bool, so “true” for flipped or “false” for not flipped. All characters should default facing Right ->
>>MoveSprite(SceneID, PositionX, PositionY)
>>MoveSprite(SceneID, PositionX, PositionY, Flipped)
Move a Sprite entity to a new position. Flipping is optional.
>>ChangeSprite(SceneID, ImageName)
Description
>>RemoveSprite(SceneID)
Destroy a sprite from the scene. All you need is its reference SceneID. You cannot recover a removed sprite.

STORY

>>RequireContinue
This requires the Player to use Continue Input to progress to the next line of INK.
You would want to use this if you have no story text between Commands, such as when changing images while wanting the player to use input so they see the sprites change at the player’s pace.
By default, PaperEngine automatically continues to the next line after a Command, will keep on parsing commands line after line, and will not stop until it finally receives Story Text (a line of Ink text that isn’t a >>COMMAND).

DIALOGUE / SPECIAL TEXT

Title>:DialogueText
This will render "DialogueText" as large font, bold, centered text.
Later versions may turn this into a function which also controls other options (Font Size, Font Color, etc.)

MAP MODE

MAPS

>>CreateMap(MapID, MapSizeX, MapSizeY)
Reference Map by its MapID, for any future commands.
Create a new Map of {MapSizeX} by {MapSizeY} size.

PROCEDURAL GENERATION

>>ReplaceAllTileType(MapID, TileToReplace, NewTileType)
(ex. ReplaceAllTileType(AdventureMap1, Forest, Ocean) will replace all the Forest tiles with Ocean tiles.)
>>AddNoiseI(MapID, TileType)
Adds a random tile of TileType to MapID map. This will only call the function once.
>>AddNoiseI(MapID, TileType, RepeatTimes)
This is what you will want to use most of the time, to splatter TileType tiles all over the map randomly. AddNoiseI function will be called RepeatTimes times.

EXAMPLE of some Scene Commands in gameplay

prototpye scene

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions