Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

1264 Excellent

About Koobazaur

  • Rank

Personal Information


  • Twitter

Recent Profile Visitors


  1. Koobazaur

    Headliner: NoviNews

    Short media bias adventure where YOU control national news and its impact on your career, society, and family. Control the News, Control the Truth. Share your story, and see what the Headliner before you did. Genetic sickness plagues Novistan. Conspiracy brews among people. You are chief curator of national news channel. You are the HEADLINER. Public opinion rests in your hands. A city that changes and responds to your media influence Cast of believable characters with their own struggles Numerous outcomes and unique endings Randomized events and articles enhance replay value
  2. The second World War was a devastating conflict that saw 21 to 25 million soldiers dead, but even regular citizens suffered. Despite relative safety of being hundreds miles away, many lived in constant fear of bombings, food shortages and curfews. The governments had a solution - propaganda! [This article was originally published on Koobazaur's Blog] Flyers and posters printed by the thousands encouraged people to stay motivated, conserve resources needed for the war effort, and stay vigilant of traitors. Karaski: What Goes Up... draws from this rich repository of public domain imagery, giving them a second life. Lacking artistic skill and budget can lead to some creative solutions. Given the game's fictional 1920s setting of conflict, industrial revolution and social struggles, the propaganda posters of the era fit perfectly. But Karaski does more than just re-use images; thanks to simple Photoshop manipulation, the graphics were altered to fit the new setting while channeling their evocative and imposing tone. In some cases, multiple graphics were combined and retrofitted into brand new pieces of artwork. Even old photos of the era were dusted away, serving as clues and newspaper illustrations and giving the world an extra depth of authenticity. The photo in an article about a violent protest was actually taken in the aftermath of "Kristallnacht," an anti-Jewish riot in Nazi German. This reference was no accident. The game takes place on the world's first Airship flying over Dunabe Commonwealth, a fictional federations of nations loosely inspired by the former USSR, Austro-Hungarian empire and even the European Union. Just as its real-world counterparts, Dunabe struggles with a lot of inner conflict. Not all nations are happy to be included, with terrorist-labelled political parties revolting against forced annexation. The pseudo-spiritual Preachers movement has been violently ostracized as well. And yet, the industrial revolution boom allowed Eidson company to spread the metallic claws of its railroads and reap monopolistic benefits. These turmoils give each group a potential motive for trying to bring the titular airship down. Just as the first Graf Zeppelin branding Nazi swastika, Airship Karaski has become a political symbol of the Commonwealth's prowess and iron-fisted control over its nations. A crash would surely send a powerful message. Who is behind the mischievous plot, however, is mystery for the player to uncover (and influence!) through the game. While Karaski takes places amidst political scheming, it is really a game about the passengers of the ship, each struggling with their own form of oppression and self-doubt. Big focus was put on showing what the daily life in the Commonwealth is like, where a simple board game is used to foster feelings of nationalism and a child's book designed to instill the values of a traditional, early 1900s family household. Against this rich backdrop, the player will meet the stern Captain having doubts about dedicating his life to a political cause, an irritable Doctor torn between his love for science and call of religion, a lax Aristocrat lady struggling with and leveraging social gender norms, and even the very Architect of the ship questioning the emotional cost of building the flying behemoth. Numerous secondary characters will give further insight and raise questions. Sneaking through four realistically designed decks, scavenging for clues in private suites and even enjoying a friendly drink and conversation, the player will learn and subtly change how the underpinning political and social drama affects each of the passengers personally, and what they are really hiding. The game "Karaski: What Goes Up..." released for PC and is available from the Steam digital store. Public Domain Images courtesy of Archives.gov and WikiMedia Commons
  3. When you're trying to churn out a game fast, it might make more sense to define your items, texts or conversation in code files. Here's how to do it, an example from my current project. On my first two games (Postmortem and Karaski) I set up convenient tools for managing my data. Here is an example of my dialogue trees: I used the free yEd graph editor and a bit of custom coding to import the XML data into my game (read about it here!). I also parsed simple text files for all the in-game text items like newspapers. The system worked great, but took a while to set up and debug. As I started on my current experimental story/adventure game HEADLINER, I was embracing a more rapid-prototyping mindset. I did not want to come up with new fancy data structures and write parsers yet again in JavaScript. And it occurred to me - why not define my data directly in code? Simple strings in newspapers The "proper" way to read the newspaper data strings would be to create a neatly laid out JSON file, parse that, and create appropriate objects. But I skipped the middle-man, and instead defined them in a separate JavaScript file directly as objects and arrays. Here's what it looks like: It's barely a little bit of extra syntax fluff, and I had instantly-accessible data structure I could reference by simply including the JS file! I didn't need to do any "loading" or parsing either. I also dded a few scripting members (like the ReqApproved) that I'd just check each game day to see if given paper should show or not. Conditional branching in conversations Previously I used graphs for flexibility, and many RPG games used flat text files or the (godawfully difficult to follow) trees, like in Neverwinter Nights. Since I didn't plan on too much branching but wanted conditional responses, I'd need to set up some if/else conditions, a way to reference world-state variables, and a way to set them. Meaning: coding a parser and implementing some form of scripting. Again, I realized - wait, why write code that interprets code? I can just write code directly. And so my conversations became yet another Javascript file. I wrote a few helper functions for setting what the NPC says or getting tokens like Player Name, and boom! No need to parse code or tokens, since it's automatically executed. Yes, it does require more syntax fluff, but it's pretty manageable once you get the hang of the weird structure and helper functions (like SetThread() or AddResponse()). Entities and NPCs To create a world brimming with lively creatures and lucrative loot, most games have some sort of editor to visually place those in 3d or 2d space. The game then loads these "scenes" at startup and creates all the entities as defined. Parsing, parsing, parsing... I didn't have that with Phaser and JavaScript (though I recommend checking out the Phaser Editor if you'd like an out of the box solution), and each game day would vary a lot depending on numerous conditions. Like before, I differed to the code itself: With a few helper functions (Spawn two NPCS with a dialogue, spawn a group of protesters, spawn a rioter who runs and throws a molotov etc.) and pre-defined constants for locations markers, I could quickly create my game world. Because it is code, I could customize each game day by checking for variables, event triggers or randomizing results. All my changes showed up instantly without any exporting/parsing from a 3rd party editor. This solution is not for everyone An important caveat needs to be made. This data-in-code approach is really meant for prototyping or small games where you know the amount of data will always be manageable and everyone working with it knows the basics of coding. It can be a huge huge time saver when used properly, but a hindrance on bigger projects with more complex structures or delineated team roles. There is a reason why I set up a whole system to import XML data from a 3rd party graph editor with scripting support for conversations in my first two games. Over the two years of production, the ability to visually edit the dialogue was very important, and it allowed my non-tech savvy writers to work with it as well. Trying to define THIS purely in code would have been a disaster: So, as with any online game dev tutorial, exercise a bit of common sense. It's just a specific tool meant to be used in specific situations. Curious about my games? The project that inspired this blog is HEADLINER, story-driven game where you control public opinion and (potentially) start a riot. Check out the official page here. Better yet, why not follow me on Facebook or Twitter for updates and other game dev nuggets of wisdom?
  4. Koobazaur

    Headliner: NoviNews

    Album for Headliner: NoviNews
  • Advertisement

Important Information



Sign me up!