Skip to content
This repository has been archived by the owner on Dec 30, 2024. It is now read-only.

Commit

Permalink
⚰️ Discontinued
Browse files Browse the repository at this point in the history
  • Loading branch information
Chasmical committed Feb 3, 2024
1 parent 99cd980 commit ceeb9a1
Show file tree
Hide file tree
Showing 13 changed files with 329 additions and 26 deletions.
19 changes: 19 additions & 0 deletions website/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"typescript.tsdk": "node_modules\\typescript\\lib",
"editor.tabSize": 2,
"editor.insertSpaces": true,
"[javascript][javascriptreact][typescript][typescriptreact][json][jsonc][css][scss]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"auto-close-tag.disableOnLanguage": [
"typescript",
"typescriptreact",
"csharp"
],
"files.eol": "\n",
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"[markdown][mdx]": {
"files.trimTrailingWhitespace": false
}
}
16 changes: 6 additions & 10 deletions website/RogueLibs (docs).code-workspace
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
{
"folders": [
{
"path": "."
}
],
"settings": {
"typescript.tsdk": "node_modules\\typescript\\lib"
},
"typescript.tsdk": "./node_modules/typescript/lib"
}
"folders": [
{
"path": "."
}
],
}
4 changes: 2 additions & 2 deletions website/blog/2021-08-18/roguelibs-v3.1.0.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: RogueLibs v3.1.0 released!
title: RogueLibs v3.1.0
author: Abbysssal
author_title: Creator of RogueLibs
author_url: https://github.com/Chasmical
author_image_url: https://github.com/Chasmical.png
tags: [roguelibs, release]
tags: [blog, roguelibs]
description: Completely replaced the vanilla localization system.
image: https://i.imgur.com/XaNGCx7.png
hide_table_of_contents: false
Expand Down
2 changes: 1 addition & 1 deletion website/blog/2021-08-31/what-i-hate-about-sor.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ author: Abbysssal
author_title: Creator of RogueLibs
author_url: https://github.com/Chasmical
author_image_url: https://github.com/Chasmical.png
tags: [blog, sor2]
tags: [blog, modding, sor, sor2]
description: The code is really hard and wet.
---

Expand Down
4 changes: 2 additions & 2 deletions website/blog/2022-01-30/roguelibs-v3.5.0-beta.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: RogueLibs v3.5.0 enters beta
title: RogueLibs v3.5.0-beta
author: Abbysssal
author_title: Creator of RogueLibs
author_url: https://github.com/Chasmical
Expand All @@ -22,7 +22,7 @@ In RogueLibs v3.5.0-beta.X all of the objects will have this button. And by "tha

Click "Read More" to see the entire to-do list.

<!--truncate-->
{/* truncate */}

❌`Agent`, ✅`AirConditioner`, ✅`AlarmButton`, ✅`Altar`, ✅`AmmoDispenser`, ❌`ArcadeGame`, ❌`ATMMachine`, ❌`AugmentationBooth`, ✅`Barbecue`, ❌`BarbedWire`, ❌`Bars`, ❌(?)`BarStool`, ❌(?)`Bathtub`, ❌`Bed`, ❌(?)`Boulder`, ❌(?)`BoulderSmall`, ❌(?)`Bush`, ❌`CapsuleMachine`, ❌(?)`Chair`, ❌(?)`ChestBasic`, ❌`CloneMachine`, ❌`Computer`, ❌(?)`Counter`, ❌`Crate`, ❌(?)`Desk`, ❌`Door`, ❌`Elevator`, ❌(?)`ExplodingBarrel`, ❌`FireHydrant`, ❌(?)`FirePlace`, ❌(?)`FireSpewer`, ❌(?)`FlameGrate`, ❌(?)`FlamingBarrel`, ❌(?)`GasVent`, ❌`Generator`, ❌`Generator2`, ❌(?)`Gravestone`, ❌(?)`Item`, ❌`Jukebox`, ❌(?)`KillerPlant`, ❌(?)`Lamp`, ❌`LaserEmitter`, ❌`LoadoutMachine`, ❌(?)`LockdownWall`, ❌(?)`Manhole`, ❌(?)`MineCart`, ❌(?)`MovieScreen`, ❌`PawnShopMachine`, ❌(?)`Plant`, ❌`Podium`, ❌`PoliceBox`, ❌(?)`PoolTable`, ❌`PowerBox`, ❌`Refrigerator`, ❌`Safe`, ❌`SatelliteDish`, ❌(?)`SawBlade`, ❌`SecurityCam`, ❌(?)`Shelf`, ❌(?)`Sign`, ❌(?)`SlimeBarrel`, ❌(?)`SlimePuddle`, ❌`SlotMachine`, ❌(?)`Speaker`, ❌(?)`StartingPoint`, ❌(?)`Stove`, ❌(?)`SwitchBasic`, ❌(?)`Table`, ❌(?)`TableBig`, ❌(?)`Television`, ❌`Toilet`, ❌(?)`Train`, ❌`TrapDoor`, ❌(?)`TrashCan`, ❌(?)`Tree`, ❌(?)`Tube`, ❌`Turntables`, ❌`Turret`, ❌(?)`VendorCart`, ❌(?)`WasteBasket`, ❌`WaterPump`, ❌`Well`, ❌`Window`.

Expand Down
76 changes: 76 additions & 0 deletions website/blog/2024-02-03/discontinuing-roguelibs.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
title: Discontinuing RogueLibs
author: Abbysssal
author_title: Creator of RogueLibs
author_url: https://github.com/Chasmical
author_image_url: https://github.com/Chasmical.png
tags: [blog, roguelibs, sor, sor2]
description: // TODO
---

export const Abbr = props => (
<abbr title={props.title} style={{ cursor: "help", textDecoration: "underline 1px dashed #888", textUnderlineOffset: 3 }}>{props.children}</abbr>
);



<br/>

I've given it some thought, and decided to quit doing Streets of Rogue stuff.



## Why discontinue RogueLibs?

A lot of factors contributed to this decision...
For some background, you can read the [*"My Modding Journey"* blog post](/blog/2024/02/03/my-modding-journey).

{/* truncate */}

Here's the list, in order from most to least significant:

1. **Loss of interest, and stagnancy.** For 5 years now, I've focused all my efforts on Streets of Rogue. Practically everything I know is directly related to SoR. I need a change of pace. I want opportunities to learn other stuff, not related to SoR, as well.

2. **SoR's disgustingly awful code.** I don't see many reasons to stick around with this kind of code any longer. With my self-esteem now back to normal levels, I believe I deserve to work with better code.

3. **Dissatisfaction with community management.** To be honest, I had expected more involvement, more teasers and such, with more effort put into it. Other than the trailers, nothing really stood out. The disproportionate amount of hype I had for the sequel led to disappointment. And to be fair, that's on me, my expectations were too high.

4. **Responsibilities and stress.** With the huge amount of issues and projects in progress, and no one else capable of handling them, it's getting rather stressful, and I really want some time for myself. And by that I don't mean just a small break, I mean finishing this chapter in my life, and moving forward. There's more to life, than just Streets of Rogue, after all.

5. **Stress from work.** The projects at my work are just as bad as SoR's code. This factor definitely contributed to, and accelerated my descent into madness. The work conditions are really convenient though, and it's hard to say no to money, so I don't want to quit yet.

6. **Discouragement of discussions in the community.** I saw quite a few constructive discussions on Discord get shut down for no apparent reason. I want to discuss issues and problems with the server, since, you know, discussing it is the only way to improve. But here, you'll get called petty and rude, if you point out a problem or that someone's argument doesn't make sense.

7. **Questionable approval of modding.** tinyBuild is very clear about their policy of strict adherence to all services' terms of service and agreements; and Steam's Subscriber Agreement does not allow <Abbr title="(something that gives players an unfair advantage in multiplayer)">"cheats"</Abbr> and mods. If Steam Achievement Manager (the mention of which had to be deleted) is considered a "cheat", then what about *mods* that may act as these *"cheats"*? Intent is not something that can be judged objectively, after all; and a double standard is scarier than ignorance. I don't feel as confident when making mods, knowing that it all may come crashing down the next day.

The last two are far from being the deciding factors, but they did set it all in motion.
And arguably, some of these issues can be solved, but at that point it'd be more trouble than it's worth. Perhaps, I'll just find my happiness elsewhere. It can't be hard to find a place better than this.



## So, what's next?

I'll just stop working on SoR-related projects, and I'll archive their repositories. If you want to carry on the legacy, feel free to fork the repositories and continue working on these projects.

This documentation website and all currently released files and assets will remain available. The only exception is the newer beta of the website, the one at roguelibs.com, since it incurs some maintenance costs (web server, database, CMS, CDN, domain name). I'll wipe the data there and have it shut down. The [source repository](https://github.com/Chasmical/roguelibs-web) is still available, so feel free to host one yourself.

The official Discord server can carry on without me. The Russian Discord server, though, will probably bite the dust, unless someone stands up and continues managing the Russian community.

---

<div style={{ display: "flex", flexWrap: "wrap", justifyContent: "space-around" }}>
<div>

#### Official Discord server
<iframe src="https://canary.discord.com/widget?id=187414758536773632&theme=dark" width="320" height="500" allowtransparency="true" frameborder="0" sandbox="allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts" />

</div>
<div>

#### Russian Discord server
<iframe src="https://canary.discord.com/widget?id=766725034445635634&theme=dark" width="320" height="500" allowtransparency="true" frameborder="0" sandbox="allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts" />

</div>
</div>


106 changes: 106 additions & 0 deletions website/blog/2024-02-03/my-modding-journey.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
---
title: My Modding Journey
author: Abbysssal
author_title: Creator of RogueLibs
author_url: https://github.com/Chasmical
author_image_url: https://github.com/Chasmical.png
tags: [blog, sor, modding]
description: // TODO
---

import Spoiler from "@site/src/components/Spoiler";

export const Abbr = props => (
<abbr title={props.title} style={{ cursor: "help", textDecoration: "underline 1px dashed #888", textUnderlineOffset: 3 }}>{props.children}</abbr>
);



<br/>

I've given it some thought, and decided to quit doing Streets of Rogue stuff.
And to finish this chapter in my life, I wrote this autobiographic post.

**TL;DR:** <Spoiler>Friction in the community made me realize that I don't actually care about Streets of Rogue.</Spoiler>



## Blog Retrospective

It's been more than 2 years since the last post in this blog. Since then, my programming skills and knowledge have vastly improved, I've practiced a bit of technical writing, did some project management, web-development, learned several languages, and gotten familiar with more technical terms.

I've also reflected on the [*"What I hate about SoR"* post](/blog/2021/08/31/what-i-hate-about-sor) and noted what I did wrong. There was too much critique, and not nearly enough examples to convey the full extent of how bad it is. I've pointed out problems, but poorly explained the reasons behind my proposed solutions. Sometimes the answers hid in the irony, and that's not something that should be in a constructive review.

I've considered writing a second part, *"What I hate about SoR. Part 2"*, where I would clearly document and explain all the issues in the game's code, but ended up not finishing it. Only 3 paragraphs worth of text (about 900 words), out of planned 20-30 paragraphs. Maybe all these pieces of advice will end up on my website at some point relatively far in the future.



## My Modding Journey

Anyway, let's go back to the very beginning...

{/* truncate */}

It was year 2016, and a YouTuber that I grew up watching has retired and stopped making videos. But then, 2 years later he comes back, revives the channel, makes like a hundred more videos and, not even a year later, retires once again. Among the new videos there were ~10 hours worth of gameplay recorded by one of his friends playing some weird roguelike game. That's how I found Streets of Rogue.

At the time (2019), I was fascinated by the possibilities that the game offered.
"You can play as a Doctor and still kill people?! WOW!"
"There are 17 unique, distinct characters?! WOW."
"You can make custom characters?! And there are stealth mechanics?! WOW!"
"The humour in the [original] flavor texts meshes so well with the graphics and music!"
"But... The Russian localization is crap."

That was the first time I used my very basic understanding of programming and computers in general for something useful. I examined the game files, found a Localization folder, read the instructions, fixed the translations, and uploaded it as a guide on Steam. Soon after, I was contacted by someone who wanted to help, we wrote several extensive Steam guides together, and then were invited to join the Russian SoR Discord server, led by Starinis – two Twitch streamers. They had multiple other games' communities on the same server, but I didn't give it much thought back then.

During my stay on Starinis' server, I learned JavaScript and created a modular multi-purpose Discord bot for their server's various needs. It could crosspost <Abbr title="Russian equivalent of Twitter, basically">VKontakte</Abbr> posts, notify about new YouTube videos and Twitch streams, play music in voice channels, and it had some fun commands. In parallel with this, I tried myself in game dev, but ended up only making a cool unique inventory system. At the time I didn't know about value and reference types, so, kinda makes sense why I didn't make it far.

By the end of 2019, I tried my hand at modding SoR and created ECTD. Half a year later I questioned the mod-making strategy of the time, and started the BepInEx/RogueLibs revolution in modding. Then, with a firm foundation in place, I made some mods (CustomAudioLoader, RogueLibs, aToM, aToI), and edited and published some videos about them. During 2020, I gained plenty of experience with C#, Unity, ECS, graphics, IL code and patching.

Remember Starinis, Russian SoR Discord admins, from a couple of paragraphs back? They suddenly decided to take away the channels dedicated to separate games, and put all communities in just one single channel. That day it became clear, that they were collecting game communities like pokemon, just to promote their own Twitch career. The SoR community and I had to revolt. We founded our own server, with lots of channels for all topics, and we've never heard from Starinis again.

In 2021, I got back to JavaScript, made this documentation website, and released RogueLibs v3, which would last for a while, and created a bunch of cool and more extensive mods. Then I noticed that my interest in SoR started fading... But I wasn't ready to drop Streets of Rogue completely, so instead I focused my efforts on a proper website for RogueLibs, with all kinds of stuff that the big websites have: authorization, dynamic pages, CMS, API, CDN. The design and styling were tough, and in addition to that, the university was taking its toll on me, so things were going very slowly.

In the middle of 2022, I dropped out of university. I waited for two entire years, hoping they would eventually get serious with the programming courses, but they never did – they stuck with basic constructs, arithmetics, structures and pointers, all of which I had already learned myself three years earlier. Then I got a remote job as a web-developer, and I haven't had much free time ever since.



## Discord in Discord

Well, I guess, it all started with tinyBuild taking over SoR's community, in autumn of 2023. Due to some legal issues, they couldn't make the Russian Discord server official, and ended up creating 3 Russian channels on the official English server instead: #*rules*, #*general* and #*offtopic*. Predictably, everyone stayed on the Russian Discord server, but the existence of these 3 channels stumped the community's growth nonetheless.

I was a moderator on the official Discord server for about 4 months, but decided to leave, because I didn't like the amount of seemingly irresponsible shortcuts being taken, and I felt like my efforts would be better placed elsewhere. Strangely, the statement "Ignorance is bliss" seems to almost always apply to the backstage of SoR-related things: the code behind the game's mechanics, the markup behind the wiki, the management behind the community. And because I'm a perfectionist, that huge amount of little flaws and mistakes accumulated over time felt like an unliftable burden.

This friction made me rethink whether I want to be here at all. I reflected back on my past and realized that I don't have any sincere reason to be here anymore. I've lost interest in the game, and it feels like I've hit the ceiling, now stuck with SoR weighing me down, and unable to move forward.



## Morals of the story

1. Think carefully and critically of the programming courses in universities/colleges. Consider learning programming on your own, and make sure to do some research on what you'll learn during the courses. But most importantly, don't pay attention to the pretentious buzz words, look for specific knowledge instead. Let me list what some of the courses in my university had:
<div style={{ fontSize: "0.9rem", margin: "1rem 0" }}>
- "AI and Logical programming" – basic binary logic and graphs. There's no AI ***or*** programming.
- "Basics of Cryptography" – Caesar and Vigenere ciphers, and then some math tricks.
- "Internet Culture" – some memes, political discussions and stuff about aggression on the web.
- "Programming languages and transpiling" – writing simple programs in Assembler.
- "Creating modern crossplatform web apps" – just basic HTML, JS and PHP, also, really outdated.
- "Database technologies" – the very basics of MySQL, not even functions or indexes.
- "Computer Graphics" – textures, shaders and shadows. I literally learned how to do that and more in the first day of me learning OpenGL! And they are stretching it all out over two entire semesters!
- "Neural networks" – no nodes, no networks, just computing weird numbers, almost as if cracking hashes.
- "Modern programming technologies" – solving purely geological problems for some reason.
</div>
I'm not saying to completely disregard higher education though. It gives you more career opportunities, and may be a deciding factor when applying to a job, so take that into consideration.


2. If all hope is lost, you can find hope elsewhere. It's better to find something else that you like, than to see the thing dear to you sink to the very bottom and turn into the opposite of what it stood for. It will save you the heartbreak. Just persist, think carefully and do what you think is right.

I know, this advice sound a bit cynical. But that's the bias you get by listening to a human being – their opinion is shaped by their experiences and thoughts. And those are **my** experiences and thoughts. Think about them and take them into consideration, but never dismiss.

3. And lastly, don't underestimate your own subconciousness – when you learn the reasons behind your intuition, it may already be too late. For me, it often happens when coding – some part of the project suddenly feels off, but I can't understand why. Then, days or weeks later, I'd discover a fundamental flaw in the architectural design, directly related to that exact part that I doubted, forcing me to redo everything.



## Conclusion

Well, thanks for reading, I guess. :smile: I hope this post helped you in one way or another.


19 changes: 10 additions & 9 deletions website/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,13 @@ export default {
additionalLanguages: ['clike', 'csharp', 'bash'],
},
announcementBar: {
id: 'star',
content:
'<span style="font-size: 1rem;">⭐️ If you like RogueLibs, give it a star on <a target="_blank" href="https://github.com/Chasmical/RogueLibs">GitHub</a>! ⭐️</span>',
id: 'discontinued',
isCloseable: false,
textColor: 'var(--ifm-color-white)',
backgroundColor: '#FF5060',
content: (
'<span style="font-size: 1rem;">⚰️ RogueLibs has been discontinued. See more information in <a href="/RogueLibs/blog/2024/02/03/discontinuing-roguelibs">the latest blog post</a>. ⚰️</span>'
),
},
navbar: {
hideOnScroll: true,
Expand All @@ -63,11 +67,6 @@ export default {
label: 'Documentation',
position: 'left',
},
{
to: 'docs/site/intro',
label: 'Components',
position: 'left',
},
{
to: 'blog',
label: 'Blog',
Expand Down Expand Up @@ -130,11 +129,13 @@ export default {
},
blog: {
showReadingTime: true,
readingTime: ({content, frontMatter, defaultReadingTime}) =>
defaultReadingTime({content, options: { wordsPerMinute: 240 }}),
editUrl:
'https://github.com/Chasmical/RogueLibs/edit/main/website/blog/',
},
theme: {
customCss: require.resolve('./src/css/custom.css'),
customCss: require.resolve('./src/css/custom.scss'),
},
},
],
Expand Down
Loading

0 comments on commit ceeb9a1

Please sign in to comment.