Askepit Hub

Articles


Making bots play cards endlessly, part I So there I was, doing what I love—messing around with writing mini-games that no one but me would ever see. This time, I was tinkering with a card game, a knockoff of Inscryption. Well, more like a pale imitation with vague goals and even vaguer prospects. But one thing was clear: the core mechanic of the game was card-based combat, and it needed to be engaging enough to suck the player in for hours.

Writing plugins for Obsidian, part II Let's continue writing our own plugins for Obsidian. You can find the first part of the article here. In it, we: Discovered that writing plugins can be even easier than the official documentation suggests; Wrote three small plugins, which are already being used in production personally by me; Promised to write a fourth "final boss" plugin; Now, let's get started.

Writing plugins for Obsidian, part I After all the hype around Notion, people scattered in all directions, but somehow most ended up looking toward Obsidian. Internet was flooded with articles about Obsidian and plugins for Obsidian. However, to my disappointment, there are not so many articles about how to write your own plugin rather than just use someone else’s creations. In the meantime, I’d like to fill this gap with my own guide.

constexpr Game of Life For over a decade now, C++ has had constexpr, a feature that allows programmers to dump part of the workload onto the compiler. When I first encountered it, it blew my mind—imagine the compiler crunching some pretty complex calculations before the program even runs!

Multithreading in games Modern games are rich in content, gameplay mechanics, and interactivity. A lot happens on the screen all at once—the world feels alive, responsive, and even without active player involvement, life continues to simmer, with multiple events unfolding simultaneously. Let’s dive into the details of how this diversity of in-game events is implemented and find out what role multithreading plays in all this, and how many cores a typical game needs.

Punk riff generator Once upon a time, maybe five years ago, I decided I wanted to play a sound in the browser. I don’t even remember the exact task or what I was trying to achieve—most likely just messing around with different samples, maybe programming a track. So I Googled how to do it, landed on a StackOverflow question/answer somewhat like this. And there it was—my simple “playing a sound” query was met with a barrage of contexts, buffers, decoding… I felt so suffocated that I immediately waved it all off and decided I wasn’t that interested in the first place—certainly not at that cost. And I forgot about the whole thing for many years.

Git in conditions of extreme branch atomicity How are your branches organized in Git? What do they look like, and what size are they? Below, I'll tell you how to restrict yourself within limits and then deal with the consequences using a nifty life hack.

Voronoi, Manhattan, random This is a story about how to never quite finish a project, yet gain a ton of experience and have no regrets. So, we had one programmer, one artist, an absolute lack of understanding of the workflow, an unfamiliar game engine, and a desire to create something. If you're curious about the mixup of Voronoi diagrams, a special case of Minkowski distance, polygon transformations, procedural generation, and noise—all wrapped up in a beautifully stylized package—this is the right place for you to read.

Utilizing git to make Rust development even sweatier Rust was created to make programmers suffer, right? So why not make git collaborate with Rust and make it all even more hardcore? Actually, the article is more about git than Rust, so if you're not particularly familiar with Rust, don't hesitate — the narrative will be more about the development flow than the language itself. Rust was chosen for the article mainly for its convenient package manager cargo, which makes the storytelling more laconic and illustrative.

What we lack in C++ C++ has been evolving rapidly for the past decade and more. Nevertheless, in our codebases, there are still numerous helper files and classes that aim to fill the gaps in the language's standard library. How did we end up with these helper files, and when will this ever end?

Funny things

Pyramid solitaire
Just keep it relaxed and play till the end
Black Jack
Well, you know
Punk riff generator
Do not know what chords to play? Let us choose chords for you!
IEEE-754 Calculator
Science stuff. Know you float number layout
String Walker
Vibrato / Chorus / Tremolo pedal for wavy vibes
TUI Stories. Algorithmic Abyss
Meditate inside the console
TUI Stories. Raytracer
This is an ASCII world
TUI Stories. CLI Zero
Zero game for zero player
Vehicule
Pure Torque

Contacts

GitHub
Here I code
LinkedIn
Here I seek
StackOverflow
Here I consult
Habr
Here I share and teach