My name is Otto Kokstein, and I am a student in the Czech Republic with the goal of studying nuclear engineering in the future.

My areas of interest include programming, software developent, 3D modelling and 3D printing.

I started learning Python in 2022 and since then, I have also picked up Java and some basic Rust.

Since 2020, I have been working on the Czech localization of Enderal: Forgotten Stories which I plan to finish in Q2 2025.

I also have a Youtube channel where I post videos about my projects.

Links:

Youtube

Github

Contact

Feel free to contact me on Discord:

Discord username

Or on my email address:

Email address

Banner

(Pro českou verzi textu viz článek Česká lokalizace modu Enderal.)

Enderal: Forgotten Stories (formerly Enderal: Shards of Order) is a Skyrim modification often considered a stand-alone game due to its sheer quality and scale. Since 2020, I have been localizing1 it into Czech.

Content

What will be localized

Almost every in-game text, for example:

  • Names of items, spells, locations, quests and NPCs
  • Dialogues (in the form of subtitles)
  • Quest objectives and journal entries
  • Most books
  • Texts in textures
  • Menus and settings
  • Cinematics (in the form of subtitles)
  • System messages

What won't be localized

  • Game launcher (localization not supported)
  • Audio
  • "The Butcher of Ark" book series

Note: If you choose to play as a female character, the game will still address you as male, as I have not yet found a way to provide separate strings for male and female protagonists.

Motivation

Ever since first playing Enderal and discovering that it was missing a Czech localization, I knew it was something I wanted to pursue. My main motivation was to allow Czech players to enjoy its lore, story and ambience without any language barriers.

Process

Strings (in-game texts) are localized in xTranslator and textures are edited in Photopea. Enderal's cinematics were localized by burning subtitles into them (I have posted a guide detailing the exact process I used, if you are interested).

More info about the process of localization itself can be found here.

Download

As of 2025, the localization is complete. The only remaining step is for the SureAI developers to publish it on Steam as an official localization, which they have noted may take some time. With their approval, I have decided to release the files on Nexus Mods in the meantime. You can find them here, along with an installation guide. If you run into any issues, don't hesitate to contact me.

Showcase

Video Showcase

Gallery Image 1 Gallery Image 2 Gallery Image 3 Gallery Image 4 Gallery Image 5 Gallery Image 6 Gallery Image 7 Gallery Image 8

1

localization = translation and adaptation of a game to a specific language so that the translation feels natural to players and aligns with local customs and culture (localization includes, for example, converting units like feet to meters, etc.)


Created on March 20th, 2025

Banner

(The English version of this article can be found here.)

Enderal: Forgotten Stories, dříve známý jako Enderal: Shards of Order, je mod pro hru Skyrim, často považovaný za vlastní, samostatnou hru díky svému nevídanému rozměru a kvalitě. Od roku 2020 lokalizuji1 Enderal do češtiny.

Obsah

Co bude lokalizováno

Téměř každý text ve hře, tedy například:

  • názvy předmětů, kouzel, lokací, úkolů a postav,
  • dialogy (v podobě titulků),
  • většina knih,
  • texty v texturách,
  • nabídky a nastavení,
  • videosekvence (v podobě titulků),
  • systémové zprávy.

Co nebude lokalizováno

  • Spouštěč, tj. launcher (lokalizace není podporována),
  • audio,
  • knižní série „The Butcher of Ark“ (česky Arkský řezník).

Poznámka: Pokud se rozhodnete hrát za ženskou postavu, hra vás bude stále oslovovat v mužském rodě, protože jsem dosud nenašel způsob, jak mít pro mužské a ženské hlavní postavy odlišné sady textů.

Motivace

Už od chvíle, kdy jsem poprvé hrál Enderal a zjistil, že mu chybí česká lokalizace, věděl jsem, že je to něco, co bych chtěl uskutečnit. Mou hlavní motivací je zpřístupnit příběh, prostředí i všechny ostatní prvky Enderalu lidem, kteří neovládají angličtinu nebo jednoduše preferují češtinu.

Proces lokalizace

Herní textové řetězce lokalizuji v programu xTranslator a textury upravuji v programu Photopea. Herní videosekvence jsem lokalizoval „zapečením“ titulků do videa. O tomto „zapečení“ jsem napsal anglický návod, ve kterém popisuji přesný postup, jejž jsem při lokalizaci videosekvencí použil.

Více informací o procesu lokalizace najdete na stránce Enderal:Localization.

Stažení

K roku 2025 je lokalizace dokončena. Už pouze zbývá zveřejnit ji na Steamu jako oficiální lokalizaci ze strany vývojářů Enderalu, kteří mě upozornili, že to bude chvíli trvat. S jejich souhlasem jsem se proto rozhodl soubory zveřejnit na Nexus Mods. Najdete je zde spolu s instalačním návodem. Pokud narazíte na jakékoli problémy, neváhejte mě kontaktovat.

Ukázka

Video ukázka

Galerie

Ukázka překladu 1 Ukázka překladu 2 Ukázka překladu 3 Ukázka překladu 4 Ukázka překladu 5 Ukázka překladu 6 Ukázka překladu 7 Ukázka překladu 8

1

lokalizace = překlad a přizpůsobení hry danému jazyku tak, aby byl překlad pro hráče přirozený a odpovídal místním zvyklostem a kultuře (lokalizace tedy zahrnuje například převádění jednotek, jako jsou stopy, na metry atd.)


Vytvořeno 20.3.2025

Banner

Bezierve is a tool for extracting information about a Bézier curve from an image, such as its corresponding formulae, positions of extremum points and more.

Development

I developed the program in Python's library Tkinter in 2023. Upon releasing version 1.0, I posted a video about Bezierve on my YouTube channel. Since then, I have developed version 2.0 which fixes many issues I had with version 1.0 and also adds new features.

Version 1.0

To get an image of what Bezierve's premise is and what features it offers, you can watch the YouTube video I made about it.

New with version 2.0

  • Cleaner UI
  • Option to add more than one Bézier curve (either linear, quadratic or cubic)
  • Option to save the current configuration of curves as a savefile and load it later
  • Option to change curve's color
  • Option to show the curve's bounding box (technically known as its axis-aligned minimum bounding rectangle)
  • Formulae no longer produce horizontally flipped curves when used outside Bezierve, an issue present in version 1.0
  • Completely restructured code to follow a proper OOP design

You can see the version 2.0's new UI here:

New UI of version 2.0

Created on March 20th, 2025

Banner

vscode2latex is a VS Code extension that converts selected code into a LaTeX file, preserving VS Code’s syntax highlighting and colors using a default or custom template. You can find it on the VS Code Marketplace.

Development

The initial version of this extension relied on a Python script running externally on the client’s device, requiring the installation of several non-standard libraries. To improve usability and remove these dependencies, I sought a solution that did not rely on Python.

Although my experience with JavaScript was limited and no straightforward approach was apparent, I discovered the CodeSnap extension, which offers similar functionality. Leveraging its codebase enabled the development of version 2.0, which runs purely on JS.

Special thanks to the author(s) of CodeSnap for their invaluable contribution.

Use

  • Download the extension from the VS Code Marketplace
  • Select code that is syntax-highlighted
  • Open the Command Palette (default shortcut: F1)
  • Run the vscode2latex: Convert Code to LaTeX command
  • Copy the generated LaTeX code from the sidebar

Template

By default, the extension uses this .tex template. You can use your own custom template by setting the vscode2latex.templateFilepath setting to your custom filepath. Be sure to include these placeholders:

  • VERBATIM_PLACEHOLDER: The formatted code with \textcolor commands will be inserted here.
  • DEFINITIONS_PLACEHOLDER: The color definitions with \definecolor commands will be inserted here.
  • BG_COLOR_PLACEHOLDER: The background color’s hex code (without #) will be inserted here.

Changelog

Updates to this extension are documented in a changelog which can be found here.

Showcase

UI showcase

Created on June 30th, 2025

Burning subtitles into a Bink Video File (.bik)

While working on the Czech localization of Enderal: Forgotten Stories, I needed to burn subtitles into a .bik video. Upon realizing there isn't a guide on how to do this on the internet yet, I decided to write this article. Note that there may be other, simpler methods. Also, this guide is for Windows users; however, with some adjustments, it should still be possible on other operating systems.

Note: It might be a good idea to backup your input files just in case.

Goal

Input files

  1. .bik video file
  2. .srt or .txt subtitle file

Output file

  1. .bik video file with subtitles burned into it

Required programs

  1. FFmpeg (Install via this article, tested version 2023-05-31)
  2. Optional: VLC Media Player (Download here, tested version 3.0.18)
  3. RAD Video Tools (Download here - Mind the password, tested version 2025.01)

Process Overview

  1. Convert .bik to .mp4 using FFmpeg
  2. Generate .wav from .mp4 using FFmpeg
  3. Convert .srt or .txt to .ass using FFmpeg
  4. Optional: Configure .ass formatting
  5. Burn .ass into .mp4 using FFmpeg
  6. Convert .mp4 to .bik using Rad Video Tools (with sound compression turned off)
  7. Add sound from .wav to .bik using Rad Video Tools

Detailed Guide

0. Prepare files

To make the process easier, put both the initial .bik video file and the .srt or .txt subtitle file in one folder together.

1. Convert .bik to .mp4 using FFmpeg

To convert a Bink Video File (.bik) to .mp4, we will use FFmpeg. First, open the Command Prompt and navigate to the directory where your input files are located using the cd command. For example:

cd "C:\Program Files\" (or D: and then cd "D:\Program Files\" if navigating to a different drive)

You can then convert the .bik video file using:

ffmpeg -i "input.bik" -c:v libx264 -preset fast -crf 23 -c:a aac "input.mp4"

(replace input.bik with the name of your .bik file)

Setting the crf value (default = 23) lower will make the output .mp4 video higher quality at the expense of its size (0 = lossless but largest file size).

2. Generate .wav from .mp4 using FFmpeg

You will also need a .wav sound file for later. You can generate it from the .mp4 you just created using:

ffmpeg -i "input.mp4" -acodec pcm_s16le -ar 44100 -ac 2 "output.wav"

3. Convert .srt or .txt to .ass using FFmpeg

Next, you will need to convert your subtitle file to an .ass file. Note that this subtitle file should already be filled and in accordance with the SubRip file format.

For an .srt file, the command will be ffmpeg -i "input.srt" "output.ass"

(replace input.srt with the name of your .srt file)

For an .txt file, the command will be ffmpeg -i "input.txt" "output.ass"

(replace input.txt with the name of your .txt file)

4. Optional: Configure .ass formatting

The .ass subtitle format supports a wide range of customization. You can edit the subtitles directly in Notepad and preview them in the VLC Media Player.

5. Burn .ass into .mp4 using FFmpeg

If your .ass subtitles are ready to be burned into your video, you can do so using this command:

ffmpeg -i "input.mp4" -vf "ass=output.ass" "output.mp4"

Note that this step may take up to several minutes.

6. Convert .mp4 to .bik using Rad Video Tools (with sound compression turned off)

After you extract the .7z file using the password and installing Rad Video Tools, open it and navigate to your directory inside the program. Then, select output.mp4 and press Bink it!, as shown in the image below:

Instructions visualization

In the new window, make sure that the Bink 1 file format (AKA .bik) is selected and that the Compress audio checkbox is unchecked (When left checked, the generated .bik file will have just static noise instead of the original audio, not sure why this is). After that, press Bink, as shown in the image below:

Instructions visualization

Note that this step may take up to several tens of minutes or even hours if the video is especially long (> 10 min).

After the compression is finished, close all RAD Video Tools windows.

7. Add sound from .wav to .bik using Rad Video Tools

Now, open RAD Video Tools once again and navigate to your directory inside the program. Here, select the newly generated output.bik and click Mix in sound, as shown in the image below:

Instructions visualization

In the new window, click Browse, navigate to your directory and select output.wav. After that, press Mix, as shown in the image below:

Instructions visualization

You can also adjust the Sound compression level to reduce file size or improve audio quality, depending on your needs.

After the sound mixing finishes, close all RAD Video Tools windows.

Conclusion

You should now be left with a file called New_output.bik in your directory. RAD Video Tools also provides a Bink Video File player, so you can check if the process was successful.


Created on March 20th, 2025