Monday, 5 June 2023

Brick Atelier release crunch

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.

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.

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.

Saturday, 15 April 2023

Microsoft should give us back the EGA palette

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.

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.

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.

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.

Wednesday, 25 January 2023

New year with new plans

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.

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.

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.

Sunday, 30 October 2022

Organizing class functions

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.

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.

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.

Saturday, 1 October 2022

The idea I had from a dream

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.

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.

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.

Then we have the energy crisis, and we could even have a war. Fun times.

Wednesday, 3 August 2022

The project cycle

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.

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.

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.

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.

Tuesday, 19 October 2021

Abura Tan SM

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.

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.

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.