Anarch (1.0 release)

Anarch (1.0 release)

Postby drummyfish » 21 Nov 2020, 11:11

Hello,

I am releasing version 1.0 of my suckless game Anarch which I've been working on on evenings for one to two years.

Image

trailer on Peertube: https://libre.video/videos/watch/c96877 ... 578ffa8dcb

I highly recommend compiling the SDL version and playing with mouse and in fullscreen (-f).

PC controls:

  • arrows, numpad, [W] [S] [A] [D] [Q] [R]: movement
  • mouse: rotation, [LMB] shoot, [RMB] toggle free look, wheel weapon change
  • [SPACE]: jump
  • [J] [RETURN] [SHIFT]: game A button (confirm, shoot)
  • [K] [CTRL]: game B button (cancel, strafe, look)
  • [L] [P] [X] [Y] [Z]: change weapons
  • [TAB]: map
  • [ESCAPE]: menu

It's probably a little different from what you expect from a typical modern game as it is a little experimental and purposfully trying to do things differently. It looks like from early 90s and will seem shitty and backwards, but it's just aiming for different goals than wide popularity or making profit. It's not just a game but also a manifesto of some ideas I hold.

It is extremely small, completely public domain, no-dependency, doesn't require file I/O, very portable suckless anarcho-pacifist from-scratch 90s-style Doom clone that runs even with just 32 KB RAM and 40 MHz CPU, made for the benefit of all living beings. For more see the page at libregamewiki: https://libregamewiki.org/Anarch.

Game-wise Anarch offers:

  • oldschool "pseudo 3D" raycasting rendering in 256 colors
  • 10 levels, both interior and exterior, 16 wall textures
  • varying floor and ceiling heights, ability to jump
  • 6 weapons using 3 types of ammo
  • 7 types of enemies
  • optional primitive save/load system
  • bosses
  • optional mouse support
  • a few hidden secrets/easter eggs

website: https://drummyfish.gitlab.io/anarch/

repo: https://gitlab.com/drummyfish/anarch

play in browser: https://drummyfish.gitlab.io/anarch/bin/web/anarch.html

Image

Enjoy!
Last edited by drummyfish on 29 Nov 2020, 17:55, edited 2 times in total.
socialist anarcho-pacifist
Abolish all IP laws. Use CC0.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 298
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: Anarch (1.0 release)

Postby Julius » 21 Nov 2020, 11:36

I played it in the browser a bit just now. The labeling of the buttons in the browser is a bit confusing, as it doesn't correspond to the buttons (QE-WASD and J etc is actually used) only to realize after a while that it is supposed to be up down left right etc.

As for the game itself:

1. I dislike that the enemies don't move smoothly. Not sure what you are trying to achieve with this pseudo tile based movement, but since all the rest of the game doesn't use it, it very much looks out of place.
2. The (1st) level design just isn't very good. I ran around ending up again and again in the same places randomly trying to find the hidden spot where it would allow me to continue the game.
3. Doors don't look like doors at all (but rather like some hidden Easter egg entry) and why are they so low height?

But overall my first impression was quite positive :) Do you consider it "done" now, or is it just a milestone for further improvements?
“Reality is that which, when you stop believing in it, doesn’t go away.” - Philip K. Dick
User avatar
Julius
Community Moderator
 
Posts: 3005
Joined: 06 Dec 2009, 14:02

Re: Anarch (1.0 release)

Postby drummyfish » 21 Nov 2020, 11:53

Thanks for playing it :) I just ran the browser version too on another computer and it's pretty slow here, will have to check that out, but the web is basically just for quick testing of the game. I highly recommend compiling the native SDL version, it's much better.

The reason for some of these things like jerky enemy movement is that it's not a PC exclusive game, it's a game independent of any platform that tries to run on very small platforms, like embedded, too. It actually started as a Pokitto game. So I had to restrict myself to big constraints (e.g. I can't store 2 32bit integer position coords for all monsters, that would take a lot of RAM). Consider the PC versions something like playing gameboy games in an emulator on PC.

This is basically done feature-wise, but of course improvements and polishing will be going on further. One of the ideas for this is to be just a basis game that others can fork and mod and make better. Someone could e.g. take the assets and redo the game in Doom engine for extra smooth gameplay.
socialist anarcho-pacifist
Abolish all IP laws. Use CC0.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 298
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: Anarch (1.0 release)

Postby ffaf » 21 Nov 2020, 13:28

Played it! Nice retro raycast action. I am on level 2 and easy this game is not!
I would like to have the keymap mentioned in the gitrepo readme too (in case someone wants to play after having built it by themselves).

I am not the biggest fan of FPS shooters but I keep playing this, which means it is a good production. Contrary to Julius I enjoyed the level mapping (well I have only played two levels), sensible and cosy.
ffaf
 
Posts: 64
Joined: 04 Dec 2019, 08:59

Re: Anarch (1.0 release)

Postby onpon4 » 24 Nov 2020, 06:57

I don't get the appeal personally.

Let me preface this (especially since you say you have AvPD, which we can relate to) by saying that what I'm going to say about this game is not meant to attack you. I understand you've worked hard on this game and believe in it. I very strongly disagree with your politics, but as a game developer, I can see that you are passionate, and I very much respect that. I think you should keep going with your passion, and try not to let sanist comments that you suggest you've heard before in your FAQ get to you.

That being said, this is easily the most plain and boring FPS I've ever played. Granted, I've never played Wolfenstein 3D, so I don't know how this compares to that. The earliest FPS I've played is Doom, which I like, though I think the original controls are not as good as the WASD / mouse layout of modern FPS games (which thankfully modern source ports of Doom like PrBoom++ support).

But objectively, I just don't find Anarch enjoyable. All I'm doing is running around at breakneck speed in a bunch of hallways that look the same shooting robots with a shotgun. Enemies often can shoot at you while they're still too far for you to see them, which feels like a case of "fake difficulty", and is very unfair. There's no strategy; just shoot any robots you find, and wander around until you accidentally find the exit point. It's easy to get lost; there's a minimap, but it's hard to read and doesn't indicate what direction you're facing. The view is so dark and the rooms so cramped that it's hard to see much of anything. The music and sound weren't appealing to my ears.

Basically this game feels more like a generic game that you've thrown together as your first game. Which, if that's what it is, you did a good job for a first game. But it could use some refinement. I was only able to make it to the third level, and on my second attempt, I didn't make it past even the second. Not so much because of difficulty, but because the game is so boring that playing it actually takes away spoons for me.

I also don't see how this game is a "manifesto" for your ideology. You talk about anarcho-pacifism on your website, but what does anarcho-pacifism have to do with going around shooting things with a gun? I saw no trace of a "manifesto" in this. You claim that the backstory is something about capitalism reaching its worst or something, but like, that's both not mentioned in-game and has no effect on the gameplay. Your politics seem to matter so little that I could insert any random political stance in it that accepts violence against robots, and there would be nothing objective in the game to prove that it doesn't support that stance.

Basically, this game was, in my view, nothing special. Like I said, if it was your first game, it's not bad. But it's not something that made me want to play.
User avatar
onpon4
 
Posts: 590
Joined: 13 Mar 2014, 18:38

Re: Anarch (1.0 release)

Postby drummyfish » 24 Nov 2020, 12:07

Thank you @onpon4, I am actually very glad you've seen and played this, I've been following your website and have always liked you. I don't take it personally and honestly I didn't expect any other reaction, this is all okay :) <3

I know the gameplay is kind of bad in competition of other similar games nowadays, but my goal wasn't to win in this area. Gameplay wasn't at the top of my priority list. For example, I am expecting a global technological and capitalist collapse soon after which we may end up with only very primitive computers, which without capitalism will be improving only extremely slowly: at that time the highest priority will be to create a C compiler, and once it's done, my game will be playable again, while all the uber Steam games of today will be lost forever.

That's just one "use case". Another is e.g. for me and others to be able to create completely public domain video game footage, which probably isn't possible otherwise, everything is copyrighted. I would like to e.g. create the first completely public domain game speedrun in the history of the Universe. I am planning to make public domain educational computer graphics animations for WM Commons using this game. Another possible use is for new embedded open consoles to be able to demonstrate their capabilities and use this game as a benchmark, showcase game, a test etc. -- these consoles are often too slow for Doom, and porting Doom is, unlike Anarch, non-trivial, not talking about Doom being proprietary. Another use is for education: let's say someone wants to learn 3D rendering programming and wants to do a small but USEFUL project -- they can take my game and try to create an OpenGL 3D renderer for it, without being discouraged by overwhelming complexity of a codebase like other games have.

As I say in the readme, the compiled game itself doesn't communicate much politics, and it's partly on purpose: I want people to be able to take it out or put in something else. I am actually considering making a children-friendly Christmas mod of this game where the story will be something about robots stealing the Christmas and you'll be shooting them with snow balls.

My philosophy and politics is in the project as a whole, for example refusing to be dependent on capitalist programming languages and platforms, expensive consumer hardware etc. It is public domain to express complete opposition to intellectual property laws, even in forms of permissive licensing. Another goal was to show that you can (and should) make a multiplatform game very easily: instead of making a game exclusively for Pokitto, I can simply make a game for an abstract interface without making many assumptions (such as having a GPU, having an HDD, having a floating point unit), and it will be able to run on Pokitto, but also on PC, on phones, in browsers, far in the future.

I would also be hoping that this might teach people that this isn't MY game. It's not like when it sucks, I am the only one who can fix or improve it because I either have rights to it OR I am the only one understanding the million lines of code. These are simple functions mostly in one file, anyone can make it a game they will like if they want.

If you're looking at this game as just a game and expecting it to be like games today, you WILL be disappointed.
socialist anarcho-pacifist
Abolish all IP laws. Use CC0.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 298
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: Anarch (1.0 release)

Postby Wuzzy » 27 Nov 2020, 18:20

What is impressive is that this game is small in file size, like REALLY small. Have you heard of the demo scene?
As for the music: I have a feeling this music is actually generated by code by messing directly with the sound output. This style sounds familiar. Am I correct in my guess?

As for the game itself, it is … meh. I think the biggest problem is the level design. I only made it to level 3 so far. Anyway, this game feels more like a maze game than anything else. I have to search forever for the next keycard and exit, etc. The FOV is quite narrow as well. Maybe the game becomes much easier with a broader FOV. I don't know. Long story short, I gave up at level 3.

But as I understand, good gameplay is not actually a goal here anyway, but to make a very minimal functional game. Well, it IS minimal and functional, so ...

I think you should extend the README to explain how to play, how to read the GUI, how to read the map, and especially the part about the controls needs to be explained. I.e., basically a little game manual. Especially since this game is so minimal, some instructions are important. What's also missing is how to activate fullscreen (writing it in a forum post does not count, sorry :P).

The controls are confusing and aren't that clear. OK, once you know them, you know them, but still! The main menu entries also confuse me a bit. When I complete a level, and it asks whether I want to save, I don't know what key I must press, so I just press random keys until it lets me continue … Also, as for keycards: All keycards are colored the same. When you walk to a door that wants a keycard, it shows a colored square, just as if you already have the keycard. This creates ambigiuty. Maybe instead showing a filled square for door locks, show a square outline.

I noticed the digit 8 looks dangerously similar to 0. Would it be possible to increase the font size from 4×4 to 4×5, maybe? Or would that already explode the sacred file size limit? :D

The README was an interesting read. Very detailed info about the codebase, you don't read stuff like that very often. I like that you made your own raycasting. I still don't know how you did the music in this game.

What I find confusing is your rant against "capitalist programming languages". This does not make sense to me. As I understand, capitalism is a system in which there is a class of privileged people who own the stuff that produces stuff, and stuff is produced for profit. Applying this definition to programming languages, I guess the "stuff that produces stuff" would be compilers … kinda? Also, you can't really "own" a programming language either, that's not how ownership works. The closest equivalent would be copyright … kinda sorta. But you can't copyright languages themselves either, only concrete works. So, the idea of a "capitalist programming language" is kind of a stretch IMHO.
Most of the important languages are actually pretty unrestricted. FOR NOW. :D Most of the important programming languages do have libre compilers, so … I think the big exception is C#, where Microsoft has strong and tight control (Mono is crap and doesn't count, sorry, it hurts but it is true). But for the rest? I don't see it.

Final question: On what kind of hardware did you successfully get Anarch get to run so far? The more exotic, the more exciting! :D
Bitcoin contributions welcome: 17fsUywHxeMHKG41UFfu34F1rAxZcrVoqH :-)
User avatar
Wuzzy
 
Posts: 938
Joined: 28 May 2012, 23:13

Re: Anarch (1.0 release)

Postby Technopeasant » 28 Nov 2020, 19:19

I just like seeing any new single player FPS games that are free software other than FreeDoom.
User avatar
Technopeasant
 
Posts: 101
Joined: 22 Feb 2017, 03:38

Re: Anarch (1.0 release)

Postby drummyfish » 29 Nov 2020, 12:08

Wuzzy {l Wrote}:Have you heard of the demo scene?

Of course :) I didn't really make this for demo scene, because these guy really aim for the smallest size and that requires sacrifices, e.g. they aren't portable and very often use a HUGE amount of RAM and need fast CPUs to take advantage of the space time tradeoff.

I tried to make Anarch very small for portability etc., but I still wanted to e.g. have hand made textures, not procedural ones, to give modders room for creativity, so I tried to balance all aspects, not just size.

The 256 KB category is also considered the easy one in demo scene, 200 KB game would be seen as "big" I think, these guys try to go much lower. There is e.g. the famouse kkrieger which is true 3D high definition amazingly looking shooter in just 96 KB (but as I say, thanks to making many sacrifices elsewhere).

Wuzzy {l Wrote}:I have a feeling this music is actually generated by code by messing directly with the sound output.


Yes! You are right, it is the so called bytebeat, each track is generated by a simple formula that can be found in sounds.h. Firstly I wanted to create something like my own mini MIDI player, but that would take more space and would require me to manually compose the tracks, eventually I decided to keep it simple this way.

Wuzzy {l Wrote}:The FOV is quite narrow as well.


Can be adjusted in settings.h. I'll try if it feels better.

Wuzzy {l Wrote}:Especially since this game is so minimal, some instructions are important. What's also missing is how to activate fullscreen (writing it in a forum post does not count, sorry :P).


You're absolutely correct, I need to create a manual. Thanks :)

Wuzzy {l Wrote}:"capitalist programming languages".


I call capitalist programming languages the languages that were created by capitalism, for the needs of capitalism, to support capitalism, to make profit for the corporations on the detriment of other things like efficiency, moddability (things important for the users) and so on. For example, C++ is attempt at a capitalist evolution of C, but C++ is still not as bad as Java etc. If a language is made so that corporations can quickly bundle together ugly programs that are inefficient, dependent on huge frameworks and force people to buy newer and faster consumer HW, plus obscure the working of the the program with concepts such as OOP, it is a capitalist language. C was created by scientists in a time when computer technology was still hugely a scientific field rather than purely commercial and consumer things. It is not perfect but it's the best we have.

This is to answer your question and explain my opinion, I probably wouldn't like to start a heated political discussion in this thread.

Wuzzy {l Wrote}:On what kind of hardware did you successfully get Anarch get to run so far? The more exotic, the more exciting! :D


The list of ports is in the readme. I didn't yet port it to a pregnancy test :D I consider my ports to Pokitto and Gamebuino Meta are the interesting ports to show to people (here some YouTuber made a Pokitto gameplay video). Recently someone has ported this to bare metal Raspberry Pi.

I leave this to the people now, would be very glad to see someone port this to Gameboy (probably advance, but maybe even color?). Also if someone could make a native Android port for F-Droid, I'd be very grateful.

-------------------------

Thank you for very good feedback. I'll see if I can make the manual.
socialist anarcho-pacifist
Abolish all IP laws. Use CC0.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 298
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: Anarch (1.0 release)

Postby Julius » 29 Nov 2020, 12:21

drummyfish {l Wrote}:
Wuzzy {l Wrote}:"capitalist programming languages".


I call capitalist programming languages the languages that were created by capitalism, for the needs of capitalism, to support capitalism, to make profit for the corporations on the detriment of other things like efficiency, moddability (things important for the users) and so on. For example, C++ is attempt at a capitalist evolution of C, but C++ is still not as bad as Java etc. If a language is made so that corporations can quickly bundle together ugly programs that are inefficient, dependent on huge frameworks and force people to buy newer and faster consumer HW, plus obscure the working of the the program with concepts such as OOP, it is a capitalist language. C was created by scientists in a time when computer technology was still hugely a scientific field rather than purely commercial and consumer things. It is not perfect but it's the best we have.

This is to answer your question and explain my opinion, I probably wouldn't like to start a heated political discussion in this thread.


While I also dislike Java for various reasons, I don't think forcing users to buy faster hardware was a design consideration of the language ;)

If there is a concept such as "capitalist programming languages" it is rather along the line of Fordisation. i.e. making programmers an easily replaceable part of a supply chain. I guess Golang was created by Google with an actual goal similar to that. But as always there are different ways to interpreting such, some people might also call it "democratisation" as it makes programming more accessible to non-scientist etc.
“Reality is that which, when you stop believing in it, doesn’t go away.” - Philip K. Dick
User avatar
Julius
Community Moderator
 
Posts: 3005
Joined: 06 Dec 2009, 14:02

Re: Anarch (1.0 release)

Postby drummyfish » 29 Nov 2020, 16:53

Julius {l Wrote}:I don't think forcing users to buy faster hardware was a design consideration of the language ;)


It definitely wasn't in a design document or planned by dr. evil, but it was created "by the capitalist system" itself, by the "invisible hand" and evolutionary principles. This system simply forces designers to even unknowingly and subsonciously make decisions in questions of tradeoffs that will benefit the corporations rather than people.

I don't think the kind of mess Java et al are isn't necessary to make programming accessible to more people. A high level language can be done nicely, with heavyweight features available as optional extensions rather than core functionality. I think the reason Java is what it is is that it's good at containing bloat and making it possible to keep the project going when it becomes very ugly, and it makes it easier to treat programmers as resources, i.e. you can fire programmers and hire new noobs who don't understand the codebase or programming very well without them being able to do much damage (thanks to encapsulation and so on).

EDIT: added simple manual

EDIT 2: higher FOV (both horizontal and vertical set to value 400 in settings.h):

Image

EDIT 3: If you add #define RCL_RECTILINEAR 0 to it, you get the "drunk mode".

Image
socialist anarcho-pacifist
Abolish all IP laws. Use CC0.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 298
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: Anarch (1.0 release)

Postby Jastiv » 12 Dec 2020, 03:17

I will say I don't think Java is a very noob friendly language these days with the depreciation of Netbeans and the requirement to move to the latest Java cause the old one will no longer be supported.

I will probably have to try out this game soon. I will say if the level design is bad and people find it unfun, it may be better just to tweak some things in it to make it more fun rather than insisting upon an unfun design. It is more likely to be propagated and gain popularity that way (and also more likely to be archived somewhere in the event of a disaster.)

(played the first couple levels a bit. It is fun so far. I am probably going to read and go to bed in a bit.)
User avatar
Jastiv
 
Posts: 267
Joined: 14 Mar 2011, 02:18

Re: Anarch (1.0 release)

Postby Technopeasant » 14 Dec 2020, 04:34

As he says though, it is designed to be a good base for other projects, so even if you do not like the base game it has the potential to grow into something more to your tastes.
User avatar
Technopeasant
 
Posts: 101
Joined: 22 Feb 2017, 03:38

Who is online

Users browsing this forum: No registered users and 1 guest