tag:blogger.com,1999:blog-81819552061622318992024-03-14T00:33:57.211-07:00Rogue Hut- Roguelike game development and reviews -Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.comBlogger300125tag:blogger.com,1999:blog-8181955206162231899.post-48721088951078924652024-01-17T02:53:00.000-08:002024-01-17T02:53:34.250-08:00Double trouble<p>Teemu 1.3 is in testing phase mainly, not much to change in gameplay, although there are some things still unfinished. I wrote a python script which successfully compiles Teemu in both Linux and OSX, although in OSX I had to compile and setup SDL2 from the source code which was tedious, because the wiki doesn't really tell the proper setup information, which I found from a random youtube video as always.</p><p>After testing Teemu in OSX and Linux I learned after 15 years of using SDL2 that it has a double buffer drawing. For whatever reason my Windows 10 PC which is my main development computer the second buffer always had the same data as the first, so I never noticed it. This means that all my carefully crafter drawing routines has to go and replaced with routines that make sure the entire area of the screen is always redrawn every time.</p><p>Luckily Teemu has extremely simple graphics routines so there isn't that much to rewrite, but some things need more graphical approach since it will be slower to use text output to draw background stuff.</p><p>I know some may be wondering how the source code compiled in different platforms. It was quite hilarious, because there were no errors, only couple of warnings. Linux gcc found one extra warning (I used -Wall) and OSX found two other warnings. Not bad.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-16586119053303927912023-07-04T22:23:00.004-07:002023-07-04T22:25:49.885-07:00Brick Atelier 0.87 released<p>You can download it from here:</p><p><a href="https://www.kriceland.fi/brick/" target="_blank">https://www.kriceland.fi/brick/</a></p><p>The release had some last minute issues like when I was trying to remove the console window from SDL. The solution is indeed change the project type to windows application and just use regular main function with SDL.h included, because it's taking care of that with a macro.</p><p>This release is not perfect, there are some bugs and missing features. Depending on the amount of feedback I possibly get (there may be none) it could be a motivation for faster release cycles, but we'll see. I don't expect a huge success for this project, because it doesn't have many of the basic features that other pixel software has.</p><p>I also feel like I don't have to focus on Brick Atelier for a moment and I can now maybe choose another project for release crunch.</p><p>The idea of class library I was talking about last time was a bad one. It's just because how C/C++ "works" in that area. Otherwise it would be a nice dream to have shared source code in multiple projects.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-6447686416777389292023-06-19T07:45:00.000-07:002023-06-19T07:45:06.098-07:00Class library<p>I've had this idea about creating a shared class library for my main projects. Today I just did it, but it was not what I expected... I started with Brick Atelier, because it's an "easy" project to fix if something goes wrong. The way you create a library and add it to the existing project (or solution) in Visual Studio is quite easy, but I already have something to think about.</p><p>Some classes in the planned library are using SDL2 which I guess is easy enough to add in the library, too. I'm just wondering is there any complications in the way sdl's .dll is used. Because if you create a static library, does it require SDL also to be statically linked? One way to find out that would be trying it, but I'm in the process of crunching Brick's next release version. Then again, I think SDL2 can be statically linked, it no longer has that restrictive open source license, I think.</p><p>It is possible to keep the class library free from SDL2, but it does require some changes and also there are lots of SDL2-using classes that could be included in a library. It was a bit of a surprise that I was only able to move two files (with couple of classes) in the class library... but if you just plan it more like a library it could be possible to externalize quite some lines of code.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-39304883835679781982023-06-13T12:53:00.000-07:002023-06-13T12:53:02.331-07:00What is wrong with Sweden?<p>This is the second and probably the last time I order from a swedish art supply webstore. My first time experience wasn't that cool, because they left out one item. However when I contacted them they offered me a discount for that lost item. It was a bit of a mystery how they didn't ship it, because the order was not large, but it could have slipped through the package which I think was poorly designed.</p><p>The second order arrived today and weirdly enough they had changed the type of package which didn't have any holes by design, but someone had still punched through the package! Luckily the items were covered by two layers of paper so nothing fell through this time. But you have to really try to damage it when it has a hole of that type. Sometimes you see stuff like that happening inside orders in Finland, but it's very rare. I would only guess the swedish package delivery is not that great, it's more like most countries in the world.</p><p>Anyway, I got some japanese Kuretake water colors and a brush which are hard core. They seem to be high quality stuff, but I have not tried out them. Now I have to paint something, even though I have a bad habit to get art supplies and never use them... I just like that stuff.</p><p>I try to get back to Teemu and make it my main focus. I have an idea how to handle the RPG system and I hope it works.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-43586825378153870202023-06-08T01:59:00.001-07:002023-06-08T01:59:41.930-07:00It's so cold<p>The beginning of the summer has been unusually cold in Finland. This is a cold, almost arctic country, but we usually do have short but relatively "warm" (around +20C) summer compared to other seasons of the year. But it's certainly not here yet, today it's +9 and last night was even colder. It's raining, so the sun doesn't warm. It's quite brutal, because most people have already turned the heating off. I'm wearing my trustworthy norwegian wool socks I got as a Christmas present couple of years ago.</p><p>I'm working on <i>Legend of Saladir</i>, trying to fix stuff for a release. I still don't know what the original author is thinking about this, because I have not asked yet for permission to release the source code which is already remarkably different than the original one. The state of the source code is ok, but I really have to code a new inventory routine to replace the old one which I simply removed completely, because I could not refactor it. Sometimes it's better just rewrite it, if you know what the thing does.</p><p>I'm actually thinking about finding yet another roguelike project to work on.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-40592688170892129082023-06-06T23:23:00.003-07:002023-06-07T02:48:01.963-07:00How RPG Codex forum got rid of me<p>Remember when Roguetemple forum permanently banned me, because I didn't fit in their woke narrative? I then went to RPG Codex, which is quite a special forum, because it seems to be one of the last places where freedom of speech is not extremely limited by the mainstream (which is now becoming more and more woke) narrative.</p><p>Anyway, russians hacked some moderator's password, which I think was 'password' and for that reason Codex forced users to have 2-factor authorization or 2FA. What happened next was probably my bad as well, because I had forgot to change or requested to change my old mbnet e-mail I had for the longest time. So, I logged in and wrote a message where I detailed the problem of having an old, non-functional e-mail where the 2FA was messaged. I asked if they could change the e-mail and gave them my new e-mail.</p><p>I got two messages in reply. The first one was a link to change my password(?). I clicked it of course, like everything I get in e-mails. It redirected me to the forums, but the request didn't even work. "Oops, something went wrong etc..." There was also another e-mail that had a notification of a private message, which I can't of course read, because what happened after I clicked the password change link was that my current password no longer works. So, I replied to the message which seemed to have a valid e-mail to reply, but didn't hear anything back.</p><p>So, that's how they got rid of me. I think they saw the opportunity and took it. I think the reason was my avatar, no one seemed to like my rendition of Sonic the Hedgehog. Being kicked out of a forum that has pirates, misfits and other weird characters of course hurts a little bit. The main reason I went to Codex was that I could promote my roguelike projects and Brick Atelier, but then again, why even bother? I can just release them and let people find them from my homepage.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-68580176623043615332023-06-05T07:40:00.004-07:002023-06-05T07:41:35.698-07:00Brick Atelier release crunch<p>Working on a release of the next version of Brick Atelier. It's absolutely hilarious how long these projects take. I began to work on this in 2003 or 2004. It's 20 years ago, although the last release was as "recent" as 2013. Anyways, working on the release is annoying as ever. Testing has revealed more bugs than I would like to fix, even though I know this release will have bugs and/or unfinished features. I had to stop implementing features to move things towards the release.</p><p>The main features of the new release are multiple tilesets so you can actually copy and paste from tileset to another (although it could be buggy). Then there is the tool shelf idea that every tool has its own set of options etc. One of the hardest features was the brush pad where you can store brushes, but now it's almost ready (you can't yet move brushes in the pad). I think the last of the big features was the color/palette editor, it's also quite ready, but still needs color data and maybe some palettes, too.</p><p>Funny thing is that I could actually still need this program to create tiles for Kaduria. This was the original reason why I wanted to make Brick Atelier and seems like there are no pixel painter programs that would have the features I find useful and wouldn't feel sluggish, because they are so large and not really focused on pixel art.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-61027040372399574212023-04-15T02:06:00.002-07:002023-04-15T02:07:49.937-07:00Microsoft should give us back the EGA palette<p>I began to work on a side project with curses library which I learned how to compile and use during Legend of Saladir remake development. Rather than just copy-pasting curses code from Saladir I've been deep diving into curses and programming an isolated gui for the new game. While I was testing colors I noticed something strange with them and after some research on the internet learned I was not the only one to notice it.</p><p>At some point Microsoft decided to change (ruin) the palette of the console by replacing the age old EGA palette with something worse, of course, we are talking about Microsoft here. So as a result the dark cyan and blue colors are almost exactly the same and also yellow is almost white. It's just ridiculous how this has been approved, but it does seem to follow some kind of "guideline", whatever it is. Probably the "idea" was to "protect" eyes from bright EGA colors, because I can't think of any other reason other than to just annoy Windows users more.<br /></p><p>When I say "EGA" some people may point out that the 16 color classic palette is actually CGA, but I've always referred it to EGA, since it was the palette used in EGA games, while CGA had only 4 colors, because the 16 color screen mode was useless in any purpose. The EGA palette is kind of interesting, because it wasn't designed to look good, but the RGB values were simply chosen from a limited set of numbers which were then permutated, thus creating the palette.</p><p>If it is possible to edit the color values of the console then this problem could be fixed, but I'm not sure about it. Microsoft doesn't usually give people any useful options in Windows, like for example that you could turn off updates or remove completely useless built-in software. However after writing this I did notice that you indeed can edit the colors of the console. Well, I didn't spend all this time just to remove this entry. After all Microsoft should probably had the alternative palette as an option you could turn on if your eyes were destroyed by the EGA palette.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-15656724563060018242023-01-25T05:37:00.003-08:002023-01-25T05:37:39.914-08:00New year with new plans<p>I went through a small self-realization moment and figured out I can't work on several projects at the same time. I need to focus on one project to get it ready, then move to next one etc. The first one is going to be Teemu, because it's very close to be finished as version 1.3. The next one, I'm not sure, but most likely Kaduria, even it sounds almost unbelievable.</p><p>The unfinished parts of Teemu are mostly the RPG system and some AI as before, but I think it doesn't have to be a "perfect" system (or AI), far from it. The new version is supposed to be a "true" roguelike, whatever it means these days when almost everything can be a roguelike. Again, I don't think it matters that much, but if I'm at least somewhat happy with the game it's a positive outcome from all the work.</p><p>Even though no one reads this blog I try to post development updates at least once a month. I believe that when I focus on one project and try to keep from perfecting the source code it's going to speed up the development of the game itself.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-32119606932094397602022-10-30T01:54:00.003-07:002022-10-30T01:55:15.524-07:00Organizing class functions<p>I have a new style to organize class member functions. Previously I organized them more or less by "theme", but now I have changed that and it goes like this: first getters (all functions are in alphabetical order), then setters and last three parts are display, debug and save/load routines. I think for some people the order of functions doesn't matter, but in a large project it's nice to have some kind of rules for that, too. Makes it easier to understand the workings of the class. It's a matter of personal preference, but I think this kind of ordering works quite nicely.</p><p>My next focus is Teemu and I have returned to the project just by re-organizing classes and also checking out private/public interfaces, I often place functions to public even they could be in the private part.</p><p>I have also an update to my health problem. When I got my blood checked they found out that I have hypothyroidism or the low function of thyroid. So I have been getting thyroxin for that and it has been interesting. It's likely that I had the condition for years, because the difference in my health has been quite dramatic. But on the flipside it has caused insomnia, although the quality of my sleep has increased so much that it hardly matters. As a result of all this I have been able to put more work on my projects without suffering from brain fog I had before. Yet I have a feeling that it's not over, that there is something else wrong with my health. But I'm not worried about something I don't know, I have enough actual problems in my life.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-47532452786068690812022-10-01T07:54:00.003-07:002022-10-01T07:57:49.292-07:00The idea I had from a dream<p>I saw a strange dream and realized it could be a game idea. Everyone and their dog has ideas, but this one is really good, I think. Obviously not going to tell what the idea is, but have a strong feeling this is going to be my next game project. I did already have a plan to create more traditional role-playing game rather than yet another roguelike and this is it, this is the idea for that game.</p><p>Teemu's level generation is more or less ready, after I guess 12 years of development. But it's only for the physical "topology" of levels. Game object generation is next on the todo list and then the game should be ready, that's how roguelike development works. I hope Teemu 1.3 is released even within this year, or early 2023.<br /></p><p>I have health problems, but I don't yet know what it is. I'm trying to get into health care, but it has been weirdly difficult, because we have (I live in a small village, everyone from one knows what I'm talking about) a strange doctor (sadly, not Doctor Strange) who thinks diagnosing a patient is not that important. I know something is wrong, just have to find out what it is. If it's fatal I don't want my projects to end up in the hands of woke developers, let's get that out of the way first. I want roguelikes that have more features, not less.</p><p>Then we have the energy crisis, and we could even have a war. Fun times.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-13577658911763713402022-08-03T04:20:00.002-07:002022-08-03T04:22:11.557-07:00The project cycle<p>Lately my development "cycle" for each project has been exactly five days. I'm focusing on one project for five days and then I'm done. It's enough time to get some feature implemented and then sign off for a while. Seems to work quite well.</p><p>At the moment I'm working on 6 projects which may seem like too much, but I like it. They are all different, some of them are old roguelikes which are more or less "ready" as games, but I had an idea to make a modern version from them. The rest of the projects are Brick Atelier, Teemu and Kaduria.</p><p>In couple of months my current and long-time homepage provider is quitting so I need to figure out how to set up a new homepage. I think it'll become better than the current one, I try to find a "professional" provider so the pages will have better chance to work properly. Some people were complaining that they can't even visit my homepages for whatever reason.</p><p>Most of my projects are literally 95% ready so there will be releases "soon". I know I'm playing a long game with my releases, but that's how it is sometimes.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-42931956281219258042021-10-19T08:23:00.003-07:002021-10-19T08:25:53.241-07:00Abura Tan SM<p>This is an old roguelike project by Michael Blackney from 20 years ago. I refactored this in 2009 to SDL (1.0 version), but I think it's time to take a look at this again. It took couple of days to make changes for SDL2 which does have more differences than I remembered. Also for the join-macros I had to turn on "standard" macro property from Visual Studio and replace file finding with std::filesystem.</p><p>It does run, but I can't see anything. Possibly the font routine doesn't work properly, because if I replace the data with some random fill color you can see blocks of them on screen. The source code is the kind of C++ you never want to see. It's overly complex object-oriented style and has some annoying features like returning from each case label, leaving out breaks and the last return from end of the function. I think there are also user-made list and string classes which is always great fun.<br /></p><p>As I remember it also has a bug which displays the level over the message area, but when the font routine is fixed we'll see if SDL2 fixes anything (the screen update works different way compared to SDL). But if I get this to run properly it might be an interesting project. This I'm going to upload to my Github which at the moment is empty. I need to use an external Git gui rather than Visual Studio, because I don't want git to mess up my projects. Git is awful to be honest.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-64130072804282337792021-10-13T03:57:00.002-07:002021-10-13T03:58:11.187-07:00The Object Class<p>I'm working on a new project which is going to be more like a traditional role-playing game. The nice thing about this is that I'm starting from zero and this time I'm able to think about how to implement things in a simple way. The programming language is still going to be C++, but I try to avoid complex classes and also use procedural style for "action" code.</p><p>I was reading about game objects and noticed an interesting comment in which the idea of generic "object" base class should be removed. With that you should consider different game objects as their own base classes - in this case movables, items and creatures. This idea is something I want to try, because it doesn't sound that bad and it will certainly remove some problems I've had with that type of implementation in both Teemu and Kaduria which are complexity and large amount of virtual functions.</p><p>If it does work I've been "wrong" about object base class for a long time. However object base class does work better (I guess) in situations where you need to write generic routines for game objects, because the virtual system can decide what to do with some type of object and you only need the base class for parameters etc. Then again, routines for creatures and items tend to be different, so it's interesting to see what happens.</p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-61098031993581823572021-09-12T01:19:00.003-07:002021-09-12T01:19:50.281-07:00Banana Rogue 0.1<p>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.</p><p>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.</p><p>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.</p><p>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.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-37867915787877841132021-06-16T05:35:00.001-07:002021-06-16T05:35:57.870-07:00Midsummer update<p><b>Banana Rogue</b>: 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.</p><p><b>Saladir</b>: 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.</p><p><b>Teemu 1.3</b>: Most of the hard work is done, but the bane of my existence or also called RPG system is still unfinished.</p><p><b>Brick Atelier</b>: 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.).</p><p><b>Ban from RogueTemple forums</b>: 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.</p><p>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.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-45181741118452473032021-06-05T06:28:00.001-07:002021-06-05T06:29:36.091-07:00My short Reddit visit<p>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.</p><p>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.</p><p>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.</p><p>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.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-37097457513172593702021-03-29T23:13:00.002-07:002021-03-29T23:13:49.940-07:00The Secret Of Saladir<p>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.</p><p>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.</p><p>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 <i>was</i> 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.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-59032915730528270992020-08-07T00:53:00.002-07:002020-08-07T00:54:48.313-07:00I got cancelled<p>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?</p><p>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.</p><p>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?</p><p>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.</p><p>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.<br /></p>Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-40145741511401453782020-03-24T05:56:00.001-07:002020-03-24T05:56:01.858-07:00Bullet journalI 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.<br />
<br />
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.<br />
<br />
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.Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-14565488764878371242020-02-25T02:44:00.001-08:002020-02-25T02:47:27.209-08:00Game object systemsWhile 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.<br />
<br />
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 <i>the same thing</i>. 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.<br />
<br />
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 <i>single</i> 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 <i>interface</i>, 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.<br />
<br />
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.Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com1tag:blogger.com,1999:blog-8181955206162231899.post-65675605652328864642019-12-25T03:13:00.002-08:002019-12-25T03:14:25.267-08:00Thinking everythingI'm in a middle of checking out gear use in Teemu. At first my plan was to remove items from inventory when they are in use, but then I went back to "Nethack" style where the item tells what use it's in. The difference is that you can do stuff like throw away your weapon and then you need to check out if it was part of a wardrobe etc. It's not as complicated as it seems, because you "only" need to check this in routines that discard items or change armour etc.<br />
<br />
This falls in a category of "thinking everything" which sometimes is a part of roguelike programming. Rather than trying to understand how the code works you practically have to try out everything and see what happens. In Teemu it's even possible to eat away your armour. Creating a system like this can be both fun and a bit challenging, but I think it fits better in the style of this game.Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-5237840741689133382019-10-25T05:07:00.000-07:002019-10-25T05:10:28.690-07:00Roguelike games in 2019During the long span of development of my both roguelike projects I've been waiting for some great roguelike to appear, but it has not happened yet. It is a bit weird if you ask me, even there are many reasons why we don't have more roguelikes.<br />
<br />
I think the numero uno reason is that they are difficult to create. I should know it, and I actually do. Even to have any kind of hope to release a major roguelike you need to grow up as a programmer if you already are not a good one. You need consistent planning and results that don't break up later.<br />
<br />
But surely there are plenty of good programmers in indie scene? Well, my opinion is no. Open source and indie developers are in fact often even worse than professional programmers, who in most cases don't waste their time to roguelike game development anyway.<br />
<br />
Another important reason is money. It is possible to make nice amount of money from game development, but it's easier to do with game genres that require way less time and work. Most game types are much easier to create compared to roguelikes or even traditional role-playing games (which are also quite hard). Some people are developing commercial rogueli<i>t</i>es which are light-weight roguelikes, because there is a market sector for them, but obviously they are not roguelikes.<br />
<br />
Even after all these things I'm still puzzled about the small number of modern roguelike games, because I surely am one of the guys who would like to play a good roguelike game. There is ADOM, but it's a boring game with way too much grinding. DCSS is difficult and the developers seem to make it worse all the time which is quite hilarious, but then again it was never their own project as far as I know. The mindblowing thing is that we have games like Nethack as a great legacy, but building on top of that it would be possible to create far better roguelikes.Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-84008499643950810012019-10-20T05:07:00.000-07:002019-10-20T05:07:39.625-07:00Code metrics tools for C++This issue makes me somewhat annoyed when I think about it. Visual Studio doesn't have code metrics for "unmanaged" code which is C and C++ in particular. The reason must be that Microsoft doesn't really care about C++. They have to keep it for the vast amount of programs still written in C++ including game development, but there is less effort to include tools like metrics.<br />
<br />
As far as I have searched there isn't a simple, free metrics plugin for Visual Studio, so there is that, too. There are some external metrics tools, but they seem like total overkill for what I'm looking for. I just would like to know how many lines of code the project has without running some external program. Visual Studio already knows how many lines an individual file has and how many classes etc. are in the project. It would be quite simple to collect that information and display it.<br />
<br />
Programming a code metrics tool isn't impossible, but it takes some time and parsing C++ can be difficult sometimes, if you want to extract anything else than physical lines of code. I have written a parser that can find classes from a C++ file, so it would be a start. Maybe if I already didn't have tons of more important projects to do.<br />
<br />
How about writing a plugin for Visual Studio? I don't know anything about it. How it's done etc. It can't be too easy, otherwise there would be a plugin to display C++ metrics I guess. Then again, maybe this is a non-issue in a sense that why would you want to know about the metrics of the project?Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0tag:blogger.com,1999:blog-8181955206162231899.post-65269160286872892362019-09-21T11:00:00.000-07:002019-09-21T11:00:06.682-07:00New workflowI made a small change in my workflow and it seems to work like magic. First I moved all "note:" comments I had written in the source code (to find them "later") into a list of issues, so now the two most important lists are issues and bugs. Then I began to put a date in a fixed item to keep track of development pace. An actual example of a fixed bug from Teemu's bug list:<br />
<br />
127. Sidestats drawing is not dynamic, has static locations (changed to offsets) [21.9.2019]<br />
<br />
For some reason, doing it this way, is making me really focus on a single problem like a bug or issue. And when these issues were comments in the source code it was difficult to figure out what to do next. I guess in a list they make a bit more sense, because you can pick them in some kind of order. I try to fix major issues and bugs first, then less important. Also, keeping track of development pace by date on a fix gives a sense of progress, however small. If you can fix at least one thing per day it's still going to lead into something eventually. It seems like my pace is about 5 items per day which is quite nice, because there aren't really that many of them. Of course, the number of bugs and issues is growing when you test the game, but that's to be expected.Kricehttp://www.blogger.com/profile/07789939511437441094noreply@blogger.com0