Upload Hugo Project

This commit is contained in:
SHuRiKeN 2023-10-01 13:13:14 +05:30
parent 13655e7a5a
commit ce215111df
8 changed files with 167 additions and 0 deletions

13
.gitignore vendored Normal file
View File

@ -0,0 +1,13 @@
# Generated files by hugo
/public/
/resources/_gen/
/assets/jsconfig.json
hugo_stats.json
# Executable may be added to repository
hugo.exe
hugo.darwin
hugo.linux
# Temporary lock file while building
/.hugo_build.lock

5
archetypes/default.md Normal file
View File

@ -0,0 +1,5 @@
+++
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
date = {{ .Date }}
draft = true
+++

33
content/about/about.md Normal file
View File

@ -0,0 +1,33 @@
---
title: "About Me"
draft: false
---
___
*So, Surely with hardship comes ease*
*--- Quran 94:5*
___
My name is **Jatin**. I'm known as **SHuRiKeN**, I am currently 21 years old.
I love tinkering with systems, and I like contributing to **Free and Open Source Software**; Big fan of **Linux** and projects like **Godot**, **Blender**. When it comes to my workflow I really like immutable Linux distros and utilizing containers - **Flatpak**, **Distrobox**, **Podman**. Below you can check softwares I use.
I like reading books that improve me Psychologically - Jordan B. Peterson's 12 Rules of Life, Beyond Order; The Clear Quran; are few examples. I also like playing games mostly RTS, various MMORPGs and Indie Games. I also hit the gym daily, so I can be the best version of myself and keep myself disciplined and self controlled.
## Softwares I use
**Operating System** - My own custom OS image based on Silverblue - [ShurikenOS](https://https://github.com/shuriken1812/ShurikenOS)
**Desktop Environment** - [Gnome](https://gnome.org)
**Terminal and Shell** - [Blackbox](https://gitlab.gnome.org/raggesilver/blackbox) and [fish](https://fishshell.com/)
**Code Editor / Dev Environment** - [Neovim](https://neovim.io/) + [NvChad](https://NvChad.com) + [Tmux](https://github.com/tmux/tmux/wiki)
**Web Browser** - [Firefox with Custom user.js]
**Matrix Client** - [SchildiChat](https://schildi.chat/)
**Discord Client** - [Armcord](https://armcord.app/)
## My Socials
You can message me on [Discord](https://discord.com/usrs/489575472024256512) or [Matrix](https://matrix.to/#/@shuriken:fedora.im)
You can send me an [Email](mailto:shuriken@disroot.org)
You can follow me on [Mastodon](https://fosstodon.org/@shuriken) and [X](https://twitter.com/SHuRiKeN1812)
You can view my projects and contributions on [Disroot Git](https://git.disroot.org/SHuRiKeN) (Main) and [Github](https://github.com/shuriken1812) (for contributions and Actions)

View File

@ -0,0 +1,58 @@
---
title: "Distrobox and Apx for Game deployment and testing"
date: 2023-09-24
draft: false
tags: ["distrobox","game-dev"]
---
![Distrobox Apx Logo](/images/distrobox-apx.png "Distrobox and Apx Logo")
Distrobox and Apx lets you use any linux distribution inside your terminal. However in certain ways it can be soo helpful for Game **Deployment** and **Testing**.
| This article focuses on Native Linux deployment and not through compatibility layers like Proton |
|----------------------------------------------------------------------------------------------------|
## Game Deployment and testing ecosystem on Linux
Firstly I would like to touch on how the games are deployed on Linux, the caveats, because it will be important to understand a bit of context before diving into the solutions.
Most of the times deployers rely on their **Game Engines** to provide the export build or executable and ship their games on Steam, Itch, Flathub, their own Site etc. However when it comes to dependencies, they are either expected to be on the host system (example - when you install steam most if not all of the dependencies are installed automatically) or they are bundled with the build itself. Now we already see a few issues with both of these methods -
## The Problems
- In the first scenario where dependencies are expected to be on the host, this is mostly fine with games on steam which don't heavily rely on third party libraries/softwares apart from their engine which usually complies and works with those dependencies (99 percent of native games). However when they deploy such on Itch.io or their own websites, many run into the problem where users don't have required dependencies installed and then they have to either bundle them manually or give instructions to users on how to install them for each distro and in both scenarios they will need to **figure out the dependencies for each distro and even for each user** (this is because of variation between each user having different set of packages installed). And for a AAA game who wants to deploy a native build this can be a massive massive uptaking.
- In the second scenario even tho dependencies are bundled, use of third party libraries and softwares outside the engine may lead to bundled dependencies by the Game Engine to be lacking or unaware of what is needed by certain parts of your games to function. And then we lead to the same cycle as explained in the first scenario.
- In both of the above scenarios there also can be an issue of **dependency versioning**. Distros having different versions of the same package might lead to unexpected bugs, misbehaviour. Which can be a nightmare for Game testers. As this means many distro specific and user specific bugs.
## The ultimate solution - Why not Flatpaks !!!?
Flatpaks in my opinion solves all of the issues above -
- Have a single runtime that you can target and test on which will work identical on every distro !
- Has automated deployment ! once done can be easily maintained.
- Can give you a single built file which you can even upload on Itch.io or your website so users can install it with a single click. **flatpakref**
- Be assured that dependencies versioning is same across all users, as you are targetting a single runtime/ dependencies you included.
**So no user specific bugs, no figuring out user specific dependencies, assured all users have the exact same build, easy to maintain.. where is the issue ?? Well its adoption on both on user level (improving rapidly), Steam, lack of runtimes**
- Currently steam or itch.io do not consider flatpak as a dependency and do not work well with a flatpak. (not talking about steam flatpak but game as a flatpak on steam). Even tho on itch you can deploy a flatpak file !
- Game Engines don't have a flatpak runtime or an export build users can easily pickup (other runtimes can still be used and deps can be bundled), however having a environment specific runtime always helps !
- Not all users / distros use flatpak.
- As a sidenote people using **Godot** there is a flatpak runtime they can use - [Godot Engine BaseApp](https://github.com/flathub/org.godotengine.godot.BaseApp)
## Distrobox and Apx
Even tho I believe Flatpaks are the ultimate solution, currently we have to go by "it is what it is" philosophy and work with what we have. So we have different users on different distros having different package versions and an export build provided by our Game Engine. And spoiler alert we can create this whole scenario on a single system using Distrobox or Apx (built on distrobox, using it under the hood making it easier to use). Because we have to replicate the problem on our system in order to solve it.
- Allows us to quickly fire up any distro container.
- Can fire up multiple distro containers to replicate user environments.
- Allows us to figure out dependencies required for each distro.
- As the containers themselves are super minimal, we can be sure users already have those packages and can figure out a dependency list on top of that.
- Help us to test and replicate most distro specific bugs.
- Helps us to replicate user specific bugs by replicating their environment on a single system.
- Deployers can then bundle the dependencies that are causing dependency version specific issues.
Like this these containers can help us replicating the exact environment we need on a single system, it might still leave some very low level stuff behind like Kernel specific issue and others but those don't happen 99.99999 percent of the times.

57
hugo.toml Normal file
View File

@ -0,0 +1,57 @@
baseURL = 'https://shuriken.sh/'
languageCode = 'en-us'
title = 'Shuriken'
theme = "poison"
paginate = 10
pluralizelisttitles = false
[params]
brand = "Shuriken"
brand_image = "/images/pfp.png"
description = "A tinkerer, contributing to open source. I love developing games, automation, containers. Also a fitness enthusiast, trying to be the best version of myself."
dark_mode = true
menu = [
{Name = "About", URL = "/about/", HasChildren = false},
{Name = "Posts", URL = "/posts/", Pre = "Recent", HasChildren = true, Limit = 5},
]
twitter_url = "https://twitter.com/SHuRiKeN1812"
mastodon_url = "https://fosstodon.org/@shuriken"
discord_url = "https://discord.com/usrs/489575472024256512"
matrix_url = "https://matrix.to/#/@shuriken:fedora.im"
email_url = "mailto:shuriken@disroot.org"
# sidebar
sidebar_bg_color = "#202020" # default is #202020
sidebar_img_border_color = "#515151" # default is #515151
sidebar_p_color = "#909090" # default is #909090
sidebar_h1_color = "#FFF" # default is #FFF
sidebar_a_color = "#FFF" # default is #FFF
sidebar_socials_color = "#FFF" # default is #FFF
moon_sun_color = "#FFF" # default is #FFF
moon_sun_background_color = "#515151" # default is #515151
# light mode
text_color = "#222" # default is #222
content_bg_color = "#FAF9F6" # default is #FAF9F6
post_title_color = "#303030" # default is #303030
list_color = "#5a5a5a" # default is #5a5a5a
link_color = "#268bd2" # default is #268bd2
date_color = "#515151" # default is #515151
table_border_color = "#E5E5E5" # default is #E5E5E5
table_stripe_color = "#F9F9F9" # default is #F9F9F9
# dark mode
text_color_dark = "#eee" # default is #eee
content_bg_color_dark = "#121212" # default is #121212
post_title_color_dark = "#DBE2E9" # default is #DBE2E9
list_color_dark = "#9d9d9d" # default is #9d9d9d
link_color_dark = "#268bd2" # default is #268bd2
date_color_dark = "#9a9a9a" # default is #9a9a9a
table_border_color_dark = "#515151" # default is #515151
table_stripe_color_dark = "#202020" # default is #202020
[params.meta]
favicon = true
[taxonomies]
series = 'series'
tags = 'tags'

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
static/images/pfp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 KiB

1
themes/poison Submodule

@ -0,0 +1 @@
Subproject commit 9348267ecf29174cd4f2e5a5ba9eeb9d06edadec