Dusty Games: Final Fantasy VIII

This month I got back in Italy to visit my parents and snooping into my stuff, I found my old 1st gen Play Station (PS1). Oh my, the feels! Near that treasure, I found also all my original games and one of the games that I bought some years ago (yes, I am a retro games collector), Final Fantasy VIII (FF8).

My relationship with both FF8 and FF10 is a weird one. I craved those games when I was a kid, but I only got to buy them few years ago. If you passed your 20, you know that finding time to play is very difficult because life get harder and busier, so I never got to play and complete those games.

Finding FF8 again, after so much time, during holidays (sort of), convinced me to try the game again. So I plugged the old PS1, inserted the first disc and powered on. It was like taking a time machine toward 1998. That logo, that sounds… The best generation, if you ask me.

As often happens with Final Fantasy games, the opening introduce you to some very crucial elements of the story and characters and then you’re on the main menu. After that, the story presented on the trailer expands and you get to know your own hero: Squall.
Yes, I know, some of you might think that FF8 was a ridicolous teen drama with gun-swords, bad haircuts and ridiculously sexy teachers, but… it’s a good teen drama! A little too Japanese for my taste, but it has zero plot holes, zero inconsistencies and well made characters. The design is super cool and coherent with the story told. Even if you want to attack it, you cannot. You can just say that you don’t like it. And that is why I think that FF8 has great story, setting and design.

Another thing you cannot criticize in FF8 is the graphics. Jesus, it was so beautiful for the time and it is even now! Square Soft really cared about aesthetics back in the days! It was light-years distant from everything we got to play in the 5th generation! I can only compare it to Metal Gear Solid!

Anyway, neither the story nor the graphics is my primary interest in Final Fantasy VIII. What did  hit me like a 1000 tons hammer smashed right on my head, is the complexity and variety of the gameplay.
You have the traditional party menu, where you can access to your heroes’ stats and items. In that menu, you can also micromanage some collectible creatures, called GF (Guardian Force). Those creatures can be trained and leveled up in different ways unlocking different skill-trees depending on your choices and they even mature a sympathy for the elements of your party that train them and fight with them. In fact, you can junction (= bind) those creatures to one of your party’s character so he/she can summon them during the fight and train them. When you junction a character to a GF, that character will gain the ability to junction some magics and skills owned by that GF.
Magics and skills, for the first time in FF history, are treated as consumable items. No more Magic Points. You can get those special items by drawing them from enemies, finding draw points in the world or by refining from items.

This complexity and variety was probably normal for the time, because it was an era of experimental projects where there were just a couple or maybe three well-established game genres and mechanics. But think about it now: it’s a lot of stuff and it’s from different modern game genres all in one!
You had an hybrid turn-based battle system and the ability to summon creatures. Those creatures were actual pokémons that you could pet, train and bind to your characters absorbing and improving their power and skills. You had a whole party to micromanage and a huge set of GFs to take care of… and this is not all! You also had a trading card game! Yes, there was a minigame in FF8 that consisted in a not-so-simple-to-master trading card game and you could challenge nearly all the NPCs in the world to play and when you do, you can win items or lose cards. You could also refine your cards! Doing that, allowed you to get magics and skills, so it’s not just a secondary mini-game, but a fun way to farm and it fits so good in the game that you don’t even realize you’re farming!
Even the lore around this card game is super believable. You are told that this card game was introduced and spread in the world by guards that started to play this game to pass the time. Every region in the world has its own rules and this adds complexity to a mini-game that is not easy at all! This is the first time in history where farming became a so complex and challenging action.

I am amazed, as a gamer and as a developer, by how genius FF8 was! It had so many ideas and a gameplay so complex that when I powered off my PS1 I wondered what the hell happened to RPGs these days. They’re all stats and numbers, dialogues and romances. Where is that creativity? If I had to think about the best RPGs we have right now, I think about The Elder Scrolls saga, Kingdom Come, The Witcher saga, Pillars of Eternity, Fallout saga, Dragon Age saga, Diablo saga… they’re all very stereotyped, in their gameplay. Don’t get me wrong, they’re all masterpieces and I love all of them, but they just improve a known and well established paradigm. You can take anyone of them and put them in a labelled box. Probably a modern RPG-ish game that tried to put something new on the table was Dark Souls, mixing a lot of game genres (ARPG, metroidvania, dungeon crawling, etc) and introducing a new way of conceiving sword fighting and story telling using objects and level design instead of cutscenes.

Probably it’s normal that the game genres are now so clear and well determined and it’s probably good that videogames are so clearly tied to well-defined genres. But I personally miss those avant-gardist games and designs. In a world in which we have to pay for every add-on to super-simple games and concepts (we payed to have religion in Civ5… never forget), I crave for old games like Final Fantasy VIII where you had a huge world of gameplay to explore and master for hours and hours.

My 2 Cents: Cultist Simulator

Alone in this chilly city with my useless education and my dreams. What now? Could I become something more?

This is how Cultist Simulator (CS) introduces you to the game’s setting. CS is a very original and interesting game that mixes a card game with crafting to tell weird and disturbing stories.

Tarots are a form of story telling that has ancient roots. It comes from South Italy’s card games and then started to become something more… a way to read the future. They survived until now and still they have some charm on our heavily rational and scientific society.

Cultist Simulator brings tarots on gamers’ desks mixing them with crafting mechanics to tell strange and disturbing stories.

You start as a common person with a common job and a boring life. On you table lies a card representing your job and an object labeled “work” that represent the action of working. The “work” object has an empty socket in which you can insert cards. If you try to insert your job card inside the “work” action, a timer will start to countdown. This is you going to work.
When the timer runs out, you gain new cards; money and passion, in my case.
Money are very important in this game. If you end up having no money, you eventually get sick from hunger and die.
Passion is a multi-purpose card. You can use it to do better your job, to concentrate on your emotions in activities like painting, or to just put in the heart while you do something.

You can combine different cards on different actions to accomplish tasks. New actions will unlock after you reach certain situations or as a consequence of some events or your own decisions.
For example, if you meet a person, you will unlock the “talk” action to interact with that person. If that person reveals you the position of a place, you will unlock the “explore” action so you can go to that place and spend money, talk to people or who knows what else.
In my game, I met mysterious person who started to talk me about a bookshop that had those very interesting auctions, in which you could buy ancient and forgotten books. I cannot help but follow my primal attraction for the supernatural and occult and spend all my money for a lorebook named “The Locksmith’s Dream: A Light through the Keyhole”. Once I read the book, something changed and a new lorebook was uncovered: “A Watchman’s  Secret”. This one is a book that introduced me to an arcane mystic cult with which I started being obsessed. I tried to combine the book card with all possible actions trying to uncover the secret and build my own cult.

Crafting is a fundamental mechanic in Cultist Simulator and it’s the very heart of the roleplay itself.
You go on through your life combining cards and actions, trying to coordinate between a growing number of timers, your needs and your objectives. You eventually die and the story of your character ends.
Death is not the end for the game, though. In fact, just after that, you are prompted to a new character screen with a lot more options. You can now chose the new character’s job from a list that is different in size and content depending on how you lived your previous character’s life.

Once you jump in your second life, after some time you realize that the world is the exact same where your previous character lived and died: the game is now set after his death.
In my case, after passing a big part of my life searching for the truth about the Watchmen’s Secret, I managed to create my own cult based on that lorebook, the cult of the Light. I collected some enthusiasts, some madmen and weak-minded and I gave them a new hope for their wasted lives. They were my ears, my eyes and my mouth and helped me spread the word of the Light. But then… well I forgot how important is to always have health and money and died. *shrugs*

In my second life, I was a detective investigating on a weird cult spreading in the city committing crimes and frightening citizens. I managed to discover that the cult revolved around the cult of some light and apparently it was all written in a sort of holy book… Yes! I was investigating on my previous character’s cult and trying to know more about who he was and how he lived his life.
This is the quintessential of role play. You know everything, but your character don’t, so you have to put yourself in his shoes and act as you were living his own life.

Role play is what I love the most about this game. You totally immerse yourself in lovercraftian-like stories just by crafting cards, reading snippets and waiting for timers to run out. This is what I call a virtuous example of game design and gameplay. After my first game I realized that my 2 hours experience crafting cards left me with the same emotions that can give me reading an horror book or watching a thriller movie.

The game comes with nearly no tutorial, so everything you do, you do it without knowing what’s coming next or where this will take you. This is a very rare sensation that very few games give me right know. After more that 2 decades of gaming, I’ve seen things…

One of the biggest joys of Cultist Simulator is you learning new combinations between cards and actions and understanding how to make new possible plot twists for your personal story.
Cards and actions combining summarize very well the way people act and all the possibility life has to offer and as if this was a Buddhist simulator, the more you reincarnate, the more you understand how to get the most out of each of the lives you’re going to live.

While you grow your cult, you gain even more power to condition and manipulate people, but you will also increase your popularity attracting both new adepts and police’s attention. You will gain the ability to start expeditions with your adepts to uncover new and exciting details about your cult’s ancient lore, find new objects to study or just gain more power against your detractors.
Eventually you will end up with magic and esoteric abilities that allows you to interact with strange creatures and dimensions making your cult nearly incontestable and overwhelming.


The game takes place entirely on a table, with you combining cards and actions. But that’s enough gameplay for you to properly immerse in the game. The only problem I found in this system, is that the inclination of the table and the random position of actions can sometimes make you lose sight of some card or action. But then the game helps you out with the ability to move your point of view and zoom in or out from the table. A very little problem, in my opinion that can be ignored for some people or ruin the experience for some other people.

Concerning the soundtrack, CS offer a very appropriate set of music and sounds that help you even more to immerse in this fantastic and strange world set in 1920s London.
Alexis Kennedy took the ideas and setting behind his first game, Fallen London, and fine-tuned all the aspects providing us one of the most polished and creative simulations game made that gives us nothing less than narrative masterpieces like Sunless Sea.

Long Story Short

The magic in Cultist Simulator is that you get to really feel every story and decision and all the gameplay required to get those complex stories is to craft cards and actions. You will face both weird esoteric situations and personal issues stressing your heart and mind to the limit of human resistance. If you ever read books by Lovecraft, you would probably notice how neat is the resemblance between those books and the atmosphere in CS.

My 2 Cents: Football Manager 2018

I’m a little bit scared and fascinated at the same time by irreversible choices. They just change the balance of situations and you have to live with them and totally change your plans to get the best outcome.
For example… does it ever happened to you to train an EFL Championship football club and accidentally take off the captain role from a very influential player to give it to the random new guy of the team? Who didn’t, right? By the way, the club was Fulham FC.

Needless to say, that choice was a huge and total disaster! The team as a whole just tormented me asking why did I relieve Tom Cairney from his role as a captain and who the hell is that Ryan Fredericks guy – yes, I know, I’m mixing east and west London and I’m going to hell for this. As if that weren’t enough, here comes the media! Sniffing the stench of my mediocrity as a manager, they start asking loads of questions, insisting for clear answers to write scoops at my expenses. This is all so realistic that I had to pick up a pillow, smash it on my face and scream.

It took me a fair amount of talking, winning matches (guessing the right tactics) and motivating players to keep the team from super-hating me and start playing again as I wanted.
It’s now clear to me: I am not managing data and reading graphs; I am training and managing a team of simulated human beings… very spoiled and behaving Richie Rich style… but still human beings!

This time, like never before, Sports Interactive is raising the bar of relationships and human behaviors inside the fascinating simulated world of Football Manager. In fact, in this iteration of the award winning sport simulator there is a new feature: Dynamics system.

Dressing Rooms’ Dynamics

Dynamic system is probably the most exciting thing you can find in FM18. Your team is not anymore an array of data. Every single player has interests, preferences, desires, likings, dislikings and bad habits. Some wants to play a certain role, some others want to earn more money; some want their training to be harder, some like it soft, and so on. Your role is not anymore to just set training at “balanced” level, guess the right tactic and win game. To succeed in FM18, you have to have the ability to keep your team united and happy by trying to give the players what they want and interact with them in the best way since every player has his own aspirations and personality. Oh, and you also have to say the right things to the media… cause your players are watching. Always.

Dynamics system comes with a dedicated tab on the menu at the left-hand side of the screen. Here you can find all the information needed to read and understand your team behaviors and needs. You will be presented some nice graphics that shows you important statistics like match cohesion, dressing room atmosphere and managerial support and under that, you have all the reasons why the players are unhappy and unwilling to play together and also the reasons why they haven’t killed you yet with a butcher knife while you’re sleeping. In my case, the problem was just that Tom Cairney was a very influential player and I made him unhappy by stripping him of the capitancy, so I’m guessing the rest of the team was mad at me because Tom was speaking ill of me with the team behind my back? So mature of you, Tom. Really. This is why you’re not captain anymore! *pillow screaming*

Miles Jacobson in an interview with PC Gamers’ writer Joe Donnelly, explained that Dynamics system is not just changing how the players reacts to your actions as a manager, but also how the world of media and other NPCs in the game see you. All your choices, changes of mind, all your actions are being judged and remembered by the world. Just like in real life! Heavy breathing anyone?
He also explained how all this system was inspired and implemented also thanks to his visits to real life football clubs, observing players while training, interacting with each other and just living their lives as a football team.
Dynamics system is not just a realistic AI-improving system, it’s also and above all a very nice and powerful story generator. Just like any other strategic/managerial game, there is now a system that not-so-randomly generates events that can keep up the challenge and keep your attention high taking the replayability of the game to levels far higher than before.

Ney-mania and data analysis

One of the controversial aspects of FM18 is probably the unrealistic amount of injuries that happen during a season. It’s a side-effect of another new feature: the sport scientist.
Sport scientists are very important figures in a football club. Their role is about studying how the team is training and what are the possible consequences of training load. They also measure injury susceptibility for each player. A super duper important figure that can make the difference between your team playing with your incredibly-expensive-goleador and winning, and your team playing without him losing against my rebellious badly managed Fulham FC.
If you hire a good sport scientist and constantly listen to his suggestions, your players won’t get injured so often and so bad, but you have to be careful to not over-protect them… because often they just want to play, be trained and risk their health to score and increase their value. Again… so realistic! The fact that you can predict injuries means that injuries are not just random events, as they always were in the past, but they’re consequential to your club management. Awesome!

Another brand new feature of this 2018 iteration of Football Manager, is the introduction of the Data Analyst.
The data analyst is a staff member working in the recruitment team that is responsible of studying matches outcomes and teams behaviors. They prepare reports with graphs and statistics before and after matches highlighting to you all the key-players, their way of playing, the hot zones in the field and all the information you may want to know on both your and the opposing club. The data analyst can suggest you important information like the most probable schemes and tactics that the opposing club will probably use against you. All those invaluable data, allows you to prepare better your team for the next game and guess the right strategies to win.

This is a feature that I like and dislike at the same time.
I like it, because you’re reading data analysis about some football match that actually happened in the game… so you’re studying it like it happens in real life to improve the quality of your team.
I dislike it, because it’s a simulated match, so it’s like the interpretation of some AI-generated data and that can make it seem faux, if you fail to properly immerse in the game.

Nonetheless it’s a very impressive feature that I needed as a FM player and I’m happy it exists… but maybe it should be a bit less schematic? Maybe it would be better if it was presented as a real report with some in-depth of the clubs’ physical and mental conditions and not just a bunch of graphs and numbers. But I guess it’s not a data analyst job to collect and discuss those information?

See no evil, hear no evil

Oh my. I really love Football Manager, but guys, you have to do something for those 3D models. Why in the world people in that game have the longest arms I ever saw? Why is everyone in that game a werewolf from the first Alone In The Dark?
As you probably realized, I’m not super happy with Football Manager 2018 graphics. I understand that this is not the main focus of the team… also they’re not much into sound engineering and music. The game, after a single (just one, can you believe me?) song at the title screen, totally stops playing any kind of sound. The only sound you’re supposed to hear is the click of your mouse. Nothing more. Except when you play simulated matches… then you can hear people cheering and the ball being kicked. That’s all.
Well, at least I can chose my own soundtrack.

Concerning the UI, it’s based on FM17 with some polishing and optimization. The UI is never ambiguous or unclear. It gets you always were you want to go and gives you always the right amount of data you need. It’s very fast and comfortable to navigate through the various menu and sections. It’s probably one of the best made UI I ever saw in a management videogame. It hides a huge amount of data in a fairly compact system of tabs and windows. Kudos, SI!

I also want to highlight the optimization level of this game. FM18 is a game that manages a huge amount of data, NPCs and interactions and implements some very advanced AI algorithms and uses a 3D engine to simulate football matches, but still I could play it smoothly and without issues on a 2010 Macbook Pro using just an Intel HD 4000 graphic card. This is software optimization, guys!

Choose your game

Besides the historical Career game mode that let’s you create your football manager, chose a team and jump into the fantastic world of simulated football management, there are two game modes inherited from FM17: Fantasy Draft and Create-A-Club.

Fantasy Draft is a game mode that mocks real life fantasy football and let’s you assemble an existing team from scratch and play it against your human or AI mates in any championship. It’s made mostly for streamers, youtubers and multiplayer sessions with your friends (former LAN parties), and it’s probably the most funny and social game mode FM has ever had.

Similar to Fantasy Draft is Create-A-Club game mode, that allows you to wipe clean an existing team and substitute it with a new one made from scratch, deciding the name, the logo, the club’s stadium name, etc. It’s mostly like a mod editor for custom clubs.

As in the past, the Online modes are still available and always much fun for all those social gamers out there. Not my cup of tea, though. I don’t like social interactions as much as FM18 seems to do.

Long story short…

Football Manager 2018 is the most polished and advanced game of a series that has no rivals in sport simulation. There are a lot of similar games to FM, but no one is capable of that simulation level that only Sports Interactive can reach and overtake year by year. And no one has a database so big!
If you like football, simulations or management games, picking up FM18 is a no-brainer. It’s the best sport simulation and managment experience you can get. And with the new features, you can mess up your game with virtual 1:1 reproductions of real life prima donnas. Totally worth it!

Wolf3D raycasting engine – The Implementation

Here we are! After a one-day full-immersion, here is the first version of what I called Dog3D: a pseudo-3D raycasting engine inspired by Wolfenstein 3D’s engine.

Dog3D is based on the same principles I described in the previous article. I’m not gonna repeat myself, so if you haven’t read the theory, go read it and then come back here.

In this article I’m gonna explain how you can implement the raycasting theory we saw previously to build a real world raycasting engine.

Since there is a lot of code to show, I will just show you the most important, so I can explain it to you. To see the complete work, just check out my github.

The basic idea and data structures

Design, in software development, is probably the most important thing. It allows you to program faster and better and a good design makes possible to optimize your work with less effort.

So, let’s decide what we want to make!

We said we can represent our levels with a 2D matrix, so we want our engine to read levels from external files (no one likes to create integer matrices manually) in a form like this:

The numbers defines different types of objects, the white spaces represent walkable area and the P character is the player.
The player will move in the walkable area and the engine will render every block in his field of view respecting the proportions based on the distance from the player.

This matrix is obviously a 2D characters matrix, so we can implement it as a pointer to string:

std::string *level;

It’s useful to store also matrix’s width and height, so we can work more easily, in case we need those informations. It’s probably a good idea to store those informations in the same structure… and now that we are on this, it would be nice to save also player’s position in it, since we can only have one player in the level and the player is an object of the level.

Continue reading

Wolf3D raycasting engine – The Theory

So… this is it. I’m getting old.

id Software is one of the most important software house for both videogames history and me… and 5 days ago (1st Feb 2018) was its 27th birthday!

1st Feb 1991, 5 guys (not the fast food) registered the name “id Software” for their newborn game development studio and gave birth to one of the most important games ever: Wolfenstein 3D, the first FPS ever.

Apart from defining a genre, the most important thing that Wolf3D did was to introduce a new technique to render a 3D scene in plain 2D without calculating a single 3D object. This technique is called raycasting and is based on geometrical interpretation of a 2D map using some linear algebra trick. Then, in 1993, id created Doom that used the same principle, but with a more optimized engine that permitted to render levels of incredible detail, the possibility to make mods, and a lot more texture. Then, one year after, it came Doom 2, with more mods, big spaces and the illusion to have more than one floor.

In this article I’m gonna try and explain how you can implement a Raycasting engine to create from scratch a pseudo-3D fps like Wolfenstein (or Doom) in C++ with SDL. Yes, I know, nowadays you can create actual 3D fps way more easily with Unity or Unreal Engine, but creating a raycasting engine from scratch in pure C++/SDL is not only a very good exercise for your programming skills, but it teaches you an important lesson: when you don’t have enough resources and you have to optimize a lot, maths skills kicks asses! This is not just a graphical engine to make a Wolf3D/Doom clone, but it’s a project that shows you how it was possible to revolutionize the world of videogames with just a good idea.

Let’s start!


For this project you can use whatever graphical library you want: SDL, SFML, PixelToast… they’re all good. I’m gonna use SDL2 because it’s the lib I know best and it’s pretty common in the game dev (mostly in indie and linux game-dev).

We’re gonna use C++ as programming language and of course you can choose whatever IDE/compiler you want… it’s not gonna break anything, don’t worry. The only thing you have to check is how to configure SDL2 (or the library you chose) for that IDE/compiler.

If you need a tutorial to setup SDL2 or to know how to use it, you can try the amazing tutorial series by Lazy Foo.

Theory and planning

So, how this raycasting thing works?

If you ever played Wolfenstein 3D, you probably noticed that the whole game take place in a labirinth without stairs. All the game take place on the same floor. This is because raycasting is not real 3D, but the projection of a 2D map. The principle under this technique is the same that lies behind the axonometry.

The 2D map can be implemented in various ways… you can create a matrix MxN of various symbols each of which represent a different object in the room. This is the way they did it in id Software and we’re gonna copy them! 😛

This is what the first level of Wolfenstein 3D map looked like in the original map editor. Every character means something for the map parser that tells the engine what to render and where.

A super interesting thing about this system is that you can actually implement endless type of object because you can use every ASCII/Unicode character, and if that’s not enough, with a little more effort, you can create a more advanced parser that can process more sophisticated maps… but that’s not the case. We’re gonna keep things simple and by the way, even just using non-extended ASCII is more than enough for a lot of games.


Continue reading