One of the most exciting features of Zafehouse: Diaries is the ability for players to add their own content. No matter your comfort level with getting into the guts of games you play, there will be a way to add your own touch to Diaries.
In this post, I’m going to cover the three methods available to add and modify content, from playable survivors modelled after you and your friends, to creating entirely new items, dilemmas and events.
Adding survivors and locations
The original Zafehouse allowed players to add their names into the game by editing a text file in the game directory. In Zafehouse: Diaries, not only have we expanded this functionality to let you add survivor photos and tweak their statistics, but also images of your favourite locations as well. It’s also much, much easier than editing a text file — we’ve built basic photo-editing features into Zafehouse: Diaries so all you have to do is download photos from Facebook, or use your own personal images, load them up in the game’s custom content editor and Zafehouse: Diaries will handle the rest.
The image on the right (and above) shows the photo editor. You can scale and move the image about so it fits in the white crop box. At the bottom of the screen are various dropdown boxes to change things like the survivor’s occupation, their age, primary statistics and gender. Once you’re happy with your changes, you can hit Accept and Diaries will crop the image, resize it and add it to the custom content library.
Once that’s done, all you have to do is select whether you want the content to appear every game, or randomly. This can be done by right-clicking on the image, or left-clicking to cycle between “Add always”, “Add randomly” and “Ignore”. This means you can have a large library of custom content, but you don’t have to use all of it all the time.
Editing the diary
Once a game of Zafehouse: Diaries has ended — either with a victory or loss — the player has the option to export the diary. We store the diary in XML format, within a standard Zip file you can open in any popular archiver (WinRAR, WinZip, 7-Zip, etc.). Alternatively, you can open the Diary Editor application, included free with the game, to make changes to the diary’s content.
Here’s what it looks like. The Diary Editor will let you rework the game’s own prose to better suit your version of events. Remove entries you don’t like, rewrite sections to better illustrate the heroic (or less than heroic) deeds of your survivors, or even change the story completely. The diary can then be saved and loaded back into the game for viewing.
The best thing about the Diary Editor is that we plan to release the code for it under an open-source license so players can build upon it and expand its functionality to suit the needs of the community. The editor is written in C# using the .NET Framework 2.0, so it’ll run on any machine from Windows XP SP3 onwards.
Which brings us to our last topic…
Modding the game
For those of you comfortable with C# (a language used in many gaming-related projects including Microsoft XNA and Unity) Zafehouse: Diaries supports custom content via external libraries. It’s the exact same method we used to build the game (and a common method employed by companies such as Valve with Half-Life), so you’ll have nearly as much power to alter the game as we ourselves do.
Items, dilemmas, events, orders, locations and many more elements of the game are almost entirely defined within a file called “Scripts.dll” that resides in the game’s directory. The contents of this file were written and complied in MonoDevelop and Microsoft C# Express, so regardless of your preferred development environment, we have you covered. The open nature of .NET libraries means it’s not difficult to peek inside this file and see exactly how we created certain effects within the game.
Once the game is released, we’ll go into more detail on how the game can be changed via C# — as well as via the tools we supply. For now, start thinking about what you might do and if you have any questions, don’t be afraid to visit our forums and ask!