Sunday, 12 September 2021

Banana Rogue 0.1

After about two years of work to refactor Advanced Rogue from C to C++ it finally compiles and runs. I did skip a step which is saving and loading function pointers of "daemons" (delayed actions), but it should not be that difficult to code later. The game does run, but... yeah, let's just say it has some rough edges to smooth out.

The SDL2 implementation doesn't replicate Curses perfectly so there are some problems like you can't see the enemies and item char is not removed from the screen when an item is picked up. The reason for that is quite complicated system of overlaid curses windows which in SDL2 act a bit different way. The game is so primitive that it doesn't have a level data buffer, it's simply using the screen to store level data.

However I find the game quite interesting, because it is so heavily concentrated on the RPG system and everything else is really simple. It's like the opposite of my projects and maybe some other projects as well, where the dungeon generation is overly important and the RPG system has got much less attention.

At this point I have to stop for a while, this is my gates of Moria where I take a while to contemplate this project. Obviously when I return it's time to clean it up and make it actually work which could be harder than it has been this far. My focus at the moment is Teemu 1.3 and somehow now it feels easier to work on a project that has much better code quality, because at least it's not holding you back.

Wednesday, 16 June 2021

Midsummer update

Banana Rogue: This project is doing well, I'm currently rewriting all linked list routines which is a big task, but far from impossible. As a bonus it's making save/load game much easier to implement. I like working on this project probably the most, because it's so bananas. The source code of Advanced Rogue is really old, but still manageable. I think it's way better than Nethack's source code.

Saladir: This project resembles Advanced Rogue, but the source code is quite bit cleaner. This also needs a new save/load and file routines etc. but this is on hold for now.

Teemu 1.3: Most of the hard work is done, but the bane of my existence or also called RPG system is still unfinished.

Brick Atelier: I have put some effort even to this project which is a tile editor. It's also going nicely, missing some key features which I'm working on (moving, scaling and rotating selection, brush pad etc.).

Ban from RogueTemple forums: I figured out I can read RogueTemple forums from my work (they even used some kind of IP banning to prevent that) and there was a thread concerning my permanent ban. In that Slash (moderator/owner of RT) says that I was not banned for SJW reasons... which is, well, a strange thing to say. As I said before, I was banned retroactively when the rules changed. I didn't break any new rules, there was no time to do that. Even better, I never had any problems before. I didn't get any shorter bans (well, at least that I can remember) and I was not warned about my messages. Some users didn't like me, because I was attacking their ideas about what a roguelike game is. If it makes me an asshole then I proudly want to be that. I know I can be abrasive, but in my mind I'm just passionate. I don't like people who try to make black appear white. It's not white, it's black. We all know what a roguelike game is, why even try to change it? Make your own game genre and call it whatever you want and stop trying to change the reality.

In a situation like this there is nothing you can do. Slash runs the forum, it's his call to ban anyone for any reason, but I didn't like how it happened. It was dirty and everyone should know it. Even if the ban would be removed I would never come back for what they did to me.

Saturday, 5 June 2021

My short Reddit visit

So I went to Reddit as username Ecirk and after I think 5 posts two of them were already deleted. The other was deleted by "automatic" spam filter and another one just disappeared. No explanations why. I think "they" realized it's me after they figured out Ecirk is Krice backwards. It's hilarious how petty these people are and how they run the show in social medias.

Reddit's rogulike dev would actually be quite ok if it did accept everyone in which it doesn't. You can also argue about Reddit's "social media" -style with some kind of arrows to vote something. I never understood up/downvotes, I just want to write messages with text that has some kind of meaning, you know, communicate with people. Most users are ok I guess, but it's those social injustice warriors and their ban hammer that ruins the day for everyone.

I predicted something like this would happen and was obviously right, as always. The problem in moderation is that somehow it's occupied by people with some ideology. I don't know how we could even prevent that other than removing moderators, but then the forums would fill with spam I guess. I'm just baffled about why they try to silence everyone with common sense? What they try to achieve with that? We know it's not going to be a brave new world if these people get to decide political issues etc. It's going to go south fast and hard.

I wont miss Reddit, it's like a forum but the ui is crappy and if you have "wrong" opinions it's impossible to bring them out without getting smashed by a ban hammer. I've sometimes laughingly stated that I will end up in rec.games.roguelike.development by myself and those arabic spammers. It will still be better than anything else we have.

Monday, 29 March 2021

The Secret Of Saladir

Back in the old days there were some interesting roguelike projects like Genrogue by Kornel Kisielewicz and there was also The Legend Of Saladir. It was a "thing" to have a major roguelike project that was going to be better than anything else, such a thing is I guess a nice dream to have for no-life programmer nerds. And obviously I had and still have my main project Kaduria, so I was in that same scene which now is mostly gone.

So, you can imagine my surprise when I was browsing github to find interesting projects to work on (like I'm doing with Advanced Rogue). The author had released Saladir's source code 8 years ago, and apparently no one knew or cared about it. However, sadly it's not open source, but then again neither is Teemu even the source code is available. Even worse, it's sad to find out that Saladir was never going to be the next major roguelike. The source code reveals a lot about the state of the project, let's just put it that way.

Sometimes I think the scene we had was more important than the games, because it was just a bunch of idiots dreaming about the next major roguelike. Obviously some of us knew what to do (Thomas Biskup with ADOM for example), but there were a lot of guys who didn't have a clue. I must admit I was one of those dudes, but my perseverance got me in where I'm now. Which does feel like I'm just in the beginning of my journey as a game developer.

Friday, 7 August 2020

I got cancelled

I was banned from Rogue Temple forums and they did it retroactively by first changing the "rules" and then not giving any chance to follow them. Not that I was breaking any sane rules even before it. The new rules talk about removing "toxic" people so it's complete SJW stuff. It's not surprising to see something like this, but it's not something you have to do. We still have some kind of freedom of speech, I guess?

I can't remember it that well but I think there were couple of people who stated that they leave Rogue Temple because they couldn't handle my spicy messages about roguelites vs. roguelikes. I wonder what happens now, will everyone just return to Rogue Temple and it's going to be one happy family. Will it become like Reddit's roguelike dev with bunch of clueless people who are making all the same mistakes we made when we were starting roguelike development. I feel like those people were just trolling, they were the trolls.

I wanted to write this comment on my ban, because there can be some people who wonder what happened. I'm not upset or anything, just disappointed. This "woke" culture is taking over and we just have to see where it leads us. When they are going to start burning books, or people?

This is going to save my time, because now I don't have to waste it by trying to keep up some kind of actual discussion about roguelike development with mostly trolls and people who are never going to create roguelikes. Even the so called "indie" game development scene has been taken over by people who want to extract money by abusing the legacy of some game genres, but only through false advertisement.

I think it would be hilarious to return to rec.games.roguelike.development, but I guess they have ruined it as well. Look at yourself. You are ruining everything from everyone, including yourself. Don't think you will be safe.

Tuesday, 24 March 2020

Bullet journal

I started a bullet journal over a week ago. It's not for planning, but in practice a diary with one liner explanations of mostly "important" stuff done, including game project entries for each time I'm working on them. I can't plan for the future, but bujo is making decisions easier to do, because each of them is a branch that takes you closer to some goal, or not.

It has already revealed that my life is quite boring. I knew that, but when you look at the entries back in time it strangely becomes more tangible. The way you can "plan" is change things, create new type of entries with activity that is somehow different than before. It's also forcing me to do at least something each day, rather than fall into my default mode which is watching youtube videos.

I think this is really nice tool for roguelike developers for sure, and it's something I wish I had figured out much earlier. Like most of the things anyway. I guess you can write journal to a text file, but my bullet journal is an actual physical notebook.

Tuesday, 25 February 2020

Game object systems

While designing a small engine for C# roguelike I've tried to figure out how to implement the object system. ECS (entity component system) is a typical way to handle it, but I don't like it. It's "simple" only from the surface, because the structure of code doesn't have to reflect the object hierarchy. You can add components (I would rather call them properties) to a base object class and that's it. No need to think about complex class hierarchy etc.

But, it's actually modeling the same amount of complexity anyway. There are people who always parrot the meme "use composition over inheritance" which I find quite annoying. If you think about a component, let's say a container. You would add it to a class and use it something like object.container.PutItem(); Yet, if you inherit from a container class and then use it like object.PutItemInContainer(); it's in practice the same thing. The only difference is that when you use inheritance you need to create larger and more rigid class hierarchy. I bet those parroting people never actually created a full class hierarchy for game objects, they just assume it's "ridiculous" etc. even it's simply modeling the same amount of complexity.

My guess is that it makes sense to use class hierarchy for things that don't change in the game object, and property/component list for external things that can be added and removed from the object. The roadblock in this design is that C# only implements single inheritance. Although you could somehow create such a simple class hierarchy that it doesn't need multiple inheritance by adding some things as components. It's a shame that Microsoft didn't include multiple inheritance to C#, because in my mind it is one of the core principles of object-oriented programming. It's like removing GOTO from BASIC language, because they think it's bad. C# does have interface, but I'm still trying to understand how it could replace multiple inheritance, because just by reading about it I don't get the concept.

I think it's a tempting idea to use a simple object class with component model, but I would rather accept the fact that it's a complex system and try to approach it that way. In OO languages it's quite silly to avoid actual object-oriented style, but that's what many people are doing. Then they complain that object-oriented languages are bad (C++ obviously the worst). Even though we have much less success from using something like pure functional languages in game programming.