Compare commits
10 commits
8fea9ff76b
...
d71dbc3937
Author | SHA1 | Date | |
---|---|---|---|
d71dbc3937 | |||
f6b849746a | |||
8974fd3623 | |||
5a0472cc8f | |||
d0100ce001 | |||
4f54a8c602 | |||
c2e2aac13c | |||
159ed3dd63 | |||
81ff6b4330 | |||
507404111c |
14 changed files with 196 additions and 40 deletions
27
about.html
27
about.html
|
@ -32,6 +32,33 @@
|
||||||
I like the Rust programming language, have shitty takes,
|
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)
|
and know the world I was given is broken and immoral(hopefully we could change it one day)
|
||||||
</p>
|
</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>
|
</div>
|
||||||
<p>
|
<p>
|
||||||
I thought I will have more to write here(as of 14/5/22)...
|
I thought I will have more to write here(as of 14/5/22)...
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Build Scripts/"</INJECT>
|
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Build Scripts/"</INJECT>
|
||||||
|
|
||||||
<h1>Build Scripts</h1>
|
<h1>Build Scripts</h1>
|
||||||
<div>
|
<div style="text-align:center;">
|
||||||
<p>
|
<p>
|
||||||
Folder keeping build script helpers(for running using my injector).
|
Folder keeping build script helpers(for running using my injector).
|
||||||
<br>
|
<br>
|
||||||
|
@ -9,11 +9,8 @@
|
||||||
(yes i know i hate python but its v quick for simple stuff)
|
(yes i know i hate python but its v quick for simple stuff)
|
||||||
to transform input from <code>ls</code> into a list of <a> tags(with space between)
|
to transform input from <code>ls</code> into a list of <a> tags(with space between)
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<hr/>
|
||||||
here is the list of files here:
|
<INJECT>python $HOME/bscripts/ls_table.py $CURRENT</INJECT>
|
||||||
<br>
|
|
||||||
<INJECT>cd $CURRENT && ls *.* | python3 $HOME/bscripts/ls_to_a.py</INJECT>
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,4 +3,4 @@ while True:
|
||||||
a = input()
|
a = input()
|
||||||
except:
|
except:
|
||||||
break
|
break
|
||||||
print('<a href=\'#' + a + '\'>' + a.capitalize() + '</a> ')
|
print('<a href=\'#' + a + '\'>' + a.capitalize() + '</a> ')
|
||||||
|
|
27
bscripts/ls_table.py
Normal file
27
bscripts/ls_table.py
Normal 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>')
|
|
@ -6,4 +6,4 @@ while True:
|
||||||
a = input()
|
a = input()
|
||||||
except:
|
except:
|
||||||
break
|
break
|
||||||
print('<a href=\'' + a + '\'>' + a.replace('.html', '') + '</a><t>')
|
print('<a href=\'' + a + '\'>' + a.replace('.html', '') + '</a> ')
|
||||||
|
|
|
@ -7,12 +7,14 @@ body {
|
||||||
h1 {
|
h1 {
|
||||||
color : rgb(255, 40, 60);
|
color : rgb(255, 40, 60);
|
||||||
}
|
}
|
||||||
|
h1, h2, h3 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
div {
|
div {
|
||||||
width: 90%;
|
width: 60%;
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
align-self: center;
|
text-align: left;
|
||||||
text-align: center;
|
|
||||||
border-color: rgb(60, 0, 90);
|
border-color: rgb(60, 0, 90);
|
||||||
border-width: thick;
|
border-width: thick;
|
||||||
border-style: double;
|
border-style: double;
|
||||||
|
@ -20,6 +22,8 @@ div {
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
padding-left: 5%;
|
||||||
|
padding-right: 5%;
|
||||||
}
|
}
|
||||||
a {
|
a {
|
||||||
color:rgb(150, 150, 255);
|
color:rgb(150, 150, 255);
|
||||||
|
@ -29,6 +33,7 @@ hr {
|
||||||
color: rgb(60, 0, 90);
|
color: rgb(60, 0, 90);
|
||||||
background-color: rgb(60, 0, 90);
|
background-color: rgb(60, 0, 90);
|
||||||
border-color: rgb(60, 0, 90);
|
border-color: rgb(60, 0, 90);
|
||||||
|
margin-left: 5%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
18
index.html
18
index.html
|
@ -1,11 +1,10 @@
|
||||||
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Rusty's website/"</INJECT>
|
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Rusty's website/"</INJECT>
|
||||||
<p>
|
<p>
|
||||||
Folders: <INJECT>cd $CURRENT && ls */ -d | sed 's/\///' | 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><br>
|
||||||
Files: <INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
|
Files<br> <INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
|
||||||
</p>
|
</p>
|
||||||
|
<div style="text-align:center;">
|
||||||
<div>
|
|
||||||
<p>
|
<p>
|
||||||
Hello and welcome to my personal website
|
Hello and welcome to my personal website
|
||||||
<br><br>
|
<br><br>
|
||||||
|
@ -23,6 +22,15 @@
|
||||||
|
|
||||||
</p>
|
</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>
|
</div>
|
||||||
|
|
||||||
<INJECT>cat $HOME/template/footer.html</INJECT>
|
<INJECT>cat $HOME/template/footer.html</INJECT>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Rusty's website/"</INJECT>
|
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Rusty's website/"</INJECT>
|
||||||
<p>
|
<p>
|
||||||
Folders: <INJECT>cd $CURRENT && ls */ -d | sed 's/\///' | 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><br>
|
||||||
Files: <INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
|
Files<br> <INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h1>
|
<h1>
|
||||||
|
|
99
stories/decentralized mmo.html
Normal file
99
stories/decentralized mmo.html
Normal 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>
|
|
@ -1,17 +1,14 @@
|
||||||
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Stories/"</INJECT>
|
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Stories/"</INJECT>
|
||||||
|
|
||||||
<h1>Stories</h1>
|
<h1>Stories</h1>
|
||||||
<div>
|
<div style="text-align:center;">
|
||||||
<p>
|
<p>
|
||||||
Random stories, either about things I make(programs, games, physical stuff),
|
Random stories, blogs, ideas and more.
|
||||||
<br>
|
<br>
|
||||||
or about stuff that happens to me
|
Things I made/built/thought of or just wanted to share
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Stories:
|
|
||||||
<br>
|
|
||||||
<INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
|
|
||||||
</p>
|
</p>
|
||||||
|
<hr/>
|
||||||
|
<INJECT>python $HOME/bscripts/ls_table.py $CURRENT .html</INJECT>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Injector/"</INJECT>
|
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Injector/"</INJECT>
|
||||||
<p>
|
<p>
|
||||||
Folders: <INJECT>cd $CURRENT && ls */ -d | sed 's/\///' | 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><br>
|
||||||
Files: <INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
|
Files<br> <INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h1>Injector</h1>
|
<h1>Injector</h1>
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<div>
|
<div style="text-align:center;">
|
||||||
<a href = "https://rustystriker.dev/">
|
<a href = "https://rustystriker.dev/">
|
||||||
<h1 style="margin-bottom:0px;">Rusty's Website</h1>
|
<h1 style="margin-bottom:0px;">Rusty's Website</h1>
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -7,11 +7,8 @@
|
||||||
like the <a href = "header.html">header</a> and <a href = "footer.html">footer</a>
|
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)
|
of the pages(also contains the start and end of the pages!, tho I might change that)
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<hr/>
|
||||||
here is the list of templates in here:
|
<INJECT>python $HOME/bscripts/ls_table.py $CURRENT</INJECT>
|
||||||
<br>
|
|
||||||
<INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Useful/"</INJECT>
|
<INJECT>cat $HOME/template/header.html | sed "s/__PAGE TITLE__/Useful/"</INJECT>
|
||||||
|
|
||||||
<h1>Useful</h1>
|
<h1>Useful</h1>
|
||||||
<div>
|
<div style="text-align:center;">
|
||||||
<p>
|
<p>
|
||||||
Useful stuff to know/resources
|
Useful stuff to know/resources
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<hr/>
|
||||||
<INJECT>cd $CURRENT && ls *.html | python3 $HOME/bscripts/ls_to_a.py</INJECT>
|
<INJECT>python $HOME/bscripts/ls_table.py $CURRENT</INJECT>
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue