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,
|
||||
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)...
|
||||
|
|
|
@ -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 <a> 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>
|
||||
|
||||
|
||||
|
|
|
@ -3,4 +3,4 @@ while True:
|
|||
a = input()
|
||||
except:
|
||||
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()
|
||||
except:
|
||||
break
|
||||
print('<a href=\'' + a + '\'>' + a.replace('.html', '') + '</a><t>')
|
||||
print('<a href=\'' + a + '\'>' + a.replace('.html', '') + '</a> ')
|
||||
|
|
|
@ -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%;
|
||||
}
|
||||
|
||||
|
||||
|
|
18
index.html
18
index.html
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
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>
|
||||
|
||||
<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>
|
||||
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue