Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411500 Posts in 69373 Topics- by 58429 Members - Latest Member: Alternalo

April 25, 2024, 02:16:48 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsThe Whisperer in Darkness: Authentic Lovecraftian VN (NOW ON ITCH.IO+STEAM)
Pages: [1] 2 3 ... 6
Print
Author Topic: The Whisperer in Darkness: Authentic Lovecraftian VN (NOW ON ITCH.IO+STEAM)  (Read 22995 times)
nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« on: July 09, 2015, 10:34:39 AM »







Rumors resurface. Legends are resurrected. The Whisperer in Darkness is a visual novel adaptation of the cosmic horror story by H.P. Lovecraft. Play as Alex N. Wilmarth, skeptic and professor at Miskatonic University, as you unravel the hideous secrets centered at a secluded farm in the hills of Vermont, coming ever closer to mortal peril. The story is revealed through painted illustrations, ASCII art, atmospheric sound effects, an unsettling musical score, and frantic email correspondence with a conspiracy theorist who might be a little too close to the truth.

This started as a prototype for the 2014 Public Domain Jam. Feedback from the jam was pretty positive. Over two years later, we've revamped the game for a Steam release on October 18, 2016. I'm now officially approaching my Steam debut. Shocked


Goals

  • Rewrite the game code completely (the code from the game jam was a horrible atrocious mess)
  • Port to Mac and Linux (made possible by goal #1!)
  • Minor changes Total overhaul of the game itself. in places where we were rushed by the game jam. We want to make the new version an overall improvement to the story, not just a port as brilliant and lovingly-crafted a Lovecraft adaptation as games have ever seen.
  • Localization support that should allow fans to translate the game into new languages will allow us to release official translations following release, starting with Spanish. (I really want to make the game available outside of English, but as a monolingual hobbyist there's not much I can do to localize it myself. And I really have thought about it.) This feature may go nowhere if I can't attract an interested fanbase but it's a good learning experience for me because I want my future games to reach culturally diverse audiences
  • Optional voice-over to increase accessibility for folks with visual impairments.
  • Steam Release
  • If the game is accepted to Steam, I'd love to build Steam Workshop support for fan translations

Development To-Do List

I'll do my best to keep this list an accurate reflection of remaining tasks required to finish the game, even as requirements change and I restructure things.

Cross-platform support

  • Make the engine (ASCIILib) cross-compile through CMake.
  • Set up the game's build process and link with ASCIILib
  • Make the game build on Linux
  • Make the game build on Mac
  • Make the game build on Windows
  • Store save files in an appropriate location for each given platform.

Localization features

  • Write a manager to load game text in the proper language and allow new language packs
  • Write a flexible system to manage dialog boxes with support for various languages.
  • Write a menu for selecting language packs.
  • Integrate ICU to process game text portably in Unicode
  • Program a work-around in ASCIILib to display accented characters
  • Integrate Spanish text.
    • UI
    • Chapters: [1, 2, 3, 4, 5, 6, 7, 8 ]
  • Integrate Polish text.

Scripting engine

  • Write a script manager to process game scripts
  • Program script commands for the game's graphical features
  • Program script commands for the game's audio features
  • Program script commands for the game's interactive features
  • Program script commands for opening dialog boxes and displaying messages.

Interface/Menu system

  • Write a flexible game menu system.
  • Implement a general options menu
  • Implement a graphical settings menu
  • Revise the graphical settings menu to be more intuitive
  • Implement a key mappings menu
  • Implement a screen for mapping mouse button inputs
  • Create a chapter selection screen that displays thumbnails for each unlocked chapter
  • Display chapter recaps for all preceding chapters when starting from a chapter beyond #1
  • Add a pause menu that can be opened at any point during chapters.
  • Implement an Accessibility menu
  • Allow "return to main menu" from pause screen
  • Implement a Credits screen which credits language pack translators automatically
  • Add a basic tutorial screen before starting the first chapter
  • Make a prompt appear when the player's input is required for the story to continue
  • Make movement tutorial respond visually to input so movement is taught clearly
  • Hide the mouse cursor while playing a chapter

Gameplay Configuration/Accessibility

  • Add support for customizable key mappings
  • Add support for customizable mouse button mappings
  • Add one-button mode
  • Implement optional voice-over
  • Add color-blind mode
  • Implement graphics setting for fullscreen mode
  • Let player change the dialog speed
  • "Press any key to continue" mode during chapters

Engine fixes/features

  • Program a system for the interactive segments
  • Fix loading and display of ASCIILib ASCII art files.
  • Add breaks between dialog paragraphs for dramatic pacing

Content implementation

  • Revise Original Dialogue
    • Chapters: [ 1, 2, 3, 4, 5, 6, 7, 8 ]
  • Revise Original ASCII art
    • Chapters: [ 1, 2, 3, 4, 5, 6, 7, 8 ]
  • Basic Chapter Scripts
    • Chapters: [ 1, 2, 3, 4, 5, 6, 7, 8 ]
  • Final Chapter Thumbnails
    • Chapters: [ 1, 2, 3, 4, 5, 6, 7, 8 ]
  • Create Optional Level Encounters
    • Chapters: [ 2, 5, 6, 7, 8 ]
  • Narrative Overhaul
    • Chapters: [ 1, 2, 3, 4, 5, 6, 7, 8 ]

Miscellaneous Polishing

  • Allow access to Options menu from pause screen
  • Draw a blinking text cursor when the player character is typing on the computer
  • Make sure the input indicator is always placed in a visible, non-disruptive screen position.

QA

  • Add a special runtime flag to enable logging.
  • Save log files for last game session.
  • Save crash logs permanently.
  • Comprehensively add error checks and log statements to the code.
  • Put ASCIILib console output through the same log system.
  • Check for and log errors from every SDL, ICU and jsoncpp operation in the code.
  • Playtest on all 3 platforms.

Marketing/Greenlight

  • Plan a trailer for the game.
  • Cut together a trailer in Final Cut.
  • Make a presskit.
  • Release trailer, publish presskit & launch on Greenlight all at once
  • Hope/wait for the green light

Marketing/Release

  • Make a final release trailer.
  • Make and publicize a Facebook page for the game.
  • Make a showcase demo.
  • Showcase the game at Leonardo Game Night, April 15, 2016.
  • Draft as many personalized press emails as humanly possible
  • Begin contacting let's players and game streamers to play the game and build interest
  • Release on GOG
  • Prepare Steam Windows Release
  • Prepare Steam OSX Release
  • Prepare Steam Linux Release
  • Implement Steam Cloud Save Support
  • Release on Steam
  • Set up and test Steam Key distribution with purchase from itch.io
  • Release on itch.io

Other Potential Releases

  • Release on Humble Store
  • Resubmit to GOG.com following other releases
« Last Edit: May 03, 2017, 01:22:26 PM by Nathy » Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #1 on: July 12, 2015, 12:23:58 PM »

Progress Update #1 (July 10-12)

Hello again! Since making the introduction post I've only managed to work in small time windows every day, and most of that work hasn't been directly related to development. I've mostly been:

  • Coordinating the team to work on the trailer and discussing Greenlight plans with them.
  • Emailing Marc, another new member of the forums who might be offering to translate the game into Spanish.
  • Getting my live stream up and running again to broadcast development of the game.

Yesterday I streamed for a little under an hour just to get back into the swing of things. Future streams should be in the vicinity of 2-3 hours whenever I'm free to develop. If you're interested in following the project and observing the project directly, feel free to subscribe to my channel.

I have also managed two little victories in the actual development: Quincy's beautiful painted images and my horrid ASCII programmer art are both properly loading and rendering at the command of scripts, which means I can start implementing more features such as the dynamic system that will be required for rendering message boxes of different styles in whatever available language the player selects. I might write another post soon detailing my plans for that system's implementation.

Sadly I won't be able to actively develop the game for about two weeks starting this Wednesday. I'll be flying with my family to visit Washington D.C. and New York City and returning before the start of August. While I'm gone I may have a chance to do some things like working on the press kit and drafting emails to the journalists I want to contact about the game, but there likely won't be much of interest to post in the log. This is why a post detailing my plans for the dialog system might be good. And I could also write explanations of code I've already written such as the localization system, the script interpreter and the format for game scripts, if anyone's interested in that stuff.

Before I leave for the trip I'm going to convert all of the text from the game jam version into the new format I'm using for the rewrite, and send the script to Marc so he can start working on the translation as soon as possible. At first I wasn't sure whether to hold off on this, since I may be making changes to the original script, but I think any changes to the script will be small enough not to waste his efforts translating the original.

I feel I should leave you with at least one screenshot. I had to modify ASCIILib, the library I wrote to manage the game's graphics, so that its ASCII art files could be loaded on non-Windows computers. The un-glamorous result of that effort:

Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #2 on: July 12, 2015, 05:15:18 PM »

Would anyone be interested in a series of technical posts describing and explaining the game engine? I bet I could squeeze out a few posts while I'm on vacation describing the graphics library, game architecture (and why I decided to throw all the old code out), localization tactics, scripting, and in-game dialog system.
Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #3 on: July 17, 2015, 06:26:02 PM »

I'm just gonna go ahead with a series of posts detailing the creation of the game up to this point, the design of the game library and technical decisions for the rewrite.

A Short History of the Original Project: Part 1

A couple of months before the Public Domain Jam of 2014 was announced, I started working on an SDL-based game library for games with ASCII graphics. I called it ASCIILib and used it in an early state to develop Ascension for the Cyberpunk Jam, also on itch.io. Ascension was a short and simple dystopian Choose-Your-Own-Adventure game that served basically to let me play around with my new library. At this point I wanted to use the library for a real-time ASCII stealth game, an idea that never came to fruition.

At some point my brother mentioned he knew an artist from our school who wanted to work on games and might be interested in a collaboration. He offered to put us in contact, but my initial thought was that I had no use for static images in a game. All the games I wanted to make at the time would require game art, and animation. I didn't think I could leverage a real (non-game oriented) artist like Quincy.

But after reading about the Public Domain Jam and getting really excited about it, and brainstorming lots of ideas using source material from Phantom of the Opera to Les Miz, an idea came to me which could put all the pieces together that I had at my disposal. I could adapt my favorite short story (conveniently in the public domain) into a visual novelesque text adventure that would make use of Quincy's static art. I knew it was sacrilege to put art in an ASCII game, but it wasn't real ASCII anyway, and I knew the combination of her scenes with my programmer art would take pressure off of her and allow me to supplement her efforts and help us finish all the content in time.

At this point I had about a month to get our team ready for the game jam. ASCIILib wasn't quite feature-complete for the requirements of the game, and I would also need an editor for the ASCII scenes. So I started feverishly working on my editor and writing the first script for the game. At some point down the line I met Mark on Reddit, offering to work on one-week game projects, and invited him to the team as our composer and sound designer. I was so lucky to get Quincy and Mark on board with me.

So before the game jam started we had our team assembled, our game design outlined, game engine (mostly) written and our level editor custom-made. It really sounds like cheating when I say it all like that, but we didn't win so I don't think we can get in trouble at this point. Tongue There were no assets made for the game before the jam started.

It's getting late here so I'm going to post what I have written and call it part one. The next post will finish up the history of the original game's creation. After that I'll discuss the innards of ASCIILib and maybe SurfaceEditor, the tool I used to make ASCII art for the game.

Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #4 on: July 25, 2015, 10:51:21 AM »

Back from my trip! So I'll be continuing with regular progress reports, and still hope to get some technical background posts out there. Before I get back to work, I'll just quickly wrap up with the project recap.

A Short History of the Original Project: Part 2

During the week of the game jam, I had final tests in multiple classes at school so I had to keep attending classes but brought my laptop to do as much as I could during free time.

The week basically went like this:

Quincy and Mark started working as fast as they could on the images, sound effects, and music that we knew we needed from the outline. I spent most of the first day hacking together the main menu and the system for executing the game chapters from script files, and making message boxes, etc. Then, as they continued to finish assets and send them to me, I began implementing the chapters, starting with the first one. I would always have the original short story open in another tab, and I'd follow the game outline, adapting the original text to fill the demands of my design. (So you could say the game nearly has a one-to-one correspondence of paragraph to paragraph. I think this made for a very faithful adaptation, which is both good and bad.) Then I'd be writing the script for that chapter, and tying together the music, sounds, and text all together.

At school, when I could find time to take out my laptop and work, I'd either be working on ASCII art or writing dialog scripts so when I'd get home, I could implement the chapter with the writing all finished to begin with. I only had 7 days to write 8 chapters (along with all the programming on the first day, and feature expansion/bugfixes that continued until the end). So on many days, I had to write two complete chapters, and spend what time I could polishing other chapters. Waking up every morning at 6 AM for school, I had to go for laps around my block to stay awake on the school nights spent working late. It was school, then crunch, then school, for 5 days. (As a hobbyist, my concept of crunch is a very weak one. I probably got at least 5 or 6 hours of sleep a night.)

Then after I learned that the jam was extended for another weekend, I think I spent most of that time polishing the game and I can't remember if I made full use of it. Maybe I slowed the amount of chapters per day to take advantage. I can't remember.

I was still totally exhausted at the moment I uploaded the final build.

Here are the final results the game received in the Public Domain Jam:



We got lots of positive feedback and even managed to get the game featured on an RPS column (Live Free Play Hard), which brought tons of views and downloads. This only happened because I emailed nobodybutyours, who was guest-running the column at the time.

Many people were impressed with the amount of content we managed to create in just 9 days. So to sum up how that was possible: we knew exactly what game we wanted to make before the jam, I spent weeks preparing the engine and the editor, and when the jam started we managed to utilize all 9 days unlike many teams who were only able to find significant time on the starting and ending weekends.

Then a year passed, and things died down. From time to time (alright--maybe it only happened once) I still get friendly tweets from people who appreciated the game. For quite a while I wanted to revisit the project for a Mac/Linux port, and then summer break began and I finally found time to get started. Luckily Mark and Quincy were still on board. So here we are.
Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #5 on: August 03, 2015, 03:08:20 PM »

Progress Update #2 (July 25-August 3)

Alright. It's been a while, but I'm back from a weekend backpacking trip and working on The Whisperer again. The biggest news since the last update is this new friend of mine:



I sunk some of my savings to buy a new Mac Mini, on which I'm now primarily developing the game. I was pleasantly surprised that I was able to set up a build process for the game that completely circumvents using Xcode and utilizes the same Cmake build configuration as the Linux build. One thing that had repeatedly turned me off from porting Whisperer to Mac was my failure to do this in the past. I thought I was going to have to use Xcode for the builds and the Cmake GUI to build the game on Mac. The missing piece turned out to be Homebrew, which allowed me to install Cmake as a command-line utility. Everything else fell into place after that.

Here's the game (in its unfinished state, of course), running on my Mac:



The next big step in enabling my new work environment was to get a debugger up and running, and I was dead set on avoiding Xcode for this. DDD is my debugger of choice on Xubuntu, but it was far from simple to install on Mac OS. I almost gave up, but after an intensive process which actually involved code signing the application myself, I had the same old debugger functioning on Mac OS. This was a big victory for me, because now I can write, build and debug my code without being conscious of Xcode's existence. Beer!

I also programmed a temporary system for the game's menus.

That's about all since the last update. Thanks for reading!
Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #6 on: August 08, 2015, 04:11:04 PM »

Progress Update #3 (August 4-8)

Alright! Today's been highly productive, and I just hit a big milestone, so I wanted to make a post celebrating. All of the scripting commands have been implemented for the game's graphical features! (I'm counting dialog boxes as a separate category... those are going to be a lot of work.) The last graphical feature I had to implement was transitioning ASCII sprites between positions (tweening). I made a GIF to show this in action:



 Toast Right Toast Left

What you see there actually took more work than you would think, because I chose to implement it using a flexible pattern instead of the horrible spaghetti code approach that I originally took.

Here's the script that yielded what you see above:

Code:
LoadSurface desk content/desk.srf
LoadSurface journal content/journal.srf
LoadSurface journal-open content/journal-open.srf

CreateScene test
SetScene test
BlitSurface desk 0 0

ShowScene
UpdateScreen

AwaitInput

TweenSurface journal 18 40 18 0 800

AwaitInput

ClearTweens
BlitSurface journal-open 18 0
UpdateScreen

AwaitInput

BlitSurface desk 0 0
BlitSurface journal 18 0
UpdateScreen

AwaitInput

BlitSurface desk 0 0
TweenSurface journal 18 0 18 40 800

AwaitInput

This looks very nearly the same as it would have in the original code base. However, the engine behind the script is now immeasurably better organized and extensibly implemented. Compare this:

The old code scattered across a single source file.1

With this:

The same feature properly implemented with reusable classes in a rational fashion.2

So yeah. I think a big reason why I resorted to such spaghetti code in the game jam, is that the flow of The Whisperer is very different from a traditional game. It's incredibly linear, to the point where a game loop almost doesn't make complete sense as the proper way to implement things. Only after rolling the project over and over in my head for months was I able to design the structure for the refactored code. I'm sure I could have just researched visual novel development and done everything faster and better, but I've had so much fun implementing my own engine and discovering these design patterns myself. If anyone is interested in more explanations of Scenes and the game loop, I'd love to write those posts in more depth.

My next job is to implement script commands for the game's audio. In order to make the trailer in the new engine--though I could just suck it up and make it in the old engine, wading in spaghetti--I need to reimplement the power to script audio and dialog animations which will reveal text gradually.

1Note that the refreshing of the background behind the tweening sprite is handled by the repeated execution of a "step script," a nonsense concept I invented in the rush of the game jam. This is a smaller script-within-a-script that would actually re-draw the background in between frames of the tween's animation. Pretty horrendous, but I got away with it.
2No more step scripts. I can't think of a single reason they should have existed except to refresh the background, so now the background is stored in a Scene object who manages the tweens on top and updates everything (including dialog boxes, once I implement them).
Logged

Vivid Foundry
Level 0
**



View Profile WWW
« Reply #7 on: August 16, 2015, 08:45:01 AM »

Seems like you have a lot of interesting work going on! Quincy's art is nicely painterly and really suits a Lovecraftian world!
A constructive critique: Consider creating a new UI design for the text boxes and its font which is closer in line with the style of the scene. Having more whitespace may also add to its elegance.
Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #8 on: August 16, 2015, 11:11:03 AM »

Thanks vividfoundry! I passed your compliment on to Quincy.

As for your critique, I agree completely. However, I just think the bad font is a quirk the project is stuck with because of my early design decisions, for better or worse. Tongue Unless I could find a better-looking monospaced font with the same character dimensions as the Windows terminal font, changing fonts would require Quincy to resize all of her art! That is, unless we dropped ASCII completely and tried to unify the entire game in Quincy's art style.

But I just like working with ASCII, and the project is too rooted in it at this point. So while I'm well aware of the conflicting art styles in the game, and I worry all the time that my terrible ASCII art detracts from the beauty of Quincy's paintings, the font and ASCII art will probably stay.

As you suggested, I've invited the other team members to start posting their own work on the game in this thread! Mark and Quincy are both busy with other projects currently, and not actively working on The Whisperer in Darkness, but in the next month or two we'll probably see some contributions from them. (To reiterate, their work on the game is already technically complete--unless I decide to rework substantial portions of the story from the game jam version--so probably the most they'll end up doing is revision work on the art, music, and sound effects that they've already done.

However we should shortly be hearing from Marc Tamarit, the newest member of the team who I met on the forum and who's been working on translating the game into Spanish! I'll let him complete his introduction himself. Smiley
Logged

Museraco
Level 0
*


Higher and higher!


View Profile WWW
« Reply #9 on: August 16, 2015, 06:59:05 PM »

Hello!

I'm Marc Tamarit, the Spanish translator of this masterpiece called "The Whisperer in Darkness". I don't know how to do this so I'll just type what's in my mind.

It all began when I came back to Spain after finishing my Junior year at Kent State University (Ohio). I went to a meeting that my university organized and the professor were encouraging us to really don't leave the final project of our degree for teh last day because people usually struggled a lot. I knew that I wanted to translate something cool not just a movie or some kind of magazine. (We can choose between translating 10000 words from a specialized type of text or writing 10000 words on something related to translation/interpreting as a kind of personal research on something). I'm very fortunate and I have a really cool teacher so I talked to her and said that I wanted to translate a videogame, maybe Final Fantasy I or something. She told me that in order to do that I would need to call Nintendo and ask for permission, so she said that I should look for an indie developer that was interested in having his or her game translated. At this point we didn't even know if the coordinator of my degree would even allow me to do such thing because no one had ever translated a videgame before for his/her FGP. I talked to him and he seemed pretty excited to hear that someone was going to do something new and refreshing.
Then, I began to look for an indie developer. I posted on some forums my situation and I didn't get any luck. Finally I posted my thing on this forum and Natman almost instantly contacted me, and then more developers have contacted me. I don't know if it is because Americans think that everyone speaks English or maybe they are just not interested in what happens around the world, but it's been difficult to find someone that wanted me to translate the game right away without me convincing them to translate the game, that's not the case of the Whisperer in Darkness. But hey developers, localization is really important if you want to position your game in other markets and make money. I'm sure most of us wouldn't like videogames as much as we do today if some teams of translators hadn't localized the games we loved today from Japanese into English, Spanish, French, German, Italian, etc. Sure it's expensive, but a good localization will report you more benefits than loses, and if you want good quality, you'll need to pay for that.

I started translating this videogame a month ago, and I have to say that it is being harder than I expected, but as a translator, I love challenges. In order to start the translation, I had to prepare myself for this mysterious and lovecraftian atmosphere that shrouds the books and the videogame. First off, I found on the internet the original "The Whisperer in Darkness" both in Spanish and English, and I began to read them. I also found out that there was a movie so I watched it. I have to say that I had never read anything from H.P Lovecraft before, but I like horror in general. When I was younger I used to read a lot of horror stories and books and now I watch almost every week a horror movie (if that even counts), so I'm really enjoying the whole process of translation. The game text is divided into 8 different chapters and I have the videogame to see exactly where it appears so it's very useful to guide myself.

The major challenge that I'm confronting is maintaining the style of the author while making it sound Spanish and idiomatic. Literary translation is one cool type of translation, it gives the translator more freedom than other types, but at the same time it's difficult to come up with good ideas because you need to be creative 100% of the time you're translating. This process is called transcreation and it involves making sacrifices to have a better translation in the other language.
The thing is that I'm a perfectionist so I like to translate something and then wait for the next day to see if I can come up with a better version of what I've written.

In the future, I intend to post the difficulties and justify why I translated the words the way I did, so if you guys wanna learn some good Spanish, stay tuned!

Anyway, I'm very happy to be part of this team and I hope this is not the last game I translate with them. My dream is to become an interpreter and a videogame translator someday. All I can say is that this is the first videogame I translate, and I have never enjoyed more translating something.

¡Gracias amigos!
Logged

If you want to learn Spanish for free, here\'s a nice way (of course created by me)<br /><br />http://www.twitter.com/inglesatope
Vivid Foundry
Level 0
**



View Profile WWW
« Reply #10 on: August 22, 2015, 08:55:08 AM »

Hi Nathaniel and Marc,

Sorry for taking a while to respond, it's been a busy week! Hope your week has been well. Wow, I wasn't aware of how much complexity goes into changing the UI, with the exception of the spacing part! What you should may still converge nicely as you're combining two styles consistently (rather than three or four styles). The only thing that I would suggest (if it's not too difficult!) is maybe changing the tan brown background behind the animated journal to something more painterly, if Quincy has the time. All the rest of your screens have a mix of ASCII sprites and painterly art, so that may work well from a purely visual standpoint! (Though I am completely unaware of how long it might take to code it, since I'm reliant on existing engines and plug-ins and come from more of an art background, haha!)

Marc, I learned a lot from what you wrote about your process of translation! I agree that it's integral to reaching new audiences, and it'd be especially interesting to learn about how different cultures might enjoy a game experience in unique as well as similar ways! Looking forward to hearing more about what is challenging as well as enjoyable from your perspective.
Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #11 on: August 24, 2015, 03:50:14 PM »

Marc, wow. I had no idea how dedicated you were to this! (I haven't even seen the movie myself! Tongue Is it good?)

Tanya, Swapping a painterly background with the ASCII background behind the journal would be really simple actually. Great idea! I'll definitely try it as soon as Quincy is available for more art work, and post screenshots here so we can decide if it works out visually.

I met a fan of the game on Twitter, Rafal Szulczewski, who's actually interested in playing around with the source code. I've never had anyone really work my open source projects, so it's a totally new experience and very exciting. He also wants to translate the game to Polish, and so I'll be considering whether to add his translation to the official version of the game.

He needed my help getting the game to build, so we hopped in a chat, and after we got it working, I wrote up build instructions for other Mac users in the README file of the repo. So if anyone else wants to poke around with the source, go for it! Eventually I'll be getting around to Windows and Linux instructions, but speak up if you'd like to see them sooner and I'll make it happen!

I've been talking to a friend from school who's also a Lovecraft enthusiast and he's interested in a collaboration, so I might get him to record voice-over of the game's dialog, as an accessibility feature for people with visual impairments. I've also decided to implement other accessibility features like color-blind mode, and one-button mode.

So yeah. Lots of cool stuff happening to expand the project's scope. Sadly no progress on the game itself, as I had to crunch through some summer homework last week before school started this morning. Hopefully things will settle soon and I'll be able to keep up work on Whisperer on a regular basis.

EDIT: Looking back on my private progress log, there is one thing I have gotten done since the last update! I programmed script commands for the game's audio. Don't think I've tested them yet, though. Wow it's been a while.
Logged

Greipur
Level 6
*



View Profile WWW
« Reply #12 on: August 25, 2015, 01:49:29 AM »

This is probably my favourite of all of Lovecraft's work. If I wasn't so swamped with work right now I'd happily contribute. I wish you good luck!
Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #13 on: August 25, 2015, 12:44:41 PM »

Greipur, thanks for checking it out. It's nice to know there are other fans of the story out there!

As for being swamped, no worries. I am looking for people interested in translating the game, but I actually enjoy doing the coding myself so while more interested contributors could be really cool, and a new experience with lots to learn from (I've worked with teammates but never open source contributors from online), I'm not really looking for them. But if you wanna support the project, feel free to share it with any friends who like Lovecraft! And good luck with work, maybe we'll talk when you're not swamped anymore. Smiley
Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #14 on: August 26, 2015, 12:24:48 PM »

Linux build instructions are up.
Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #15 on: September 10, 2015, 03:46:13 PM »

Progress Update #4 (August 26-September 10)

Well, it's been a while! My major occupation since the last update has been the game's dynamic message dialog system. Why has it taken almost two weeks? Well, this would have been a pretty trivial task except for one subtle nuance in the way text has to be revealed bit by bit.

Dialog in the game is revealed similar to dialog in Cave Story.



Revealing every word letter by letter should be trivial. Just add a letter to a growing string every time interval that passes, and wrap the entire message across as many lines as it needs. Here's how that looks (recording from a crappy text adventure I made in ASCIILib for the Cyberpunk Jam):



Watch carefully the way the word "maintaining" is handled. Part of the word appears, and the string still doesn't need a new line, but once the whole word appears, it has to be wrapped. This behavior was acceptable for ASCENSION because the game window was meant to mimic words being typed at a computer terminal. However, this behavior would seem out of place in The Whisperer in Darkness, where text is being handwritten on paper. You don't just start writing a word that's too long, then magically transport it to the next line before you finish.

My solution to this problem in the game jam version was very, very messy. It essentially relied on tracking the location of the last letter of the most recent word, and starting at that position to hide as many letters as needed to be. Weird, huh? But I was pressed for time, and it worked.



However, the system in the game jam version was far from sufficient to support simple localization of the game. I had to hard-code the starting position of every. Single. Paragraph.

In the new system, message dialogs can dynamically reveal strings of undefined length, so text blocks in any other language can take as much space as they need. There's no need to re-script anything in localization. Had I not abandoned the old system, localization would have been a nightmare. Editing the game's English text was even sort of a nightmare in the old system. One change and I would have to re-position everything by myself. Most of the time I did that through trial and error, too! Running the game over and over to see if the formatting worked. I don't know how I pulled through, honestly.

Soon I'll be putting up GIFs of the new dynamic system to show English/Spanish text being handled side-by-side. Things are still a wee bit buggy so it's not ready to demonstrate today.

Part of the dynamic dialog system was re-implementing a handy feature of the game jam version: dynamically sized dialog frames constructed from resizable blueprints. If you're interested in how that part happens, the code is right here. I apologize, though. I still haven't found a pretty way of accomplishing it, since it involves splitting the frame template into 9 parts and stretching some of them but not others, in the proper positions. It's probably the worst code I've written so far in the rewrite. Sad But it works!  Beer!
Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #16 on: October 02, 2015, 07:07:12 AM »

Progress Update #5 (September 11-October 2)

Really sorry about staying quiet for so long! The project lives. Wink

Since the last update, my efforts have been 95% focused on getting the Greenlight/marketing campaign ready. Specifically, I'm working on a trailer for Greenlight and the press kit. I went quiet around September 10 because that was when I set myself a concrete deadline for the first cut of the trailer. I entered crunch to finish the first cut in time for September 22, when I showed it at the local indie meetup for feedback. I haven't crunched so hard in a long time. It would have been simple, but I wanted to make the trailer in-engine. I had to finish implementing several core features before I could start scripting it.

This is a really good thing. Because I'm making the trailer in-engine, the majority of in-game features are already implemented. This means that after I launch the Greenlight campaign, I should be through with the first 70% of development time. Once the game gets greenlit, I'll only have to push through the last 90%. Tongue

Right now I'm working on a revised cut of the trailer in response to the excellent feedback I received. This is my plan for moving forward:

  • Finish the final cut of the trailer
  • Create a press kit for the game using presskit()
  • Draft as many personalized press emails as I can, stopping only on the brink of insanity
  • Launch on Greenlight & send emails on the same day

Only after I finish all of that, will I re-focus myself on developing the game itself. I haven't yet decided what my approach will be for managing the Greenlight campaign. I'm not hinging any hopes on success in Greenlight; it's just a personal goal of mine as a hobbyist. I might decide to take a hands-off approach once the campaign is out there, or I might start trying to set up interviews with journalists and podcasters, and actively drive the campaign to (hopefully) success.
Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #17 on: October 04, 2015, 10:59:49 AM »

Gender in the works of H.P. Lovecraft

Lovecraft basically ignored the female sex in his writing. I can't think of a single female character in his works that I have read. Theories abound as to why: Alan Moore believes Lovecraft harbored sexism and sexual phobias which caused him to prefer male characters in stories which only refer to sex implicitly, or through euphemism.

I'm adapting Lovecraft's work, and in my original effort for the Public Domain Jam, for the most part, I left the story's cast alone. (I did combine two characters into one, to simplify things at the expense of one or two slightly disturbing plot points. For the remake I might reverse this decision.)

My ingrained assumption was that The Whisperer in Darkness was too couched in the masculine perspectives of its two protagonists, Wilmarth and Akeley, for me to introduce any femininity in my adaptation. Swapping the gender of the protagonists could have introduced a slightly different dynamic in their relationship, unless I wrote them both as women. However, a couple days ago I realized, I could take a tiny step towards better female representation by simply renaming a few minor characters who are never pictured. I know it's not much, but I figure better to take small steps than none at all.

After realizing there are a couple minor characters who could be adapted to the opposite gender, I only had one hang-up. I think there is something to be said for literary preservation, problematic elements and all. Taking the implicit misogyny/racism out of Lovecraft's book would be like censoring the N-word in Huck Finn, would it not?

I've come to realize the "literary preservation" line of thinking is totally incorrect in this specific case. I truly believe that historical works should never be modified in their original form. (Of course, some loss of intent is inevitable in translation). However, I am not preserving Lovecraft's work. I am building my own work on top of his foundation. My game is an adaptation, not a remake. Nothing says we have to bring all the past's shitty baggage along with the inspiration we take from it. So I'm introducing female characters in my game.

Eli Davenport will henceforth be known as Ellie Davenport, the conspiracy columnist who first entertains the notion of real supernatural occurrences in Vermont. George Goodenough Akeley will henceforth be known as Georgia Akeley, or Grace Akeley, daughter of Henry Akeley, the reclusive farm dweller at the center of the malicious alien activity.
« Last Edit: October 15, 2015, 08:15:35 AM by Natman » Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #18 on: October 20, 2015, 06:32:40 AM »

Progress Update #6 (October 3-October 20)

Hi everybody! I'm still focused on the trailer/Greenlight/marketing side of things, but I've made some interesting developments on that front which I deem worthy of a progress update. After getting feedback on my trailer from several local developers as I had planned to, I decided to abandon my goal of making the trailer in-engine. Now I'm working in Final Cut Pro X, which is about a thousand percent better than my old workflow: Game engine + SimpleScreenRecorder + OpenShot on Linux. This means work on the trailer is a whole lot faster now. I should be finished in a day or two. I'll probably post the trailer here with a private link, for feedback.

Following the trailer, I'll move straight on to the press kit and Greenlight page.

Meanwhile, I've started drafting press emails. I'm currently up to a total of 5, because I've never done this before and I'm taking extra care to contact specific writers for whom I think my game would be a good fit. I'm personalizing all of the emails and seeking experienced feedback on whether my emails get the message across. The process should get a lot faster as I gain practice in writing cold emails about the game and what makes it special. It's tedious and difficult, but I have to admit that the marketing is also fun in some ways! I've never done any of this stuff before, so it feels like I'm picking up new skills with everything I do, and having my eyes opened to new realities of being an indie.

This article would have to be the single most useful resource I've found for learning how to handle emailing writers. It gives do's and don't's from a variety of perspectives. If anyone else is in the same boat I am, definitely check it out if you haven't already.

And because I can't help myself... I'm also continuing to work on the programming side of things. My current undertaking is a new content management system which loads and releases assets in groups so that memory usage is always kept to a minimum and related assets can be loaded in a single script call.
Logged

nathy after dark
Level 8
***


Open Sourceress


View Profile WWW
« Reply #19 on: October 20, 2015, 06:51:48 PM »

Sneak Peek: Greenlight trailer

Tonight I finished cutting together my second attempt at a trailer for the game. I've uploaded it unlisted to YouTube so I can share it here, in case anyone has critical feedback for me. I'd like to stick with this version (or at least something similar) so I can start devoting myself 100% to press emails, but obviously if it sucks I'm gonna rework it. So please let me know! Smiley

Trailer Version 2

One of my friends offered to voice act for the game. It remains outside of my artistic vision to utilize full narration, but I'm going to take advantage of his acting talent to add voice-over to the game as an accessibility feature. I'm told that blind gamer communities are very friendly and nice to work with, so I'll also be making a "blind player" trailer to market to that audience.
Logged

Pages: [1] 2 3 ... 6
Print
Jump to:  

Theme orange-lt created by panic