Blogs

Why ready-made textures often are not as useful as many might think

On duion.com I offer mostly unedited texture photos and I often got comments like "Oh but they are not ready-made yet, so they are not useful" so instead of answering all those individually I will write a ready-made answer for this here.

The main reason is probably, that I don't have the time to convert them all, but let's say I would convert them all, then I would face the question: "To what and after what standards do I want to convert them?". From a users perspective ready-made always sounds good, it sounds like good quality and most importantly less work, but from a developers perspective this can quickly shift into its opposite. Yes if you are a user and unskilled anyway, then you are probably well off, with just using them as they are, but if you are an artist with a bit of passion that wants to create something he can stand behind, then you may not be fine with the quality you are given and want to improve or adapt it. I for example always found myself looking at ready made textures and thought "Oh yes they look very good", but on closer look or when testing them in a game I noticed them being wrong or having some kind of flaw I had to correct, since I'm a bit of a perfectionist.

Most asset stores provide their textures for a specific purpose, this is fine for that specific purpose, but for everyone else a disadvantage, since they will only fit that specific purpose and for everyone else they will be less useful or not useful at all.

So what you do then? Many will argue "Then you edit them yourself to fit your purpose", yes this is possible, but textures now consist of many layers like diffuse, normal, specular, ambient occlusion, heightmap etc, so once you edit the diffuse, all others are wrong, so you have to edit them as well in the same way, for which I have no idea how to do that in an efficient way, so the best option you then have is to edit the diffuse layer and generate all the other layers again yourself. Once you are there you realize that:

1. You do not have the skills or tools to do it

2. Even if you do so, you still have no idea how the original creator did it

3. Then your textures will end up different in style and quality, so they do not match the others

4. So the ready-made material you downloaded, was useless to you

5. You may have been better off with the unedited source image which has probably higher resolution and more image to work with

 

From this train of thought you can see the big problem that can arise, since a ready-made material is only useful for a specific purpose, for everyone else it will be less useful or even problematic, since even if you manage to edit it to your purpose, then you still end up with the problem of inconsistent quality since your style of editing is different, but this all assumes the texture was usable for your purpose to begin with, since if not you end up with another list of problems:

1. The texture may have weird resolution like 3205x1208, most developers know textures should be power of two and squared or rectangular with power of two, like 512x512 or 1024x512 etc otherwise game engines cannot work with it. Yes for some purposes like rendering it may not matter, but you still may end up with all the problems listed above, for everone else the texture becomes almost completely unusable, since of course you could just stretch the image into power of two, but then it will be stretched, then you will have to unstretch it inside your application again, but the image remains kind of stretched since the pixel density is different horizontal to vertical.

2. The texture may be overedited so that it is too bright or too dark and information was lost or some kind of filters were applied, so it no longer fits your purpose or style.

3. The seamelss conversion is poorly made, so you have a lot of editing artifacts, obviously repeating patterns and lots of image pattern was lost due to it. Yes you can fix that, but it will lead to even more image pattern will be lost.

4. Even if everything is fine, you never know how much quality was lost in the conversion compared to the unedited source image, resolution or image pattern may still be lost.

So in all the above cases you would be better of with an unedited source image, if you have even a little editing skills yourself.

 

My solution to this problem is, that when I need a texture I browse the Texture Photos on this website and pick one or more of the textures that seem to fit, then I will test if they fit my purpose, so either I edit them into a seamless version already or just apply it as it is, to see how it looks inside the game or render view on the model. When I'm fine with the result I will finish editing the texture, at first only the diffuse layer and will go and test it ingame to see if there are any flaws, mostly repeating patterns from the seamless conversion and only if the diffuse layer is ready-made and tested ingame, I will start making the other layers like normal map, specular map etc, then I will go again into the game and test the texture with all layers applied and test each layer individually if it fits, if not go back editing that layer until it fits.

This may sound very complicated and work intenstive and depending how often you have to fix it, it really is, but if you have your workflow and toolchain already setup, it is not as complicated anymore and you are guaranteed to get a good result that fits your purpose. The time I spend making a texture could be anywhere between 5 minutes and 3 hours, on average probably more like 0.5 to 1 hour. Most time is spend on testing, especially since I like to play around a lot, like walking around observing it from all angles and in different conditions, but you do not have to do that.

The ready-made textures I offer are made like that and designed to be used with Uebergame/Torque3D so they may not work that well for other purposes, but at least for that one purpose they are well adjusted.

I can understand why most asset stores especially since they are often commercially oriented will just pump out as many assets as possible in the shortest amount of time, I could do that as well and just spend 5-10 minutes on each texture and put out 5-10 times more in the same amount of time, but I could not stand behind that product even if it was free, since I would know that it was not that useful to others in an untested and unpolished state.

The industry kind of addressed that issue since more and more they sell tools now where you can quickly generate textures in the way you need them, but I'm still a fan of photo textures, since they offer the most realism, since they are real, those synthetic textures often look like plastic. Of course technology gets better and you can render photorealistic textures now, but this is still quite a lot of efford and costs time, so why not just use a photo instead, if you have one at hand that fits.

I hope this breakdown was somewhat useful and I admit that there is a place for all those categories from source images, to ready-made textures to texture generators, but each one has its limitations, so it is not that ready-made is the best product for everyone.

Blog Reference: 

The hypocrisy of the free software movement

This is kind of a follow up to my previous blog: "Why I don't use the GPL-license" since I realized the problem is much bigger than just the question what license to use, the problem expands to the whole open source movement.

Let's go back to the beginning, at least my beginning, what lead me to open-source. My first encounter with computers were games and I did not care about the license, since it did not matter, you would just consume them. But later when more complex games were released like 3D-shooters, especially those that came with level editors, I became interested in creating my own content for the games, which quickly became more interesting than the game itself. After some time of doing this however I realized the restrictions of proprietary software, since you needed to buy a license for a game you wanted to create content for and then your options to create content for it and modify it were still very limited and after some time the game was outdated technically and nobody used it anymore. So to make it short, my only criteria for the software was, "Can I use it freely or not?" and the answer was of course I cannot. So my motivatoin was purely practice oriented and no question about ethics and politics etc. Since there was no option to use a game engine freely at that time, I gave up on my hobby for quite a while.

I still observed the scene from time to time, to see if something has changed and at that time there were a few GPL projects, but they were not good enough for me, not because of the license, but because of the inferior quality of the software, so I ditched that option as well. Then later finally I found a good option and got into game development and became more interested in open source software, mostly out of practical reasons, only later out of ideological reasons as well. At that time I also encountered the free software movement, but did not notice it that much, I just thought they are the same as the open-source movement, just more radical being for even more freedom and more ethics. So when I was developing my game, I came in contact with them and I thought some of those people would be interested in helping me, but never found anyone seriously wanting to contribute anything productive, like doing real work. What I found however was people starting to harass me that what I'm doing is not right,not good enough, the wrong license and so on. I also had people that said "I will only contribute, if you make your game GPL only, because GPL is so much better and will get other GPL-fans to contribute as well". Later I realized that something was wrong here and those people did not really intend to contribute anything productive to begin with. They just wanted to convert me to their ideology, to then run away and those other people I supposedly would gain to help me, if I would do so, did not exist to begin with. This was my first encounter with the hypocrisy of the free software movement.

When there is a movement for a good cause, the cause should be the priority, not the politics of the movement, but this is what is the case with the free software movement. The free software movement does not care about developing more and better free software, they only care to convert people into their movement and compel them to GPL their software projects which effectively steals them and makes them owned by the movement. They are like the Borg, only assimilate, never create. This can be proven by looking at their fruits, which are mostly nonexistent, since the number of new free software game projects created by them has dropped pretty close to the number 0 around the year 2011 and did not recover in the last 7 years and most likely never will recover to eternity.

The free software movement is hard to see through, since the issues they talk about are all correct, like evil big companies use evil lawyers to forcefully enslave everyone to their evil restrictive copyright licenses. The problem however starts with their "solution" to solve that issue and that is to create another evil big "non-profit" company, to use non-evil evil lawyers to forcefully enslave everyone to their "freedom" non-evil evil restrictive copyright GPL-licenses. This is all completely hypocritical, they are complaining about something and then using the exact same methods than their enemies, but when they use those methods, they are somehow good, while the same methods are evil when used by their enemies.

A copyright license grants the creator of a thing all the rights, thats why it is called copyright, the creator has all the rights, but a copyleft licenses tries to grant the user all the rights and take the creation from the creator, aka stealing it. This is communist ideology, steal from the productive and give to the unproductive and to do that they need to strengthen the goverment, which creates another evil oppressor in the world, which is then supposed to remove some other evil oppressors like evil big companies. This may even work, you can indeed get rid of the evil companies enslaving people through that, but while doing so, you just take away the power from one oppressor and give it to another.

This then creates 3 new big problems:

1. The new oppressor is much stronger

2. The new oppressor now has a monopoly, making him exponentially stronger and more oppressive

3. You destroyed the only productive class, so nothing gets produced anymore and everyone will live in poverty, like it is the case in all communist systems.

 

Well this turned into a quite general political article and I thought I can get away from politics by indulging into escapism in the form of video games, looks I was wrong. Initially it was just about personal license preference, but now I can only recommend everyone to stay away from those leftists and their insane ideologies as far as possible, or they will try to destroy your hobby as well.

Blog Reference: 

Why I don't use the GPL-license

First when I got into game design I did not bother that much about licenses, I thought open source is open source. Torque3D was MIT-license, which is a liberal license, so I thought, well good for me that the license is so liberal and I just kept it as it is.

Then I had GPL enthusiasts trying to compel me to change my project to GPL license, since GPL was supposedly much better and more "free", since it would ensure the project staying open source and nobody could "steal" from it without giving his changes back and it would also motivate other people from the GPL enthusiasts camp to contribute to my project.

So I began to look more deeply into the license issue and the benefits and drawbacks of the different licenses, since I don't want to act emotional wihtout doing proper research first. After some deeper investigation I not only found that the GPL-guys arguments were wrong, but that the truth was more like the exact opposite. Now let us break down the arguments for the GPL one by one:

 

Argument 1: GPL is supposedly more free, since it is copyleft license, which forces through a license agreement which is the GPL itself everyone to keep the project free and give away all their contributions to the program also for free.

Counter argument: This in itself is already a pretty big contradiction, since freedom is absence of force, but the GPL tries to force people to be more free, which is illogical and impossible. Freedom can only happen voluntarily, which requires a choice, which does not exist in the copyleft case and also does not exist in the copyright case, it is like two sides of the same coin. Copyright only allows people with the copyright to use the software and copyleft only allows people who agree with the copyleft to use the software.

 

Argument 2: GPL ensures the software to stay open source and ensures that everyone who uses it will contribute the changes back under the GPL, which results in a viral grownth of the software as well as users and contributors.

Counter argument: Yes GPL may ensure the software to stay open source through its very strict license terms regarding that, at least in theory, in practice it requires lots of legal battles and it is yet to be proven how good these license terms hold up in court. Regarding ensuring the grownth of the projects by forcing contributions back into the project under the same license, it has pretty much the exact opposite effect, since the big majority of potential contributors do not agree with the GPL and therefore will not contribute anything. Those people not agreeing to the license terms will either:

a) Not use the software at all and probably use a competitors product

b) Steal it, ignore the license terms and hope nobody finds out

c) Write their own code from scratch

All those options are pretty counterproductive, the GPL says you either have to agree 100% with it and stick to it forever or chose one of those very stupid solutions listed above, there is no middle ground.

 

Argument 3: You can still make money with GPL software.

Counter argument: Yes theoretically you can charge money for GPL software, but practically this is almost impossible as there is no mechanism that obligates users to pay anything and there never can be as defined by the license terms. So for money making with the GPL you are left with hoping that someone voluntarily subsidizes you or just begging for money, but begging for money works for everyone and does not require do be productive at all, so you would probably just be better off with spending your time begging and not wasting time with being productive.

 

So to sum it up what will happen, if you put your project under the GPL license is:

1. Your program will be less free

2. Your project will most likely die

3. You will most likely ruin yourself financially

4. As a bonus you will likely attract lots of incompetent weirdos into your project from that certain community and at the same time chase away skilled contributors.

5. You most likely cannot revert that downfall, since once GPL always GPL, yes you can change the license of your own work, but as soon as your project is infected with other peoples GPL code, it becomes close to impossible to convince the GPL fanatics to change their code license as well.

 

Yes there may be a few exceptions where the GPL model works, since for the end user it is quite beneficial to have a free product, but the developers have to be fully subsidized by some large companies or the goverment or be stupid enough to work for free (like me), but for developers the GPL is probably one of the most effective methods ever invented to send your project into the eternal development hell, but at least you will have good company, as the development hell is already full of many dead nonexistant open source projects, with many nonexistant open source developers.

 

Blog Reference: 

Pages