The Hirsute Adventure of the Archivist Oddly Proud of Being Bald
About
Help James solve the mystery of why there is a strand of hair caught in the archive cabinet. It surely can not be his: he is as bald as an eagle, and damn proud of it! Who dared enter his archive behind his back?
Could it be, René, another archivist and his arch-rival, who not only has all his head covered with hair, but is also… French? Not on his watch!
This is the absurd premise i used in my entry for the Narrative-Driven Jam #12. The theme was “Asymmetry”.
Although most locations and characters are (somewhat) asymmetric, I think i confused “asymmetry” with “opposites”, because my target was to have “asymmetry”, apparently, between what James and the rest of the cast think regarding the (extremely important) issue of having or lacking hair. It is like thinking that the yin-yang thing is “asymmetric”, when in fact they are totally symmetric….
I other words, i dropped the ball here. However, i was too deep into production to start over, and powered through. I hope that at least it will give some laughs to players.
By the way, i do not have anything against the French people. It is just one more silly detail in an even sillier play.
I also kept a log during development that i published on the jam’s community tab. Not worth much, but i had fun with it, too.
Jam Results
Criteria | Rank | Score | Raw Score |
---|---|---|---|
Story | #3 | 3.929 | 3.929 |
Graphics | #3 | 4.429 | 4.429 |
Enjoyment | #4 | 4.071 | 4.071 |
Overall | #6 | 3.667 | 3.667 |
Concept | #8 | 3.857 | 3.857 |
Audio | #9 | 3.000 | 3.000 |
Theme | #12 | 2.714 | 2.714 |
Ranked from 14 ratings. Score is adjusted from raw score by the median number of ratings per game in the jam.
Devlog
Day One
I actually did not have much time to work on this today. The jam started at 3:00AM in my local time, so i checked the theme first thing this morning and then left out for work while thinking what in the world i would do.
From the start i knew i would try again to do a point and click adventure, even though, given my past entries, that is not something that i do particularly well. “Practice is the Road to Perfection”, as they say, and so i will do my best here.
Then, out of nowhere, this guy popped up in my head:
This is James. He works as an archivist. He is bald as an eagle. And damn proud of it! I do not have the full story yet, but you can be sure there will be other very hairy characters trying to sway his opinion whether it is good to have hair on the head or not.
That piece of “background story”, the weirdly long title, and that stick-man-like figure is all i managed for now. You would not believe how much time it took for me to draw that, but, still, not entirely bad—i hope. I do not know yet if i will color it, because this time i want to include a bit more of puzzles and whatnot.
Day Two
Work, the kind that helps paying rent, kept me busy most of the day, as i am sure it is the case for most of us, so again did not have much time left for pretending i know what i am doing with Inkscape.
I have made a first draft of the archive room, the starting screen. Here it is:
I have yet to start coding, so this is a mock up to check Jame’s size against the background. The screen has an old-fashioned resolution of 800x600. I think it works.
Looking at it now, i realize that maybe i did not fully understand the jam’s theme or something—look at these symmetric shelves! Let’s hope tomorrow i can fix that.
Day Three
Today was coding day. Had to write the Makefile that converts Inkscape’s SVG to PNG and packs all images into a texture atlas. Then set up the basic application with Haxe and Heaps to draw everything onto the screen, plus loading the font to draw text. Pretty basic stuff.
One thing i still do not have resolved, and has been a problem each time, is how to run scripted scenes. I believe coroutines would be a good fit, but Haxe does not comes with support for coroutines, and all the libraries i know of are not yet updated for Haxe 4.3, that i need in order to correctly hot-reload code in HashLink. I had to resort to closures with manually keep state between runs. Probably would have better ergonomics with macros, but i do not know enough of Haxe macros to do it, and during a jam is certainly not the time to try such things. I have no doubt it will bite me in the bottom at the worst time.
I knew i should have done all this before the jam began, but i did not, and now i have to put up with it.
Unfortunately, i enjoy programming way more than drawing, so all of this ate away at the afternoon, and when i realized it was already time for dinner. Also time for a least pleasant task for me: animations.
I am bad at art. And even worse at animation. Thus, i needed shy of five hours to do a basic walking animation for James. This is the result.
Walks a bit like a robot, but that’s all i can do for today. And is probably not going to change much in the final version, unless i have spare time at the end, which would be the first time.
This screenshot is already of the game running. Notice the “This is a sample text” at the top to test the font, and that everything works. This is actually the scene i used to preview the animation in game while drawing: i save the file in Inkscape, make automatically converts it to PNG, and Haxe live reloads the animation.
Day Four
It is starting to look like a real game! Take a peek at the opening scene.
I added some details to the stand and walk animations that i realized were missing, such as the jacket pocket, and finally fixed the fist. Why are hands so hard to draw?
I also did a very simple talk animation. Can you believe i never had such animation in any previous game? It is so obvious now, but it did not cross my mind that the characters where a tad too static while reciting their lines. I suppose i was more focused on the words in the speech bubble than the characters.
Evidently, i wrote the speech system. It should be one of the easiest part, but funnily the talk animation made it a bit more complicated than i expected, especially given that now i can have the player face not only left and right but also up. I may be overcomplicating things.
Speaking of overcomplicated, i spent (wasted?) a couple hours, maybe three, trying to understand Haxe’s documentation regarding macros, to try to simplify scripting scenes, such as the one in the GIF above, without as much ceremony as i was doing yesterday. They are now a very limited kind of coroutines, but i am glad i made the effort seeing how clean the code is now—if you do not look at the macros themselves, that is.
I think James is mostly done. My plan for tomorrow is to begin drawing the rest of the characters.
Day Five
I have added a couple more characters to the game’s cast:
Yes, the desk on the right is also a character, because someone is seated behind all that mess and we can not see her, but she’s is there and will have her dialogue lines.
The cat has a funny origin story: I got the idea from a towel! Most people probably use towels without ever paying much attention to them, unless they are in an expected place, then they go “huh?”. Not me, apparently: I stare at towels until the wavy lines form a shape. And that shape happened to be a cat wearing a blonde wig.
Unfortunately, these two are not enough, and have to add at least a couple more characters, that did not have time to finish for today.
I am actually a bit worried because, even though i have a pretty good idea of the story from beginning to end, i do not yet have much in terms of puzzles and all that is required in a graphic adventure game.
There are still five days before the end of the jam, but these five days are not the same time-wise as the five days up until today: work is going to take a good chunk of my time and will not be able to progress as much. If, on top of that, i still have two more characters to do….
As always, it will depend on how much i can cut from the game the last day, and will probably have to rush to finish in time.
Ah, good times!
Day Six
My goal was to have two more characters by the end of today, but could only finish one: Big Mustachioed Boss.
It is a bit disappointing that i could only do half of what i wanted to, but not unexpected—i am really slow with art. Well, i am slow. Period.
Still, i am happy with it. They are obviously very different characters, but i think i managed to keep the same overall style for both of them, which sounds—duh!—obvious, but it is something that i do not always can do, no matter how much i try. Improvement!
(By the way, i believe the Boss is overcompensating for something. Um.)
My new plan is to design the other character tomorrow, and the second (and last!) location Thursday. That would give me Friday and Saturday to put everything in place and have a complete game, however small it ends being.
Why does this sound a tad too optimistic?
Day Seven
For once, i seem to follow my own schedule and added the last characters i intend to add to the game.
Like yesterday, different in his own way, but i believe follows the overall style.
He has a minor role at the beginning, and so i thought that i could get away with just his standing and talking animations, like i do for the rest of the cast except James—i wish i had enough time or talent to add as many animations i want—, but then i realized that i needed him to walk in the archive room. Either that or change the whole first scene. Walking animation is it then….
I used Jame’s walking as a template, but did not have time to animate the arms, thus it looks even more robotic than him. Not what i wanted, but it is horribly late in my timezone already and i still have a whole location to do for tomorrow, so….
Day Eight
I am going to pretend this is wanted to have for today:
It’s a bit too spartan, but it will have to do as a background. The idea is to draw new objects on an as needed basis depending on how many puzzles i am able to cram in the next two days.
As of now i have a total of zero puzzles. That is not good at all, although this is exactly how many puzzles my last two jam games had, so it seems to be on par with my track record.
Let’s hope i can do better this time.
Day Nine
Finally reached the point where you can clickety-click from beginning to end with a coherent, albeit incredibly boring, storyline. It is even less game than a visual novel because there is no choice to make, and feels more like an “animated comic” than anything else, but i reckon it has roughly the same content as Grapes and Bacon had at the end of last jam. However, i still have 24-hours to make it (slightly) better! The most stressing time—the home stretch!
Here is a peek preview of the ending screen:
And here is a screenshot from a bit before the ending:
It is a “static cinematic”, thus the different style. Also, it was easier to draw this than everything else, and i am need a bit of respite after that much content, at least from my point of view.
I also started the draft for the game’s page draft on itch.io. If i remember correctly, one hour or so before the deadline for Narrative-driven jam #9, itch.io’s SSL certificate expired and i almost could not upload my entry. I believe that the deadline actually was postponed because of that, but i only saw it after frantically trying to coerce my browser’s to accept the expired certificate, notwithstanding the danger that “hackers” would steal my data, or underwear, or whatever they are supposed to steal me. Since then, i take no chances and start uploading the game one or two days prior the deadline, and many times during the last day, that way the worst could be that i would have a slightly worse version. But worse is better than nothing here!
We will see.
Day Ten
Done! And with almost five minutes to spare!
The clock was ticking, the deadline was less than an hour away, and i was still adding the last conditions for the “puzzle”, if you want to call it—and only in singular—, to make it work. Then build the HTML version for the last time, hope to all Gods that nothing goes wrong with the upload process, try everything at least once on the, not that there is that much, but still, and pray that my computer’s NTP works correctly, or i would have been screwed. Can you imagine missing the deadline just because you clock is slow? The horror.
I’ve spent almost the whole day just for this, and still had to cut off some of the ideas i had. As always. Some of them because required more art, that i did not have time for, and the art that had to draw, despite yesterday thinking everything was already there, has been done pretty hastily.
Sound and music took more time than i expected. Not that i did any of it—i already have plenty with the little i know how to do!—, but finding the “appropriate” song to go with the game, plus mixing and shortening them to reduce the game’s size, is not easy, and i believe this time i did not make as good a choice as in previous jams.
Coding errors also started to appear far too much frequently towards the end. I am not surprised at all: i am quite tired right now, and the stress of knowing that the deadline is approaching without the complete “loop”, as it were, forced me to be a bit sloppier than usual, something i know by experience is worse at the long run. But i did not very long to run today….
That’s all for now.
Assets
Fonts
-
Amatic SC by Vernon Adams (github.com/vernnobile)
Licensed under SIL Open Font License 1.1
Music
-
Crypto by Kevin MacLeod (incompetech.com/)
Licensed under Creative Commons Attribution 4.0 International -
Deadly Roulette by Kevin MacLeod (incompetech.com/)
Licensed under Creative Commons Attribution 4.0 International -
Netherworld Shanty by Kevin MacLeod (incompetech.com/)
Licensed under Creative Commons Attribution 4.0 International -
Scheming Weasel (faster version) by Kevin MacLeod (incompetech.com/)
Licensed under Creative Commons Attribution 4.0 International -
ZigZag by Kevin MacLeod (incompetech.com/)
Licensed under Creative Commons Attribution 4.0 International
Sounds
-
cartoon_wink_magic_sparkle by MLaudio (freesound.org/people/MLaudio/)
Licensed under Creative Commons Zero v1.0 Universal -
gasp by Dvideoguy (freesound.org/people/Dvideoguy/)
Licensed under Creative Commons Zero v1.0 Universal -
GLEAM-GLOW-SFX-CHIME by newagesoup (freesound.org/people/newagesoup/)
Licensed under Creative Commons Zero v1.0 Universal -
Knock on the door by deleted_user_4772965 (freesound.org/people/deleted_user_4772965)
Licensed under Creative Commons Zero v1.0 Universal -
Office ambience - call center 3 by leonelmail (freesound.org/people/leonelmail/)
Licensed under Creative Commons Zero v1.0 Universal -
open and close wooden door by fresco (freesound.org/people/fresco/)
Licensed under Creative Commons Attribution 4.0 International -
Ring Back Tone by NuclearTape (freesound.org/people/NuclearTape/)
Licensed under Creative Commons Zero v1.0 Universal
More information
- Type
- Game
- Published
- Genre
- Adventure
- Tags
- Jam, Narrative, Short
- Programing language
- Haxe
- Made with
- Heaps, Audacity, Inkscape
- Repository
- https://gitlab.com/perita/hirsute/
- Code license
- GNU General Public License v3.0 only
- Asset license
- Creative Commons Attribution Share Alike 4.0 International