I had been making small games since I was 14 years old, using GameMaker. Due to work obligations I had been taking long breaks at that.
I had made many projects that used to serve as proof of concept, like my Infinity Engine Project.
However nothing seemed to //stick// and actually inspire me to finish it. That was until I came up with Windmills.
It all started when I was telling a story to some friends and my girlfriend interrupted me and told me that it didn’t happen that way. You see, I have the worst memory when it comes to telling stories. I rarely remember things the way they happened. I can remember numbers and mathematical functions, but for the life of me, I can never remember the details to a story. So the idea to make a game where the narrator is unreliable and often forgets things was planted.
Several months later, after not developing anything serious for quite some time, I decided to give this game development business another chance. Only this time, I wanted to make something really personal. I wanted to create a game that would be a “coming of age” and a “fairy tale” story at the same time. As a fan of The Messenger I decided to make a pixel art metroidvania. I didn’t have the resources to hire an artist and no artist would trust to work with someone they barely knew, as I have no pixel artists friends, so I decided to work with marketplace assets. I bought a hero template and for 2 months I was working on the design of the main character. June 28, 2021 with my hero and resources from the marketplace, I made this mockup:

By the end of July 2021 I had finished all the hero animations and I was ready to begin coding! I knew from the start what kind of game I wanted to make. A metroidvania with snappy and satisfying combat. I am a huge fan of challenging combat that relies more on player skill and less on stats and levelling. One of the most repeated phrases in the game is “It is the hand that matters, not the sword”, which was inspired by the movie Conan the Barbarian.

At the beginning of the movie, Conan is told by his father about “The Riddle of Steel”. Conan’s father interprets the Riddle as this “You can only trust your sword”. However later in the movie, the main villain, Thulsa Doom explains to Conan that “Steel isn’t strong boy, flesh is stronger”. At the end of the movie, in order to drive the point, during his fight with a strong henchman of Doom who carries a sword that Conan’s father made, Conan breaks his opponent’s sword. This was what I wanted to tell to the player, to trust their own strength and abilties.
So I developed the whole combat system of Windmills around that notion. Players would have to suppress their enemies and when an enemy was suppressed, a successful deflection would become a parry. Parried opponents would then be open for a riposte, taking massive damage.

Another pillar of design that is prevalent in Windmills is the health system. The player can die if they take 3 hits. I was adamant about that, I was against levelling and stats from the very beginning so I had to implement a system that would reward aggression and at the same time would heal the player without resorting to item usage. So I came up with the “Heal on Block” mechanic. Each time the player deflects a melee attack, they would recover 1 point of health. Now players would HAVE to engage into combat in order to gain their strength back.
Windmills was still less than three months in development while these mechanics where being refined. The focus was clear on the fundamentals of combat and from some closed testing with friends, it seemed that it was satisfying enough to start building on it.
In order to keep a fair balance and a focus on player skill, I designed the game to be playable without a levelling and “player powers” system. That is still in the game’s code and with a flick of a boolean it can be turned on. Rather than playing the numbers’ game and having the player rely on stats and powers, I designed every enemy and boss with the player’s ability in mind.

The boss and level difficulty would increase in a linear fashion, after I made sure that the players understood the game’s fundamentals. During combat the player has three basic choices: attack, deflect or dodge. All I had to do from there was to expand the moveset of the bosses in a steady and linear tempo. The first optional boss, the Pigman would cause rocks to fall during the first phase, the player would have to use the newfound Airdash ability to avoid them. The second obligatory boss, the Demon of Conspiracy had a double attack, the second hit of which left an unblockable fire pillar so the player would have to block and immediately dodge, allowing them to take advantage of the Blockdash ability.

With the philosophy behind the bosses taken care of, there was another matter that had to be addressed: progression. Players need two kinds of progression: Story and Character. You can’t have only one, you have to do both. But I was already designing the game with the player skill in mind, so what do I do? Simple, give the player a Character Progression system that will act more like a supplement, without letting the player know that they don’t need it.
This was the greatest trick I pulled with the players in the game. The levelling system doesn’t tell the players what they earn when they level up. Like I said, player health is 3 points. The only thing the levelling system does is just increase the player damage. Also each level has a description that hints towards the best way to win fights. For example, the game has a hitstop mechanic, meaning the game pauses for a brief moment (9 fps) when the player lands a hit on an enemy. If the player finds an enemy animation too fast to react to, all they have to do is keep hitting the enemy in order to take advantage of the hitstop feature and see the animation more clearly. So at the second level the player earns, the level description hints that suppressing the opponents with fast swings made their movements clearer to the eye.

Another Character Progression feature are the Recalls the player gains by killing bosses. Certain bosses have a “signature move” that they use during the fight. When the player defeats the boss, they absorb their power and can use that move themselves and the cost of Conviction(mana, I’ll get to that in a bit). These Recalls can help during tough fights and some of them actually help the player to enter optional and hidden areas. So now the players have another incentive to hunt down bosses and they get the satisfaction of using cool powers. The way the “mana” system works is quite simple: killing enemies refills your Conviction pool, which is represented by the notches of the sword grip in the GUI.

The blood on the sword represents how much the player has been hurt. In the image above, the player has taken 1 hit. A second hit would make the whole blade red and a third hit would make the whole sword red.
The blue notches represent how much Conviction (mana) the player has. Each time the player kills an enemy, the Conviction pool rises.
Finally the pommel of the sword represents what Recall the player has currently loaded. The Recalls can be changed by entering the menu. It was a decision I took despite everyone’s advice to give the player a button to scroll through the Recalls. During the heat of battle, micromanaging what a tiny portion of your GUI would show while actively trying to not get killed by just a couple of hits would only add pressure to the player and drain all the fun. So I decided to take that option away from the players altogether and let them enter the menu, take a breath, and simply choose what Recall to load.

Now onto the main hook of the game: the narration mechanic. This mechanic was the whole reason I started developing Windmills. As the player progresses through the story, the hero will narrate events to a listener that is revealed at the end. There is some back and forth between the narrator and the listener but it was mainly when the listener doubted the story they heard.
A lot of triggers were put in the game that would affect how the narration played out. For example, if the player decided to go through a certain path before another path, then the narration would take that turn too. That meant the game would change according to the narration. The first example of that is right when the player is about to get the Airdash ability. During a section of the map that is called “Pedlar’s Pass”, the player is fighting minotaurs during a sunny day on some rocky cliffs. At a certain point the narrator “remembers” that it was raining and the listener says that they didn’t mention that. Immediatetly it starts raining and the narrator says that the rain made it harder to fight the cultists in that area, although so far the player has only seen minotaurs. The listener expresses their surprise because the narrator insists that minotaurs do not exist. A short time after that the player may encounter an optional Pigman boss. After the fight the narrator makes it clear that he encountered a “Big Man” and not a Pigman, which changes the story and a towering man appears.

These two events were purposely put so soon because I wanted to make it clear to the player that the narrator is unreliable. But because of that mechanic, some limitations had to be put in place. You see, there is only one kind of map in Windmills: the world map. There isn’t a classic metroidvania room map to tell the player where they are. I wanted the player to experience the game through the listener’s perspective, I wanted them to feel lost in this world. The world map was put there to give the player a perspective of the size of the world and act as a promise of the size of the game. But a room map would ruin that feeling of being lost in a story and steal away some of the “magic” of the game.
The nature of the combat system was of great help in preventing the players from getting lost. Each room is uniquely designed and doesn’t have a repeating pattern with another room. The enemies in each room were put in certain places that would require the player to remember each encounter, leading to the player remembering each room. With the exception of the Astray Caverns and some maze levels, every other area was designed with that principle in mind.
However, I still wanted to put a failsafe in that design. The need for a journal was clear. While playing the game, the players will notice a pop-up on the top right of the screen saying that a “Narrative Page was added”. In the pause menu there was a narrative journal that kept track of everything the player would do. This serves two purposes: first, it helps the player understand what they needed to do and where they needed to go next. Second, if the player hasn’t played the game in a while and doesn’t remember what they have done, the narrative would always tell them, keeping them in track.

And with that in place, all of the design principles of the game were in place. All I had to do from there was simply keep going. “Simply” is a very generous word. Working on a game by yourself while keeping a day job is a very stressful experience. I didn’t have a publisher, I wasn’t incorporated, I was quite simply the same thing that I am to this day, some random guy making a game trying to make his voice heard.
However I will always be grateful to Mattijs from Opera for picking up Windmills for the Opera GX platform and trusting in this game. Windmills launched as an Opera GX exclusive in October 2022 and it was free on the platform till the end of the year.
By the end of its free cycle it was played more than 200.000 times and is among the highest rated games on GX.
This game wouldn’t have been made if it weren’t for my girlfriend Elena, my friend Kostas Yiatilis MacFarlane and my supportive grandma.