Update readme

This commit is contained in:
Miloslav Číž 2020-03-31 19:53:14 +02:00
parent 03c9bff85e
commit d0f87a65fb

View File

@ -4,27 +4,25 @@
*suckless FPS, the best game ever made, for the benefit of all living beings*
## This is going to likely be by far the best game in the universe.
## Why this game is special
Why?
- **Like Doom** but much better because of the following.
- **Completely public domain (CC0) free softare, free culture, libre game** for the benefit of all living beings in the Universe, **no conoditions on use whatsoever**. **All art is original** work and licensed CC0 (as well as code).
- **Extemely low HW demands** (much less than Doom, no GPU, no FPU, just kilobytes of RAM and storage).
- **Suckless, KISS, minimal, simple**, short code (< 10000 LOC TODO).
- **Extremely portable** (much more than Doom). So far tested on GNU/Linux PC, Pokitto, TODO.
- Has **completely NO external dependencies**, not even rendering or IO, that is left to each platform's frontend, but each frontend is very simple.
- Fits into **less than 256 kb** (including all content, textures etc.).
- Can fit into **less than 256 kb** (including all content, textures etc.).
- Uses **no build system**, can typically be compiled with a single run of compiler.
- **Works without any file IO**, i.e. can work without config files, save files, **all content and configs are part of the source code**.
- **Doesn't use ANY floating point**, everything is integer math (good for platforms without FPU).
- **Pure C99**, also a **subset of C++** (i.e. runs as C++ as well, good for systems that are hard C++ based).
- **Completely public domain (CC0) free softare, free culture, libre game** for the benefit of all living beings in the Universe, **no conoditions on use whatsoever**. **All art is original** work and licensed CC0 (as well as code).
- **Suckless, KISS, minimal, simple**, short code (< 10000 LOC).
- Written in **pure C99**, also a **subset of C++** (i.e. runs as C++ as well, good for systems that are hard C++ based).
- Made to **last for centuries** without maintenance.
- Goes beyond technical design and also **attempts to avoid possible cultural dependencies and barriers** (enemies are only robots, no violence on living beings).
- **Creted with only completely free software** (Debian, GIMP, gcc, Vim, ...).
- **Single compilation unit** (only one .c file to compile, very fast and simple).
- **Created with only free software** (GNU/Linux, GIMP, Audacity, gcc, Vim, ...).
- **Single compilation unit** (only one .c file to compile, very fast and simple). No build systems.
- Uses a **custom-made 256 color palette** (but can run on platforms with fever colors, even just two).
- **Well documented and commented code**, written with tinkering and remixing in mind.
- Feels like good old **Doom**.
early previews:
@ -38,13 +36,13 @@ SDL:
## manifesto
In today's world of capitalism and fascism no one even thinks about doing something without personal benefit, without expecting something in return. Complete selflessness is no longer considered an option, and if it appears by chance, it is ridiculed. Technology that we are using every day reflects the aggressive, hostile thinking.
In today's world of capitalism and fascism no one even thinks about doing something without personal benefit and without expecting something in return. Complete selflessness is no longer even considered and if it appears by chance, it is ridiculed. Technology that we are using every day is sadly infected by this mentality.
From engineering point of view our technology is the worst in history. Computer technology is unbelieveable bloated, ugly, buggy, slow and inefficient, purposfuly designed to enslave people, to invade their lives, to be consumed, to resist tinkering and improvement, by law, forcre, obscurity or other means. Technology doesn't serve people, it serves corporations on the detriment of people. Principles of good, efficient design and focus on long term values have vanished in the capitalist selfish short sighted mentality of greed which has already infected the mentality of the masses who are no longer even able to see their own abuse and enslavement.
From engineering point of view our technology is the worst in history. Computer technology is unbelievable bloated, ugly, buggy, slow and inefficient, purposefully designed to enslave people, to invade their lives, to be consumed, to resist tinkering and improvement, by law, force, obscurity or other means. Technology doesn't serve people, it serves corporations on the detriment of people. Principles of good, efficient design and focus on long term values have vanished in the capitalist selfish short sighted mentality of greed which has already infected the mentality of the masses who are no longer even able to see their own abuse and enslavement.
This game is a result of my grief about this deeply sad and frightening state of the world, it is my desperate attempt at showing that something, or rather everything, is wrong. I have put great effort in creating it completely from the ground up so that I could waive my rights of it, give it away to everyone. I think it is a great shame of mankind that since now there has been no such a game completely and truly in the public domain for all people to freely play, for students and techers to freely study and teach, for artists and programmers to freely improve and remix.
This game is a result of my grief about this deeply sad and frightening state of the world, it is my desperate attempt at showing that something, or rather everything, is wrong. I have put great effort in creating it completely from the ground up so that I could waive my rights to it, give it away to everyone. I think it is a great shame of mankind that since now there has been no such a game completely and truly in the public domain for all people to freely play, for students and teachers to freely study and teach, for artists and programmers to freely improve and remix.
this game is also designed to be truly good technology to the greatest extent possible, with as few burdens as possible to all people, both users and developers. It is designed to last for ceturies without maintenance -- by only relying on a C compiler, which is relatively simple and perhaps the most essential piece of software, and by avoiding all unnecessary dependencies, both HW and SW, the game is almost certainly guaranteed to be trivially compileable any time in the future, probably even shortly after the technological collapse of our civilization, which is on its way. It is free and simple, making it modifyable by anyone with programming skills, not just legally but also practically. The game tries to practice the values of good design -- minimalism, simplicity, effectiveness, efficiency, ellegance, hackability, openness.
this game is also designed to be truly good technology to the greatest extent possible, with as few burdens as possible to all people, both users and developers. It is designed to last for centuries without maintenance -- by only relying on a C compiler, which is relatively simple and perhaps the most essential piece of software, and by avoiding all unnecessary dependencies, both HW and SW, the game is almost certainly guaranteed to be trivially compilable any time in the future, probably even shortly after the technological collapse of our civilization, which is on its way. It is free and simple, making it modifiable by anyone with programming skills, not just legally but also practically. The game tries to practice the values of good design -- minimalism, simplicity, effectiveness, efficiency, elegance, hackability, openness.
Besides support my project has also gotten a lot of hate, being called backwards, utilizing wrong programming practice, being a bad game to play. Nevertheless it has only been made with love and sincere rational belief in its philosophies. I do not see it as a step backwards, but rather a step in a different, better direction. I believe in my work and that if you judge it with an open mind, you may find something new and revise your view of technology, its philosophy and its future. This game has been made for you and I hope you will find it useful.
@ -56,7 +54,7 @@ No, this is my custom engine (raycastlib) based on raycasting, a technique used
### How is this different from the trillion other retro shooters?
Firstly this isn't trying to look like a 90s style shooter, this **is** a 90s style shooter. The code is written in the oldschool language and style, in a custom efficient SW rendering engine, just like in the old days, meaning this will run anywhere.
Firstly this isn't trying to look like a 90s style shooter, this IS a 90s style shooter. The code is written in the oldschool language and style, in a custom efficient SW rendering engine, just like in the old days, meaning this will run anywhere.
Secondly this is more than a game and is not made for any profit but for the benefit of all people. This is not a product of capitalism, but a manifesto and a selfless work of art. The code and art are free as in freedom, meaning you can do anything you want with them -- you don't have to buy this, agree to any terms, nothing is hidden from you.
@ -94,7 +92,7 @@ If you for example start selling this and make big money, it would be nice if yo
Am I so stupid as to trust complete strangers to not abuse this? No, I know some will probably "abuse" my work, but it's a price I am willing to pay and I think the good will be greater than the bad.
### You sound like an insane persone, are you crazy?
### You sound like an insane person, are you crazy?
I do have mental issues, but they don't affect my reasoning. If you are interested in truth, you should always critically judge ideas in themselves without dismissing them based on their originator.
@ -104,16 +102,18 @@ TODO
source files
raycastlib, 1D zbuffer
portability, only backend, avoiding dependencies
how to port to new platform, frontend, configs in files
all images are 32x32, image compression, transparency
All **images** in the game (textures, sprites, backgrounds, ... with just a few exceptions such as font) are stored in the same format: 32 x 32 pixels with 16 color subpalette of the main palette (4 bits per pixel). Each one therefore takes 16 + (32 * 32) / 2 = 528 bytes. This makes working with images easy and the code faster than with arbitrary size images. One color (red) is used for transparency.
font
integer math
raycastlib, 1D zbuffer
palette
rng, produces all byte values