Compare commits

..

10 commits

14 changed files with 196 additions and 40 deletions

View file

@ -32,6 +32,33 @@
I like the Rust programming language, have shitty takes,
and know the world I was given is broken and immoral(hopefully we could change it one day)
</p>
<hr>
<h2 id="hobbies">Hobbies</h2>
<p>
Programming, gaming, 3D printing, and cooking(not necessarily in that order)
<br><br>
Programming: Usually in Rust(as stated above), but I might also do embedded C stuff <i>(oNcE i GeT tO iT)</i>,
My current projects(as of 12/9/22) are: lazy_knight(a 2d game), command_injector(the html helper used for this website),
shape_maker(2d level editor built around drawing random shapes, made it for lazy_knight originally) and
gitea_executor(simple build server for gitea based on make)
<br>
and yes, they are all in rust...
<br>
Also, I plan on getting more and more into embedded programming, currently I want to make a standalone "VR Controllers",
to play VR-like games but without actual VR(kinda like wii games but on PC and open source and no need to get a wii remote)
<br><br>
Gaming: Mostly shooters(almost entirely shooters to be fair), but I also enjoy platformers(and a good combination of them is top notch).
<br>
pretty much the reason I want to develop games is to create the games *I* want to play, and open sourcing them is really neat because
now I dont need to care about marketing and everything, because I just dont care(not like imma make money out of it anyway...)
<br><br>
3D Printing: I got myself a Creatily Ender 3 v2 3D printer, and boi is it fun(and noisy), but I really enjoy dealing with it and printing stuff.
My designing skills are not as good as I would like, but I manage the basics that I currently need(while printing cool models from thingiverse)
<br><br>
Cooking: By cooking I also mean baking, but in general, the process of creating something tasty is just fun. Cooking specifically is kinda a must
skill imho, since it is such a helpful skill, which also spices your meals :). And baking is also really fun, you do some (usually) simple steps,
and BAM you now have cookies!
</p>
</div>
<p>
I thought I will have more to write here(as of 14/5/22)...

View file

@ -1,7 +1,7 @@
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Build Scripts/"</INJECT>
<h1>Build Scripts</h1>
<div>
<div style="text-align:center;">
<p>
Folder keeping build script helpers(for running using my injector).
<br>
@ -9,11 +9,8 @@
(yes i know i hate python but its v quick for simple stuff)
to transform input from <code>ls</code> into a list of &lt;a&gt; tags(with space between)
</p>
<p>
here is the list of files here:
<br>
<INJECT>cd $CURRENT && ls *.* | python3 $HOME/bscripts/ls_to_a.py</INJECT>
</p>
<hr/>
<INJECT>python $HOME/bscripts/ls_table.py $CURRENT</INJECT>
</div>

View file

@ -3,4 +3,4 @@ while True:
a = input()
except:
break
print('<a href=\'#' + a + '\'>' + a.capitalize() + '</a> ')
print('<a href=\'#' + a + '\'>' + a.capitalize() + '</a>&emsp;')

27
bscripts/ls_table.py Normal file
View file

@ -0,0 +1,27 @@
import sys
import os
import time
# Make sure we got a directory
if len(sys.argv) < 2:
print("Error: Directory not given!")
quit()
# Get path, files, and creation/modification times
path = sys.argv[1]
file_filter = sys.argv[2] if len(sys.argv) > 2 else ''
files = [[x, os.path.getctime(f'{path}/{x}'), os.path.getmtime(f'{path}/{x}')] for x in os.listdir(path) if x.endswith(file_filter)]
# sort by creation time
files.sort(key= lambda x: x[1], reverse=True)
# print start of table(including headers)
print('<table style="border-spacing: 20px;text-align: left;margin-left: auto;margin-right: auto;">')
print('<tr>\n<th></th><th>Created</th><th>Modified</th></tr>')
# print each row
for x in files:
if x[0] == 'index.html': # skip the index.html file because kinda boring
continue
x[0] = f'<a href="{x[0]}">{x[0].replace(".html", "")}</a>'
x[1] = time.strftime("%b %d %Y", time.strptime(time.ctime(x[1])))
x[2] = time.strftime("%b %d %Y", time.strptime(time.ctime(x[2])))
print(f'<tr><td>{x[0]}</td><td>{x[1]}</td><td>{x[2]}</td></tr>');
# finish printing the table
print('</table>')

View file

@ -6,4 +6,4 @@ while True:
a = input()
except:
break
print('<a href=\'' + a + '\'>' + a.replace('.html', '') + '</a><t>')
print('<a href=\'' + a + '\'>' + a.replace('.html', '') + '</a>&emsp;')

View file

@ -7,12 +7,14 @@ body {
h1 {
color : rgb(255, 40, 60);
}
h1, h2, h3 {
text-align: center;
}
div {
width: 90%;
width: 60%;
position: relative;
margin: auto;
align-self: center;
text-align: center;
text-align: left;
border-color: rgb(60, 0, 90);
border-width: thick;
border-style: double;
@ -20,6 +22,8 @@ div {
padding: 5px;
padding-bottom: 10px;
margin-bottom: 10px;
padding-left: 5%;
padding-right: 5%;
}
a {
color:rgb(150, 150, 255);
@ -29,6 +33,7 @@ hr {
color: rgb(60, 0, 90);
background-color: rgb(60, 0, 90);
border-color: rgb(60, 0, 90);
margin-left: 5%;
}

View file

@ -1,11 +1,10 @@
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Rusty's website/"</INJECT>
<p>
Folders: <INJECT>cd $CURRENT && ls */ -d | sed 's/\///' | python3 $HOME/bscripts/ls_to_a.py</INJECT>
<br>
Files: <INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
Folders<br> <INJECT>cd $CURRENT && ls */ -d | sed 's/\///' | python3 $HOME/bscripts/ls_to_a.py</INJECT>
<br><br>
Files<br> <INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
</p>
<div>
<div style="text-align:center;">
<p>
Hello and welcome to my personal website
<br><br>
@ -23,6 +22,15 @@
</p>
<hr />
<h2>Where to find me on other places</h2>
<p>
<a rel="me" href="https://qoto.org/@RustyStriker">Mastodon</a>
<a href="https://gitea.rustystriker.dev/RustyStriker">Gitea</a>
<a href="https://github.com/RustyStriker/">Github</a>
<br>
@rusty_striker:matrix.org on Matrix
</p>
</div>
<INJECT>cat $HOME/template/footer.html</INJECT>

View file

@ -1,8 +1,8 @@
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Rusty's website/"</INJECT>
<p>
Folders: <INJECT>cd $CURRENT && ls */ -d | sed 's/\///' | python3 $HOME/bscripts/ls_to_a.py</INJECT>
<br>
Files: <INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
Folders<br> <INJECT>cd $CURRENT && ls */ -d | sed 's/\///' | python3 $HOME/bscripts/ls_to_a.py</INJECT>
<br><br>
Files<br> <INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
</p>
<h1>

View file

@ -0,0 +1,99 @@
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Decentralized MMO/"</INJECT>
<p>
Folders<br> <INJECT>cd $CURRENT && ls */ -d | sed 's/\///' | python3 $HOME/bscripts/ls_to_a.py</INJECT>
<br><br>
Files<br> <INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
</p>
<h1>Decentralized/Federated MMO</h1>
<p>
<INJECT>grep 'h[1-3] id="' $CURRENT/$FILE | awk -F \" '{ print $2 }' | python $HOME/bscripts/internal_links.py</INJECT>
</p>
<div>
<h2 id="introduction">Introduction</h2>
<p>
Back in my childhood I used to play quite the amount of MMORPGs (mostly because they were free, but also because they were online).<br>
The more time passed, the less MMORPGs I got to play, most of the good options were either shut down
or got SUCH a power creep I lost interest in them (like MapleStory when they started adding a lot of overpowered classes).
</p>
<p>
As an aspiring game developer, I hope to one day attempt making my own MMORPG, and something which is (sort of) important to me
is for the game to be decentralized/federated.
</p>
<hr/>
<h2 id="why make a decentralized mmo tho?">Why make a decentralized MMO tho?</h2>
<p>
Well, you see, whenever I look for alternatives to big centralized services (like Github or social medias),
it always seems to me that the best choice is to decentralize and federate it.<br> That way, anyone can create their own instance
and not miss out on everyone else, allowing both greater control to the individual, while also sharing the costs between those
who host their own (and those who decide to donate them).<br>
</p>
<p>
Besides, there are some useful advantages to federating a bunch of servers in an MMO which will hopefully become clearer later on.
</p>
<hr/>
<h2 id="the big picture">The Big Picture</h2>
<p>
Mainly, there will be 2 different types of servers:
<ul>
<li><a href="#hubs">Hubs (or Home servers)</a> - Home servers you can register on and play with everyone else</li>
<li><a href="#dungeons">Dungeons (or Nodes)</a></li>
</ul>
</p>
<hr/>
<h2 id="a note going forward">A note going forward</h2>
<p>
My idea of decentralized/federated MMO involves quite the amount of trust,
trust between federating servers (federation will be opt in to allow greater control over gameplay),
and trusting clients to not lie when they go into a dungeon.
</p>
<p>
Another thing is, while I do wish I could implement this idea into an actual MMORPG, this is merely an idea right now,
if you want to implement this idea into your game, feel free to do so (and maybe link here as well).
</p>
<hr/>
<h2 id="hubs">Hubs</h2>
<p>
Hubs (or Home servers) are the main servers of the network, they are the main authority over your account.
</p>
<p>
Hubs have an overworld with stuff to do (or maybe not), and where you meet other players and can make parties,
communicate with others, trade and all the usual stuff people do in MMOs (like a dance party).
</p>
<p>
Federation between hubs is a 2 way opt in federation, which means both servers need to accept the federation for the federation to exist
(probably accept the federation by creating a portal somewhere in the overworld).
Federated servers also needs to sync any plugins/mods/addons which create new items
(or anything you can transfer between servers, so a hat needs to by synced but a new boss doesnt need to).
</p>
<p>
Federated servers needs to have trust between them, because federating with 2 servers means said servers are now also federating
(creating a federation cluster)
</p>
<hr/>
<h2 id="dungeons">Dungeons</h2>
<p>
Dungeons (or Nodes/Edges) are sub-servers, they are simply a dungeon/map for a party to explore/play in,
and should be where most of the game content occur,
they are hosted by whoever wants to and are technically simply a level (plus some game data in addition, though they are part of the level)
with an end condition (or fail condition) and a reward.
</p>
<p>
Dungeons dont federate with each other (and technically dont federate at all), but hubs can link/federate (one way) to them and allow their
players to go into a dungeon and get the rewards from it (or optionally, modify the rewards to better fit the server).
</p>
<p>
Dungeons occur in private instances available only to the exploring party.
this means that the hub server trusts the players to not lie about the results of the dungeon
(although for end rewards, the server can roll the dice for them, to allow random loot in dungeons).
</p>
<p>
<h3 id="quick note on dungeons">Quick note on dungeons</h3>
Although dungeons usually get linked to from hub servers, it is also possible to allow dungeons to be played even if they are not linked,
thus allowing players to play all dungeons, but it means non-linked dungeons will give no actual reward (or anything at all).
</p>
</div>
<INJECT>cat $HOME/template/footer.html</INJECT>

View file

@ -1,17 +1,14 @@
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Stories/"</INJECT>
<h1>Stories</h1>
<div>
<div style="text-align:center;">
<p>
Random stories, either about things I make(programs, games, physical stuff),
Random stories, blogs, ideas and more.
<br>
or about stuff that happens to me
</p>
<p>
Stories:
<br>
<INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
Things I made/built/thought of or just wanted to share
</p>
<hr/>
<INJECT>python $HOME/bscripts/ls_table.py $CURRENT .html</INJECT>
</div>

View file

@ -1,8 +1,8 @@
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Injector/"</INJECT>
<p>
Folders: <INJECT>cd $CURRENT && ls */ -d | sed 's/\///' | python3 $HOME/bscripts/ls_to_a.py</INJECT>
<br>
Files: <INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
Folders<br> <INJECT>cd $CURRENT && ls */ -d | sed 's/\///' | python3 $HOME/bscripts/ls_to_a.py</INJECT>
<br><br>
Files<br> <INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
</p>
<h1>Injector</h1>

View file

@ -36,7 +36,7 @@
</head>
<body>
<header>
<div>
<div style="text-align:center;">
<a href = "https://rustystriker.dev/">
<h1 style="margin-bottom:0px;">Rusty's Website</h1>
</a>

View file

@ -7,11 +7,8 @@
like the <a href = "header.html">header</a> and <a href = "footer.html">footer</a>
of the pages(also contains the start and end of the pages!, tho I might change that)
</p>
<p>
here is the list of templates in here:
<br>
<INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
</p>
<hr/>
<INJECT>python $HOME/bscripts/ls_table.py $CURRENT</INJECT>
</div>

View file

@ -1,13 +1,12 @@
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Useful/"</INJECT>
<h1>Useful</h1>
<div>
<div style="text-align:center;">
<p>
Useful stuff to know/resources
</p>
<p>
<INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
</p>
<hr/>
<INJECT>python $HOME/bscripts/ls_table.py $CURRENT</INJECT>
</div>