Whoever she was, she is now transformed. What does she want?
And what is the pain behind her howl?
youtube
A glimpse into our wordless storytelling.
Hyper Light Drifter was a game well-known for its wordless storytelling. A quick Google search will yield dozens of videos and articles discussing the art of worldbuilding without words.
youtube
youtube
youtube
As Jake Theriault artfully describes in his analysis of the opening sequence of Drifter:
“We discover all we need to know about the world in one wordless sequence. And from there on out, all the discovery made by the player is done visually.”
While Hyper Light Breaker will not be entirely devoid of text (there will be UI and some loadout descriptions), we have made the decision to lean back into our strengths and reveal our world and mysteries therein through illustrated vignettes.
There is so much about the Hyper Light universe to discover. With Breaker, we’re excited to share more about the history of the world that led to the events of Drifter.
Our Character Artist, Isaak Ramos, has established a house style for our studio, inspired by the works of Katsuhiro Otomo.
Some key aspects include:
Clearly defined straights and minimal curves
Shading using a halftone pattern (and/or halftone+flat value)
And reasoning includes:
Effectively receives color blend modes
Meaningfully calls back to our influences and to our past without resorting to pixels
Adds gravity/seriousness
Quickly creates a more finished aesthetic that will support looser lines and different drawing styles
Let us hear from you!
What do you think about this return to wordless storytelling? And our panel art style?
I hope you're all doing well and staying safe in this crazy world. There were a couple bugs in the last update of Ch 2, Part 1 from August that I never got fixed. Well, I just fixed them. Sorry about the delay.
I'm getting better mentally. Still have a lot of work to do but after many months of therapy and medications, I am feeling more myself than I have in a long, long time.
Anyway, thank you for sticking around. I appreciate each and every one of you who has taken the time to play NIL.
In this bug fix update, the following changes were made:
High Priority Fixes:
Chapter 1: (preface: I think this is fixed. Please please someone let me know if you find that it is not. I've been trying to fix this for more than a year lol). Some people could not move forward when F and Felix argue if they choose that F is an ex-lover.
Chapter 1: Coding typo in balcony scene with F at the ball.
Chapter 1: When finding out your pet is coming, it now clearly communicates that the pet is male. (someone asked me to add this on Itchio.)
Chapter 2: fixed a scene where Constantine's horse is mentioned incorrectly.
Chapter 2: Carriage Scene - fixed two coding errors.
I know this was only a bug fix, but I hope it helps improve the experience. I'll let you all know when I have something more for you.
One of the new additions to the build is flagging especially hard enemies. Currently, enemies 1 tier above the current dungeon tier have a 2% chance to spawn. This can mix up the battles to keep players on their toes, and give especially strategic players the chance to earn equipment, and a possible ally, one tier higher than what they'd usually have access to!
However, during playtesting, I got absoutely wrecked by a single monster and I had no idea it was a strong one because I didn't have the chance to scan it. On the suggestion of a friend, if I had big flashing warning symbols on it, I would have been more careful and run away or played more defensively. And so now I do!
It was easy enough to make it yellow, since all sprites are drawn as white to begin with and then a colour blend is added to it in game. The warning symbol is new, but uses the same code as the HP and recruitment UI text, but with an image instead!
This is my programming equivalent to sheet music which plays Hall and Oate's Out of Touch. A little devblog of how this chunk of code came to be for this year's final Thursday ❤️
For @b0tster's birthday Gameboy cart, I wanted to get the Gameboy to play Out of Touch. My hands were also in rough shape with an RSI so I was programming using a combination of voice dictation and the onscreen keyboard. Because of this, rather than figure out something better, I had to rework my old music code which was an already reworked version of the sound.c example code that comes with GBDK.
A list of notes and their frequencies, graciously provided by the sound.c example.
This code takes one of the notes, and uses the frequency to set the registers correctly for playing that note on the first sound channel. The frequency is a bit more than 8 bits of info so it gets split between the bits in register 13 and 14. The other registers affect the kind of note played in ways I couldn't hope to fathom. Those were figured out with trial and error.
To get the timing better, I also had to add FF and SD which raised and lowered the tempo (by doing the opposite to the tempo variable). I also added HOLD which if put before a note, doubled the length of the note. This was just enough to get the tune working and not sounding terribly off.
The code for playing the song isn't terribly interesting, this function is called once every frame with a delay of "tempo" ticks between them. FF, SD, and HOLD all call the function again to avoid this delay while still playing the actual next note. Also the note value is subtracted by 12 because I wanted to lower the tune by an octave but didn't want to use the hand energy change all the numbers.
And the rest of the playing code is terribly simple! Play a note, wait a bit, repeat. Which brings us back to this:
This is an array of the note enumerators from before The song goes through this and plays each note in sequence. I wrote this by looking at some sheet music for the melody of the chorus and just feeling it out from there. I eventually added little comments above the notes to help me keep track of it!
No human writes music like this
but, it worked, which means it was good enough which means it was perfect!
The resulting video:
[spritework by the lovely @abbytorade]
This was a weekend project that ended up taking me a bit under a month due to life but it was a very fun little coding puzzle to work on when my hands would allow me. Lilith is a great friend and I am so glad to have been able to make this made for her!
Been a minute since I posted about mod progress. I did end up having to use the gender swap method for the main character, and all is going well. Currently in the playtesting/dialogue hunt phase. As before, I've been fixing any preexisting typos that I come across along the way.
Gaia always knows the right thing to say.
Breaking News: ANB Secretly Run by Squirrels
It turns out that A New Beginning is written in a language called Squirrel. This game is the first I've heard of it, but it reads like a hybrid of Java and Lua with minor squirrel-themed syntax sprinkled in, such as how script files use the ".nut" extension. I love knowing that the game devs chose a somewhat obscure language themed after little forest critters.
J'ai tellement d'idée de code à proposer pour la communité. En ce moment je travaille toujours sur le générateur de fiche mais il prend du retard parce que j'essaye de le rendre facile à installer et utiliser. C'est pas ce que je trouve le plus passionnant à faire et en plus j'anticipe la rédaction du tutoriel (autrement appelé la documentation).
Et c'est vraiment le plus dur dans le libre-service d'un code je trouve 😭 Perso je met 2 à 3 fois plus de temps dans la documentation que dans le code lui-même.
Parce que une documentation du code c'est
rendre le code facile à lire (ce qui revient souvent à "mal" l'écrire)
le commenter
le présenter (en le mettant en situation, en faisant des démonstrations écrites et/ou imagées)
l'expliquer (hiérarchiser étape par étape)
anticiper les questions/problèmes
proposer des options/alternatives (pour tous les types de forums)
rédiger le tout en trouvant un bon équilibre entre des termes faciles et non-techniques tout en étant précis et concis
mettre en page tout ça
communiquer sur le code
C'est plus ou moins long en fonction du code proposé, évidemment. Un code de présentation de post se suffit souvent à lui-même par exemple, mais imaginez avec un libre-service comme le blank theme 💀
Je crois que ça avait jamais été vraiment évoqué. Et l'extrême majorité des personnes que je connais qui code (peu importe le niveau) et qui ont envie de proposer des choses à la communauté ne le font pas notamment à cause de cet aspect. Ca m'attriste toujours un peu mais je peux que comprendre. C'est super frustrant.
Voilà, donc là je dois commencer à rédiger tout ça pour le plugin de générateur de fiche mais la non-motivation m'a donnée envie de mettre en lumière cet aspect de nos LS.
Vos remerciements envers les créateurs auront d'autant plus de sens en ayant ça en tête 👏
Recently there's been a bug in Marlowe where if she tries to walk into a space that's just barely too small for her to fit in, she dies.
This happens only with spaces that are 1 or 2 pixels smaller than Marlowe's height/width, as pictured here in debug mode with the hitboxes drawn in cyan.
It's an issue specifically caused by the corner tolerance, which allows Marlowe to not get caught on the corners of objects as easily. This corner tolerance is useful when walking on a bunch of objects next to each other, like these boxes on the floor. Without corner tolerance it'd be easy for the corner of Marlowe's hitbox to get snagged on the corner of one of the boxes and stop her from walking over them smoothly.
However in the case with the gap slightly smaller than her hitbox's height, the corner tolerance is allowing Marlowe to slip into the gap underneath the obstacle, and then since the gap is pushing on her from both the top and the bottom, the game considers her "crushed" and kills her.
To fix this, the crush code now tries to move Marlowe to the position she was in on the previous frame, and then it re-runs collisions to see if she's still getting crushed. This allows it to save her from entering tiny gaps like these while still crushing her in other cases.
In the demo build of the game, at the bottom of dungeons deep enough, you'll find a unique object that allows you to summon the train boss I've been posting about over the last couple of weeks. (Ignore the fact that I'm still on floor one, I've spawned in a test one for demonstration purposes!)
I also totally forgot to make the object delete itself after being interacted with until today! So since I was debugging it, I thought I might as well show it off to you guys!
I have designed the boss fight to be beatable when you're at the upper end of the tier 1 content (levels 1 to 10), but it'll also spawn even within the tier 2 sectors (levels 11 to 20) and should still be fairly challenging, especially if you're worn down fighting your way to get down to it. The game is quite open, so depending on how you play it, beating it might be considered the end of the demo.
However, the actual "official" end of the demo is after completing all of the tier 2 research , and you'll get a nice thankyou message instead of the tier 2 capstone research description that would advance you to tier 3. For those inquisitive minds, I'll save you the trouble - even if you managed to complete the research and cheat your way to tier 3 sectors and beyond, there are literally no enemies/items/locations tagged as tier 3 within the relevant databases!
I have a big announcement coming tomorrow, by the way, so look forward to that! Until then, thanks for reading as always :)