-
Notifications
You must be signed in to change notification settings - Fork 500
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Ink & Paper Engine (Traveler's Tale ; Away Mission) #408
Comments
That's really cool. I've been keeping everything in my (visual novel/RPG adjacent) project in the ink (Unity reaches into the ink for everything story or gameplay related, it's been great for experimenting with wrappers) but your engine is both more ambitious and more versatile. Looking forward to watching it progress and checking it out once it's publicly available. |
This sounds fantastic, and would fit nicely with some ink ideas that were too ambitious for me to implement on my own. Please keep us updated! |
Awesome. Interesting to see your ideas for the commands. Personally, I found this approach very quickly becoming limiting when I built my own RPG engine (originally with my own language design, later moved to Ink and used with Ink in Pirates and Traders 2 - way too many functions, parameters, etc. My solution was to allow object references as variables in Ink, as well as the possibility to call methods on those objects. Like the approach to using the tags for this. Ink didn't have tags when I originally built mica-ink/jInk, so that was not an option at the time, but I can see how that might be a way to introduce objects while still staying compatible with Ink. Though it loses one of the advantages I like with having objects, which is the ability to easily integrate into the script; e.g., Anyway, good luck with this. Will follow with interest. |
(moved all of my first posts done one, to make the OP the most up to date information)Right now I'm engineering how everything needs to be done with Traveler's Tale. First Features for Paper Engine (Traveler's Tale):
Which should end up with gameplay like this: All derived from just writing some story in INK, and some WorldMap/HexTile logic in JSON. |
Oi, I forgot to update this whenever I update the devlog. I will add a link to the more up to date Unity devlog in the OP. #Tags turned out to be a poor way to handle things, due to the lack of variables & function calls. Syntax has changed to be similar to what Inkle themselves use.
And for Character related Dialogue or special text rendering (ex. Titles)
I will also update at the bottom of the OP, all the currently supported commands (as they appear in my documentation). This way everyone can see the real functionality of "Paper" as it gets developed in real time. I will add only tested & finished >>Commands & Features. |
I updated the OP with some links, the reasons why we are creating Paper Engine, our future plans & current situation, and general information I felt might show off what this will turn into (our games) but while keeping our expectations in check (our "part time job" reality). I hope I was concise and brief enough, while still giving an idea what Paper Engine is & being realistic about the likelihood / timeline of development. |
I have begun work earlier than expected on Procedural Generation & very likely a Game Tool for Map generation. I've added the following commands, with success.
Here is an example of the commands written in Ink, and how they work.
|
CarterG81, has there been any progress made on this engine since last year? If it is even in a beta state, I would be interested in trying it for a project. |
Like aumusic, I was wondering if it would be possible to take a look at the engine (even if it's not fully developed). It looks promising and I'd love to see if I can incorporate it into a project. Thanks! |
Looks very interesting and promising. Are you going to publish the engine? I would like to try it and play with it. |
I am still interested in this @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
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.
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)
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.
Away Mission is our attempt at creating a game which puts the Player in the role of Captain of their very own Treky spaceship.
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)
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.
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
The text was updated successfully, but these errors were encountered: