Thursday, 28 March 2019

On giant mecha - how practical are they?

You know exactly what I am talking about. You've probably run into them at some point, be it through films or some form of animation. This article will be about their practicality, with current technology.

So, first things first, can it stand?

Let's look at some figures.
The tire pressure of an aircraft is the pressure it exerts on the ground (the surface area of the tire in contact with the ground changes depending on the weight of the aircraft, keeping the pressure constant). For most commercial aircraft, it's about 200 psi - or 1 379 000 pascals (Newtons per square meter, approximately 137 900 kg per square meter of tire surface). This is designed for the hard surface of runways and taxiways in an airport - such an aircraft can't land on soft ground and not sink into the ground at least and little.
The ground pressure (as it is called), for more everyday things - like humans - is a lot lower. A human exerts about 55 000 pascals when standing, though this can more than twice that when walking / running (source: wikipedia). A passenger can exerts about 205 000 pascals. A mountain bicycle exerts about 245 000 pascals, while a road racing bike exerts about 620 000 pascals. A stiletto heel can exert as much as 3 250 000 pascals - more than an aircraft (which is why they damage floors and many other surfaces).

Let's see what this translates to. If the ground pressure is to be the same as that of a normal vehicle, a 100 tonne mecha would have to have a surface area of (100 x 1000 x 10)/(205 000) = 4.878 m2 in contact with the ground. To stand on 1 foot (and walk), this would require a foot that is about 2 m wide and 2.43 m long. For one that's half that weight, the required area of the foot would be half of that (about 1.5 m x 1.62 m).This is assuming that pressure is distributed fairly evenly by the foot, which is highly unlikely unless it has a rubber sole (which would immediately make kicks about one third as cool). Chances are, if the mecha are made like humans, more weight would be concentrated on the back of the foot.

Still, according to these calculations, a mecha would probably be able to stand on most surfaces.

Part II - can it not collapse under its own weight?

A major issue we face here is the square-cube law: doubling an object's dimensions, which multiplies its surface area by a factor of four, also increases its mass by a factor of eight. This is a problem, because properties like tensile and compressive strength depend on an object's cross-sectional area. So, when you increase it's strength by a factor of 4, you increase its mass by a factor of 8, which means you need more strength to support the increased weight.

Let's compare some comparable structures.

Falcon 1 rocket: Height: 21.2 m, Diameter: 1.7 m, Mass: 27.67 tonnes (source)
Boeing 747-8: Length: 76.25 m, Wingspan: 68.4 m, Mass (Operating empty weight): 220.128 tonnes (source)
Rockwell B-1 Lancer: Length: 44.5 m, Wingspan: 24 m - 42 m (swing wing), Mass: 87.1 tonnes (source)
Falcon 9 rocket: Height: 70 m, Diameter: 3.7 m, Mass: 549.054 tonnes (source)

I chose the Rockwell B-1 Lancer as an example because it includes a rather large moving part - the wing sweep can be changed in flight.

As you can see, chances are, an average mecha will not crumble under its own weight - if it was standing still. So, you can build a statue of it without a problem. However, that is not what we want, we want it to be able to move, to run, to shoot lasers, and to kick other mecha in the face.

So, it needs to move...

Therein lies the problem. To accelerate a part as heavy as a mecha's legs, you are going to need some very powerful motors. For a 20 m, 50 tonne robot, we can assume that its legs are about 10 m tall - approximately half its height. If one third of its weight is in its legs, and the centre of gravity of the leg is one third of the way down the leg from the hip (both are probably conservative estimates), to swing the robot's leg, you will need a torque of (10/3)*((50 000*10)/3) = 555.56 kNm. A 100 kNm motor looks like this (look at the images this page).

In addition to that, to accommodate all that movement, the legs will have to be strong. As in, it should be able to handle being swung at something at high speed, with something heavy attached to the end of it (the foot, the lower leg, and the knee joint, and all associated actuators/sensors) without bending in the middle.

But I got ahead of myself. In order to kick something in the face, the mecha has to reach said target, and if it is, indeed, terrestrial, it has to walk or run there. Walking can be rather complex. One foot has to be taken off the ground, while the weight balances on the other momentarily, and when that foot reaches the ground, the weight must be transferred to it in order to move the other leg. Running can be more taxing still - the mecha has to generate enough force for both feet to leave the ground temporarily. Besides, running exerts a lot of force on the ground (Newton's third law).

All this means a lot of bending moment on the legs, as it balances the body over the heel like an inverted pendulum. To counter this, you need very strong materials for the legs. If you want it to stand on the ground without turning a paved road into quicksand, and if you want reasonable sized motors / actuators, you will need a light-weight material. There are few materials that meet both these requirements.

Provided we found the right material, we still have to move the individual joints. We will need fairly large motors if we are going to use motors. These motors would probably need a lot of current, which introduces a host of other problems (motor control becomes more difficult, and the wires get thicker and heavier, among other things) Another viable option is hydraulics, which will also be very large and very heavy. You will also need a full hydraulics system if you select this option, which also translates to more weight,complexity, and issues with materials. In either case, the actuator we use must be fast,responsive, and very controllable. Finding or manufacturing such actuators will not be easy.


In order to do all of this, we need a source of power. Given the space constraints and the energy requirement, nuclear might be the only really viable option, but the reactor size will probably have to decrease a little. Power isn't my area of expertise, so I can't say for sure, but I don't think the technology is there quite yet.


And now, my favourite part the discussion - how do you make the robot work?

First, you will need to know the robot's starting configuration - how the limbs are positioned, the robot's posture, whether it's stationary or moving, etc. For this, you will need sensors, and a lot of them. You will need to know the position of each motor. You will need to know the tension on the leg beams. You will need accelerometers and gyroscopes, probably in each limb, to measure current linear and rotational acceleration. All this is available, so there is no problem there.

The next problem is judging where the robot is going to step. You can use a radar to map the contours on the ground, and you could also use images from one or more cameras to help you. A laser scanner could also help, but it could be overkill in this case. Again, we have the technology - it's expensive, and difficult to implement, but we definitely have the technology. If there is any problem here, it's creating a transparent window through the foot to get the images necessary.

This information has to be processed. That shouldn't be too hard, but a possible issue is time delays. Chances are, all control will be by a central processor, which will command lower level processors in the limbs, etc, at a high level (at least, that is the design that makes the most sense to me). In order to get it to walk, the arms, legs, torso, and head movements must be coordinated. Delays in transmitting main control commands could potentially throw the whole system out of sync if the problem is bad enough. If the feedback from the limbs, etc. are delayed, or if the data from those sensors are gibberish, that could cause a problem as well. Also, there is the problem of sensors producing readings at different rates, which can be dealt with, but it can cause problems. The long distances can make data transmission errors more likely, but that can be dealt with.

The next problem is the actuators themselves. If my experience teaches me anything, it is that this part is going to be ridiculously difficult. As I mentioned before, finding motors or other actuators that are powerful enough and quick enough would be difficult. I can't be certain about hydraulics, but with motors, controlling it is going to be difficult because finding a motor control circuit that is small enough, and won't heat too much (or burn out) with intermittent operation would be nearly impossible. The other problem is managing space when installing them (though hopefully that wouldn't be too much of a problem with hydraulics.

To summarize,

Sensing and data processing can be done - it won't be easy, but it can be done.
If you can build it, it will be able to walk without sinking a couple of metres into the ground with each step.
Finding material that can be used to build it will be a problem.
Finding a power source is likely impossible right now.
Finding suitable actuators would be very difficult.

The verdict: It's not possible right now, but maybe it will become a reality in the near future. It might not have any practical use, but it'll be an interesting experiment for nerds like us.

You can follow me on Facebook here for news and updates.

Until next time!

Wednesday, 6 March 2019

Random syllable generator for conlanging

One of the most tiring things about conlanging is generating new words. You could always come up with random words, which works quite well when the number of words you need to generate is in the tens or maybe in the early triple digits. However, there comes a point where you need to formalise the process. Here, I will explain in detail how it can be done, and give  a sample c++ program that can be used for the purpose.

I have described some of the basics in my post Conlanging adventures 001. I will reiterate some of the points here, to make it easier to follow.

So, to generate vocabulary for a conlang, you need:
  1. A sound system: What are the sounds that exist in your language? What consonants exist? What vowels exist? I would recommend using an IPA chart to decide on the sounds that you want to use. You can decide on the exact number of sounds you want to use - after all, some languages have more sounds in them than the others. You may also want to decide on whether you want tones in your language.
  2. How the sounds are combined: In any language, there are specific ways in which sounds can be combines. In English, for example, you can end a syllable in 'ng', but you can't start a syllable with it. This means you have to decide on the possible starting consonant clusters, vowels, and ending consonant clusters. You can choose to eliminate one of the consonant clusters completely (i.e., if it's a language like Japanese, the only possible ending consonants are 'n' or nothing, with nothing being much more common). If you're particularly daring, or if you're Russian, you can go ahead and make the vowel cluster optional as well. You have to decide the maximum length for each cluster as well.
If you have decided on these, we can go on to generate syllables.

Let's start with a simple language as a sample. First, let's decide on a set of simple sounds.
Consonants: k, g, p, t, d, n, m, r, h, s
Vowels: a, e, i, o, u

Next, we need to decide on possible consonant clusters.
Starting consonants: k, kr, g, gr, p, t, tr, d, n, m, r, h, s, sr
Vowels: a, e, i, o, u, ai (basic vowels + one diphthong)
Ending consonants: k, kt, g, p, pt, t, d, n, ng, m, r, s

I will consider the starting and ending consonant clusters optional, so the generator would have the option to drop them.

Without further ado, let's get to the program.

EDIT: there is a problem that I discovered after testing the program - cin will read all the characters you input, and use it as the input the next time cin is called (for example, if you type "yes" instead of "y", it will read that input as "y", the next input as "e", and the next as "s"). The fix is to clear cin and skip over all the other characters in the buffer. The commands used for the purpose are cin.clear() and cin.ignore(10000, '\n');. I have highlighted those edits in red in the code.

#include <cstdlib>
#include <iostream>
#include <string>
#include <random>
#include <time.h>

using namespace std;


string stConst[LENGTH_STCONST] = {"k","kr","g","gr","p","t","tr","d","m","n","r","h","s","sr"};

string vowels[LENGTH_VOWELS] = {"a","e","i","o","u"};

string teConst[LENGTH_TECONST] = {"k","kt","g","p","pt","t","d","n","ng","m","r","s"};

int main(int argc, char** argv) {
    //Loop exit variables
    int end = 0; //main loop
    int st_end = 0; int v_end = 0; int te_end = 0;//cluster loops
    //For user input
    char inChar = '\0';
    //For addressing arrays
    int index_0,index_1,index_2;
    //random number generator
    default_random_engine generator;
    //distributions - three uniform int distributions used.
    uniform_int_distribution<int> distribution_0(0,(LENGTH_STCONST-1));
    uniform_int_distribution<int> distribution_1(0,(LENGTH_VOWELS-1));
    uniform_int_distribution<int> distribution_2(0,(LENGTH_TECONST-1));
    /*discard random number of random numbers*/
    time_t now = time(0);
    int skip_time = now%10000;
    cout<<"skip time: "<<skip_time<<endl;
    for (int i = 0; i<skip_time; i++){
        index_0 = distribution_0(generator);
        index_1 = distribution_1(generator);
        index_2 = distribution_2(generator);
    //main loop
    while (end==0){
        //set cluster loop variables to zero
        st_end = 0; v_end = 0; te_end = 0;
        //User input
        cout<<"Generate new syllable? Y/N"<<endl;

        cin.ignore(10000, '\n');
        //Exit program if exit command is given
        if ((inChar=='n')||(inChar=='N')){
            cout<<"Exiting loop"<<endl;
            end = 1;    //set end variable
            continue;   //exit loop
        //generate index using random number generator
        index_0 = distribution_0(generator);
        index_1 = distribution_1(generator);
        index_2 = distribution_2(generator);
        cout<<index_0<<" "<<index_1<<" "<<index_2<<endl;
        //print generated syllable
        cout<<stConst[index_0]<<" "<<vowels[index_1]<<" "<<teConst[index_2]<<endl;
        //cluster loops, to modify either starting, vowel, or end clusters only
        while(st_end == 0){
            cout<<"Generate new starting consonant cluster? Y/N"<<endl;

            cin.ignore(10000, '\n')
            if ((inChar=='n')||(inChar=='N')){
                index_0 = distribution_0(generator);
                cout<<stConst[index_0]<<" "<<vowels[index_1]<<" "<<teConst[index_2]<<endl;
        while(v_end == 0){
            cout<<"Generate new vowel cluster? Y/N"<<endl;

            cin.ignore(10000, '\n')
            if ((inChar=='n')||(inChar=='N')){
                v_end = 1;
                index_1 = distribution_1(generator);
                cout<<stConst[index_0]<<" "<<vowels[index_1]<<" "<<teConst[index_2]<<endl;
        while (te_end == 0){
            cout<<"Generate new ending consonant cluster? Y/N"<<endl;

            cin.ignore(10000, '\n')
            if ((inChar=='n')||(inChar=='N')){
                te_end = 1;
                index_2 = distribution_2(generator);
                cout<<stConst[index_0]<<" "<<vowels[index_1]<<" "<<teConst[index_2]<<endl;

    return 0;

Includes: iostream - used for cin and cout.
string - we need strings, because we have multiple letters in a cluster. Alternatively, you can use 2D arrays (which you will have to use if you use C instead of C++), but I find strings more versatile.
random - used to generate random numbers.
time.h - used to randomize random numbers using current time, because I find that it keeps generating the same syllables otherwise.

Defines: used to define the size of each of the string arrays that follow. If you need to make a cluster optional, I would recommend making the size of the array larger than the number of consonants you have.

Array declerations:  
string stConst[LENGTH_STCONST] = {"k","kr","g","gr","p","t","tr","d","m","n","r","h","s","sr"};
Here, an array of strings is used to store all possible starting consonant combinations. As you might have noticed, the length of the array is defined as 15, though there are 14 entries. The extra entry remains null, which is used to account for the fact that the starting consonant cluster is optional.
The vowel clusters and terminal consonant clusters are defined the same way. The terminal consonant cluster also has an extra, null entry.

Main program:
First, the exit variables for the loops are declared. Then, the input character for user input, and variables for array indexes are created. Afterwards, the random number generator is declared. You could use rand() instead, but this method is a little more reliable.
 Next, a random number of the generated numbers are discarded. This is because the program tends to generate the same random numbers, and thus the same syllables otherwise. To do this, time_t now = time(0) is used to get the current time in seconds from 00:00, 1st January, 1970. Since I have no intention of looping that many times, I take the modulus of 10,000, and discard that many random numbers from each distribution.

Main while loop:
Here, first, the cluster loop end markers are reset to zero. Then the user is prompted to input whether they want a syllable generated. Then, the random number generators defined are used to generated three random integers in the range  (0, length of array) for each of the three components. This is then displayed.

Then comes the optional part. The three cluster modification loops allow the user to regenerate one of the three components while keeping the other two components of the syllable the same. I find it useful for the conlang I use regularly (because there are so many sounds, some technically possible combinations sound weird) but you can delete the three cluster loops if you want to.

Program output: 
The program output is as follows. For clarity, I will highlight user inputs in red and generated syllables in green.

skip time: 1330
Generate new syllable? Y/N
13 3 4
sr o pt
Generate new starting consonant cluster? Y/N
n o pt
Generate new starting consonant cluster? Y/N
gr o pt
Generate new starting consonant cluster? Y/N
 o pt
Generate new starting consonant cluster? Y/N
h o pt
Generate new starting consonant cluster? Y/N
Generate new vowel cluster? Y/N
Generate new ending consonant cluster? Y/N
h o p
Generate new ending consonant cluster? Y/N
h o m
Generate new ending consonant cluster? Y/N
h o kt
Generate new ending consonant cluster? Y/N
h o t
Generate new ending consonant cluster? Y/N
h o n
Generate new ending consonant cluster? Y/N
h o pt
Generate new ending consonant cluster? Y/N
Generate new syllable? Y/N
4 0 1
p a kt
Generate new starting consonant cluster? Y/N
Generate new vowel cluster? Y/N
Generate new ending consonant cluster? Y/N
Generate new syllable? Y/N
0 2 4
k i pt
Generate new starting consonant cluster? Y/N
Generate new vowel cluster? Y/N
Generate new ending consonant cluster? Y/N
k i g
Generate new ending consonant cluster? Y/N
k i kt
Generate new ending consonant cluster? Y/N
k i t
Generate new ending consonant cluster? Y/N
Generate new syllable? Y/N
Exiting loop

RUN SUCCESSFUL (total time: 55s)

I hope you found this useful. If there is anything you would like clarified, please mention it the comments below and I will reply as soon as possible.

You can follow me on Facebook here for news and updates.

Until next time!

Saturday, 12 January 2019

How do you know you're writing a Mary Sue?

The protagonist of the first novel length story that I wrote was an annoying brat. In fact, I realised she was a brat, so I abandoned the story very quickly and started work on my second novel. That is where everything went started to fall apart.
You see, I didn't want her to be a doormat, so I decided to add a little bit of what you might call Mary-Sue characteristics, to spice her up. The problem was, I had no idea when to stop. I have written several novel length stories since then, but none of it has ever surpassed this particular protagonist in sheer Mary-Sue-ness.
Don't get me wrong, I don't think that a Mary Sue is something to be avoided at all costs. You can have a protagonist, an antagonist, or even a supporting character who fits the description, and the story can be good.
So, what went wrong?
I will try to explain this using two of my protagonists, A, the one I mentioned, and B, a protagonist in a novel I'm working on now, who has distinct Mary Sue traits, but one who I believe is much more tolerable. Let's start with a description of the two of them.

A - 11 years old (at the start), female. She's a student moving to a secondary school, one of the best in the country, which means she has to relocate. She is also a princess who was raised by a clueless single father. She thinks her mother is dead (but she isn't). She has a lot of unresolved angst towards pretty much everyone and everything. Very good at her studies - as in, constantly leaves her classmates in the dust. She's also good at fencing, has very good reflexes, and is a star member of the school's sports team, up to and including joining the school team as a first year student. She also has a definite contempt for authority.

B - 14 years old (at the start), male. Is a student at one of the best secondary schools in the country. He was raised mostly by a clueless father, his mother is actually dead, and the rest of his family is a mess. He is good at his studies, but is near constantly defeated by another student. He's a fairly good fencer, but isn't outstanding at any other sport. He definitely has a problem with authority. He's a social recluse and spends most of his free time in the lab.

See the difference? It should be obvious at a glance. The strange thing was, I had no idea that A was a complete and utter Mary Sue (and not the potentially likable kind) when I wrote her. I thought she was a good, rounded character. I mean, there are kids who are good at both studies and sports, right? I thought I was one, in fact (it took a while for my massive ego to realise that I am terrible at most sports and mediocre at others). Still, A was leagues above anyone I knew of, really.
Then there is her backstory. The sad part is, it added nothing to her character. Yes, it made her more likely to be angsty, but somehow it didn't affect her relationships with people. She got along quite well with her cousins and most of her classmates. As a matter of fact, those who didn't get along with her were in the wrong, motivated by something like jealousy, or an ancient disagreement between their peoples, or it was on racial grounds - you get the idea. 
B, on the other hand, isn't the best liked person in school. Most other students either don't know of him or know of him as the quiet weirdo who's always in the lab. As a matter of fact, not even the other protagonists like him as the story progresses - he's not a very likable person after all.
Also, one more thing - A is always right. What she says will happen always happens. Other characters ignore her advice at their peril. This applies even to adults in the story. In contrast, while B is right most of the time, he has his limits. His plans are usually affected by things he has no control over (unlike A). 

Enough of that, you get the idea. Now, to get to the point, how do you know you're writing a Mary Sue? There are several litmus tests available online (just search it, you should come with about half a dozen). Still, it's a labourious thing to do, putting all of your characters through the test (A failed it, B was in the dangerous range). What I'm going to do is to give you a few pointers to pick out a potential offender amongst your characters. 
A word of caution - be honest. Not being honest cost me a lot of time and effort on character A. I hope you don't make the same mistake.

1) Is your character always right?
This is a big red flag. It is extremely difficult for someone to be right, instantaneously, on their first guess, with limited information. If your character does that, they're either a psychic, or has a direct line to the writer's head. There are those who can pull it off, but you should be careful. The expertise being limited to one field, especially if they have a lot of background information on it, is a lot more believable.

2) Does everyone love your character?
This is especially dangerous if used in combination with 1. No one likes someone who is right all the time. They may be an asset, but them being right all the time about everything can rub a lot of people the wrong way. Even if they weren't right all the time, they shouldn't be able to please everyone. Certainly not everyone would love the character enough to give their life for them. 

3) Related to 2), is everyone who hates your character misguided / jealous / has an ulterior motive?
Sometimes, people hate people because they can. That's just the way it is. Maybe their characters aren't compatible. Maybe they find the other person's taste in music appalling, especially if they play it for hours on end. Maybe they think the other person's perfume smells horrible. Maybe they hate the sound of their shoes. Maybe your character hurts people without realising it. Maybe they hurt people intentionally, but don't think it's very important, while the other person is extremely hurt by it. Maybe your character's methods of communication can be off-putting to most people.
These things happen, so your character doesn't have to be actively evil to have people hating them for trivial reasons.

4) Does your character have multiple areas of expertise?
This isn't a sure sign that your character is a Mary Sue, but it can be a good indicator. People can be good at more than one thing, but if your character speaks five language fluently while being very good at sports, a brilliant painter, singer, and musician, while also being extremely good at maths, and the sciences, while simultaneously having a good business sense, we have a problem. 

5) Are you too emotionally involved with the character?
This is a little harder to define. Some level of emotional involvement with your characters is inevitable in my experience. However, if you use your name / nickname / username for your character's name, and start feeling like they're a stand in for you, maybe it's time to step back and take another look at the character. 
Don't get me wrong - relating to a character on a personal level is not a bad thing. It can add more to a character and help you round them out. However, taking the involvement too far can make you unable to hurt them. 
Being jealous of your character can also be a warning sign that your character is, indeed, a Mary Sue. Being too proud of your character's achievements is much more likely to be an indicator that something is wrong. After all, in the end, characters are tools. Pride in what they achieved within the story isn't a rational emotion to have, at least for me.

The list is by no means limited to these points. However, these should give you an indication that something is wrong, which would allow you to explore the problem further.

One more point I'd like to reiterate before signing off - Mary Sues are not universally terrible. You can have a Mary Sue protagonist and still have a successful story (I will not give any examples, but I bet you can think of a few), but it takes a lot of skill and luck. My advise is, if you can avoid it, please do.

You can follow me on Facebook here for news and updates.

Until next time!

Wednesday, 9 January 2019

Dealing with writer's block - how I do it

Anyone who has tried writing for any length of time has dealt with writer's block. I am no different, be it fiction or academic writing. Below, I will list a few methods I use to deal with the problem. They may or may not be applicable to you, but I hope it helps.

Key: A - applies to Academic writing, F - Applies to fiction, A/F - applies to both.

1) Do something else.  (A/F)
This is particularly useful if you've being staring at the same damned document for a ridiculous length of time and you've already written about 5000 words during that time (The number is just a guideline, and is probably ridiculous). Do yourself a favour and stare at something else for ten minutes. Alternatively, you can take a nap / leave it for tomorrow, as you please, as long as you're not too close to the deadline (i.e., if the deadline is ten minutes away, keep staring at it and get it done. You can relax afterwards).
On a longer time scale, this can also be useful if you've absolutely run out of ideas. In that case, I usually switch tracks (academic to fiction and vice versa, or I switch the subject / genre for a while). This helps refresh things, so to speak.

2) Research.  (A/F)
The thing tripping you up could be lack of knowledge or the knowledge not being fresh enough. The best thing to do in that situation would be to research the topic thoroughly. In my experience, you need to read in order to write. This should be obvious to you if you're writing a literature review, but it's absolutely necessary, even when writing a novel. Read up on the topic, read up on topics peripherally related to it, and then get back to writing.

3) Skip ahead to another section / chapter.   (A/F)
Say you're stuck under one subheading or you have no idea how to finish the chapter. Skip ahead to the next one. In a novel, this makes things easier because you now have an idea of how the situation ends, if the two chapters are linked. If it isn't a novel and/or the two chapters aren't exactly linked, it'll still give give your mind a much needed change of pace.

4) Related to 3), write what you want to write.   (A/F)
If you'd rather write the next chapter / section first, by all means do so. Writing one thing with another in mind is insanely difficult, at least for me.

5) Make a rough sketch, diagram, chart, etc. (A/F)
This helps organise your thoughts. It will probably help clear the relationships between ideas in your head, which will likely clear the block because now you will know what you have to work on.

6) Kill someone.   (F)
IMPORTANT: This does not apply to academic writing.
ALSO IMPORTANT: Don't really kill someone. I mean a character.
You might have seen this floating around on the internet. While I can confirm that this is effective, please refer to my previous article on killing characters for more of my thoughts on that one. Usually my victims tend to be side characters. There was a time when my main characters fell victim as well, but that, used in excess, tends to make it very difficult to continue the story (you know, with quite a few characters being dead). So, be very careful with this.

7) What is the worst that can happen? Do that.    (F)
What is the worst that could happen to your character right now? I don't mean things like suddenly being run over by a bus (see 5 for that), I mean thing like, falling sick just before something important, a friend moving away, a dragon breaking loose at the worst possible time - it depends on your story. One important thing - in most cases, you should have an idea how to handle the catastrophe, or you'll just write yourself into a corner once again.
Most importantly, show no mercy.

8) Add a diagram / table.  (A)
If you know what to write, but your problem is articulation, try expressing it in a diagram or a table. After that, you can explain the diagram further in the text if you want to. At any rate, a diagram regardless of whether you put it in your paper / assignment or not, is a very good tool for organising your thoughts and organising the information that you want to present.

9) Build the background (F)
Worldbuild. Extend and detail the environment that your story is set in. When you add detail to the environment, it will increase the constraints under which your characters must function, but it will also give shape to your ideas.

10) Re-read, start editing (A/F)
For academic writing, this is a very good thing to do, because it reminds you of what you have done so far. This reminds you of things you forgot to include or things that may have slipped your mind in the process of writing. It's also a good opportunity to look for any inconsistencies/mistakes in your writing.
For fiction, this is a double-edged sword. While it can remind you of the Chekov's gun you put in the second chapter and forgot about, it can also lead to rewriting (as in, the entire novel). It can also lead to you giving up on your current novel in disgust. Use with caution.

Those are the main tricks I use to get past writer's block when it hits me. I hope you find it useful for those dark times when all of us will inevitably have to deal with writers block. 

You can follow me on Facebook here for news and updates.

Until next time!

Friday, 19 October 2018

The dragon egg (short story)

It was an ordinary Monday morning. There was a morning lecture that I was bound to be late to. Everything was normal, until I stepped outside into the balcony for the first time, and found a dragon egg.

Let me elaborate. It was a rather large, 25 cm long, and ovoid in shape. It's skin resembled that of a reptile. I didn't touch it at first - it was a suspicious object, after all. I considered talking to my roommate about it, but by then, the person is question was in the bathroom, so I decided to lie down for a couple of minutes until it was free. I'll spare you the details and say I underestimated my capacity to fall asleep.

In any case, when she decided to check up on me (probably under the impression that I had passed away in the course of the night), it was late, and I didn't remember any of it. I didn't recall it until I was actually in the lecture, but by then, I had no idea where she was.

I remembered it again when I got back to my room that evening. I was almost sure it was a figment of my imagination, but I had to check. I ran out to the balcony, and voila, there it was. It was glowing now. What on earth was it?
I had to decide whether I was going to call the police. It could be something explosive, after all. It didn't look man-made, and no one had any reason to harm me, as far as I knew. I decided to ask my roommate. Of course, I made the mistake of assuming that she was in touch with reality.

"That's a dragon egg, of course!" she said, the moment she clapped her eyes on it, "maybe it'll hatch if we take care of it."

She probably realised that I didn't buy any of this by the look on my face. She took it as an invitation to elaborate on her position.

"The mother dragon probably couldn't take care of the egg herself, so she probably left it in the care of a human who could. Dragons are reptiles, so I don't think you'll have to sit on it, but you should probably take it inside and take care of it."

"If it's a bomb..."

"That's clearly natural. As far as I know, there are no creatures that lay exploding eggs - that would be counterproductive if you want to..."

"Alright, then you can take it in."

"It's meant for you. You have to take care of it. The mother might not like it if someone else handles the egg."

"If it's a surveillance..."

"It's not artificial. Take it in. cover it with a towel or something if you're afraid of being spied on."

"Why are you so set on this?"

"I'm not set on it, I just think you're being an idiot."

She probably knew more about this than she let on. She had no particular reason to hate me (other than the usual frustration with a roommate, but she was the furthest thing from a psychopath), so if it was from her, at worst, it would be mildly annoying. I decided to play along.

"Alright. I'll set it on the ground here and cover it with a towel. That'll be good, right?"

"Yes, that should be good. Good luck!"

With that, she turned and left the room with suspicious speed. I was curious about it, but also dead tired. I still had a lot to study, as the exams were due to start in two days.

I had no lectures the next morning, so I decided to sleep in. It was a restless sleep, and I was woken, fairly early, by a sort of chirp. It took a little while for my sleepy brain to register it. When it did, I almost fell off the bed. The sound was coming from the corner of the room where the egg was. I went to it, and pulled the towel off. It still looked exactly the same. It wasn't glowing anymore. As I watched, it made a single chirping noise, and then went silent.

I tapped the shell lightly. There was no response. I stared at it for a while, but I was too sleepy to process anything. I put the towel over the egg again, and went to get dressed and have breakfast. After this was done, I returned to my room. The egg was still silent. I settled down to my studies. It made no noise after that, until about 5 pm when I was about to go join a group study session. That was a single chirp, and after that, it went silent. I was starting to suspect there was an alarm clock inside the thing.

The study session went on until quite late. We had a break for dinner, and settled back into our studies. Some time later, my roommate called. She wanted me to come back, since the dragon egg would miss me.

My plan was to stay and study overnight, sit for the exam, and then go sleep in the morning. I refused, point blank. My roommate accepted that, at least for the moment. Then, half an hour later, came another call. The egg was making noise constantly, so she wanted me to come home. I was almost done with my studies anyway. Besides, I was quite tired. I decided to do a bit of cramming in the morning. I went back to my room.

She was right, the egg was chirping constantly. By now, I was starting to have serious doubts - like, did dragons chirp in the first place?  Anyway, it stopped as soon as I entered the room. I went to sleep fairly fast.

The next morning, I was woken by the alarm clock. It was chirping again when I came back. It stopped again when I entered the room. I couldn't help saying goodbye to it when I left the room that day. It didn't exactly respond, but I assumed it was asleep. I went to the exam in a strangely positive mood as a result. There was a paper in the afternoon as well. Afterwards, we had another group study session.

My roommate called again that evening as well. The egg was chirping again, apparently. I was considering the alarm theory again, or perhaps, that it was planted by my mother. Again, I ended up giving in and going back to my room. Again, it stopped once I entered the room.

The next morning was the same as the previous one, except for one difference - when I said good bye, the egg chirped.

That evening was the same as the last. The last two papers were on the next day, and I hadn't had a lot of time to study for them. I was annoyed about being disturbed, and took half an hour extra during which my poor roommate had to listen to the egg, but I ended up spending that night in my dorm room as well.

The next morning was also the same. It chirped quite a bit in reply this time when I said good bye.

That evening, we were planning to go out and celebrate the end of the exams, but as it turned out, everyone was sleep-deprived and declined. I went back to my room earlier than anticipated as a result.

Only, when I went back, the door to my room was wide open. My roommate was there, with a friend of hers.. He was holding a hammer, right over the dragon egg. My blood ran cold. It took me a second to get the linguistic part of my brain operational, but when it finally kicked into gear, I was finally able to express my thoughts.

"Don't kill it!" I screamed.

My roommate jumped, and so did her friend. In fact, it startled him so much that he dropped the hammer, on top of the egg. I lost the ability to scream. My roommate and her friend both tried to catch the hammer, and both failed, as it miraculously landed in the best possible way to crack the egg in slow motion. The shell made a dull sound, and then cracked.

I think I need to elaborate on what happened in more detail. By 'cracked' I meant that some sort of hard shell inside the egg definitely cracked. The outer, leathery layer stayed intact. Then, it started leaking.

"Looks like it punctured the plastic,"said the friend.

I immediately put two and two together. My roommate immediately realised that the had deduced that much.

"Let's discuss this after you get your results," she said.

"Fine. In exchange, if you tell anyone..."

"It's strictly between the three of us," said the friend.

"So, how long did it take?" I asked.

"A couple of weeks, between the two of us," said my roommate, "do you want to know how it was done?"

-------THE END --------------------

You can follow me on facebook here for news and updates.

None of the characters or places described in this work are representative of any real people, incidents, or the like.

Please do not post this story on other sites or on any other media. Instead, add the link to this blog post.

Thank you for reading.

Monday, 15 October 2018

The children of Mars - Chapter 03

The last time I reported on my situation, I was attacked by Ryan in class. I told you that I tried to cover Kathy, and I managed to fall with our chairs. Before we could think of getting up, we found ourselves facing Ryan holding a pen in an ice pick grip.

I have to tell you that hand to hand combat is not my strong point. I scrambled to my feet as fast as I could and barely missed being stabbed. I was lucky Deimos chose the grip that he did - it took him a split second longer to recover.

I had to get a weapon as well. I looked at the nearby chair, thought it looked good, and grabbed it. By then I regretted not picking up something more versatile, but I had no opportunity to change my weapon. Ryan was turning his attention to me again. The chair would have to be a shield, not a weapon, for I wouldn't be able to talk my way out of hurting a fellow student seriously.

Fortunately, it didn't come to that. By now, Ellis grabbed Ryan by one arm, the professor by the other, and another student put him in a lock from behind. Immediately, Ryan went limp.

I relaxed, but not everyone did. The student who got Ryan in a lock, Phil, released the grip immediately, and Ellis lay him down on the floor. I could assist, but I had to get my priorities right, and gather the energy that Deimos leaked.

That might have taken me a few seconds, but by then, the entire class was in a panic. I couldn't let the situation escalate - it would be food for Deimos. The real problem was, where was he now? Judging by Ryan's symptoms, Deimos fed off him, but whether he was still there or whether he left for a new host was harder to determine. I could still sense his presence in the room.

I was thinking of this when I heard someone calling my name. It was Kathy. She was screaming at me.

"Murdoch, answer me! Do you know what's wrong with him?"

I did. And I could treat it. There were two problems - energy, and my identity. Treating him would cost me a lot of the energy I gathered, and if I were to treat him, I would expose the fact that I wasn't human.

On the other hand, if left untreated, he would wake up soon enough. If Deimos was still there, and my assumptions about humans were right, though, he could die.

"No, I am not sure."

"Quite callous, aren't you?"

This was Deimos, in my language, and I am sure the whole class heard it. I wasn't sure where the voice came from, but he was leaking energy again.

"What was that voice?" asked one of the students.

"Who said that?" asked another.

"That was just a noise, stop panicking," said the professor, "I think I'll call an ambulance."

This had to be stopped. The last thing I needed was Deimos loose in a hospital.

"That won't be necessary," I said quickly, "he just fainted. Face it, Phil, you didn't even get him into a lock properly. He's probably exhausted or something. That's probably why he panicked and attacked us."

"You know better. You know, he could die."

Everyone heard this as well. By now, everyone was starting to look around, terrified. Mass panic was seconds away. I was tempted to let it run its course, if it would mean evacuating the room. I ignored it and went towards Ryan.

"Oh, so you're going to heal him, aren't you?"

"Where is it coming from?" asked someone, "if there is a ventriloquist in here, own up!"

"That's the same language you were speaking, wasn't it, Murdoch?" asked Kathy, suddenly, "Is that your weird friend? The one behind the library?"

Yes, it was the same language, but Renard's voice and Deimos' voice were very different things. Deimos definitely couldn't pass for a human.

Now everyone was looking at me. I still couldn't pinpoint Deimos. Still, getting closer to Ryan, I could sense that he wasn't possessing Ryan anymore. He would probably wake up in short order. The problem was, what was Deimos trying to accomplish? A little longer, and I would have enough power to cripple him seriously. Was he really overestimating himself so much?

"Come on, keep acting like that, and they'll probably start treating me the way you treated me. Locked up, treated as a freak - but you know that better than me. How does it feel?"

Someone started saying what I could only assume was a prayer. I suppose it would be a little freaky to the human mind. I just needed a few seconds now.

"Why aren't you saying anything? Afraid your true nature will be known? Come on, say something - a word! Only that tiny creature next to you knows anything about you, and she's a defective specimen, as far as I can see. Don't imagine, for a moment, that the rest will just watch you like she did. And you, humans, stop that racket!"

The last part was addressed at the group of students who were praying. I still said nothing. I had a plan, only, I couldn't see how anything I said could influence things positively.

The professor took control of the situation. "Everybody, leave the room, now!"

Deimos reacted immediately. He physically appeared at the doorway. Several students screamed. This was mass panic, just what he wanted. He went for what he needed, energy. He could absorb it in the form of fear. I absorbed a lot of energy in the process as well.

Within seconds, everyone in the class was down. This was exactly what I needed. Deimos was still corporeal, and could get hit by the spell I was about to cast - which I did. I didn't have time to set it up properly, which meant that the spell would be a bit weaker than it should, but it would weaken him considerably.

It was a hit. My spell hit Deimos before the last of my classmates hit the ground. He reeled and fell backwards, out of the class. I went towards him. It was a mistake.

He fired back. It was just a blast of energy. I ducked, instinctively. The blast flew over me. When I looked up, Deimos was gone, the air was so energized that my hair was standing on end, and there was a huge hole in canvas where you projected stuff and the wall behind, which, luckily, led to the outside of the building.

I absorbed all the energy I could, and got to my feet. It was a matter of time before people noticed what was going on. What would I do?

"Look, now that it's come to this, there's only one thing to do. I'll do the fighting," said Kathy, getting to her feet as well, "In return, I want a full report of the situation, and when you go back, I want to go back with you."

It took a second for this to register. "What?"

"So you really didn't recognise me at all."


"Remember the campaign on the northern continent? We ran into a fortress that wasn't on our map. I went to investigate with six of my men, and we got caught in a trap. We ended up being blown here."

"You're the knight who led the campaign."


"Why didn't you tell me?"

"I didn't want to get my men involved in this."

"Where are they?"

"They aren't students here. Why do you want to know?"

"If you want to go back, they may want to, as well. Do you have any baseline magical sensitivity?"

"Minimal, almost non-existent."

"What about your men?"

"I don't know."

"Maybe we can fight back," I said, "and we may be able to go back, all of us. Look, Kathy, you don't mind me calling you Kathy, do you? Let's all meet up, and discuss this. We can do this."

She promptly collapsed. I tried to catch her, failed, and while she fell onto the floor neatly between the nearest chair and the table, I managed to hit my forehead on said table. Maybe it was the knock, but I realised that something had startled her, so I collapsed backwards on to the floor as the door opened and someone looked in.

------------------------------------END OF CHAPTER THREE-----------------------------------------

You can follow me on facebook here for news and updates.

Previous chapters: Chapter 01 | Chapter 02

None of the characters or places described in this work are representative of any real people, incidents, or the like.

Please do not post this story on other sites or on any other media. Instead, add the link to this blog post.

Thank you for reading.

Friday, 12 October 2018

Worldbuilding - part 01

World building is somehow simultaneously the best thing and the worst thing about writing a fantasy, in my experience. I've spent a good few years developing the world where my novels are set (It's a shared universe where I have based two series to this date). It's fun, but it's also vexing, trying to keep all the various details in your head.
In this post, I will point out a few things you might need to consider when trying to build a world from scratch. Here, the main focus on getting the geography and locations down, and I will talk about the rest of the process in a later article.

1. Names!

If you're creating a world (or, let's be realistic, a country and its nearest neighbours), you need to refer to that country in some way. There are a few ways to go about this. 
  1. Postpone the problem until you're older and hopefully wiser (guilty!), and use a placeholder in its place. While this may speed up the writing process, it also means you're dropping a crucial detail, and you may lose some nuance it could have added to the story. 
  2. Option two is to look for inspiration in foreign languages. This tends to work better if you pick a language that is not too close to the language you're working with. A less widely understood language probably works better than one that everybody knows. Google translate is very useful for this. However, there is one major drawback to this - words tend to have multiple meanings, or mean something else in the particular language's slang. So, tread carefully.
  3. The third alternative is to create the name you want from scratch. You could either create a language from scratch first, or use the phonology of the language that your characters use to come up with a word that sounds plausible enough. If you create the language first, you could use words from that language to come up with a name, but it's not strictly necessary - not all countries have names that make sense, immediately, in their own language.
One more thing - you might be tempted to worry about whether the name of the place means something else in a another language. Don't worry - there are so many words that mean one thing in one language and something completely different in another. If it didn't, we'd all be speaking versions of the same language.

2. More names

You will also need to figure out what the people call themselves, and whether they have a different name for their ethnic group and for the nationality. Also, you might need to come up with a name for the continent if your country is in a continent, but that probably won't be necessary in every case.

3. Geography

What is your setting?Is it a country attached to a larger continent? Is it an island? Is it a planet city? Or is it underwater/in orbit? Or is your focus just on one city? Or is it something else entirely?
Ideally, you would have some idea about what sort of setting it is when you get to this stage (unless you're designing a world because you think it's fun - in which case, carry on). 
Once you've picked the type of location, you probably need to decide how big it is. As in, in square kilometres (or miles, centimetres, parsecs, whatever you like). This is important, because you have to know how long it will take to traverse the area in question, for example. The size also determines the number of different climates you can squeeze in there. It also determines the size of the rivers and streams, and possibly of mountains (unless it's a volcanic island). 
Then you need the approximate shape of the area. I would recommend reading some basic geography if you want to keep things realistic. Of course your world doesn't have to play by the rules of reality - if there are forces there that can make a landmass a completely illogical shape, go right ahead.
At this stage, you will have a blank map with the outline of the the area in question. Now, it's time to fill it it.

4. Climate

What is the climate like in there? Are there a lot of micro-climates? What is the average temperature? How much precipitation do they get? What other factors would you expect to influence the climate?

5. More geography

Now, we have to fill in the important features. You can have mountains, lakes and other bodies of water, rivers, plains, marshes and bogs, etc.
I prefer to fill in the approximate elevations first (it's more practical in my case - the country is over 3 million square kilometres) instead of marking individual mountain ranges. The mountains are a good starting point, because they influence climates a lot, and most of the other features I mentioned tend to be dependent on them.
Once you've decided where the mountains are, you can start putting the rivers in. There are specific ways in which rivers work, though, and you might need to be careful about them (unless someone or something is pumping it, a river cannot flow uphill). They can start on flat land on occasion. They can just disappear into a desert (there are a few cases like that). In most cases, however, they tend to start from a mountainous area as a bunch of streams and flow into another stream or the sea, a lake, or other such source of water.
Then there are other features, like lakes. They could be formed by rivers emptying into it. they could be artificial, or they could be caused by springs at the location. They could be poisonous or have pitch in them (depends on volcanic activity). You can also add a few significant waterfalls along the rivers. 
Marshes could be directly connected to the sea, but they don't have to be. you can have a river draining into one if you want to (provided it's not too big). 
Now you can fill in the type of forests and grasslands as appropriate. You also have to determine which areas are occupied, and therefore changed by the inhabitants of the place in question.
All this, of course, refers to a place that is firmly on dry land. If your setting is underwater, for example, you might have to look into different features to liven it up.

6. Settlements

First of all, do they have settlements? If so, what sort of settlements are they? Are they medieval style cities? Or modern cities? Or are they small villages scattered far and wide?
How are these settlements connected? Is there a road network? Or are there alternative means of transport (rail, for example)?
Is there a command center, so to speak, politically or in a military sense? Where is it located? You would want to place it in a place that can be defended, but within a reasonable distance from the places that are being commanded from there.

7. Even more names!

You are going to have to name all the places you just created - the mountain ranges, lakes, rivers, cities/villages, etc. Here, you could use the same approach as you did when naming the country. Alternatively, you could also use words from English or the language you're working in to create an understandable place name (the shire from the lord of the rings comes to mind).

This is not the end of the list by any means. I am planning to cover the rest in a series of articles, but for now, I must say farewell. Please tell me what you think in the comments.
You can also follow me on facebook here.
Until next time!

On giant mecha - how practical are they?

You know exactly what I am talking about. You've probably run into them at some point, be it through films or some form of animation. T...