Friday, 5 July 2019

Dragonet

Taking off some time from my other projects and starting a new one. With this I'm going to follow different rules than before. It's a traditional RPG rather than a roguelike, but it's going to have some random things. The actual idea is in the implementation with these rules:

1. Completely class-based without public data (only public interface).
2. Inheritance first design.
3. Everything is programmed as a function to a required gameplay feature.
4. External data with parsed dynamic instances.

I think rule 1 is going to be broken in some places, but not inside classes. Mostly in global instances I guess. I think 3 will be an interesting one, because it's the opposite I've done this far. I've always added features without planning them that much and maybe it's one of the reasons I've spent a lot of time wondering how to put everything together.

Saturday, 29 June 2019

Class design tool

I learned today that there is a class design tool in Visual Studio which took some years to figure out. It's not a built-in part of VS2019 but should be. Seeing the class hierarchy in visual level shows "problems" in inheritance very clearly. Although the class hierarchy can be anything you want, but often a tree-like hierarchy is better, from simple to more complex classes.

There are huge stacks of single use classes in both Kaduria and Teemu which looks kind of funny. I think with this new tool it's easier to fix class hierarchy and it's going to be my short term life goal for sure.

I don't yet know what to do with Teemu's github adventure. I actually hate github and source control, because as we saw anything can happen. I feel it's also unneccessarily complex system, but that's typical in the linux/open source scene. Everything is super complex and obfuscated for no clear reason.

Thursday, 6 June 2019

Github failure

Suddenly out of nowhere Visual Studio's github extension reset project files of Teemu (sln, vxproj etc.) to beginning of the project, removing all paths and settings, even to a point that it added already removed files to list of files going to github.

In response I removed github extension, because I still want to develop my projects in Visual Studio. It's still, with all its flaws, much better than let's say Code::Blocks. But since I can't really use or trust github extension it had to go.

I know there are github gui's for other than command line use for github, but it's unclear if I have to remove the current github project and start a new one. After this I've been thinking twice about source control. Yes, it's probably a good idea, but what if something goes wrong? It's feels less reliable now when I know it can change files for no obvious reason. What if it changes some random source files and you can't figure it out until days or weeks later?

Saturday, 1 June 2019

Teemu at Github

Teemu can be now found in github: https://github.com/paulpekkarinen/Teemu in its development state and also later as finished version 1.3.

If you look closely you can see it has grown from the previous version and there is even an attempt to create a role-playing system in it.

Tuesday, 28 May 2019

Realtek LAN problem solved

Remember the Asus Prime H370 Plus' Realtek Lan unable to connect to internet? The actual problem was that not even Asus knows the lan chip in their motherboard is Intel I219V, not a Realtek. The installation program in original driver CD has the proper driver and I found out that just by trying it, even they often have outdated drivers. The new computer doesn't have a CD drive, but my old has, so I copied everything from there to usb stick.

I've been thinking to create just one blog for my ramblings, but maybe later. The new plan for Teemu and other projects is that Teemu is going in github, but maybe not Kaduria, at least not yet. Not in the development stage. It makes more sense, because Teemu has always been "open" source (the source code is available).

The new PC is nice and fast, but it still does have couple of problems. Since the case fans are DC type (three pin) they for some reason can't be set less than 800-900rpm so they are quite loud. The processor is running average 30C temp, so it's cold and I guess doesn't need case fans to run that fast. So I need to get quality PWM case fans. Another stranger thing is that when I turn on power from switch outlet the lights in the keyboard lit and they stay on (caps and scroll lock lights) until computer is turned on, then they start to work as usual. It may be even some kind of grounding issue, but I have no idea what it is. Related problems when googled are opposite, when people turn off the computer the keyboard lights stay on. But in this case the computer is not even turned on, just the power.

Saturday, 18 May 2019

Hardware problems

I have a new computer, a tabletop PC I built myself. I was surprised it started the first time and everything seemed to be ok, but then Windows 10 failed connecting internet. The problem seems to be Realtek's LAN and/or Windows. Obviously I tried to find a solution, but nothing seems to fix it. Reading other people's experiences I'm also going to try a LAN card which is going to have Intel's chip. In fact my current PC has Intel's LAN and I never had problems with it.

This is one of those strange things about PCs and hardware. How hard it would be for OS to figure out what exactly is wrong? Windows 10 doesn't really help that much, it just says the driver is not installed. When I install the driver from motherboard's site it doesn't do anything and the driver installation software is giving another error which tells it's not connected. It is and the cable works in my older computer. Maybe the cable or router is too old? No. It can't be. We'll find out about that when the card arrives in couple of days.

I'm really bad at working with hardware. I just want the computer to say it's ok. I spent a lot of time learning about new PC hardware just to be able to select proper parts that fit together. I don't know about the motherboard, it sure does look like it was not the best one to have (Asus Prime H370 Plus). Then again when you build from generic parts it's easier to change them. I even got a retail Windows 10 which means it's not tied to the motherboard (oem) so I can in theory change everything.

I also hate the way internet is full of "information" about how to fix these problems, because in most cases it's just noise. It's so hard to find actual solutions. I think the best one I've read this far was to remove memory and install it to another slot. You know, to fix that LAN port. I think the companies who build this crap should give us confirmed user stories how these have been fixed, but it's not likely, because companies like Realtek are way too large to have any kind of connection to regular computer users. I don't even want to talk about my bad experiences with computer repair, it's just not worth it to send a defected motherboard to repair. You have to remove it and wait for several weeks for it to come back with a note that it works.

Wednesday, 8 May 2019

How other languages can help

Wish I had tried other programming languages way before. I knew what Basic is, because it was my first language contact back in the 1980's. But then I moved to C and later C++. Recently I have tried out languages like D, C# and most recently Go. I think they can help by giving back more motivation to work with C++, because most other languages suck.

Yes, they suck. Even though C++ is far from being a perfect language it has the least amount of suckage.

So what is the problem with other languages? It's often not the theory behind the language, it's the implementation of it which should give the developer more or less painful access to things like graphical output. Yeah, about that... It's mindblowing to realize that the main output type of languages like Go is text output in the terminal or console window. There are external gui libraries, but in case of Go they are quite difficult to install/use and also they are bloated because some weird reason the language works. Maybe it's the garbage collection memory model or something like that.

I guess some of these languages were never designed for desktop use, but then why do people still ask why C++ is the most common language when the answer is obvious. It's because you can actually write desktop software in C++, even it's an ancient language and GUI support is quite bad with bloated antiquated gui libraries like wxWidgets. The point is it's still better than anything else.

Not only I'm sick and tired of all those things, but then there are people who religiously defend some sucky language like Go. Don't these people have anything else to do, like write actual working computer programs. They never do that, because they can't.