From 75187ab99ff074d03f4c1a0b91d6334bc6384548 Mon Sep 17 00:00:00 2001 From: Miloslav Ciz Date: Fri, 17 Nov 2023 12:37:06 +0100 Subject: [PATCH] Update --- 3d_rendering.md | 8 ++++++-- build_engine.md | 3 +++ chasm_the_rift.md | 9 +++++++++ demoscene.md | 3 ++- doom.md | 4 +++- english.md | 13 ++++++++++++- fediverse.md | 11 +++++++++++ gemini.md | 2 +- minimalism.md | 6 +++++- reactionary_software.md | 2 +- sw_rendering.md | 3 ++- usenet.md | 5 +++-- 12 files changed, 58 insertions(+), 11 deletions(-) create mode 100644 build_engine.md create mode 100644 chasm_the_rift.md create mode 100644 fediverse.md diff --git a/3d_rendering.md b/3d_rendering.md index 4dae0a6..a7a84a7 100644 --- a/3d_rendering.md +++ b/3d_rendering.md @@ -48,7 +48,7 @@ With this said, let's not take a look at possible **classifications** of 3D rend - **[photorealistic](photorealism.md)** - **stylized**, flat [shaded](shading.md), [wireframe](wireframe.md), ... - ... -- **[hybrids](hybrid.md)**: Methods may be combined and/or lie in between different extremes, for example we may see a rasterizer 3D renderer that uses ray tracing to add detail (shadows, reflections, ...) to the scene, we may see renderers that allow triangle meshes as well as voxels etc. +- **[hybrids](hybrid.md)**: Methods may be combined and/or lie in between different extremes, for example we may see a rasterizer 3D renderer that uses ray tracing to add detail (shadows, reflections, ...) to the scene, we may see renderers that allow triangle meshes as well as voxels etc. { One nice hybrid looking engine is e.g. [Chasm: The Rift](chasm_the_rift.md). ~drummyfish } - ... Finally a table of some common 3D rendering methods follows, including the most simple, most advanced and some unconventional ones. Note that here we talk about methods and techniques rather than algorithms, i.e. general approaches that are often modified and combined into a specific rendering algorithm. For example the traditional triangle rasterization is sometimes combined with raytracing to add e.g. realistic reflections. The methods may also be further enriched with features such as [texturing](texture.md), [antialiasing](antialiasing.md) and so on. The table below should help you choose the base 3D rendering method for your specific program. @@ -273,4 +273,8 @@ Let's see what a typical pipeline might look like, similarly to something we mig 6. **Stage: pixel/fragment processing**: Each pixel (fragment) produced by rasterization is processed here by a [pixel/fragment shader](fragment_shader.md). The shader is passed the pixel/fragment along with its coordinates, depth and possibly other attributes, and outputs a processed pixel/fragment with a specific color. Typically here we perform [shading](shading.md) and [texturing](texture.md) (pixel/fragment shaders can access texture data which are again stored in texture buffers on the GPU). 7. Now the pixels are written to the output buffer which will be shown on screen. This can potentially be preceded by other operations such as depth tests, as mentioned above. -TODO: example of specific data going through the pipeline \ No newline at end of file +TODO: example of specific data going through the pipeline + +## See Also + +- [software rendering](sw_rendering.md) \ No newline at end of file diff --git a/build_engine.md b/build_engine.md new file mode 100644 index 0000000..18b82e9 --- /dev/null +++ b/build_engine.md @@ -0,0 +1,3 @@ +# Build Engine + +For now see [Duke Nukem](duke3D.md). \ No newline at end of file diff --git a/chasm_the_rift.md b/chasm_the_rift.md new file mode 100644 index 0000000..7537dde --- /dev/null +++ b/chasm_the_rift.md @@ -0,0 +1,9 @@ +# Chasm: The Rift + +*Poor man's Quake.* + +TODO + +{ TODO: do more research about the engine, attempt to translate the Russian YT video. ~drummyfish } + +**The engine** is possibly the most [interesting](interesting.md) part of the game as it used a combination of ["2.5D"](pseudo3d.md) level rendering and "true 3D" polygonal models for things like level decorations, enemies and weapon view model. Not much is known about the internals as the whole code is proprietary and "closed source", we may only inspect it visually and through [reverse engineering](reverse_engineering.md). To us it is not known if environment rendering uses [BSP](bsp.md) rendering, [portal rendering](portal_rendering.md), [raycasting](raycasting.md), something similar or whether it just utilizes its 3D model renderer for levels too, however there are some 2.5D simplifications going on as levels are defined as 2D (no room-above-room) and looking up/down is faked (even for the environment inserted "true 3D" models). The game's level editor shows levels use a square grid on which however it is possible to place even non-90 degree walls. There is also a [lightmap](lightmap.md) lighting system present allowing [dynamic](dynamic.md) lights -- a pretty advanced feature, though the lightmap only seems to be 2D, just as the level itself. \ No newline at end of file diff --git a/demoscene.md b/demoscene.md index f894518..e2f81d7 100644 --- a/demoscene.md +++ b/demoscene.md @@ -16,4 +16,5 @@ Some of the biggest demoparties are or were Assembly (Finland), The Party (Denma - [code golf](golf.md) - [kkrieger](kkrieger.md) -- [LAN party](lan_party.md) \ No newline at end of file +- [LAN party](lan_party.md) +- [MUD](mud.md) \ No newline at end of file diff --git a/doom.md b/doom.md index 0aa97e1..a7d834c 100644 --- a/doom.md +++ b/doom.md @@ -15,7 +15,7 @@ Doom was followed by Doom II in 1995, which "content-wise" was basically just a Some **[interesting](interesting.md) things** about Doom: - Someone created a Doom system monitor for [Unix](unix.md) systems called [psDooM](psdoom.md) where the monsters in game are the operating system [processes](process.md) and killing the monsters kills the processes. -- Someone (kgsws) has been [hacking](hacking.md) the ORIGINAL Doom engine in an impressive way WITHOUT modifying the source code or the binary, rather using [arbitrary code execution](arbitrary_code_execution.md) bug; he added very advanced features known from newer source ports, for example an improved 3D rendering algorithms allowing geometry above geometry etc. (see e.g. https://yt.artemislena.eu/watch?v=RdbRPNPUWlU). +- Someone (kgsws) has been [hacking](hacking.md) the ORIGINAL Doom engine in an impressive way WITHOUT modifying the source code or the binary, rather using [arbitrary code execution](arbitrary_code_execution.md) bug; he added very advanced features known from newer source ports, for example an improved 3D rendering algorithms allowing geometry above geometry etc. (see e.g. https://yt.artemislena.eu/watch?v=RdbRPNPUWlU). It's called the Ace engine. - Doom sprites were made from photos of physical things: weapons are modified photos of toys, enemies were made from clay and then photographed from multiple angles (actually a great alternative to [3D modeling](3d_model.md) that's less dependent on computers and produces more realistic results). - TODO @@ -38,6 +38,8 @@ There is no [antialiasing](antialiasing.md) in the engine, i.e. aliasing can be ## See Also - [Duke 3D](duke3d.md) +- [Quake](quake.md) - [Jedi engine](jedi_engine.md) - [Build engine](build_engine.md) +- [Chasm: The Rift](chasm_the_rift.md) - [raycasting](raycasting.md) \ No newline at end of file diff --git a/english.md b/english.md index 3978856..687b9bb 100644 --- a/english.md +++ b/english.md @@ -4,4 +4,15 @@ English is a natural human language spoken mainly in the [USA](usa.md), UK and Australia as well as in dozens of other countries and in all parts of the world. It is the default language of the world. It is a pretty simple and [suckless](suckless.md) language (even though not as suckless as [Esperanto](esperanto.md)), even a braindead man can learn it { Knowing Czech and learning Spanish, which is considered one of the easier languages, I can say English is orders of magnitude simpler. ~drummyfish }. It is the lingua franca of the tech world and many other worldwide communities. Thanks to its simplicity (lack of declension, fixed word order etc.) it is pretty suitable for computer analysis and as a basis for [programming languages](programming_language.md). -If you haven't noticed, this wiki is written in English. \ No newline at end of file +If you haven't noticed, this wiki is written in English. + +## Retarded Mistakes You Make In English + +TODO + +- **"The reason is because ..."**: This is just awful, if you have any brain at all your ears just bleed. Correctly you say "The reason is (that) ...". Why? Here is a small helper: "Why are you not working?", "Because I'm lazy.", "What is the sound?", "The sound is noise.", "You are not working. What is the reason?", "The reason is my laziness" OR "The reason is (that) I'm lazy.". +- **"Just because X doesn't mean Y"**: this is completely grammatically wrong, it is either "Just the fact that X doesn't mean Y." OR "Just because X not(Y)." You just have to hear it, but here is an attempt at showing you why this it's wrong: "I don't have to cry just because I'm sad.", we can reverse the sentences to "Just because I'm sad I don't have to cry" OR "Just the fact that I'm sad doesn't mean I have to cry". +- **"how it looks like"**: It's either fucking "what it looks like" OR "how it looks", NOT both at once. +- **Using apostrophe for plural**, especially with [acronym](acronym.md)'s, for example "VPN's" (WRONG) instead of "VPNs" (correct). +- **Spelling**: beginner stuff like "its" vs "it's", "there" vs "their" etc. +- ... \ No newline at end of file diff --git a/fediverse.md b/fediverse.md new file mode 100644 index 0000000..40ab781 --- /dev/null +++ b/fediverse.md @@ -0,0 +1,11 @@ +# Fediverse + +TODO + +Fediverse is partly nice, employing a few cool ideas, but also quite [shitty](shit.md) -- it may be a relief, a less harmful alternative to proprietary social media, but it's definitely not the way of [good technology](lrs.md). With time it will very likely keep degenerating into more and more harmful thing, just like [Wikipedia](wikipedia.md) and similar big projects riding on the "FOSS" brand. The following is a list of some reasons why Fediverse sucks (keep in mind that some of them are not inherent but rather established properties of the network): + +- It is **greatly [bloated](bloat.md)**, mostly relying on [modern](modern.md) browsers with [JavaScript](javasript.md) and [encryption](encryption.md), multiple complex [protocols](protocol.md), hugely complicated [backends](backend.md) etc. +- It is **[capitalist software](capitalist_software.md), trying to mimic capitalist ways** just with a "[FOSS](foss.md) sticker" on it, they just copy [twitter](twitter.md), [Facebook](facebook.md) and [reddit](reddit.md) closely, keeping it based on content consumerism, like whoring, friend whoring, scrolling addiction etc. -- a free license doesn't fix this. Fediverse doesn't care about actual freedom but rather about a "freedom" label, aiming more for getting big rather than getting actually good. A truly good network would just be based on a completely different set of ideas, see e.g. [gopher](gopher.md). +- It is **[censored](censorship.md) and greatly infected with [pseudoleftist](pseudoleft.md) ideology**. While decentralization prevents hardcore global blocks, most network instances just block the minority of instances that allow [free speech](free_speech.md), creating isolated islands, most of which have speech filters etc. Furthermore people using these networks are for the greatest part [soyboys](soyboy.md), soydevs and [SJW](sjw.md)s circlejerking their posts, blocking everyone else AND the software project themselves are made by the same people, employing [codes of censorship](coc.md) etc. +- It is **developed mostly by incompetent people** -- as said, the users and developers are mainstreamers, mostly 16 year old trans zoomers who just learned about computers and are just bashing together stuff in JavaScript, they have no real plan or vision, neither do they know anything about good technology design. The result looks accordingly. +- ... \ No newline at end of file diff --git a/gemini.md b/gemini.md index 4265f87..4d03351 100644 --- a/gemini.md +++ b/gemini.md @@ -1,6 +1,6 @@ # Gemini -Gemini is a [shitty](shit.md) [pseudominimalist](pseudominimalism.md) network [protocol](protocol.md) for publishing, browsing and downloading files, a simpler alternative to the [World Wide Web](www.md) and a more complex alternative to [gopher](gopher.md) (by which it was inspired). It is a part of so called [Smol Internet](smol_internet.md). Gemini aims to be a "[modern](modern.md) take on gopher", adding some new "features" and a bit of [bloat](bloat.md). The project states it wants to be something in the middle between Web and gopher but doesn't want to replace either. +Gemini is a [shitty](shit.md) [pseudominimalist](pseudominimalism.md) network [protocol](protocol.md) for publishing, browsing and downloading files, a simpler alternative to the [World Wide Web](www.md) and a more complex alternative to [gopher](gopher.md) (by which it was inspired). It is a part of so called [Smol Internet](smol_internet.md). Gemini aims to be a "[modern](modern.md) take on gopher", adding some new "features" and [bloat](bloat.md), it's also more of a toxic, [SJW](sjw.md) soydev version of gopher; gemini is to gopher a bit like what [Rust](rust.md) it to [C](c.md). The project states it wants to be something in the middle between Web and gopher but doesn't want to replace either. On one hand Gemini is kind of cool but on the other hand it's pretty [shit](shit.md), especially by REQUIRING the use of [TLS](tls.md) [encryption](encryption.md) for "muh security" because the project was made by privacy freaks that advocate the *ENCRYPT ABSOLUTELY EVERYTHIIIIIING* philosophy. This is firstly mostly unnecessary (it's not like you do Internet banking over Gemini) and secondly adds a shitton of [bloat](bloat.md) and prevents simple implementations of clients and servers. Some members of the community called for creating a non-encrypted Gemini version, but that would basically be just gopher. Not even the Web goes as far as REQUIRING encryption (at least for now), so it may be better and easier to just create a simple web 1.0 website rather than a Gemini capsule. And if you want ultra simplicity, we highly advocate to instead prefer using [gopher](gopher.md) which doesn't suffer from the mentioned issue. diff --git a/minimalism.md b/minimalism.md index 65fa4b0..c5ef9ec 100644 --- a/minimalism.md +++ b/minimalism.md @@ -37,4 +37,8 @@ It can't be stressed enough that minimalism is absolutely required for technolog Even if a user of software is not a programmer himself, it is important he chooses to use minimal tools because that makes it more likely his tool can be repaired or improved by SOMEONE from the people. Some people naively think that if they're not programmers, it doesn't matter if they have access and rights to the program's source code, but indeed that is not the case. You want to choose tools that can easily be analyzed and repaired by someone, even if you yourself can't do it. -Minimalism and simplicity increases freedom even of [proprietary](proprietary.md) technology which can be seen e.g. on [games](game.md) for old systems such as [GameBoy](gameboy.md) or [DOS](dos.md) -- these games, despite being proprietary, can and are easily and plentifully played, modified and shared by the people, DESPITE not being free legally, simply because it is easy to handle them due to their simplicity. This just further confirms the correlation of freedom and minimalism. \ No newline at end of file +Minimalism and simplicity increases freedom even of [proprietary](proprietary.md) technology which can be seen e.g. on [games](game.md) for old systems such as [GameBoy](gameboy.md) or [DOS](dos.md) -- these games, despite being proprietary, can and are easily and plentifully played, modified and shared by the people, DESPITE not being free legally, simply because it is easy to handle them due to their simplicity. This just further confirms the correlation of freedom and minimalism. + +## See Also + +- [primitivism](primitivism.md) \ No newline at end of file diff --git a/reactionary_software.md b/reactionary_software.md index 8ababb6..5cc632a 100644 --- a/reactionary_software.md +++ b/reactionary_software.md @@ -2,7 +2,7 @@ { The "founder", fschmidt, sent me a link to his website on saidit after I posted about LRS. Here is how I interpret his take on technology -- as always I may misinterpret or distort something, for safety refer to the original website. ~drummyfish } -Reactionary software (reactionary meaning *opposing the [modern](modern.md), favoring the old*) is a kind of [software](software.md)/[technology](tech.md) philosophy opposing [modern](modern.md) technology and advocating [simplicity](kiss.md) as a basis of good technology (and possibly whole society); it is similar e.g. to [suckless](suckless.md) and our own [less retarded software](lrs.md), though it's not as "hardcore" [minimalist](minimalism.md) (e.g. it's okay with old versions of [Java](java.md) which we still consider kind of [bloated](bloated.md) and therefore [bad](bad.md)). Just as suckless and LRS, reactionary software notices the unbelievably degenerated state of "[modern](modern.md)" technology (reflecting the degenerate state of whole society) manifested in [bloat](bloat.md), overengineering, overcomplicating, user abuse, ugliness, [DRM](drm.md), [bullshit](bullshit.md) features, planned obsolescence, fragility etc., and advocates for rejecting it, for taking a step back to when technology was still sane (before 2000s). The website of reactionary software is at http://www.reactionary.software (on top it reads *Make software great again!*). There is also a nice forum at http://www.mikraite.org/Reactionary-Software-f1999.html (tho requires JS to register? WTF). +Reactionary software (reactionary meaning *opposing the [modern](modern.md), favoring the old*) is a kind of [software](software.md)/[technology](tech.md) philosophy opposing [modern](modern.md) technology and advocating [simplicity](kiss.md) as a basis of good technology (and possibly whole society); it is similar e.g. to [suckless](suckless.md) and our own [less retarded software](lrs.md), though it's not as "hardcore" [minimalist](minimalism.md) (e.g. it's okay with old versions of [Java](java.md) which we still consider kind of [bloated](bloated.md) and therefore [bad](bad.md)). Just as suckless and LRS, reactionary software notices the unbelievably degenerated state of "[modern](modern.md)" technology (reflecting the degenerate state of whole society) manifested in [bloat](bloat.md), overengineering, overcomplicating, user abuse, ugliness, [DRM](drm.md), [bullshit](bullshit.md) features, planned obsolescence, fragility etc., and advocates for rejecting it, for taking a step back to when technology was still sane (before 2000s). The website of reactionary software is at http://www.reactionary.software (on top it reads *Make software great again!*). There is also a nice forum at http://www.mikraite.org/Reactionary-Software-f1999.html (tho requires JS to register? WTF. LOL they even use [Discord](discord.md), that's just lame.). **The biggest difference compared to suckless/LRS is that reactionary software focuses on the simplicity from user's point of view** (as stated on their forums). This is not in conflict with our views, we just additionally see the simplicity of internals as just as important. diff --git a/sw_rendering.md b/sw_rendering.md index a0e2741..7288e46 100644 --- a/sw_rendering.md +++ b/sw_rendering.md @@ -40,6 +40,7 @@ These are some notable software renderers: - **[Build engine](build_engine.md)**: So called ["pseudo 3D"](pseudo_3d.md) or primitive 3D, this was a very popular [proprietary](proprietary.md) portal-rendering engine for older games like [Duke Nukem 3D](duke3d.md) or [Blood](blood.md). - **[BRender](brender.md)**: Old commercial renderer used in games such as Carmageddon, Croc or Harry Potter 1. Later made [FOSS](foss.md). +- **[Chasm: The Rift](chasm_the_rift.md) engine**: proprietary 1997 renderer made specifically for one game, notable especially by being a hybrid of "2.5D" and "true 3D", it managed to make it look very good. - **[Dark Engine](dark_engine.md)**: Old proprietary game engine which includes a SW renderer, used mainly in the game Thief. The author writes about it at https://nothings.org/gamedev/thief_rendering.html. - **[id Tech](id_tech.md)**: Multiple engines by [Id software](id.md) (later made [FOSS](foss.md)) used for games like [Doom](doom.md), [Quake](quake.md) and its successors included a software renderer. Quake's SW renderer was partially described in the *Michael Abrash's Graphics Programming Black Book*, Doom's renderer is described e.g. in the book *Game Engine Black Book DOOM*. - **[Irrlich](irrlicht.md)**: [FOSS](foss.md) game engine including a software renderer as one of its [backends](backend.md). @@ -49,7 +50,7 @@ These are some notable software renderers: - **[SSRE](ssre.md)**: The guy who wrote [LIL](lil.md) also made this renderer named Shitty Software Rendering Engine, accessible [here](http://runtimeterror.com/tech/ssre/). - **[System Shock](system_shock.md) engine**: Old proprietary game engine. - **[TinyGL](tinygl.md)**: Implements a subset of [OpenGL](opengl.md). -- Many old [games](game.md) in the 90s implemented their own software renderers, so you can look there. +- In general many old [games](game.md) in the 90s implemented their own software renderers, so you can look there. - ... ## See Also diff --git a/usenet.md b/usenet.md index c83e1e3..59c1f85 100644 --- a/usenet.md +++ b/usenet.md @@ -8,7 +8,7 @@ Usenet invented many things that survive until today such as the words *[spam](s Usenet was originally [ASCII](ascii.md) only, but people started to post binary files encoded as ASCII and there were dedicated sections just for posting binaries, so you co go [piiiiiiiiirating](piracy.md). -It worked like this: there were a number of Usenet servers that all collaborated on keeping a database of *articles* that users posted (very roughly this is similar to how [blockchain](blockchain.md) works nowadays); the servers would more or less mirror each other's content. These servers were called *providers* as they also allowed access to Usenet but this was usually for a fee. The system uses a [NNTP](nntp.md) (Network News Transfer Protocol) protocol. The articles users posted were also called *posts* or *news*, they were in plain text and were similar to email messages. Other users could reply to posts, creating a discussion thread. Every post was also categorized under certain **newsgroup** that formed a hierarchy (e.g. *comp.lang.java*). After so called *Big Renaming* in 1987 the system eventually settled on 8 top level hierarchies (called the *Big 8*): comp.* (computers), news.* (news), sci.* (science), rec.* (recreation), soc.* (social), talk.* (talk), misc.* (other) and humanities.* (humanities). There was also another one called alt.* for "controversial" topics (see especially alt.tasteless). According to [Jargon File](jargon_file.md), by 1996 there was over 10000 different newsgroups. +It worked like this: there were a number of Usenet servers that all collaborated on keeping a database of *articles* that users posted (very roughly this is similar to how [blockchain](blockchain.md) works nowadays); the servers would more or less mirror each other's content. These servers were called *providers* as they also allowed access to Usenet but this was usually for a fee. The system uses a [NNTP](nntp.md) (Network News Transfer Protocol) protocol. The articles users posted were also called *posts* or *news*, they were in [plain text](plain_text.md) and were similar to email messages ([mailing lists](mailing_list.md) actually offer a similar experience). Other users could reply to posts, creating a discussion thread. Every post was also categorized under certain **newsgroup** that formed a hierarchy (e.g. *comp.lang.java*). After so called *Big Renaming* in 1987 the system eventually settled on 8 top level hierarchies (called the *Big 8*): comp.* (computers), news.* (news), sci.* (science), rec.* (recreation), soc.* (social), talk.* (talk), misc.* (other) and humanities.* (humanities). There was also another one called alt.* for "controversial" topics (see especially alt.tasteless). According to [Jargon File](jargon_file.md), by 1996 there was over 10000 different newsgroups. Usenet was the pre-[web](www.md) web, kind of like an 80s [reddit](reddit.md) which contained huge amounts of historical information and countless discussions of true computer [nerds](nerd.md) which are however not easily accessible anymore as there aren't so many archives, they aren't well indexed and direct Usenet access is normally paid. It's a shame. It is possible to find e.g. initial reactions to the [AIDS](aids.md) disease, people asking what the [Internet](internet.md) was, people discussing future technologies, the German cannibal (Meiwes) looking for someone to eat (which he eventually did), [Bezos](bezos.md) looking for [Amazon](amazon.md) programmers, a heated debate between [Linus Torvalds](torvalds.md) and [Andrew Tanenbaum](tanenbaum.md) about the best OS architecture (the "Linux is obsolete" discussion) or [Douglas Adams](douglas_adams.md) talking to his fans. There were [memes](meme.md) and characters like [BIFF](biff.md), a kind of hilarious noob wannabe cool personality. Some users became kind of famous, e.g. Scott Abraham who was banned from Usenet by court after an extremely long flame war, Alexander Abian, a mathematician who argued for blowing up the Moon (which according to his theory would solve all Earth's issues), Archimedes Plutonium who suggested the Universe was really a big plutonium atom (he later literally changed his name to Plutonium lol) or John Titor (pretend time traveler). There are also some politically incorrect groups like *alt.niggers* [lol](lol.md). @@ -22,4 +22,5 @@ Search for Usenet archives, I've found some sites dedicated to this, also [Inter - [BBS](bbs.md) - [modem world](modem_world.md) -- [multi user dungeon](mud.md) \ No newline at end of file +- [multi user dungeon](mud.md) +- [mailing list](mailing_list.md) \ No newline at end of file