This is an old debate. What is the difference between science fiction and fantasy? Or more precisely, what are the differences and similarities between science fiction, fantasy, and the real world we actually occupy. After all, all fiction is ‘made up,’ yet we intuitively understand that scifi and fantasy share the similarity that neither are the world we know. With equal certainty, we all feel that scifi and fantasy diverge, being somehow different, perhaps opposites.
Before I attempt to define science fiction and fantasy respectively, I
think we can agree that both genres fail (including clever
combinations of both) when they come to remind the audience of our own
boring reality (the real world).
Similarly, no story is purely science fiction or fantasy, all have at least a little of the other. I think the three realities (scifi, fantasy, and real world) can be defined from two perspectives, each representing a kind of spectrum.
Mundane vs Mysterious
The real world is mundane because we know it so well - even for people leading fortunate, extraordinary lives. For clarity, we don’t have all the answers about the real world. What makes it FEEL mundane is that no answers are desired. I may not know how my TV works, but I don’t want an answer either. It is enough that I can turn it on. In contrast stands the mysterious. These are the things that I don’t know, but that I want an explanation for. What were those weird lights I saw in the woods last night?
In a narrative, the audience will be exposed to much: world, people, and events. A story that confronts the audience often with mysterious elements will be understood to be a different world then our own. This even holds if the story (scifi or fantasy) takes place on “present day Earth.” Where the two genres diverge is how they address the audience’s need for an explanation.
Pure science fiction answers the audience’ questions in factual terms,
clear and quantifiable. Pure fantasy either provides vague
explanations or none at all.
Typical vs Rare
Ultimately mundane vs. mysterious addresses the audience’s perception of the story, but the audience perceives the story through the eyes of the characters, particularly the protagonist. How do the characters see their world? This largely comes down to whether a specific mysterious element is typical or rare.
If everybody in a story world is a wizard and understands how magic works, then magic is typical. If nobody in a story world has ever seen a vampire, then vampires are rare. When elements, mysterious to the audience, are common to its characters, that is science fiction - the character’s mundane world. When the characters share the reader’s feeling of something being new or unknown, that is fantasy. All of this is doubly true of the protagonist. Often, the protagonist is a stranger in a strange land sharing the perspective of the audience, amplifying their feelings about it.
Let’s look at some science fiction and fantasy that were both partially undone by feeling a bit too much like the real world (when the mysterious elements become weak).
Star Wars
Star Wars is a science fiction story, but the Jedi knights are a fantasy element. Not because they fight with laser swords instead of laser guns, but because they are rare and mysterious. Everything in the movie is mysterious to the audience (space ships, aliens, other planets), but most of it is mundane to the story’s characters. On the other hand, neither the protagonist Luke Skywalker or population of the galactic empire have heard of the Jedi. Effectively, only Obi Won and Vader have heard of the them.
Consider also, Obi Won’s explanation of the force, “The force is what gives the Jedi their power. It is an energy field, generated by all living things, that surrounds us and binds the galaxy together.” When you think about it, this isn’t really an explanation. There is nothing factual in the answer. It intends to keep the Jedi mysterious. The first three movies work fine even while combining fantasy and scifi.
In contrast, consider that in the three prequel films, Jedi’s became typical, an ordinary element known to all of the story’s characters. This shifted the Jedi into a scifi element. Now the force could be reexplained, quantified with a midi-chlorian count. Technically, it still doesn’t make sense, but it’s presentation is factual and mundane. The Jedi had lost their teeth. And since so much of the rest of the star wars universe was familiar, it too lacked mystery.
Harry Potter
In the modern fantasy classic, magic is a mundane fact of life in the wizard world of Harry Potter, but not to Harry. Firstly, because Harry is from the audience’s ‘real world,’ so he knows nothing of magic. Secondly, Harry (and his friends) are kids, so while the adults (who are mysterious from the perspective of children) may know about magic, they don’t. Further, the antagonist Voldemort is totally mysterious. Everybody is so afraid of him, even adults won’t mention his name - the author’s device for withholding explanations.
As the series advanced, I thought the fantasy grew less strong. Outside of Hogwarts, magic was so common, it became mundane to me. Every car, building, event, even the government was magical and yet they were the cars and buildings I was familiar with. It simply reminded me of modern life. Also, presenting so much detail of Voldemort’s life and childhood demystified the antagonist, the story’s most mysterious element. Here the fantasy didn’t shift to scifi, it shifted to real world. It became ordinary.
Advice
So at the end of this LOOOOOOONG answer, I would give this advice. The issue isn’t mixing scifi and fantasy, because that is done often and works fine. The danger is failing to understand the difference, and thus accidentally referencing the real world - the mundane reality known to your audience. Specifically, be careful with explanations for the mysterious elements you present and be mindful of how typical these elements are to your story’s characters.