Suckless Libre Games?

Re: Suckless Libre Games?

Postby drummyfish » 19 May 2021, 12:57

PeterX {l Wrote}:Maybe SAF will be similar to Pico-8?


Yes, a little bit, you can see it that way. The difference is that while Pico-8 and other fantasy console are simply creating a fantasy HW for its own sake, SAF's purpose is to be an abstract console that will allow high portability over many real consoles like Pokitto, Arduboy, Gamebuino... and also PC, browser, Android, ... But it has more than one purpose, you can totally just see it as a fantasy console. Or a tiny game engine.

PeterX {l Wrote}:I noticed that you already created 2 nice 3D libs. I will investigate them a bit closer.


These are projects I am pretty happy with and would love to continue. My next aim is to create a 3D physics engine with the same philosophy (as it's difficult to create games with just 3D graphics, you need physics too). I also have a chess engine in progress.
socialist anarcho-pacifist
Abolish all IP laws. Use CC0. Let's write less retarded software.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 448
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: Suckless Libre Games?

Postby adfad432 » 09 Sep 2021, 18:05

Just wanted to say, I'm a huuge fan of your work, anarch is by far one of my favorite games out there. Ignore the haters, I think your work is amazing and essential.

I would like to know your opinion on a voxel engine for a hyper-simple method of creating a 3d world, while also making level editing simple, without the need of external tools.
adfad432
 
Posts: 1
Joined: 23 Apr 2021, 22:22

Re: Suckless Libre Games?

Postby oldherl » 09 Sep 2021, 18:40

onpon4 {l Wrote}:Chinese is an entire family of languages as various as European languages all unified by a language-agnostic writing system, and it has influenced southeast Asia for thousands of years. These are not bad languages, and the fact that they have characters that ASCII doesn't support is not a deficiency. Only your eurocentric attitudes lead you to think that it is.

Thank you SOOOO much for praising my native language, Chinese! I was also the original Chinese translator of supertux over a decade ago. Unfortunately I didn't have time to maintain the translation due to personal reasons. I found this post today and I'm so thankful that supertux didn't abandon CJK support to satisfy those "suckless" people.

The so-called "suckless" projects, such as "simple terminal" (st), are a nightmare to non-latin writing system users, such as CJK (Chinese-Japanese-Korean), Thai, Arabic, etc. They just lack the basic ability to display and use those languages.Free Software is about bringing the freedom to use the software to anyone in the world, regardless of their nation, ethnic, or language. To persuade this goal, thousands of developers, translators and other volunteers are helping with i18n and/or l10n of software. Yet the "suckless" people just ignore this freedom of billions of people and urge us to get rid of our culture and use English or whatever Euro-centric languages. (BTW, Esperanto is also heavily Euro-centric language.) It's the opposite of the Free Software belief which bring us together for a free game like supertux or supertuxkart.
oldherl
 
Posts: 3
Joined: 05 Dec 2010, 08:28

Re: Suckless Libre Games?

Postby PeterX » 09 Sep 2021, 20:20

oldherl {l Wrote}:The so-called "suckless" projects, such as "simple terminal" (st), are a nightmare to non-latin writing system users, such as CJK (Chinese-Japanese-Korean), Thai, Arabic, etc. They just lack the basic ability to display and use those languages.Free Software is about bringing the freedom to use the software to anyone in the world, regardless of their nation, ethnic, or language. To persuade this goal, thousands of developers, translators and other volunteers are helping with i18n and/or l10n of software. Yet the "suckless" people just ignore this freedom of billions of people and urge us to get rid of our culture and use English or whatever Euro-centric languages. (BTW, Esperanto is also heavily Euro-centric language.) It's the opposite of the Free Software belief which bring us together for a free game like supertux or supertuxkart.

Thanks for the critics. As I follow the suckless philosophy I hear your point and will take that into consideration for my projects.

Greetings
Peter
User avatar
PeterX
 
Posts: 270
Joined: 01 Oct 2020, 21:44

Re: Suckless Libre Games?

Postby drummyfish » 10 Sep 2021, 13:39

Hey, I can't speak for all the suckless community, what I've said is just my personal opinion, though I believe many suckless people would agree with it. I don't hate Chinese as such, but just as my native language (Czech) it's extremely overcomplicated and when working on something that's already pretty complex, it's best to avoid it in favor of something universal and simple like English or Esperanto. As for the users (players) I am not against localization of the game to their native language, but it should be done the right way, which is as a lightweight extension or patch that won't introduce new mandatory dependencies. In many cases you can localize imperfectly but well enough without adding new code or assets, for example in my language letter such as Ř can be replaced by R and people will still understand. For Japanese I'd just replace the character glyphs to hiragana/katakana while still keeping it 1 byte per character, no need to introduce Unicode -- I believe this is basically like old Japanese gameboy games were made? For Chinese I don't know honestly, I don't know the language at all, but perhaps some nice "good enough" system could be invented as well, I'd leave that to the native speakers.

BTW I've recently gotten back to working on SAF, it is looking pretty good, I'll make a post about it once finished, hopefully soon.
socialist anarcho-pacifist
Abolish all IP laws. Use CC0. Let's write less retarded software.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 448
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: Suckless Libre Games?

Postby bzt » 10 Sep 2021, 14:55

Being a suckless developer myself, and big fan of the K.I.S.S. principle I agree with @drummyfish. However I'd like to point out that
a) you need UNICODE, in the XXI century there's no way around it for multilingual projects (and that's a good thing!)
b) there's no need for bloated libraries and dependencies to support UNICODE, it's just a standardized list of characters after all, nothing more.

While there are certainly huge libraries to deal with UNICODE and its various encodings, you're not forced to use those. If you know what you're doing, then a small suckless solution suffice. Take a look at one of my projects created in the name of suckless philosophy, no dependencies, yet available in Czech, Chinese, Japanese, Korean, etc. languages. So as this example demonstrates, suckless and UNICODE can be friends.

The problem with CJK is nothing else than the number of glyphs. There are a lot more than 65535, which simply cannot be efficiently handled by programs (Windows for example just doesn't support non-BMP natively, you need dirty hacks to print a CJK string, while Mac, Linux supports the entire UNICODE range). But even if you use UTF-8 for encoding, you still need lots and lots of storage for that many characters and their typefaces. For example, storing a Chinese font with all the characters requires much much more memory than what the original IBM PC had, that's why unlike Latin writing systems, CJK isn't widely supported.

Cheers,
bzt
User avatar
bzt
 
Posts: 332
Joined: 23 May 2021, 21:46

Re: Suckless Libre Games?

Postby ffaf » 10 Sep 2021, 15:48

oldherl {l Wrote}:
onpon4 {l Wrote}:The so-called "suckless" projects, such as "simple terminal" (st), are a nightmare to non-latin writing system users, such as CJK (Chinese-Japanese-Korean), Thai, Arabic, etc. They just lack the basic ability to display and use those languages.Free Software is about bringing the freedom to use the software to anyone in the world, regardless of their nation, ethnic, or language. To persuade this goal, thousands of developers, translators and other volunteers are helping with i18n and/or l10n of software. Yet the "suckless" people just ignore this freedom of billions of people and urge us to get rid of our culture and use English or whatever Euro-centric languages. (BTW, Esperanto is also heavily Euro-centric language.) It's the opposite of the Free Software belief which bring us together for a free game like supertux or supertuxkart.


Interesting experience, thanks for sharing it. Indeed trimming the fat is useful only as your project becomes slender without losing functionality, I will make a point never to forget internationalisation or accessibility features.
ffaf
 
Posts: 97
Joined: 04 Dec 2019, 08:59

Re: Suckless Libre Games?

Postby PeterX » 10 Sep 2021, 16:47

I looked ar the page of "st" and they write there that the program has UTF-8 support. What precisely Is the problem with st for Chinese users?

Greetings
Peter
User avatar
PeterX
 
Posts: 270
Joined: 01 Oct 2020, 21:44

Re: Suckless Libre Games?

Postby drummyfish » 10 Sep 2021, 17:02

Unicode and UTF8 are actually well designed, backwards compatible, falling back mostly correctly -- if we need to have many characters then this is the right way. I'm just saying we mostly don't need that, unless you want to compete in the "capitalist" way, in which case you should probably just go proprietary and embrace malware -- you can't sit on both chairs at once (i.e. be free/ethical and also successful in a capitalist society). I also like the Unix way of interfacing via files, but I try to avoid using files, simply because I can mostly do without them. The argument that in "2021" you need Unicode to me is not a real one -- software worked just as well back when everyone was only using ASCII, the year shouldn't play a role. Or rather, this is the "capitalist" argument, you're not trying to do what's right, but what the market is demanding, what's popular, you're doing it because everyone else is doing it. I don't think that's a good way of creating good things.
socialist anarcho-pacifist
Abolish all IP laws. Use CC0. Let's write less retarded software.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 448
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: Suckless Libre Games?

Postby PeterX » 10 Sep 2021, 17:38

I can't follow the reasoning that Unicode is automatically capitalistic. Unicode is a encoding (and in case of UTF-8 backwards compatible to ASCII) that allows international (non-US) languages. What's so capitalistic about it?

And I think supporting non-US languages is a good thing. At least for the end-users.

Greetings
Peter
User avatar
PeterX
 
Posts: 270
Joined: 01 Oct 2020, 21:44

Re: Suckless Libre Games?

Postby bzt » 10 Sep 2021, 18:22

Yeah, I can't see that either. Nobody is making money of the standard, so how could it be a capitalist thinggy in the first place?

BTW, UNICODE isn't an encoding, just a list of characters, more like a codepage frankly, publicly available so nobody is making money of that. To be precise, UTF-8 is the encoding converting between that list and 8 bit byte sequences. Since there's no patent nor restrictive license on that conversion algorithm and it is publicly available for all to use, nobody is making money from the UTF-8 encoding either (don't mistake the proprietary library implementations with the standard or the algorithm itself). There are literally hundreds if not thousands of FOSS UTF-8 implementations, and you are free to create your own implementation too without any restrictions.

Cheers,
bzt
User avatar
bzt
 
Posts: 332
Joined: 23 May 2021, 21:46

Re: Suckless Libre Games?

Postby drummyfish » 10 Sep 2021, 19:19

I'm not saying Unicode is capitalist (even though I disagree that no one is making money off of it), on the contrary I admit that it's pretty good for its intended purpose, which is pretty rare in modern tech. Most modern tech is inherently capitalist and bad, Unicode is not among this tech IMHO. What's capitalist is that we're trying to stick it into everything. Maybe Unicode isn't the best example of this, but it's kinda the same as e.g. "ray traced" graphics in every new game, it's everywhere because it's the fashion, it's the trend of the market, but objectively this is not good.
socialist anarcho-pacifist
Abolish all IP laws. Use CC0. Let's write less retarded software.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 448
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: Suckless Libre Games?

Postby freem » 10 Sep 2021, 20:03

Since it is claimed that suckless games are more efficient, I got a try at anarch.

First thing, it required me to install 2 development packages that I didn't had yet (sdl backend): libdrm-dev and libgbm-dev. And when playing, I noticed that the clipping is broken as can be seen in those screenshots:
2021-09-10-190709_1366x768_scrot.png
and
2021-09-10-190705_1366x768_scrot.png
(the lightbulb disappears).

Overall, the lack of proper lighting makes it difficult to notice movable stuff correctly, and there is this constant bouncing when moving which really feels awful. The text of the main menu is barely readable. When playing, my CPU runs at 2400MHz in average, compare with unvanquished (a game you would probably despise) which makes it run at roughly 2800MHz.
Indeed, anarch uses less, but compared with the difference of features, anarch is obviously slow.
I stopped playing after few minutes, because the game feels empty and rather boring.

Now, to the topic.

No unicode.
Well, unicode, or at least UTF-8 is indeed more complex than fixed byte size characters, since each character can have a varying size. Still, the features it brings are more than worth it, because it allows people from other cultures to use the softwares.

Built-in configuration.
When I play a game with those, most of the time they have qwerty bindings. Incompatible with my keyboard, and no, I will not switch my layout to please those games: I will just remove the game from my disk and play one with a config file instead. I had the nice surprise to see that anarch is not affected by that problem, because it (problably) uses "hardware key numbers" or whatever the name. This still means that one would have to rebuild the game to change setup. And learn C, the only lang you deem worthy, but also the lang which makes it the most painful to write code which does not leak.

Only C99, use global vars, all code in one unit.
This is sick. If you want a maintainable codebase, you will really want to have proper "public" API.
In C, this is done by using "modules", aka: split the code into multiple files, and only have the public API in the header. This way, it is much easier to change something without the fear of breaking something unrelated because all use damned global variables. Oh, I would be sad to forget this: C++'s std::sort is faster than C's sort. This is one of the examples which show that C actually sucks (at writing fast code, at writing code fast, at writing safe code...).

No Object Oriented Programming, only imperative programming.
Well, if you want the game to be moddable, why not just give an interface class and make the mods inherit from it? This way, the compiler, not you, can check that there is no nasty error. You confuse OOP and bad practices.
I can make C++ programs run on baremetal which have no FPU, so that you know.
By saying "only imperative" do you also close the door to other paradigms like component base systems? Those (like OOP) were invented to ease the task, why do you reject them just because people tend (in my experience) to abuse them?
To me, programming paradigms should be used reasonably when they are efficient. This includes OOP, CBSE, imperative, relational databases, and much more. All must not be used every time, of course. They have to be used wisely, or the code will become a huge spaghetti mess. This is true in all paradigms, all architecture models.


I, like you, consider that dependencies should be avoided when unnecessary, and be kept at a sane number. I, like you, strive for more efficient computing. I also agree that complex codebases makes it harder to benefit from FOSS freedoms.
But those points are not achieved by sticking to old tech which makes it painful to write code which actually works flawlessly and being elitist (yes, I also think you are elitist "all should know how to code C99, all should learn english, all should.... other is bullshit, other is bloat, other is shit" <- this is how your words can be interpreted).
Years ago, even GCC people started to accept embedding C++ in the compiler, because it would allow them to get rid of their garbage collector, which was slow and written in C, to handle their C code (because clang was, in comparison, using a lot less ram and a lot less time, they had to move their asses out of "simple" C tech a bit).

What is, in my opinion, important to write maintainable code bases is to split the problems in multiple parts, with clear, documented, API.
Those parts can be C "modules", classes, CLI interface, sockets, it's not important. What is important is that those API must be documented and as generic as possible. This makes the code easier to work on, easier to reuse, and thus easier to optimise.

Since the topic here is about games, I'll add few things:

Games are meant to be fun and easy to use. Asking players to patch the game themselves will not work. Even with me, it won't work, despite the fact I'm a dev (mostly using C, C++ and bourne shell).

Many games require AIs of some sort. If you do 3D games, how will you implement path finding? With raytracing? With A*? That can work, to some extent, but there's a reason why some people try to use navmeshes, despite the tech being more complex (I'm trying to improve that part in a game, I can at least tell that DetourRecast is complex, it have rather bad documentation, and still require other means of "computer vision" to implement correct stuff): it makes the AIs find their path with less runtime CPU resources.

Player's ability to cheat in multiplayer games is a real problem (on solo games, nobody should care). Thus, I am curious to see how you would implement network in your suckless way.
Note that, when doing networking, you might want to allow people to share their mods and maps, so having all built directly inside client's code will be hardly a good way. Games like Red-Eclipse rely on scripting, others like Unvanquished rely on virtual machines. RE1.6 is more vulnerable to cheating, due to AIs being ran by clients instead of server, plus the server does not do anything, it more or less just broadcast stuff. Unvanquished have AIs server side, and server checks a lot of stuff. The tech is, though, a lot more complex.
As you see, both approach have pros and cons, but both approaches would not fit into your guidelines. What would you do? I have seen someone mentionning building a MMO RPG. On that, I thought "Well, a new mana world I guess" but even that is not really easy. The notion of server-side stuff is rather important here, so I'm really curious at how this would work with those guidelines.

I intend to write some game from scratch, too (instead of contributing to old codebases which actually work), in a near future (after completion of lot of other dev projects... ok, maybe not near future I guess). I intend to implement the gameplay in prolog. Thus, will it sucks according to your "guidelines"? Probably.
Still, prolog have some advantages you should consider: the program is very, very close to a configuration file. Unlike C, it is reasonably easy to modify it for non-dev people, which is normal considering the fact it was a design goal of the lang.
Basically, I would write "servers" in prolog and "clients" in C++ probably, because "clients" require performance (prolog is not good to do calculus) and there are more libs already available for GUI stuff in C++ than in most other languages (and clearly more that in C, since all C code can be included in C++).

This is the problem when you put guidelines which are too specific.
Why do C have UB? Because not specifying things allows it to be more portable and more efficient. You should apply that principle of genericity to your guidelines, too, even if that means that you can not promote "The Best Language Of All Times Lol".
There is also that "let's fight worldwide economy" thing which.... hmmm... let's see that it does not help.
freem
BN Moderator
 
Posts: 106
Joined: 18 May 2015, 19:38

Re: Suckless Libre Games?

Postby PeterX » 10 Sep 2021, 20:11

Coding in Prolog is a definintely interesting thing. I doubt that it works, but would be pleased to see it working! Is there already source code intended for the public eyes?
User avatar
PeterX
 
Posts: 270
Joined: 01 Oct 2020, 21:44

Re: Suckless Libre Games?

Postby bzt » 10 Sep 2021, 22:08

drummyfish {l Wrote}:I'm not saying Unicode is capitalist (even though I disagree that no one is making money off of it)
I assure you, nobody is getting money just because apps speak UTF-8. You're confusing proprietary implementations with the standard, I'm afraid. Any libre, suckless and FOSS software can use UTF-8 without restrictions or without the need to pay a fee to someone.

drummyfish {l Wrote}:What's capitalist is that we're trying to stick it into everything.
I fail to see what's capitalist about standardizing codepages. On the contrary, I think replacing proprietary encodings with a common and free to use standard eliminates dependency on those proprietary software.

drummyfish {l Wrote}:Maybe Unicode isn't the best example of this, but it's kinda the same as e.g. "ray traced" graphics in every new game, it's everywhere because it's the fashion, it's the trend of the market, but objectively this is not good.
UTF-8 is not a "fashion" nor a "trend of the market". It is a standard that was created to provide interoperability for everyone, just like when people agreed that 8 bits should make up a byte. And since it's widely adopted, not using it would be like driving in the wrong direction on the highway: trouble.

If you care about freedom, then you have to use UTF-8 so that anybody can modify your Open Source files with whatever text editor they like (all text editors and IDEs support UTF-8, not sure about other arbitrary codepages and encodings). And in turn, your code must be aware that all string literals are UTF-8 encoded, simple as that.

Cheers,
bzt
User avatar
bzt
 
Posts: 332
Joined: 23 May 2021, 21:46

Re: Suckless Libre Games?

Postby drummyfish » 11 Sep 2021, 09:18

Well I bet that if an "app" speaks Unicode, there's a programmer that got paid to program it and he got paid more than he would if it only spoke ASCII, and I think they did it because they think an ASCII only "app" wouldn't make as much money. I also bet there's a lot of people paid for creating and maintaining the Unicode standard and the encoding standards, and I bet it's more than like 3 people. I think it's quite a business (unlike a business of maintaining an agreement that a byte has 8 bits).
socialist anarcho-pacifist
Abolish all IP laws. Use CC0. Let's write less retarded software.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 448
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: Suckless Libre Games?

Postby bzt » 11 Sep 2021, 16:37

drummyfish {l Wrote}:Well I bet that if an "app" speaks Unicode, there's a programmer that got paid to program it
You might, but you'll lost that bet instantly. There are countless FOSS projects supporting UNICODE and UTF-8, including the very first UTF-8 implementation done for Plan9. While it is true that Ken was paid to work on Plan9, he wasn't paid for creating UTF-8 for X/Open per se, that was just a side-effect, a lucky outcome.

drummyfish {l Wrote}:I think they did it because they think an ASCII only "app" wouldn't make as much money.
Wrong about that too. Take for example my aforementioned project. I did not get paid for it, I did not pay the contributors for the translations, and the whole project is FOSS, so money has absolutely nothing to do with this. It is simply technically not possible to have that many scripting systems within one text file if it weren't for UTF-8.

drummyfish {l Wrote}:I also bet there's a lot of people paid for creating and maintaining the Unicode standard and the encoding standards
The table of UNICODE characters is mostly done by contributors for free. There might be people working directly for the consortium, but since they don't get their salary by selling the specification I don't think that counts.
As for the UTF-8 encoding, Ken Thompson wasn't paid for that and he is not getting any licensing nor patent fee for it either.

drummyfish {l Wrote}:I think it's quite a business (unlike a business of maintaining an agreement that a byte has 8 bits).
Strange business where you gave away your product for free. To be totally honest with you, Unicode Inc. looks more like a money laundry and tax evasion loophole for big money corps to me than a real business (but IMHO, and I'm no lawyer).

Cheers,
bzt
User avatar
bzt
 
Posts: 332
Joined: 23 May 2021, 21:46

Re: Suckless Libre Games?

Postby drummyfish » 11 Sep 2021, 18:58

I didn't say there wasn't anyone who makes money on Unicode but that there are people who do make money on Unicode. You're attacking a strawman.

cheers
socialist anarcho-pacifist
Abolish all IP laws. Use CC0. Let's write less retarded software.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 448
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: Suckless Libre Games?

Postby bzt » 12 Sep 2021, 19:53

drummyfish {l Wrote}:I didn't say there wasn't anyone who makes money on Unicode but that there are people who do make money on Unicode.
Nope, that's not what you've said. You've said that all UNICODE-using programs are written by paid programmers. Here's the quote:
drummyfish {l Wrote}:Well I bet that if an "app" speaks Unicode, there's a programmer that got paid to program it
And I've said that this isn't true. There are many "app" that speaks Unicode, despite their programmers weren't paid at all. Take for example sent or dmenu on suckless.org, both being libre software and FOSS yet using UTF-8. Neither the programmers, nor the Unicode Inc. made a single penny on these two "apps".

Cheers,
bzt
User avatar
bzt
 
Posts: 332
Joined: 23 May 2021, 21:46

Re: Suckless Libre Games?

Postby drummyfish » 16 Sep 2021, 17:19

"App" means a shitty commercial software that's always written for money, I'm not talking about actual good programs.
socialist anarcho-pacifist
Abolish all IP laws. Use CC0. Let's write less retarded software.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 448
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: Suckless Libre Games?

Postby Lyberta » 17 Sep 2021, 22:51

@drummyfish: I know you're hurt by capitalism a lot. I feel your pain. I am hurt too. But consider this: if you live your life to "stick it to evil capitalists", you won't live your life for yourself. Try thinking this: "I am OK the way I am. The people who rejected me do not deserve me anyway." Then slowly you'll build the wall in your brain against capitalism (and many other things) and you'll notice the differences in the way you think.

@everyone else: This is a mental health issue and using technical arguments is pointless.
Lyberta
 
Posts: 765
Joined: 19 Jun 2013, 10:45

Who is online

Users browsing this forum: No registered users and 1 guest