I taught myself Paradox’s PROPRIETARY SCRIPTING LANGUAGE in a day and scripted historical events for Europa Universalis IV and Crusader Kings II.
EVENTS in these games are UI POP UPS and can be TRIGGERED by a variety of factors.
These events give extra historical background and cause the player to make decisions that IMPACT THE GAME.
Crusader Kings is a strategy game that deals with social elements of society during Medieval times.
In this game, the player may choose marriage arrangements as a strategy for gaining political power and bestow titles upon others while attempting assassinations.
Characters inherit traits and skills, though other traits may inflict characters at given points throughout the game, such as paranoia or leprosy. Some game text may change due to the player’s current trait.
I thought it would be fun to write events based upon historical phenomenons in the Middle Ages, since event texts are written in such a creative style in Crusader Kings.
One of the events I wrote and SCRIPTED was Dancing Mania, a strange occurrence between the 14th and 17th centuries where people danced, seemingly uncontrollably.
I added VARIETY to the event by WRITING 6 pieces of TEXT BASED ON THE PLAYER'S CURRENT AFFLICTION – paranoia, drunkenness, possession by Jesus, possession by Satan, leprosy, or no current trait.
I SCRIPTED THE PROBABILITY a player would become inflicted with Dancing Mania, INCREASING THE LIKELIHOOD if the player was, for example, stressed or ill.
I also scripted the event so it would negatively AFFECT PLAYER STATS.
Another common occurrence in the Middle Ages was the belief that people could be inflicted by witchcraft.
I wrote 4 different texts depending on the PLAYER'S CURRENT TRAIT, such as paranoia, depression, lunacy, or no specific trait.
Since I wanted the witchcraft event to be separate from other religious attributes, I scripted the event so it WOULDN'T TRIGGER if the player’s character is RELIGIOUS or ALREADY POSSESSED by Jesus or Satan.
I SCRIPTED it so the player would MORE LIKELY BE AFFLICTED upon being, for example, more of a MYSTIC or STRESSED.
While serving as AI & Game Designer/Scripter at Avalanche Studios in Stockholm, Sweden, I made small games in C++ during my free time.
My main objective was to improve my programming skills.
stdafx.h: I kept global enums and includes in the stdafx.h file, since I knew I would need to use items like strings across my .cpp files. I also knew I would need to access general settings in all files, such as the player’s chosen language, word category, and difficulty level.
In addition to the Main.cpp file, I included 4 additional files:
Gameboard.h: Resets gameboard. Draws gameboard. Sets current word. Checks if letters in word are correct.
PlayerSettings.h: Data structure to store all information pertaining to player settings.
Hangman.h: Handles the core game loop.
Library.h: Reads the stringtable file with the library of localized words. Creates an array for each word category. Stores words into their category array based on string ID. Selects random string in given category (for specified language).