Mikal's Recent Forum Activity

  • Tool time, no pictures.

    The Dialogue template requires making *.json files with details per line about portrait used, location, facing, etc. I want to make it simpler to write dialogues.

    I want to write all my dialogues in a simple text editor and run a 'make' to create a *.json file. I find it more productive to be editing text directly rather than hacking up a *.csv file or using the Construct utility template and having to run Construct.

    So I created a simple c# parser to parse a text file and create the *.json file. I got a version working, but looking for feedback if anyone is interested in it or had approached this in other ways.

    Some dialogue lines will still be complex, e.g. choice and fork, but as I looked at those, I did not want to re-invent the wheel too much to define new ways that those would work in the text file. As I create more dialogues with those constructs, I'll see if that changes.

    Here's my input text file:

    // If you don't use something like mcpp, ignore this.
    
    // Name of overall dialogue dictionary (currently not used in dialogue system)
    [Header]
    WarrenBeforeFire
    
    // Default Character Information
    // [CharacterName]:PortraitPosition[Left|Right]:[PortraitName]:[PortraitX int]:[PortraitY int]:[Mirrored|NotMirrored]:[ShowFrame|HideWindowFrame]
    
    [Characters]
    Thistle:Left:Portrait2:0:0:NotMirrored:ShowFrame
    Nettle:Right:Portrait1:0:0:NotMirrored:ShowFrame
    NettleSad:Right:Portrait3:0:0:NotMirrored:ShowFrame
    
    // DialogueBlock
    [Dialogue]	
    // Dialogue Header / Key
    DialogueExample2
    // Actual Dialogue
    // CharacterName: "blah blah blah"
    Thistle: "{enablefog:192,192,192}Thistle you look worried.{pause} Is that smoke I smell in the warren?"
    Nettle: "{showcutscene:GreenForestPath} Nettle, a fire! It's close we must escape to the swamp. We'll be safe there.{pause}{removecutscene}"
    Thistle: "{showcutscene:ForestFire} Ah! The fire comes, now I hear the roar is it too late?{wait:500}{removecutscene}"
    
    [Dialogue]
    DialogueExample4
    Nettle: "The smoke is choking us out!"
    Thistle: "Let's run for it!"
    Nettle: "No, I am ready to do that, wait for my doe!"
    Thistle: "We don't have time, we must go now."
    NettleSad: ".{pause}.{pause}.{pause} Sigh, all right, I hope she has already left!"
    // End section required (all lines ignored in this section)
    [End]
    [/code:3abdt26u]
    
    This produces a json file:
    
    [code:3abdt26u]
    {
            "c2dictionary": true,
            "data": {
    "DialogueExample2": "{\"c2array\":true,\"size\":[3,7,1],\"data\":[[[ \"{enablefog:192,192,192}Thistle you look worried.{pause} Is that smoke I smell in the warren?\"],[1],[\"Portrait2\"],[0],[0],[0],[0]], [[ \"{showcutscene:GreenForestPath} Nettle, a fire! It's close we must escape to the swamp. We'll be safe there.{pause}{removecutscene}\"],[2],[\"Portrait1\"],[0],[0],[0],[0]], [[ \"{showcutscene:ForestFire} Ah! The fire comes, now I hear the roar is it too late?{wait:500}{removecutscene}\"],[1],[\"Portrait2\"],[0],[0],[0],[0]]]}"
    , "DialogueExample4": "{\"c2array\":true,\"size\":[5,7,1],\"data\":[[[ \"The smoke is choking us out!\"],[2],[\"Portrait1\"],[0],[0],[0],[0]], [[ \"Let's run for it!\"],[1],[\"Portrait2\"],[0],[0],[0],[0]], [[ \"No, I am ready to do that, wait for my doe!\"],[2],[\"Portrait1\"],[0],[0],[0],[0]], [[ \"We don't have time, we must go now.\"],[1],[\"Portrait2\"],[0],[0],[0],[0]], [[ \".{pause}.{pause}.{pause} Sigh, all right, I hope she has already left!\"],[2],[\"Portrait3\"],[0],[0],[0],[0]]]}"
            }
    }
    [/code:3abdt26u]
    
    Which I can import into Construct and use.
    
    (I also use Makefiles, preprocessor, etc. so I can do file includes defines, if, endif, etc. in my original sourcefiles before I process the file.)
  • BUTTSLUGS.

    you're a bullet and you have to **** stomp enemies for fuel and shooting yourself into hordes. + lots of sliding on slopes.

    currently jamming this game out for GAShmupEmUp Jam

    Cool bullet animations, I like the idea about fueling up, even to the point of getting a special attack? What happens if you are really low on fuel, do things become not fun?

  • I want to write all my dialogues in a simple text editor and run a 'make' to create a *.json file. I find it more productive to be editing text directly rather than hacking up a *.csv file or using the Construct utility template and having to run Construct.

    So I created a simple c# parser to parse a text file and create the *.json file. I got a version working, but looking for feedback if anyone is interested in it or had approached this in other ways.

    Some dialogue lines will still be complex, e.g. choice and fork, but as I looked at those, I did not want to re-invent the wheel too much to define new ways that those would work in the text file. As I create more dialogues with those constructs, I'll see if that changes.

    Here's my input text file:

    // Name of overall dialogue dictionary (currently not used in dialogue system)
    [Header]
    WarrenBeforeFire
    
    // Default Character Information
    // [CharacterName]:PortraitPosition[Left|Right]:[PortraitName]:[PortraitX int]:[PortraitY int]:[Mirrored|NotMirrored]:[ShowFrame|HideWindowFrame]
    [Characters]
    Thistle:Left:Portrait2:0:0:NotMirrored:ShowFrame
    Nettle:Right:Portrait1:0:0:NotMirrored:ShowFrame
    NettleSad:Right:Portrait3:0:0:NotMirrored:ShowFrame
    
    // DialogueBlock
    [Dialogue]	
    // Dialogue Header / Key
    DialogueExample2
    // Actual Dialogue
    // CharacterName: "blah blah blah"
    Thistle: "{enablefog:192,192,192}Thistle you look worried.{pause} Is that smoke I smell in the warren?"
    Nettle: "{showcutscene:GreenForestPath} Nettle, a fire! It's close we must escape to the swamp. We'll be safe there.{pause}{removecutscene}"
    Thistle: "{showcutscene:ForestFire} Ah! The fire comes, now I hear the roar is it too late?{wait:500}{removecutscene}"
    
    [Dialogue]
    DialogueExample4
    Nettle: "The smoke is choking us out!"
    Thistle: "Let's run for it!"
    Nettle: "No, I am ready to do that, wait for my doe!"
    Thistle: "We don't have time, we must go now."
    NettleSad: ".{pause}.{pause}.{pause} Sigh, all right, I hope she has already left!"
    // End section required (all lines ignored in this section)
    [End]
    [/code:3eweohlp]
    
    This produces a json file:
    
    [code:3eweohlp]
    {
            "c2dictionary": true,
            "data": {
    "DialogueExample2": "{\"c2array\":true,\"size\":[3,7,1],\"data\":[[[ \"{enablefog:192,192,192}Thistle you look worried.{pause} Is that smoke I smell in the warren?\"],[1],[\"Portrait2\"],[0],[0],[0],[0]], [[ \"{showcutscene:GreenForestPath} Nettle, a fire! It's close we must escape to the swamp. We'll be safe there.{pause}{removecutscene}\"],[2],[\"Portrait1\"],[0],[0],[0],[0]], [[ \"{showcutscene:ForestFire} Ah! The fire comes, now I hear the roar is it too late?{wait:500}{removecutscene}\"],[1],[\"Portrait2\"],[0],[0],[0],[0]]]}"
    , "DialogueExample4": "{\"c2array\":true,\"size\":[5,7,1],\"data\":[[[ \"The smoke is choking us out!\"],[2],[\"Portrait1\"],[0],[0],[0],[0]], [[ \"Let's run for it!\"],[1],[\"Portrait2\"],[0],[0],[0],[0]], [[ \"No, I am ready to do that, wait for my doe!\"],[2],[\"Portrait1\"],[0],[0],[0],[0]], [[ \"We don't have time, we must go now.\"],[1],[\"Portrait2\"],[0],[0],[0],[0]], [[ \".{pause}.{pause}.{pause} Sigh, all right, I hope she has already left!\"],[2],[\"Portrait3\"],[0],[0],[0],[0]]]}"
            }
    }
    [/code:3eweohlp]
    
    Which I can then import into Construct and use.
    
    (I also use a Makefile and cpp (preprocessor) to allow me to do file includes and use defines with my text files, but that's for another tool flow discussion...)
  • Casimir

    Sorry, I missed your comment, I updated my links above with new images and my code for the solution for changing light position and allowing for rotation of sprites, rotation of sprites and normal maps is not typically supported with this effect. Let me know if you have any questions.

    For your effect it looks like you are trying to reduce the resolution of the effect. Which does not seem too hard (but I am not an effect hacker, so need to look elsewhere for support.)

  • Example of dialogue system in action:

    I used the Dialogue System from Magistross and added a couple of new commands: showcutscene / removecutscene, also showfog / removefog (with an RGB for the fog color to add atmosphere and focus on dialogue vs background) which shows a sprite above the dialogue for more flavor (could become animated as TD does sometimes, if I can get some animated scenes or use spine to animate.) I also integrated the Epic Platformer from 'Show Scene' Zone command to pull in focus to the context of the dialogue. Both systems are nice and extensible.

    I used Spine to do a very simple / primitive animation of the 2D art of the first rabbit portrait, make a little head turn back and forth using FFD / Mesh with an edge added down the middle of the face. I had to integrate it as sprite sheets for now, until a Spine plugin is available for C3. I will add similar the other portraits (including hopefully some eye blinks, which also always add a bit of life to a headshot.)

    The cutscene art is from stock photos and pushed through the befunky.com underpainting 2 filter.

  • Lapine Tales is a point and click / platformer / visual novel game (hopefully taking the better parts of each element or paring down to which is best for gameplay) It is inspired by the the warren rpg tabletop role-playing game (which was in turn inspired by the book Watership Down, Fifteen Rabbits and Peter Rabbit.)

    I just have begun working on the initial game engine, but now have something to show.

    Inspirations:

    * Bunnies live, fight, die, love

    * The Warren RPG

    • "The Warren is a tabletop role-playing game about intelligent rabbits trying to make the best of a world filled with hazards, predators and, worst of all, other rabbits. It is a game about survival and community." - From The Warren RPG web page

    * Tokyo Dark (TD)Point and Click (P&C) adventure, great story, art (including full video animations), shows how a constrained P&C engine can tell a great and immersive story

    Goals:

    * Implement a TD style UI in my own C3 engine, with a short story, add platformer elements if interesting.

    * Create simple tools for level / dialogue / game story creation to speed content creation.

    Initial Design: I took a stab at this before, based on Pixel Art and making it a Narrative Platformer, but that was a fail: too much effort to marry genre in one form (NPC AI, Platformer death mechanic not good for adventure), overall not enough narrative possibilities. So this is my second iteration, focusing more on narrative.

    "Use Your Constraints" (From Slime Rancher Post Mortem)

    * Limited Art skills

    - Use befunky.com Artsy post processing on all below art sources to unify style (Underpainting 2)

    - Free/Low Cost Pixel Art Assets

    - Free/Low Cost Drawn Art

    - Free Stock photos

    - Use level design for 'background art'

    - Google Maps for Farm Map with befunky and 3D view tilted to perspective I liked

    * Point and Click without jumping

    - Simple flat levels with lots of decoration (eventually! Very plain now.)

    * Limited Animation skills

    - Leverage existing pixel or other sprite strips with Artsy post processing to unify style

    - Use art from LadyFizi WD Fan Art who graciously allowed me use her art in my game (LadyFizi Deviantart)

    - Use Spine to animate 'still pictures' from above (I am a Spine novice, but see good potential here)

    - Still hoping for Spine / Spriter integration into C3, right now using sprite sheet which is more of a memory hog and the animations are not as smooth.

    * Story/Subject limitations

    - Rabbit character limited expressions

    - Drawings in curscene can add more. but sprite on screen are too simple, hard to differentiate?

    - Add different animals (akin to different human personalities)

    For the first above example, I used the Epic Platformertemplate and added: point and click movement and point and click hot spots. When hovering over a hot spot, the 'actions' for the hotspot appear, each hotspot has a 'distance visible' so they appear or disappear as the player moves towards or away them. Most of the actions of the hotsport trigger dialogues of one form or another and each instance of the hotspot has variables for the actions and tags for the parameter for each action. Let me know what you think.

  • Your art book is a real inspiration, I don't have talents in that area, so I really appreciate when folks show off their process and sketches. It would be a good add to the release of the game (or 'deluxe release'), a PDF of your sketchbook (did you do that on the first version?)

  • Nice graphics style (grey scale) and animation of the Ube. The light at the end was a nice effect, it did look the like the end of the demo, 'light at the end of the tunnel.'

    Are you also going to add enemies to deal with?

    The controls on keyboard felt good. I imagine it would be challenge to get to phone because of the control / precision needed to make some of the jumps, the usual challenge for platformers on mobile.

  • I like the vector graphics style, reminds me of Tempest and Major Havoc, etc. I imagine you are actually using sprites for the objects, I wonder if you can some even more interesting animations of the objects, seeming to transform the line based objects in more complex ways?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Fun, I like the rain effects, I wonder if you sped up the action how it would feel (faster bullets, movement, etc.) Or is there something you like about the slower pace that enables different game play?

  • There is a new release 67of C3 with this comment, hopefully this will help badlogic get going (and to request for features they need) (I also posted this to the Spine github, feel free to pile on!):

    https://www.construct.net/make-games/releases/beta/r67

    "Additionally we've started working on adding support in the SDK for drawing plugins (i.e. plugins that appear in the Layout View). This involves quite a large API surface, so it will probably take a few releases to mature. We'll be updating the documentation soon to cover the new features. We're interested in developer feedback to make sure we add all the features necessary for third-party drawing plugins to work."

  • Solved for my case.

    It looks like C3 now looks for the <image> tag in the .tmx file, even if it may not be used right now? To add this, I clicked on 'Embed Tileset' in Tiled (small icon below the tileset window/tab in Tiled) and exported to *.tmx again. It now works to import *.tmx to C3 with this change. I imagine the <image> tag is not being used, because the C3 UI requires that you also load the tileset *.png image along with the *.tmx file when loading into a Tilemap.

    Here's the .tmx file with 'Embed Tileset' active in Tiled, note the <image source = ...> tag is now included. My previous *.tmx version without 'Embed Tileset' active did not include the <image> tag.

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE map SYSTEM "http://mapeditor.org/dtd/1.0/map.dtd">

    <map version="1.0" tiledversion="1.0.3" orientation="orthogonal" renderorder="right-down" width="24" height="40" tilewidth="32" tileheight="32" nextobjectid="1">

    <tileset firstgid="1" name="GrassTilemap" tilewidth="32" tileheight="32" tilecount="48" columns="4">

    <image source="../Tilemaps/EpicGrassTileMap/GrassTilemap.png" width="128" height="384"/>

    </tileset>

    <layer name="Tile Layer 1" width="24" height="40">

    <data encoding="base64" compression="zlib">

    eJztzjEKwCAMQFFdPISbS8FawfufrhEUOihViNv/8BCERI0hIiIiIo2iuBX3BHG1s8rCbs5XSTyf+75nJvwYzZeFvZ2fWJnd4ZrRveYb2v8GcM4L9kEGOg==

    </data>

    </layer>

    </map>

Mikal's avatar

Mikal

Early Adopter

Member since 22 Apr, 2016

Twitter
Mikal has 107 followers

Trophy Case

  • 8-Year Club
  • Entrepreneur Sold something in the asset store
  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • Popular Game One of your games has over 1,000 players
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • RTFM Read the fabulous manual
  • x10
    Great Comment One of your comments gets 3 upvotes
  • Delicious Comment One of your comments gets 10 upvotes
  • Email Verified

Progress

20/44
How to earn trophies