Conception of Steam VPK
image

In this post, I go over the history of Steam VPK and showcase some stuff behind the scene!

Before the next progress report for Steam VPK arrives, let’s talk about the history of Steam VPk.

The Shell Script Era

As mentioned in the last post, Steam VPK began life in April. However, that’s only the GJS frontend.

The actual concept of Steam VPK dates back to June 2022, almost a year before that. Initially, Steam VPK was a shell program that adds automation to my Left 4 Dead 2 modding experience. Steam VPK was a folder with GNU Make script and some shell scripts inside. Here, I can extract .vpk files into folders, then when I modify the content of these folders, I can run make then new .vpk files will be smartly created (only create if folder modified) and linked to game folder. Steam VPK made modding easier, especially for me a novice modder. As the workshop community grew, then my demands grew, so did Steam VPK. I added the ability merge .vpk files together, the ability to download workshop files, then add thumbnails to add-on files, etc. Summer that year was wild.

The C Era

When summer ended, I started my first year at university, and so no more time for Steam VPK. I did devote some time every now and then, but there are many more interesting things going on. At school I was learning computer hardwares, doing front-end web development, etc.

During this time I was planning to upgrade Steam VPK to a GTK app, written in C. I was learning C during summer and at school, so why not. But this plan really took me down to a rabbit hole. The more GTK documentation I read the more I realized how hard it is. Writing OOP code in C using the GObject Object system is essentially doing OOP but with no help from the compiler, you must understand how OO works under the hood and write a lot of boilerplate code. Like writing procedural code using assembly languages. This got me stuck for a while.

The Hello world version of Steam VPK, a.k.a. Mates VPK

The “Hello world” version of Steam VPK, a.k.a. Mates VPK

During this time I also began using Figma to prototype UI. It remains a passion of mine to this day. Tools like Workbench have helped me prototype entire programs, but Figma gives me the freedom to draw whatever I want.

undefined

A prototype I drew in Figma

The GJS Era

At April, the storms have finally calmed. With my newfound webtech knowledge I decided to revive Steam VPK. And I’ve been working non-stop to this day. This time I used GJS, which is GTK with JavaScript binding. The JavaScript programming language really boosted productivity.

undefined

A prototype I drew in Figma

*Draft logo for Steam VPK, which is a modified, L4D2-esque version of the Extension Manager logo*

Draft logo for Steam VPK, which is a modified, L4D2-esque version of the Extension Manager logo

The Extension Manager logo in question

The Extension Manager logo in question

Drafts for the Steam VPK logo

Drafts for the Steam VPK logo

C won’t be missed, but not because I won’t use it. There’s plan for it in the future. Steam VPK will need to have the ability to pack/unpack .vpk files, and the tool for this is best written in a lower-level language like C. Definitely not JavaScript.

The Name

I just randomly picked. steam-vpk was a folder of scripts. There’s steam because I was fiddling with mods from the Steam Workshop, and there’s vpk because that’s the archival format of the mods. Later on I’ve tried other names:

  • myso (it’s random)
  • mates-vpk (mates to give a PDA vibe)
  • cedabag (ceda as in CEDA, the muddy health org in Left 4 Dead 2, and bag because I used a bag analogy to describe the app; imagine a bag carrying items, then this is an app carrying add-on items).

steam-vpk just sticks; I want to honor the project’s origin.

The Others

I’m currently doing other projects as well. Steam VPK has gone on for so long and through so many changes that I now need to breathe some fresh air.

I’m working on a fork of Setzer that uses modern UI. Purely experimental, it’s very fun so far.

I might work on more front-ends for Steam VPK. I’m dissatisfied with the current UI. There are only so many bugs you can fix before you realize how deep-rooted some issues are, it’s down to the design/architectural level. Thankfully, the current back-end can be used. I’m glad that I separated this project into two components, the back-end and the front-end.

And there are some undisclosed apps. Only in concept phase.

Check out Steam VPK here! Follow this blogging site for more updates in the future!

Cheers. :-)



A weblog of Le Nguyen Gia Bao.
Powered by Jekyll. Forked and heavily modified from jekyll-theme-WuK.