User Tag List

Results 1 to 28 of 28

Thread: Kikai

  1. #1
    3

    Kikai

    Name:  banner11.png
Views: 1347
Size:  436.9 KB
    Kikai - a dark themed mystery, action 3D game with great focus on story and AI

    Prologue

    During his gradual recovery from a chronic disease, a musician and luthier had traveled to a beautiful foreign land. Just to get away, relax in scenic beauty, and maybe find some musical inspiration. He left the crowded, distracting cities to travel all the way to a border town so he could enjoy the best sceneries there were.

    Then the war broke out.

    Everyone lost their minds and chaos ruled. In the midst of all this, he found a boy with a broken leg, crawling against the stream of people running away from the fighting.
    He couldn’t just leave the poor boy. He tried to pull him away from danger, but the kid showed him a picture of a girl and pointed deeper into town. With haste, he helped the boy get to where he wanted to go: a large laboratory. There was screaming coming from the inside.

    They followed the sounds deeper into the building until they encountered a small girl stabbing a female scientist to death.

    The girl passed out and the boy crawled to her immediately. There were three corpses at the scene, two in white lab coats. A picture on the wall showed the dead people and the two kids, all happy and smiling.

    The musician was still shell-shocked, but with the war outside, dangers were already on the doorstep again. He took it upon himself to protect the kids from the war. The boy’s name was Kai and the girl’s was Kira. They showed him the few underground lab rooms that they had access to, and the three of them made it their home while the war raged on outside.

    Introduction

    The game will have action and stealth mechanics as well as puzzle and visual novel elements. We want to focus on the story, the AI and the immersive atmosphere of the game. Playing as the foreign musician, you will explore the mysterious labs, the war-ravaged town and the scenic landscape surrounding it, looking for supplies and answers, while trying to take care of the children and teaching them right from wrong. With our robust AI learning system, the children will respond to your actions and gradually change. Our goal is to deliver the truest, deepest and most emotional experiences.

    The kids’ AI will be developed with Machine Learning, which means they can learn through experiences. For example, if you always kill enemies upon met without mercy, the kids will grow to be violent. If you help other people frequently, they will learn to do the same, etc.

    This is a dark themed game which focuses heavily on story, with tons of mysteries and tiny details for one to discover. That’s why we’re going to try our best to avoid spoilers. Please do too if you are able to discover some hidden stuffs, like the many meanings behind the game’s name (Kikai).

    The Light Novel

    We’re going to demonstrate the game world and tell some stories through a light novel written specifically for the game. A chapter will be published every month or two. We’re not going to spoil much and might even insert some lies and misleading clues. The point is to make sure everyone can feel the game better and imagine what kind of mysteries there are. You will have to play the game to truly understand the characters and mysteries.
    I (Hai) am the writer, Jaco is our editor and Trieu is the illustrator.
    You can read all chapters here, first time loading the site might be a bit slow though!

    The team

    - Hai (writer, programmer, designer)
    - Trieu (concept artist, designer)
    - Jaco (English proofreader, editor)
    - Lucas (3D artist)
    - Josh (composer)


    Art & Screenshots

    Name:  break_zpsppvxpqpa.png
Views: 1312
Size:  430.0 KB
    break


    Kira


    We're recruiting!

    - We're looking for a 3D character artist and animator. This is a rev share project so if you're interested, contact us at kikaiteam@gmail.com
    Attached Images Attached Images   
    Last edited by skyarmor; 05-05-2017 at 06:00 AM.

  2. #2
    0
    You can read all chapters in better format here, first time loading the site might be a bit slow though!

    Prologue

    During his gradual recovery from a chronic disease, a musician and luthier had traveled to a beautiful foreign land. Just to get away, relax in scenic beauty, and maybe find some musical inspiration. He left the crowded, distracting cities to travel all the way to a border town so he could enjoy the best sceneries there were.

    Then the war broke out.

    Everyone lost their minds and chaos ruled. In the midst of all this, he found a boy with a broken leg, crawling against the stream of people running away from the fighting.
    He couldn’t just leave the poor boy. He tried to pull him away from danger, but the kid showed him a picture of a girl and pointed deeper into town. With haste, he helped the boy get to where he wanted to go: a large laboratory. There was screaming coming from the inside.

    They followed the sounds deeper into the building until they encountered a small girl stabbing a female scientist to death.

    The girl passed out and the boy crawled to her immediately. There were three corpses at the scene, two in white lab coats. A picture on the wall showed the dead people and the two kids, all happy and smiling.

    The musician was still shell-shocked, but with the war outside, dangers were already on the doorstep again. He took it upon himself to protect the kids from the war. The boy’s name was Kai and the girl’s was Kira. They showed him the few underground lab rooms that they had access to, and the three of them made it their home while the war raged on outside.

    #1: Ink

    Yet another day on this horrible battlefield.

    With those same eyes, with that same face, Kira has killed again. We were just out on a quick supply run when some young men jumped us. I couldn't stop her in time.
    Kai didn’t react much; he must be used to it by now.
    I know that I’ve got to do something to fix this, but the whole situation is just too overwhelming for me to handle. The stabs of pain still haunt me every day, even though the disease has stopped getting worse.

    Before I got sick, I once had to babysit my brother’s kid, so he and his wife could enjoy a holiday somewhere on the coast. The boy was well behaved. He always listened to adults and was perfectly polite.
    Yet just taking care of him for one day was more exhausting than a 16 hour shift at the factory.
    Now I’ve got two strange kids to take care of. They don’t even speak my language. And the days just seem to go on forever.

    Kai and Kira have already entered the basement, but I’m still here playing my violin in the light of this melancholy sunset. There was a big battle in the east earlier this morning, so it’s been quiet for a while now. I just don’t want to miss the chance to play some music out here, in nature. I don’t think I’ll ever get another opportunity. I choose a peaceful Baroque song I’ve just learned to play.

    I chastise myself for the horrible tempo. Even though I know that the soul and character of a song comes from imperfection, I still want my performances to be perfect. I can always move along with the music if I want more emotion. But this sloppy tempo is just too painful to listen to. What a horrible day this is.
    I sigh, carefully putting the violin back inside its case. I plod up the handful of steps to get inside the house.

    Ink?


    On the way in, I find a multitude of dark splotches that look like blood, but smell strongly of ink. They’re scattered all over the floor, but they seem to lead somewhere. I carefully follow the marks. They lead to the bodies of the two scientists who had been living with the children.

    I try to hold back my lunch as I look at the gaping holes where the chests of the two scientists have been torn open. Empty cavities stare back where their lungs and hearts should have been.

    Around the wounds are sharp and decisive bite marks, as if a huge beast had ripped the scientists open and eaten their innards.
    There are no blood stains around the corpses. Only ink marks. Hundreds of them, scattered violently all around the room, like some kind of macabre modern art painting.
    None of the dark purple-black marks are spatters of blood. Did the beast lick up every last drop?

    Suddenly the danger of the situation sinks in, and I immediately run to Kai and Kira.

    Thankfully, they’re still safe, but there’s no time to waste. I quickly lock all the doors, then recheck every corner of the rooms.
    After having checked and rechecked everything to make sure the rooms are safe, I catch my breath and finally feel a sliver of relief.

    We have dinner in silence. I make sure the kids have brushed their teeth and then go lie flat on my back.
    I soon fall asleep.

    I wake up after a dreamless night, feeling tired and empty.
    Kai is still fast asleep. Kira, on the other hand, confirms that I’ve awakened, staring at me with her blank eyes, and then stares into space impassively, holding her favorite doll in her arms, as always.

    I brush my teeth, wash my face, then go to the kitchen to prepare breakfast. I think of my old house, back in the homeland. It was just a small box of a house but it had a nice warm bath.
    I really wish I could take a bath.
    Once breakfast is ready, I go to wake Kai up. As always, he opens his eyes lightly and then closes them again. He’s awake, he just needs a little more time and effort to get out of bed.
    Funny how a single blanket could turn a leopard into such a harmless sloth.
    After leaving a hot water bowl and Kai’s face towel next to his mattress, I head back to the kitchen.

    To my surprise, the old wooden dining table has already been set. Kira sits in her place, still holding her doll impassively. Her eyes are as blank as always, but I know she’s gradually changing.
    With such a simple action, she has blown away all of my worries and exhaustion.
    Even though my body is tired, my smile has finally come back. I pick up my violin, gently rub Kira’s head, and then start playing a few of my favourite pieces. Kai, having finally left his bed, ambles closer to listen to my music. His face is unwashed, as expected, and Kira is still not reacting much.

    But I don’t mind. I continue to play with a smile on my face.


    During the entire meal, Kai talks to Kira in excited tones. I guess he had some really good dreams last night. Kira doesn’t reply often, and when she does, her voice is so quiet that I doubt even Kai could hear it.
    But I could see her subtle smile every now and then. The whole atmosphere is really warm. It reminds me of Sunday dinners when I was a kid.
    We don’t have to go out today. After cleaning up, I just stand in the corner of the room, watching the kids play.
    I haven’t been in such a good mood for a long time, so I decide to seriously clean up and reorder the rooms. I haven’t really cleaned at all since we started living here a few days ago, and I want the kids to live in a clean environment anyway.

    I start with the books that Kira piled up in the corner after finishing them. I wish I could understand the language, just to know what she’s been reading. There are some books with silly covers, but most of them are too generic to guess.

    With all the books in my arms, I head to the library room.

    This one… goes here.
    Title starts with L… there, that last row.
    This last ro..

    Ink!?

    =============
    You can read all chapters in better format here.
    Last edited by skyarmor; 05-05-2017 at 06:00 AM.

  3. #3
    0

    Kai's bravery


    Summary
    Kai learns how to react to enemies from the way the player reacts. He could either be brave, always confronts the enemies without fear or could simply be a coward, just runs away all the time. This bravery of his depends on how the player plays the game.

    Prototype
    At the beginning, Kai is coward in general. His coward level is randomly generated though. For some players, he just runs away all the time. For others, he might actually choose to confront the enemies when in real danger.
    (a rather brave newborn Kai)
    (a not so brave newborn Kai)

    The bravery level B varies from 0 to 1. Kai is bolder when B is closer to 1 and tends to run away when B is closer to 0.
    The cool thing is that this bravery level B differs with situations. Kai won’t just either run away or confront the enemies all the time, he might run in one situation (the enemy is still very far) and confront in another (the enemy has already come close).

    Now let’s see how Kai grows!
    - With an aggressive player, Kai's bravery might change like this:
    >>

    - With a rather shy player, Kai's bravery might change like this:
    >>

    A more balanced player will help Kai grow the bravery level B to around 0.5 for different situations.

    We could also easily expand Kai's observations to base his decision on, not only how far the enemy is or has it detected Kai or not, but also what kind of weapon the enemy’s holding, how threatening it is, is there a closet nearby... The number of decisions could also be easily expanded, adding the options to hide in a nearby closet, setting up traps, etc.

    Note that this model is only for Kai's bravery, not Kai's aggressiveness, since Kai can either knock the enemy off, put it to sleep or kill it when confronted. Kai's willingness to kill is then another model, influenced by the player and different situations. These models can link with each other and by designing different models like these, we could develop really deep and realistic AIs.

    These models also have a learning rate and a momentum used to define how fast the AI learns. So we can control how fast Kai grows or is influenced. For example, killing the first person will make killing a second one easier, while sparing a life or two won’t really make one less likely to kill. A few runaways also won’t immediately turn someone into a coward.

    Programming
    Use a simple Neural Network with Stochastic Gradient Descent.
    Implemented using classic OOP classes without matrix multiplication, since importing libraries into UE could be heavy, buggy and anti cross-platform. Also, implementing my own Neural Network helps boost my understanding of it, which is still quite low.
    To do: Optimize the Neural Network code, make sure SGD works well with data gathered real time in game. Learn more Neural Network, Gradient Descent & Machine Learning techniques.
    Last edited by skyarmor; 01-25-2017 at 08:22 PM.

  4. #4
    0
    I have updated the Kai's bravery prototype post so if you're interested in AI, check the previous post in this thread!
    We're going to introduce our first 3D Artist soon too while the first chapter of the Light Novel's also doing well.
    Cheers guys!

  5. #5
    0
    We're very happy to announce that Lucas has joined us as a 3D Artist.
    We're still searching for some more 3D artists so if you're interested, contact us at kikaiteam@gmail.com!

  6. #6
    0
    We're very happy to announce that Josh has joined us as a composer.
    He's going to work on a special track for the game soon.
    The story behind the track and more details will be revealed once we have a demo to show

    We're also very close to finish the first chapter of the light novel and still looking ceaselessly for more 3D Artists.
    Hope everyone's doing fine as always.

  7. #7
    0
    Looks great Skyarmor, can't wait to see what your team comes up with soon

  8. #8
    0
    Quote Originally Posted by TroJanVirus View Post
    Looks great Skyarmor, can't wait to see what your team comes up with soon
    Thank you so much for your kind comment
    We're going to post more stuffs soon, stay tuned!

  9. #9
    0
    Quote Originally Posted by skyarmor View Post
    Thank you so much for your kind comment
    We're going to post more stuffs soon, stay tuned!
    Will do! Thanks

  10. #10
    0
    I love that log on the top. real nice; good luck!

  11. #11
    0
    Quote Originally Posted by TroJanVirus View Post
    Will do! Thanks
    Thank you!

    Quote Originally Posted by BrUnO XaVIeR View Post
    I love that log on the top. real nice; good luck!
    Thank you so much, more stories coming soon!

    Anyway, we have finished and finally published the first chapter of the light novel, you can check it out here.
    We have also launched our Facebook and Patreon. Please share the game with your friends if you like it !
    More news coming soon!
    Last edited by skyarmor; 02-05-2017 at 10:50 AM.

  12. #12
    0
    Will he ever get that tempo right?!

    Gripping for a first chapter! I'd love to hear more

  13. #13
    0
    Quote Originally Posted by TroJanVirus View Post
    Will he ever get that tempo right?!

    Gripping for a first chapter! I'd love to hear more
    What a horrible practice skipper! Or maybe he was just having a bad day, I need to write more to understand him better
    We're working to finish the second chapter too, but it won't be released until we reach our goal on Patreon
    But Enmanuel, another 3D Artist has just joined us (welcome!), more in-game updates should be up soon, stay tuned!

  14. #14
    0
    Quote Originally Posted by skyarmor View Post
    What a horrible practice skipper! Or maybe he was just having a bad day, I need to write more to understand him better
    We're working to finish the second chapter too, but it won't be released until we reach our goal on Patreon
    But Enmanuel, another 3D Artist has just joined us (welcome!), more in-game updates should be up soon, stay tuned!
    If you ever need help with UI stuff by any chance, I'm your guy!

  15. #15
    0
    Quote Originally Posted by TroJanVirus View Post
    If you ever need help with UI stuff by any chance, I'm your guy!
    Thank you so much for the constant support!
    We're still focusing on the core of the game right now so there won't be UI tasks until March.
    We will remember to contact you once we reach that stage though !

  16. #16
    0
    I like the idea for the AI. It's a pity more games don't make use of neural nets and other machine learning approaches, though I can certainly understand the reasons. It just feels though like for many years now, all the focus has been on bigger worlds and better graphics, and AI gets so little attention.

    I'll be interested to see how you go with this side of things.

  17. #17
    0
    Quote Originally Posted by kamrann View Post
    I like the idea for the AI. It's a pity more games don't make use of neural nets and other machine learning approaches, though I can certainly understand the reasons. It just feels though like for many years now, all the focus has been on bigger worlds and better graphics, and AI gets so little attention.

    I'll be interested to see how you go with this side of things.
    Thank you for the support man!

    And yes, many developers nowadays (especially the bigger ones) should be able to implement sophisticated AI without problems.
    I believe they choose not to simply because complex AI can confuse players, which can lead to a less "fun" game and less sales.
    Focusing on graphics and other appealing factors are easily better choices.
    There are also a lot of young fellows who have been doing great things with Machine Learning and Deep Learning too.
    So although I still need to learn a lot more, I believe that Kikai's AI is technically realistic and doable.

    Let's see how far we can get!

  18. #18
    0


    Teach the kids English (Part 1)

    Introduction
    I have been trying to develop a system where the player can teach English to Kai and Kira. And after skimming through some research papers about natural language processing, chatbots,... I was truly intimidated and depressed. I was afraid that it would take me years of study just to understand how to make a “state-of-the-art” natural language processing system.

    I soon came to a conclusion that I was too systematic, instead of being creative. Why search the whole net for academic articles when my goal was not to create an AI that can discuss philosophy? Making games is so much different from solving real life problems. We can define our own rules, most sloppy logic are plausible. I was coward for being afraid of creating “not good enough” systems.
    We have to be creative. Game systems are fine as long as they work.

    So while I would not stop exploring Machine Learning and other intermediate AI techniques, I’m going to start humble and naive here with my own language processing system. Enjoy!

    Background & Goals
    We want the kids to learn English so they can communicate better with the player.
    The player talks to them by typing sentences into a textbox, instead of choosing from scripted options. The kid will reply if they can grasp what the player said. Below are some of the conversations we want to achieve:

    1. Simple Q&A
    - The player: What’s your name?
    - Kira: Kira
    - The player: Do you like my dishes?
    - Kai: No

    Since the kids are new learners, we can allow them to ignore grammar. By training them with neural networks, they will interpret sentences by patterns rather than by grammar rules and structures. So the following conversation is still plausible:
    - The player: What you name are?
    - Kira: Kira

    Both native speakers and new learners should be able to interpret “What you name are”. Native speakers, young people “deliberately” use wrong, ignore grammar all the time.
    That said, we still need to keep patterns under control, “You what are name” should be interpreted as nonsense. This can be done by creating training data by hand.

    2. Q&A with more context
    - Who are the dead people?
    - Why did you kill the female scientist?
    - Where is that doll from?

    These are the questions that help the player gather valuable information to unfold the mysteries in the game. The player is free to come up with all kind of questions. The kids will answer the ones that they can understand.
    Tell the kids to study English everyday if you’ve come up with some critical questions that they have not yet understand.

    3. Instant Enquiries, Ask for help & Planning
    - Are you hungry?
    - Where is Kai?
    - What kind of stories do you want to hear next?
    - We’re running out of water, do you want to go get more tomorrow?
    - Do you want me to play some music for you now?
    - Can you help me find some batteries in the other rooms?
    - Put the clothes on the floor back into the closet
    - It’s still early, go read some books

    The kids will answer, act differently, depending on their states and other conditions.

    4. Behaviours, habit and manner related
    - Please don’t go out alone next time
    - Don’t talk to strangers
    - Put the book back to its shelve after reading it.

    5. Casual conversations
    - The player: What is your favorite band?
    - Kira: Pantera.
    - The player: Ah okay. They’re great and all, but have you listened to Iron Maiden?
    - Kira: No. Tell me more about them. Are they metal?

    6. Conversations which the kids start
    - You look tired, are you alright?
    - Have you taken your pills today?
    - What will we have for dinner?
    - Do you even have a name?

    7. Complete nonsense
    - The player: Kai, how much wood would a woodchuck chuck if a woodchuck could chuck wood?
    - Kai:
    - The player: Hah!
    - The player: Kira, how much wood would....
    - Kira: Shut

    Finally, our main goal building this system is to help the main characters communicate and interact better. So instead of a system that relies heavily on complicated patterns and grammar rules, we will focus on the kids’ personalities and their understanding of the world around them. How the kids “feel” and interpret a word is more important than that word’s formal definition in a dictionary. As long as talking to the kids is fun and informative, we’re solid.

    So we will have to come up with creative and effective ways to represent words, objects, events, relationships, etc for the kids to understand as well as getting better at understanding. Since we don’t want the kids to know everything right off the bat.

    Problems to solve

    1. How can the kids learn patterns to interpret what the player says?

    2. How can they build up their own expressions, answers?

    3. How can they remember the context of the current conversation to maintain a consistent one? For example:
    - The player: What is your favorite band?
    - Kira: Pantera.
    - The player: Any others?
    Kira is expected to know what do others refer to so a simple sentence by sentence algorithm is not good enough.

    4. How can they maintain consistent memories? To avoid:
    - Kai: Carl, let’s go!
    - The player: I’m not even Carl.
    - Kai: Paul, let’s go!
    - The player: I’m not Paul, and we just agreed to stay home 2 minutes ago.
    - Kai: Nevermind then, Carl!
    Again, a simple sentence by sentence algorithm won’t work.

    5. How would the conversations affect the kids? If they do, how? Will the kids learn new things from the conversations too?

    I will tackle these problems and update their status with each development log. More problems, suggestions and directions are well appreciated!

    How the kids learn
    They will mostly learn the language through books themselves. The player can help them study or tell them to, but they will mostly study on their own.

    The books the kids learn from have different chapters. Each chapter brings more knowledge, which help improve their English and other skills. This gradual learning works well because it does not require huge data right off the bat.

    They both start with English starter books for kids. When they reach a certain level, the player can show them more kinds of text. It can be some moral short stories, simple cooking recipes, etc. The kids will grow differently if they are given different texts, in different orders. Their levels differ too, Kira will likely to spend more time studying so she will get better faster than Kai.

    The player will first teach the kids the alphabet and numbers by clicking a button and everything is done. A mini game for this might be okay but is unnecessary for now.

    Programming, Demo
    Will be demonstrated clearly from the next part.

    References, inspirations
    1. Natural Language Understanding: Foundations and State-of-the-Art
    2. Making a chatbot that drives a narrative in sci-fi exploration game Event[0]
    3. Deep Learning for Chatbots, Part 1 - Introduction

    P/s: Please forgive me for making dumb English mistakes while trying to teach the language itself to AIs

    On a side note, our 3D artists have been working hard, pumping out new models everyday! We will start showing stuffs once ready.
    Our composer has also recorded some really cool demos, the light novel is doing well and more concept art will be published next week, stay tuned
    Last edited by skyarmor; 02-05-2017 at 11:26 PM.

  19. #19
    0
    Teach the kids English (Part 2)

    Introduction
    I have come up with a “plausible” language system design and have been working on it. I start with recognizing sentence types (normal sentence, question and order) using a Neural Network with Batch Gradient Descent.

    System Design
    This system’s goal is to simulate smart chatbots. It takes a sentence as input and is expected to produce a reply as output. For example:
    - Input: What band do you like?
    - Output: I like Pantera
    - Input: Any others?
    - Output: I’ve been listening to Iron Maiden too, they’re solid.

    The player will produce input by typing into a textbox and the kids will reply.

    Since we want the kids to remember the context of the current conversation, their relationship with the speakers, as well as inserting their own opinions, feelings and thoughts into their interactions, a simple sentence by sentence matching system won’t work.
    Instead, I will run the input sentence through a few different neural networks and functions to extract a bunch of useful details. These details will then be combined with the context object, the kids’ personality and state objects to construct a reply.


    A small taste of MS Paint

    We will want to extract the following details;
    - Sentence type (Normal sentence, question, order, etc)
    - Question type (Ask for reason, fact, mean/way, etc)
    - Main subject
    - Main object
    - Main verb
    - Main adjective


    For example:
    1. What is your name?
    - Sentence type: question
    - Question type: fact
    - Main subject: listener
    - Main verb: be
    - Main object: name

    2. He loves cake
    - Sentence type: normal sentence/inform
    - Main subject: he
    - Main verb: love
    - Main object: cake

    Recognize sentence type with Neural Network
    I will demonstrate my steps building a neural network which can recognize the sentence type of the input in this section.
    Since many things are still unclear to me, any suggestions, corrections and clarifications are well appreciated.
    I also believe this article is a good start. If you’re familiar with Neural Networks and interested in smart chatbots in games. Feel free to go along!

    Step 1: Define the Neural Network
    I split the input sentence into words, instead of characters or chunks of data so I could control the vocabulary of the kids. The “?” and “!” mark are each counted as a single word.. The maximum number of words an input can hold is 15. That should be enough to cover most “meaningful” sentences in our game context. So we will set the size of the input layer to 15.
    Observation: If our date set is large enough, reducing the size of the input layer to around 10 won’t improve our algorithm performance much!

    The output layer will have 3 neurons, used to classify Normal sentence, Question and Order. I use Sigmoid function and 6 hidden neurons in a single hidden layer.


    The Neural Net model without bias neurons

    Step 2: Generate and process Data
    We can easily build a list of common nouns, verbs, adjectives then write a program to generate normal sentences, questions and orders from these words. My current data set has 500 sentences, which I mostly generate by hand and copy-pasting patterns. It’s easier to manage for now.

    normal.txt
    questions.txt
    order.txt
    Because I am tired
    Clean food is good
    Dinner is ready
    Food need to be clean
    Goodbye
    He is bored
    ...
    Are you alright?
    Are you fine?
    Are you happy now?
    Are you hiding something?
    Are you hungry?
    Are you okay?
    ...
    Admit it
    Answer me
    Be careful
    Be quiet
    Be yourself
    Beat it!
    ...

    You can get the full data set here.

    I then read the sentences from the files, extract words from them then fetch into a std::map like this:
    Code:
    std::map<std::string, int> words;
    ...
    if (words.find(newWord) == words.end()) {
        words.insert(std::make_pair(newWord, words.size());
    }
    So now each word is labeled with a different number. We can then transform the input sentence into a std::vector of these numbers to fetch our Neural Net. I thought of 2 different ways to order the words:
    Either place the words right at the head: [ what, is, your, name, -1, -1, -1, … ]
    or in the middle: [ -1, -1, -1, -1, what, is, your, name, -1, -1, … ]
    I quickly tested both version and their performances are pretty close if our data is large enough. Placing the words in the middle seems quite interesting but the first way feels more stable to me.

    I then perform a simple feature scaling. I don’t know what is the best way and why not doing this hurts the algorithm a bunch. For now, I’m simply dividing each number in the vector by the number of known words:
    Code:
    res[i] /= words.size();
    With that, we have been able to set up the training data. A training case should look like this:
    - input: { 0.317073, 0.198171, 0.131098, 0.344512, 0.0121951, 0.0152439, 0 0 0 0 0 0 0 0 0  } // What is your name?
    - output: { 0, 1, 0 } // Question

    We can also write a simple function to auto-correct unknown words, like “wat” -> “what”, and transform plural nouns to singular, singular verbs to plural (“dogs” -> “dog”, “eats” -> “eat”), etc. More on this on upcoming articles.

    Step 3: Training
    With the data ready, I train the Neural Net with Batch Gradient Descent. Since I have very poor data, only 500 sentences for 328 different words, I have to run Gradient Descent with a small learning rate (0,025) for 600 iterations! The result is below, which can be said to suffer from both underfitting and overfitting (What???). I couldn’t even reach 80% accuracy on the training set, need better data!


    Excuse me if you could see “Neuron Network”, I was not really bright

    I’ve also recorded a video inspecting the trained neural net. Check it out

    So I’ve been able to create a neural net that works, but not well. It can’t fit the training well enough, reaching only 77%~79% accuracy on different runs. I will start working on the data first, then tackling more minor problems that I’m still unsure of. Like trying different hidden layer numbers and sizes, tweaking the learning rate, etc.
    Again, I will be very happy if we can form a group working on smart chatbot, not specifically for Kikai, but for games in general. Any comments, corrections, suggestions and questions are well appreciated.

    Anyway, of the 5 problems that I’ve mentioned in the first article, this article only touches a small part of the first one, many more discussions are coming soon, stay tuned!

    References
    Online courses for Machine learning:
    1. Machine Learning, taught by Andrew Ng
    2. Neural Networks for Machine Learning, taught by Geoffrey Hinton

    Implementing Neural Networks in C++
    1. Tutorial Video
    2. Detailed Article with Source code

  20. #20
    0
    Teach the kids English (Part 3)

    Introduction
    I have created a “word with labels” system which allows the kids to learn every single word, instead of learning only patterns. The kids have also been able to respond!

    Overfitting models
    In the last article, my neural network model seemed to underfit the training data set, with an accuracy of only 77%-79%. It turned out that the model was alright. To improve the algorithm’s performance, all I need was to change Visual Studio’s solution configuration from Debugx86 to Releasex64 then run 20000 iterations of Gradient Descent. Last time, it took the program almost 100 seconds to run 600 iterations, now it takes roughly 10 seconds to run 20000 iterations with over 90% of accuracy.


    Sometimes, all you have to do is running more and faster!

    Passing 90% is always good thing, but not necessarily good enough. It could be very annoying for the player if the AIs “accidentally” fail to recognize simple patterns like “Good morning” or “Are you hungry?”. So I want to get as close to 100% accuracy as possible. I will largely increase the number of known words / number of training cases ratio and hopefully the algorithms will overfit according to known words. Then all we need is to feed more words and training data. The approach is not that hard to implement as for a single word, we can automatically create many different type of sentences which contain that word. And it works for the fact that we should not expect the kids to understand sentences which contain too many unknown words to them, while they are expected to understand sentences that they have learned before. In short, we’re heading for overfitting models with a lot of data for our neural networks. Also for this reason, I’ve added another hidden layer then changed the neural network’s size from 15-10-6 to 15-12-12-6 to help fit our training set better.

    A “Word with Labels” System
    To help the kids interpret words and sentences better, I’ve built a system which marks a word with one or more labels.
    For example, the word “you” is labeled “listener”, “good” is labeled “adj”, “fish” is labeled “animal” and “food/drink”, etc.
    This already helps the kids find the subject and object of simple questions like “What is your name?” and seems to be very helpful in the future.

    Wait? If we label words, then shouldn’t a parsing system work too? Many games have succeeded using this approach, right?
    We will have to stick to Neural Networks and other Machine Learning techniques to simulate the learning process of the kids. These techniques also allow the kids to learn many different kind of complex sentences and expressions. At the end of the day, both approaches should work if done correctly but I still prefer Machine Learning because it’s simply fun and interesting as hell.

    For now, we have 14 labels, which can cover many words already.

    Code:
    enum EnumWordLabel {
    
    	// Can be adjective (good, beautiful,...)
    	word_label_adj = 0,
     
    	// Can be verb (help, take,...)
    	word_label_verb = 1,
     
    	// Can be noun (name, age, color,...)
    	word_label_noun = 2,
     
    	// Can be place (room, house, mountainside,...)
    	word_label_place = 3,
     
    	// Can be time (morning, afternoon, o'clock,...)
    	word_label_time = 4,
     
    	// Can be tool (pen, gun, sword,...)
    	word_label_tool = 5,
     
    	// Can be object (table, machine,...)
    	word_label_object = 6,
     
    	// Can be human (miner, worker,...)
    	word_label_human = 7,
     
    	// Can be animal (cat, dog,...)
    	word_label_animal = 8,
     
    	// Can be plant (tree, flower,...)
    	word_label_plant = 9,
     
    	// Can be food or drink (cookies, water,...)
    	word_label_food_drink = 10,
     
    	// Can refer to the listener
    	word_label_listener = 11,
     
    	// Can refer to the speaker
    	word_label_speaker = 12,
     
    	// Can be other (what, who,...)
    	word_label_other = 13,
    };
    Since the kids don’t know English at the beginning and only gradually learn it, we still have plenty of time to gather words and label them. And since we split the game into smaller games and chapters, we can still work on the word database after releasing the first few ones.

    More Sentence Types
    We have added two more types of sentences: greetings and partings.
    With “Hello”, “Hey there”, “Good morning”, etc marked as greetings and “Bye bye”, “See you later”, “Goodbye”, etc marked as partings.
    The neural net has been working well so far:


    Do not worry when you see the ratio of known words over training cases is too high, most known words are not yet used in the training cases. You can also see here that I now use the F1 score to judge the performance of the algorithm, instead of using only recall in the past.

    Coming up with Responses
    The kids have been able to respond, but only to simple sentences that they can easily interpret. They are not yet aware of the context of the conversation too. I will cover this topic more in-depth in later articles, once the system is highly improved.


    Autocorrect the Input Sentence
    I’m using Dynamic Programming (Minimum Edit Distance) to autocorrect words from the input sentence the player types in.
    I’m currently running through all of the known words and try to match the input words with the ones similar to it in size and characters. For example it will try to match “wat” with “what” or “liek” with “like” but not “watttttttttttttttt” with “what” or “tone” with “come”. The algorithm is very beautiful and have great performance after adding a few if else here and there. It is potentially slow once the number of known words becomes very big though. Any suggestions here are well appreciated!

    References
    1. Minimum Edit Distance Dynamic Programming
    2. Dynamic Programming Edit Distance

    We're also very close to finish the second chapter of the Light Novel now. it will be temporarily distributed personally through messages and emails so if you're interested, please drop a message below!
    Last edited by skyarmor; 02-19-2017 at 10:10 AM.

  21. #21
    0
    Kai & Kira on Slack!

    Introduction
    After making the kids respond to simple sentences in the previous update, I have come up with the idea of bringing the kids to Slack so everyone in the team could talk to them!


    Why?
    1. It's fun as hell, to "talk" to the kids through a chat app like that
    2. Everyone in the team can have instant access to the kids, which help testing and suggesting processes a lot
    3. We can examine, test the kids almost everywhere, like using the Slack App on our mobile phones in the train, etc
    4. Updating the kids and running the node server is very straightforward

    How?
    Slack is amazing! They support building bots greatly so the whole process is pretty straightforward.
    First, I made a few tweaks so I could run our Language System program through the command line.



    With that, we can now run the program in node environment, with the child_process.execFile function:

    Code:
    if (fs.existsSync(path_to_program)) {
      execFile(path_to_program, [to, message], (err, stdout, stderr) => {
        if (err) {
          console.error(err);
        } else {
          // send stdout as the reply
        }
      });
    } else {
      // hmmm
    }
    Now adding code to use the Slack's APIs then we're solid.

    References
    1. Automating a C++ program from a Node.js web app
    2. Slack's bot users Introduction
    3. Slack Developer Kit for Node.js
    4. Slack Building Bots Guide
    5. A Super helpful tip. Also, do not forget to add your bots to the channels they need to post messages to first!
    Last edited by skyarmor; 02-20-2017 at 11:36 AM.

  22. #22
    0
    Teach the kids English (Part 4)

    Introduction
    I have improved the whole language system greatly. It now has a rather solid structure and flow, with other supporting systems like the NPCs’ short and long term memories, different contexts, relationships between the characters, etc. I have also added some random factors so the kids won’t respond exactly the same every time.

    The Structure/Flow of Conversations
    There is a class called ConversationContext which holds the information of each conversation. The most basic information is the participants of the conversation. Apart from that, each said sentence by a character is transformed into a ConversationQuery, which is saved in the ConversationContext and used to help determine the current context, the main subject, etc of the conversation.

    These queries are also pushed to the participants, so they can follow each sentence, then decide to stay quiet or respond, “change” or learn new things.
    A ConversationQuery holds information like lists of words, adjectives, objects, etc in the sentence, who the sentence is referring to/talking about, etc. These pieces of information are built up from a pure English sentence, to help both the NPCs and the ConversationContext object grasp that sentence.


    MS Paint is back!

    For example, if the player asks “What color do you like”, that sentence is then converted into a ConversationQuery which looks like:
    - the original line: “What color do you like”
    - sentence type: question
    - list of words: “what”, “color”, “do”, “you”, “like”
    - list of objects: “color”
    - list of verbs: “do”, “like”
    - refer to the speaker: no
    - refer to the listeners: yes
    (debug information and empty information like list of adjectives is omitted)

    This query is then sent to Kai and Kira. If they decide to respond, new queries are created from their responses. All these queries are then pushed to the ConversationContext object. For this example, the kids will know that the player is asking about their favorite color and the main subject of the conversation is also switched to favorite color.
    So, how would the kids answer this question?

    NPCs
    The kids (and possibly more NPCs) will hold a lot of information to themselves. From basic information like name, age,... to information about favorites, likes/dislikes, etc. Apart from their own information, which is always correct, they also hold information of other characters which they think is true. For example, if you tell the kids that you are 27 years old, they will remember your age like that. And these pieces of knowledge are different among individuals. So it’s possible to tell Kai you’re 27 and tell Kira you’re 17. They won’t doubt a thing until they talk about it.

    These NPCs also hold values describing their thoughts/feelings towards other characters. For example, Kai’s value for the player will be comfortable, since the player has helped him a ton since the beginning. Kira’s will be uncomfortable because even though the player has helped her a lot too, she just doesn’t trust people that fast. These relationships/thoughts will have huge effects on the conversations between the characters. For example, if you make the kids dislike you, they won’t say a thing to you. Their tone will differ too, so in the beginning, Kira’s sentences are always shorter and colder than Kai’s.

    Other notes
    1. Most of these kinds of information are stored in std::map, which can then be easily stored in binary files. Eg:
    Code:
    std::map<EnumCharacter, EnumCharacterRelationship> relationships; 
    std::map<EnumCharacter, CharacterInfos> charactersInfos;
    struct CharacterInfos {
      std::map<std::string, std::string> basicInfo; 
      std::map<std::string, bool> likes;
    ...
    };
    2. Apart from the conversation context and the kids’ knowledge, there’s also a thing called WorldContext which has direct effects on the conversations too. It holds information like what time it is, how cold it is today, is there much food left in the house, etc.

    3. I have also added some random factors so the kids won’t respond exactly the same every time. These are only interchangeable phrases for now.


    Visual Studio’s Post-Build Event
    I knew there must be something like this but haven’t really looked it up until recently. It’s cool.
    With it, I can now copy the files automatically to the “Kikai on Slack” folder after each build. So whenever I make a change and rebuild, the files are instantly served without the need to restart the server for Slack bots! It’s very helpful for many other situations as well, try it out soon if you haven’t!

    For example, to automatically copy needed files to the server folder for Slack bots:
    Code:
    xcopy /y "$(TargetDir)$(TargetFileName)" "E:\Projects\Kikai\KikaiSlack"
    xcopy /y /e /i "$(ProjectDir)nnet\*.*" "E:\Projects\Kikai\KikaiSlack\nnet\"
    xcopy /y /e /i "$(ProjectDir)sentence_type\*.*" "E:\Projects\Kikai\KikaiSlack\sentence_type\"
    xcopy /y /e /i "$(ProjectDir)words\*.*" "E:\Projects\Kikai\KikaiSlack\words\"
    xcopy /y /e /i "$(ProjectDir)npc\*.*" "E:\Projects\Kikai\KikaiSlack\npc\"

    We're distributing the second chapter of the Light Novel personally through messages and emails in a few days now. So if you're interested, please drop a message below!

  23. #23
    0


    Good day everyone. We have completed the second chapter for Kikai the Light Novel, it's called #2: Lily of the Valley. We only distribute it through personal emails and messages for now so if you're interested, please drop a message below or send us an email/message .

    And in case you have missed the Prologue and the first chapter, you can check them out here.

    Thank you all very much!

  24. #24
    0
    Teach the kids English (Part 5)

    Introduction
    It’s been a month (Feb 5-Mar 5) since we started designing, developing and writing articles about our language system. Let’s see how far we've got!

    The Current State
    -The kids are currently able to distinguish 5 types of sentences: normal sentences, questions, partings, greetings and orders with a vocabulary of around 120-150 words. We train them using a Neural Network with Vanilla Gradient Descent. The current performance on the training data set is 100%.


    With a 3 hidden layers Neural Net, we’ve been hitting that 100% accuracy consistently

    -The kids can understand and remember basic information of themselves as well as other characters like name, nickname, age, likes, dislikes, etc.

    -There are relationships among characters and those relationships will also influence the way the kids speak. For example, at the beginning, Kira’s lines are generally colder than Kai’s.

    -There are already random factors added to the kids’ replies, so they won’t respond exactly the same every time.

    -The kids are also aware of the world context, like what time it is. So they know that a “good morning” in the afternoon is weird.

    -The kids can understand expressions like “I am called Phil”, “People call me Phil”, “Phil is how everyone calls me”, “What are you called”, etc.

    -The kids can understand basic contractions like "I’m", "he doesn’t", "she'll", etc.

    -The kids can understand basic negative sentences like “My name is not Phil”.


    What’s next?
    The system is very young, with all features still in early development. We’ve gone a long way since the beginning, but are still very far from our ambition. The number of tasks/issues/ideas is increasing dramatically, reaching over 30 in just a few days. With our language system becoming more and more stable, do expect us to improve a lot every week!

  25. #25
    0
    Teach the kids English (Part 6)

    Introduction
    Another week has gone by, let’s see how much the kids have improved!

    Improvements
    1. The kids can now answer yes/no questions about the player/speaker
    2. The kids now know that “Dave”, “Murray” and “Dave Murray” can all represent the name of Dave Murray
    - Player: My name is Dave Murray
    - Kai: Okay
    - Player: My name is Dave?
    - Kai: Yes
    3. The kids have started developing their short-term memories, to remember the context of the conversation. So we can now have the following conversation:
    - Player: My name is Phil
    - Kira: ...
    - Player: And yours?
    - Kira: Kira
    4. The kids are better at understanding words too. For example, the kids can now recognize “yellow” as a color, without our need to mention the word “color” in the context.
    - Player: I like yellow
    - Kira: Okay
    - Player: My favorite color is?
    - Kira: Yellow

    5. They also know that a character can have multiple favorites/hates in a single “topic”.
    - Player: My favorite color is red and blue
    - Kai: Okay
    - Player: My favorite color is orange
    - Kai: Okay
    - Player: My favorite color is?
    - Kai: red, blue and orange
    - Player: I don't like red
    - Kai: Okay
    - Player: What is my favorite color?
    - Kai: blue and orange
    6. The kids now respond as “not know” if the input sentence has too many unknown words to them, instead of guessing wildly previously.
    - The player: How much wood would a woodchuck chuck if a woodchuck could chuck wood?
    - Kai:
    7. The kids now have a better understanding of negative sentences (no, not, etc)

    8. The kids have now understood more contractions

    9. The kids can now reply with “Met too” and things like that
    - Player: I like black
    - Kira: Me too
    I have also improved the whole language system and the Slack server a lot, fixed many bugs as well.

    What’s next?
    There are still many tasks, ideas and problems to tackle in the next few months, stay tuned!

  26. #26
    0
    A (rather) Big Update!


    We are very happy to announce that Kikai has turned 100 days old yesterday and still going very strong !
    For this special occasion, we're going to post some of our 3D models and soundtracks for the first time, enjoy!



    Kira!




    Knives


    Microscope


    Exhaust Fan



    Soundtrack #1: The Laboratory


    Soundtrack #2: Theme 2 (WIP)


    Soundtrack #3: Theme 3 (WIP)



    We're also very close to finish the third chapter of the Light Novel now. it will be temporarily distributed personally through messages and emails only so if you're interested, please drop a message below or email us at kikaiteam@gmail.com!
    The third chapter will be #3: The Burning Statues !

  27. #27
    0
    You can read all chapters in better format here, first time loading the site might be a bit slow though!

    #2: Lily of the Valley


    I watch the river’s surface with a frown, for once able to let my distress show, since Kai is off catching some crustaceans for dinner. At the rate the water level has been dropping lately, this river could be dried up in less than a month. The last autumn winds are making ripples across the water. Winter -- and with it, the dry season -- is just around the corner.

    The river bank is far from town, but provides clean water and food. This has led to a lot of people building shelters alongside it. More and more are gathering here, putting their lives in the hands of this dying river. No rain has fallen since the war broke out. Mother Nature hasn’t listened to our prayers.

    “Shit,” I mumble, as an old couple slowly approaches the opposite river bank. They walk with difficulty, leaning on each other to keep going. Even though I now have my own troubles, with two children to take care of, seeing all these struggling people still makes my heart sink. But we will find a new water source.

    I keep watching the old couple. My throat feels numb.
    Back when I was a young musician desperate for freedom, I dropped out of university and left home to wander. Apart from being a street performer, I also managed to get work as a luthier and a carpenter. I mostly repaired instruments and tools, and never had the chance to build things from the raw materials.
    Life was tough, but it was fun. Every day was another day worth living. Even though I ended up in the middle of this war, I’ve never regretted the decision to leave home. I have grown a lot.
    That said, I still miss my grandfather every now and then. On the day I left, he was the only one who smiled and wished me luck. But his sad and lonely eyes said something else. He’s getting too old, and I worry about him.

    When my thoughts finally come back to reality, the old couple is gone. I call out to Kai. It’s time to go home. The agile boy cheerfully comes to me with a small basket of crabs and freshwater shrimps. It isn’t much, but not everyone has the skill to catch those things by hand. I rub Kai’s head.

    We get up early the next day to go find a new water source. Kai leads the way to a mountainside. I feel a bit apprehensive about the possible danger, but the military camp at the forest entrance helps calm my nerves. If we’re lucky, we might find edible mushrooms or even rabbits. Maybe even the painkiller herb that I’ve been taking.
    We finally stop when we reach a ten-storey waterfall. I breathe in the fresh air and scenic beauty all around me. Cool winds carry leaves over my head as I get close to the waterfall. It’s still pumping down a lot of water, working hard to maintain this pocket of life in the forest here. The air is thick with moisture. It was a long walk, but worth the effort. Kai moved quickly and confidently on our way here. He must have come to this place a couple of times before.
    And we’re not the only guests. The deer, rabbits and other wild animals were all invited. We split into groups, each choosing a private section of the stream from which to enjoy the fresh water.


    We start filling our water bottles. One filled bottle later, Kai is already chasing after some rabbits. I sigh, finishing the rest of the work alone. I find myself wondering if Kira would have been that cheerful if she’d been allowed to leave that heavy building. They are twins, after all.

    Forests have always felt eerie to me, so we soon head back home.
    We’re still in the middle of the forest when Kai abruptly stops. With lightning speed, he plunges into a nearby bush. Someone screams before I can even react. I scramble through the bushes and find Kai pinning a young man face-down on the ground with his mechanical limbs. The unknown man is short and slim, and looks a little younger than me. He doesn’t stand a chance against Kai with that modest body size, so he just screams in anger. He seems to be yelling in the local language so I don’t understand a word. Kai is still on top of him when I get close.
    Those eyes! Those distinct purple eyes!
    The way he returns my stare confirms everything.
    “You are…” I trail off, still stunned.
    “Good day, blood brother,” the man replies with mock cheer.

    With that, there’s no doubt that we are compatriots. I’m a little shocked, since my tour guide said that I was the only Quaserian in town. The Lcorians living here probably can’t even find Quaseria on a map.

    After another glance, I signal Kai to let the Quaserian man go -- he looks harmless anyway. My compatriot suddenly changes his attitude, repeating something to Kai over and over. Judging by his demeanour, he seems to be apologizing. Kai remains hostile, turning his back on the man’s words.
    I talk to the man in my native tongue. His name is Riat and he’s been living in Lcori since middle school.

    His sudden change in attitude seems strange, but he looks nice and honest overall. Maybe I’m just being paranoid. Any man would be outraged at being attacked and pinned down by some random kid. I loosen up and start talking to him more openly. It’s wonderful to see one of my own countrymen again -- it’s been quite a long time since I last met one.
    Riat says that he’s living with other people, including some Quaserians, on a farm further up the mountainside. He asks if Kai and I want to stop by for an early lunch. Apparently the farm is close by, with more than enough food to go around.
    I want to trust him.
    Centuries ago, our ancestors had to fight the greatest empires of the world to defend our kingdom. Hundreds of years of wars have forged an unbreakable unity and allegiance among our people.
    It would feel like treason to turn a fellow Quaserian down, so I accept his offer. Still, I furtively recheck my gun before following his lead. Kai is unhappy, but he falls in behind me.


    We soon get to a breathtaking valley, where the rays of the sun are warm and tender.
    Thousands of plants and flowers live together in harmony here. Together they grow. Together they form an elegant natural art.
    My artistic instinct stirs, making my heart miss a beat. After a deep breath, I slowly look around to find that musical inspiration I’ve longed for. Even Kai has gotten excited, running around to stare at this flower and touch that tree. Riat just stands there with a smile on his face. He seems to understand our feelings.

    After walking around a bit, I find some unusual white flowers. Their facedown petals make them look crestfallen and forlorn. The fact that these flowers grow in their own cultivated squares of soil, far from the rest of the plant family, makes the image even stronger. I go closer to get a better look, and my compatriot follows.

    “Lily of the Valley,” he says.
    “Lily of the Valley?”
    “You don’t know these flowers, right?” he continues. “Understandable. These gorgeous flowers don’t grow in Lcori or in our homeland -- their natural habitat is on the other side of the world. We’re the reason they’re here. We’ve been planting them in this valley. Seed transportation is tough, but they’re very easy to grow. A little cold in the air is all they need.”

    He pauses and glances at me before continuing. “The flowers are also called ‘Our Lady's Tears’, since they look like a mother’s tears. They’re also as kind as mothers. Eating their petals and berries helps with preventing and healing digestive diseases and heart problems. We also cook their leaves and use them to heal skin diseases. And that scent you’re smelling has benefits too. It’s used to cure headaches and stress.”

    It sounds like an exaggeration, but the flower’s scent is truly nice and relaxing.

    “We originally came out here to the valley to plant these flowers for selling and exporting. This area is close to three different countries, so deliveries cost less. With the favorable weather and low land price, it was a perfect plan, until the war broke out. Soldiers don’t come all the way here to fight, but all of our deals have been postponed. To survive, we became a self-sufficient community. We were mostly foreigners at first, but more natives have joined us to hide from the war, so it’s been really noisy and fun lately.”

    After another pause with another glance, he asks, “So where have you two been living? Wanna join us?”
    “Three, actually. There’s a girl too, the boy’s twin. And it seems to be really safe here, but we can’t leave our house. For personal reasons.”

    Riat looks at me when I mention Kira. We talk some more before moving on.

    Before long, we reach a large farm, filled with dozens of people doing different jobs. Just as my compatriot said, there are many foreigners, and Lilies of the Valley everywhere. We’re led to a big building, right at the farm entrance. My compatriot enters the building first, and then invites us in moments later.


    Bread!
    It’s a warm bakery with Lilies of the Valley planted in every corner. The smell of the flowers fuses with that of the breads, creating one of the finest scents I’ve ever experienced. The owner is an old lady who can speak both Quaserian and Lcorian. She kindly greets us and shows us around.
    It’s still day out, so Riat has to get back to work. He leaves with a wave, and we find ourselves alone in the bakery. I choose a comfortable chair to rest while the old lady shows Kai how to knead flour. The whole atmosphere is very relaxing.

    The bakery’s door swings open and a Quaserian kid runs inside. He politely greets me and the old lady before asking if he could stay and have some bread.
    The old lady starts preparing one of the loaves. I offer to help but she gently declines. So I relax and let my mind wander again, watching the kids play together. The kind old lady pours some milk for them.
    Milk. It’s been forever.

    During our warm meal, the old lady keeps asking about Kira and trying to convince me to move here with the kids. I have to politely decline three times before she stops. She says that she lost her granddaughter some years ago and wishes she could have another little girl to take care of, since there are only boys here on the farm.
    Her teary eyes make me feel awkward. Kai and Kira might have a better life on this farm, but what if that devil organization finds them here? These kind people would be implicated too. It’s better to protect the kids and find the cure for them myself, at least for the time being. I firmly decline one last time. The old lady still looks sad but changes the subject without another word.
    She asks a lot of questions about my disease before preparing some Lily of the Valley berries for me to eat. She makes me eat quite a lot, saying that they will improve my heart’s condition. The berries are a little unpleasant but as the old woman said: “Bitter pills may have blessed effects.” I eat every last one.
    The old lady gets more jovial after each story she tells or is told. We continue talking after the kids run off to play. I have to signal them to be quieter every now and then. Time warmly passes by.

    We leave close to lunchtime. Riat comes back to make sure we don’t get lost on our way home. We leave the bakery happy and grateful, with some loaves of bread, a bottle of milk, and flowers for Kira. I try to give my countryman some money when we part ways at the valley but he refuses. I insist until he eventually gives in.

    As we walk home, I can’t help but feel lucky to have met such good people. Now that I think about it, I probably should have asked the old lady to help me talk to Kai. There are so many things that I want to know.
    Kai is moving very fast, like he can’t wait to give the presents to Kira. He will definitely talk a lot too -- about the beautiful valley, its flowers, the nice people... I have the urge to share the story with someone too, so I know how he’s feeling. But I keep a steady pace. Every time Kai goes too far ahead and impatiently turns around to wait for me, I just give him the “give me a break Kai, it’s been a long day, I’m very tired” face.

    Kira looks a little worried when we get home later than expected, but Kai’s cheerful voice eases her tense posture. I feel a little sleepy, so I just stand there, watching the kids talk. Suddenly, Kira reacts strongly to Kai’s words. A few sentences later, she hurries to my side and grabs the flowers from my hands without a word. She stares at them tensely before dragging me to the library room. There, she stands on a chair, rummaging for something on the bookshelves. I get anxious as Kira keeps throwing books to the floor. She finally stops, checks some pages, and then brings a book to me, open in the middle.

    Page 216. An encyclopedia of plants and flowers written in Quaserian. Images of the elegant Lily of the Valley hit my eyes.

    Lily of the Valley.
    Summary.
    Description, distribution...
    Ecology, taxonomy, garden use...
    Chemistry…
    Chemistry!
    All parts of the plant are highly poisonous, including the red berries which may be attractive to children. If ingested, even in small amounts, the plant can cause abdominal pain, vomiting, reduced heart rate, blurred vision, drowsiness, red skin rashes and possible death.

    Each word feels like a sharp knife stabbing into my heart. The Quaserians, the sweet scents, the kind old lady... I haven’t even fully realized what has happened before my eyes get blurry. I feel dazed and confused. Then my mind goes blank, as if someone had turned off a switch. Everything fades to black.

    =============
    You can read all chapters in better format here.
    Last edited by skyarmor; 05-05-2017 at 06:01 AM.

  28. #28
    0
    You can read all chapters in better format here, first time loading the site might be a bit slow though!

    #3: The Burning Statues


    “Are you fine? Did you absorb much smoke?” an impassive voice asks, coming from deep inside the prison room.

    Apart from a diagonal strip of moonlight cutting across the room through a small window, the whole room is just cold black. I glance around to find the speaker but I can’t see anything.
    His pronunciation is a bit off, and his word choices seem weird. Is he a Lcorian? Having just been imprisoned, my mind is still scattered, so I just reply reflexively. “Who are you?”

    “I am father of Naki, the girl you put on fire.”
    I feel my stomach tighten. “I didn’t kill her!”
    “Do not worry. She burn to death before too.”

    I don’t understand what the hell this man is talking about, but he doesn’t seem to care. A huge silhouette slowly appears from beneath the window.
    My throat goes numb when I see the burly man. His right arm is horribly burned and his left is tattooed with one of the lion-like beasts that caused my imprisonment.


    This morning, I went to the center of town with the kids to get supplies.
    The war had cooled down a bit, and the fighting had become less dire. The enemy had lost the advantage of surprise, allowing the defense force to rally. Under great leadership, they were starting to win. Even so, after the heavy losses on both sides, everyone had become more careful and reluctant.

    Relief efforts were increasing all over. Apart from the supply counters, there were many programs that directly took care of people in distress, worked to clean up and helped the community recover from the consequences of the war. We had received a lot of support before, so I wanted to personally join some of these programs as a means to give back to the community.

    Kira came along too. The local authority had been supplying milk and eggs for children since the previous week, but I’d wanted Kira to be in perfect health before she went outside, so we’d had to wait. This time, it had taken six days before she’d fallen asleep again, but we’d had no choice. While the soldiers were usually calm, the townspeople tended to be noisy and frenzied. The outside was too overwhelming for her when she was that drained. It was sad to see how tense she got when we left the lab. Her brother was as joyful as ever. He pointed out just about everything we found on the way, from the mud under our feet to the clouds in the sky.

    We had lunch right after receiving our supplies. From our spot underneath an old banyan tree, we watched the Lcorians on the street. It was already time for midday break, but they were still working together to transport supplies and repair the street. In the distance, a boy helped an old man push a scrap cart. Despite their unorganized working style, the way they helped each other reminded me of my own people.

    After the short break, we helped with the cleaning operation and lent our assistance in taking care of the patients at the biggest temple in town. With its spacious area and tranquil setting, it had become the gathering spot for more and more people since the enemy had pulled back. A huge temporary clinic had been set up inside, and it needed a constant stream of volunteers. Wounded soldiers were also being treated there, so the whole temple was well-secured.

    That was where we met Naki. She was the one who showed us the ropes. During our tour, Naki told us that she was 17 years old, and that she and her aunt had come to this border town to volunteer with the relief efforts. She had smooth skin with no burn scars to be found.

    In the cold air of the prison cell, the man speaks again. “I am called Eno. What about you?”
    What the man said about Naki sounds ridiculous, but the fact that he knows her name and my situation makes me nervous.
    “Just tell me who you really are.”
    “I just say. I am Eno.”


    I stare at the man for a little while before sitting down heavily. I put my head on my knees. The only thing I can feel now is my own heavy breath.

    “You are very lucky. They trick you to steal your children, like they steal my daughter long ago. But do not worry, our people bring the kids here and look after them. You are free tomorrow and after that, you can get your children back.”

    I stay silent.

    “You do not understand anything yet, right?” A pause. “That is right, how can you know? That is the way our world is since the beginning. We only know what we are allowed to know. How horrible.

    “What do you think of this war? The town people must be flaming mad, but we are not. If this sudden war did not come, then horrible civil war come instead. Some say that some government bosses begged neighbor countries to attack us so they gain more control over national army. This war is also used to hurt evil organizations with great international relationships, since lots of critical border gates are closed now.

    “The prison boss has higher rank in government than town’s mayor. He is informed of wars through his relationships, and told to leave Lcori for some time. But he stay here to build up army and fight to protect home town. He is respectable and likeable man. He visit each prison cell and talk to every single prisoner here. Some are angry or insane, but everyone is treated well.

    “Everything is still done good on paper: they write who comes in, who goes out. It is all carefully done to keep up the pretend. But truth is that prison has become small army camp for last six months. We are taught how to use weapons, basic fight plans and groupings. There are many tough guys here, for this is one of biggest prisons in country. Because of them, small-time brats are starting to shape up too. We have fearless tough guys, but no good weapons or group fighting experience. Prison boss is trying his best to establish more relationships with army groups close to here to fix it.”

    The man pauses for a second. Seeing my impassive reaction, he continues.

    “Excuse me if I been rambling, but I am always passionate when talking about things I care about, and they ask me to explain situation to you. Thing we want to tell you the most is to be careful. From children to old people, not trust anyone right away. Children you are taking care of are not normal, they can be target of many different organizations. Each has its own reasonings, but most are run by bad people. It is religious organization that targets you, and my family back then. We still not know what they really want. Lab that you three live in maybe product of other highly dangerous organization. We can look after you for while but I not know how much we can help. When war ends, we can get you three to Quaseria. For now, you have to be more careful. With current crazy situation, we not have people who can act outside of prison. We also cannot do whatever we want to. We cannot follow you all day, so you have to be careful not to be tricked by child like Naki again.”

    “I’ve been investigating these organizations myself, you know,” I answer, a little annoyed. Eno raises an eyebrow and I sigh. “Look, it seems like you have good intentions, but how do I know you’re not lying? How do you know so much about us? How can Naki be your daughter? And you said that she burned to death before, but she was still fine when I saw her.”

    “I am really the father of Naki. And I see her burned corpse after our house burn down three years ago.

    “Me and my wife had daughter. She was called Reena, before she died in fire and got reborn into name Naki. We also lived in northern part of Lcori, but not so close to border as this place. I was miner working so far from home that I travel on train. But our little family was happy back then.

    “One day, group of strangers visit our mine. They represent huge corporation, which want to buy industrial zone. They say that deal was made in single night. Two days later, they order us to return home, so specialists can inspect systems. Our new boss give us one month money as bonus and promise to raise our money if we work hard. We hand mine over to specialists in morning and go drinking in afternoon. We only stop when sun go down, so drunk that we lean on each other to get to train station.

    “Despite sleeping whole way home, I still feel dizzy when I leave train. Neighborhood very noisy. I find out fast that there is big fire. And it start at my house.

    “I not even care about neighbors nearby, I just hurry inside my burning house. There is no one in living room, just huge fire. Furniture disordered, and staircase to second floor blocked. I feel even more dazed. I scream my wife name, my daughter name. I think I hear voice calling back, so I turn and see our two Cenghon statues burning. They stare at me with bitter eyes. Then wooden pillar fall over, hitting my back. I think I hear words come from the burning beasts before I pass out.

    “When I wake up, I am outside and doctor is working on arm. I have horrible head pain, and pain on right side of body. When I turn my head I see burned bodies of wife and daughter. I want to die. That I still live today is miracle. Pain still feels same.”

    His voice cracks every time he mentions his wife. After a longer pause than usual, he continues.

    “I check dead bodies very carefully. Bodies and face shapes are very well known to me. Doctor also say that they are wife and daughter. But my friend disagree. He say that there is hair left in head of wife, but no hair in head of Reena. He say dead body of daughter is fake, with pretend details.”

    “I remember every detail of Naki’s corpse,” I say. “It didn’t have any hair either. So that wasn’t really her?”

    “Probably not,” he says, shaking his head. A pause. “There are mystery fires everywhere in country at that time. Most victims are religion followers, especially bigger ones like our family. We had many statues and closet-big altar in house. Only result of horrible actions is death of our religion. The underground world know what organization is behind fires but even they not know their motives. Our religion is very good and young. We are taught to value family, friends and giving back to people who help us. There is no good reason to kill it. Once I find truths, I rebuild our religion with Reena. Religion is only thing that can help me live with death of wife. I still pray for her every day. I might not be very smart, but after my struggle life, maybe I can continue work of my fathers one day. I mark this Cenghon onto left arm to remind myself every day. They are sacred beasts in Lcorian legends. They help us look after homes and temples. Our religion reveres them and pray for blessings. It is sad that they seem to be responsible for deaths of so many innocent people. But I still believe that one day I can show them to be innocent. They hold bitter eyes when they burn that day. But you know, you can get very angry when you are sad and desperate.”

    “I still don’t understand,” I say. “How do you know that Naki is your daughter, Reena?”

    “I meet her in this town. She recognize me too and then run away. When I chase after her, some kid stop me. He must be working with some powerful people if he is happy to attack man my size with bare hands. I so unsettled that when boy hit me in face, I nearly kill him when I hit back. When I am done with him, Naki is gone and people bring me to this prison.

    “Reena is very nice and gentle girl, I cannot understand why she run away from me, or why she is involved with horrible organization. I ask one of the men here to watch her for me. He approach her more and more now. They must suspect something and now use this incident to send her somewhere else. I lose her tracks again, but I am happy to know she is still safe and sound. I pray for her safety every day. And I will punish anyone who use her for their own plans.”

    The man hesitates before showing me a small photograph of his family. The girl in the picture is definitely Naki. Even though she has grown a lot in the last three years, she still looks just like her mother.

    “Why did you guys help us?” I ask, as I hand back the photograph to Eno.
    “We are good people and we hate the evil powers that control country out there.”
    “Can I trust you?”
    “We help you without any conditions.”
    “I’m still not sure I understand. Are you saying there is a bunch of evil people targeting the children?”
    “Yes, we investigate your kids. They come from orphanage. No legal papers or family. No one even know how they get to orphanage or if they even Lcorian. If they do not have any relationships here, they should go and start better life somewhere else.”
    “We can't just leave right away. There are still things to be done here.”
    “While war is going on, risk is still low. You are fine if careful enough. We not have many people who can act freely outside and there are too many people who need our help. You are still person your children should lean on. I not think organisation attack you directly now, so just make sure not to let them trick you.”
    “I see. Thank you.”

    We stop talking for a while. Eno returns to his bed, back into darkness. I’m still sitting here, dazed and confused.

    “What is Naki like?” Eno asks.
    “She is very polite and nimble. Works hard but does not talk much. She has a very beautiful face that I kinda like looking at. When no one is around, she usually has this melancholy and worried expression that I find very attractive.”
    The man laughs really loudly. “She has beautiful eyes, does she not?”
    “The most beautiful ones I have ever seen.”
    “Her grandmother is Quaserian. The first time I met wife, I was speechless because of her beautiful eyes too. It is so unfortunate that Reena also has my ugly blood.” Eno laughs again.
    “It’s alright. She does not look like you at all.”
    “You are brave young man,” the huge man says, and we laugh again. “Anyway, do you know anything more?”
    “She told us that she came from a distant town with her aunt, to help the people suffering from war. We mostly talked about the work. We just met today, so we haven’t really shared anything personal.”
    “Does she signal anything unusual? Like SOS?”
    “I’m pretty sure she didn’t.”
    “I see... I will definitely save Reena from whatever bind her.”

    I want to encourage him to continue, but he starts talking again before I can come up with anything.

    “Other bed is empty. You should get some sleep. It has been long day for you, has it not? I will lead you to children tomorrow morning, and then have talk with prison boss. I will translate and then you can go home with kids.”
    “Can I really leave that easily?”
    “Our man plead guilty and get locked here instead of you. Don’t worry about him. He is glad to finally join friends in here.”
    “Thank you.”
    “Do not mind, we just follow hearts.”
    I gratefully thank him for one last time before finding my way to the bed. It’s very comfortable, too good for a prison cell.
    Lying down, the memories of what happened today come back to me.

    We did volunteer work at the clinic in the afternoon. Kai and Kira wanted to help too, so we assigned them some easy tasks. They soon finished and then ran off to play somewhere. The rest of us continued to work non-stop until well after sundown. We were invited to have dinner and stay the night at the temple. It was way safer than returning to the lab.

    After dinner, we were taken to a small room that we would share with an old nun. Kai was tired after a long day of running around, so he went to sleep early. Kira just sat alone in a dark corner with her favorite doll as always. Instead of going to bed, I spent a while reflecting on some things that were weighing on my mind. Some time later, I felt my body complaining, so I lay down to go to sleep. I really needed the rest after the day's work.
    Around an hour later, there were weird noises coming from the door, waking both me and the nun. There was a shadow under the door, but no one knocked or said anything. Maybe it was someone waiting for our reply. With that in mind, I went to open the door. The shadow disappeared when I got close, and when I opened the door, I saw a shadow running off. Feeling both curious and unsettled, I signaled the nun to stay with the kids and then chased after the fleeing shadow.

    It moved very fast, but stopped to wait for me every now and then. I had brought my gun and told myself to turn back if the shadow got too far away. I stopped when I reached a courtyard. The shadow was gone. It must have slipped down one of the many halls. In front of me was a gloomy temple room that grabbed my attention. I stared at it from a safe distance. With a flicker, light started coming from inside. I crept a bit closer and found two burning statues. Both of them depicted a creature I had never seen before, looking like a cross between a lion and a dog.
    The fire spread quickly. I rushed through the doorway and called out to make sure there was no one inside. Looking back, my actions had been unusually brave. It’s like I hoped that something would happen when I chased after that shadow.


    After a few moments looking through the burning room and not getting any replies, I had to get out. I should have called for help, but all I did was stand in front of the temple room, dumbfounded. The burning beasts stared back at me with their fiery eyes. There was something unusual about this flame. It was elegant and mesmerizing.
    The inferno roared, and soon there were dozens of people gathered to extinguish it. It seemed to take forever to put out. Afterwards, everyone was tired and angry. They found a horribly burned corpse inside the room.
    The coroner who inspected the body declared that it was Naki, and Naki’s aunt burst into tears. A few people came to me and started speaking in aggressive tones. I was obviously being blamed for the fire. I tried to tell them that I was innocent, but they just kept saying words that I didn’t understand and then handcuffed me. As they manhandled me out of the temple, I saw Kai and Kira being dragged by two soldiers following behind us. I was shaking in shock and fear.

    Now that I know the kids are safe, I’m flooded with relief. It was a horrible incident but it could have ended up way worse. I should be grateful that these people chose to save us.

    I try to avoid thinking about the evil organizations behind all this. It’s all still too frightening and overwhelming right now. I need a good night’s rest.
    When I’m finally ready to sleep, I can hear long mumbles from Eno’s bed. I can’t catch any words but he’s probably saying prayers in Lcorian. I hold my breath for a moment.

    What a weird country this is. If I ever make it back to Quaseria safely, I’ll have to sue that ********* travel agency for recommending this place.

    ============
    You can read all chapters in better format here.
    Last edited by skyarmor; 05-05-2017 at 06:01 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •