Furniture Part 2

Here’s a second video showing you more of what can be made with furniture. Briefly explains multi-state furniture and light sources.

Have a look here.

There’s still more to come, we haven’t even touched electricity yet. The feature is called furniture, but in reality it’s much more than that.

On advertising

Advertising is evil and unnecessary, but humanity hasn’t figured a way to get rid of it yet.

No one likes advertising. It’s demeaning, annoying and costly. A lot of people however claim that it is a necessary evil, because without it the economy would grind to a halt. Or some similar poorly thought out idea. The truth is the economy would do just as fine without advertising, and sales would not drop. They would actually increase!

The reasoning behind the idea that advertising is driving economy is like that: company A invested $100,000 in ads and their sales jumped 30%. So advertising increases sales.

False. The 30% increase of sales for company A must have caused global sales of other products to decrease by the same value, because the total amount of money spent in the world has not changed. People just shifted their spend from B to A. Even if we assume that company A ads caused them to raid their savings accounts and credit cards and buy product A without reducing spend on other products, this is only a temporary effect. Eventually they will run out of savings and will have to repay the credit. In the long term, global sales stayed the same as if there was no advertising.

Or more precisely, the global sales dropped a little. $100,000 spent on ads by company A was wasted – it could have been spent buying something else, but wasn’t. So global sales dropped by $100,000.

Of course, company A does not care about global sales. Their sales increased! This is what matters to them. But did they actually increase?

No. At the same time, company B and millions of other companies in the world are running their own ads, increasing their own sales and reducing sales of company A. Therefore, as a result of advertising, sales of A might actually have dropped.

In reality, everyone’s sales have dropped (compared to no-advertising world). They dropped by total amount wasted on advertising by everyone.

It is embarrassingly simple, really. Advertising is like an arms race between countries. No one can afford to stop doing it. But the global effect is detrimental. If only we could somehow agree and trust each other to dismantle all warheads and tanks, the world would be a safer, happier and richer place. But no one has figured out how to do it yet. It’s similar with advertising. If only we could figure a way for everyone to stop doing it, we would all be much better off. Prices would drop. Salaries would go up. The TV would be more interesting. The web would be cleaner. The world would be prettier.

I don’t know the way to achieve it. It probably isn’t through some individuals voluntarily refraining from supporting advertising.

But no version of Survivalcraft has ever had any ads in it.

Not supporting advertising is not easy. You may even see some ads floating around in this post! Partially out of my control. Shudder.

 

 

 

Furniture

Here’s part 1 of furniture video for you:

This video covers the basics. I had this in mind when I first thought of this feature. As I was working on it I found that there are many cool things you can do with furniture. Wait for the next videos to see what I mean.

In the meantime I am working on the next big feature for the update.

 

On coordinate systems

Here’s a little rant on left vs right handed coordinate systems.

Survivalcraft up to version 1.27 used XNA as rendering engine. If you ever did any 3D coding you probably know that XNA is hardcoded to use a right-handed coordinate system. All my previous 3D experience was with left-handed systems.

Here’s what I am talking about:

Coords.png

Notice how you can get the second right-handed system by rotating the first one by 180° around Y axis. They are the same systems really. You can never get a left-handed system from right-handed by rotations only. You need to flip it. That’s why there are two kinds of coordinate systems in 3D.

I thought (as most people do) that it’s purely a matter of convention and you can get used to one or the other. But after over 4 years of work on Survivalcraft, which uses right-handed coords I figured I am not and will probably never be comfortable with right-handed coordinate systems. They are counter-intuitive to me.

Here’s why, axis by axis.

Up/Down Axis (often called Y, sometimes Z):

This is the simplest one. Increasing values should go up. No questions. It’s dictated by gravity we are all used to. It would be like having an altimeter in an aircraft that shows smaller values the higher you go. Imagine being a pilot trying to get your head around it.

Near/Far Axis (often called Z, sometimes Y):

Increasing values should go far. This is less obvious, but I think most people would agree that the further something is, the bigger the coordinate value should be. It’s like a distance. The other way has an issue if the observer is at the center of the coordinate system (a very common case): you must use negative values for something that is in front of you. No doubt it is more intuitive to have negative values for something that is behind, not in front!

Left/Right Axis (pretty much always called X)

Increasing values should go right. This is the least obvious axis. The preference for right direction comes from western culture of writing. Of course there are other methods of writing that go the other way, mostly originating in Far East. But there is no doubt that when you are a programmer (Chinese, Korean, American, it does not matter) and are looking at a computer screen, you know that horizontal zero coordinate is at the left side of the screen, and increasing the coordinate will move it right. It is a convention ingrained over decades. TVs scan left to right. Even oscilloscopes scan from left to right.

Now where does this leave us? If we adopt the most intuitive axis directions as described above, we get this coordinate system:

LhCoords.png

And it is left handed. Left handed FTW!

Finally comes the biggest disadvantage of right-handed systems. If for some reason you think that right handed system is good for you, it’s not obvious which one (assuming we keep the Y axis pointing up):

RhCoords.png

Either you flip X or Z axis.

Furthermore, once you convert your right-handed coordinates to screen space, you are back at left handed system. Therefore, you need to constantly switch between left and right handedness depending with which space you are working with. Confusion!

To me, it’s a nightmare. I cannot reason in a right-handed system. I cannot visualise anything in my head. I have to draw it and mark the axes directions first. It’s much slower than having it all in my mind.

Since version 1.27, Survivalcraft uses a custom engine for rendering. When working on it I did not switch the coordinate system from XNA right-handed one. I had enough other issues to worry about :-) So sadly the game still uses a right-handed coordinate system. And don’t ask me which one, I am so confused I don’t know myself! It’s probably different systems in world space, different in view space and different still in screen space…

But one day I think I will switch the entire engine and the game to left-handed where there’s only one obvious way!

Btw. This rant is purely subjective and not entirely unbiased. For example a lot of 3D modelling programs (and top-down view games) use Z as up-down axis. The above reasoning does not apply to them.

 

 

 

Furniture

I am writing help entry for the big feature – which is furniture as you can see from the title :-) The feature itself is pretty much finished, but the entry will be the longest yet, longer even than the help for electricity.

What remains to be done is a video to show you how this stuff works. It’ll be a monumental undertaking to show it all, because there’s so many options and possibilities. Making videos is not the most pleasant thing in the world, so I was postponing it while adding more and more goodies to the feature itself.

Furniture

Colored wires contd.

As you already know, the next version will have painted wires. I’ve seen a lot of you say that wires should not connect to wires of different color, apart from non-painted wires which should connect to everything.

After some fiddling with the electricity system I added it, but please tell me whether you are sure this is a good idea?

This is how it looks in action:

ColoredWires.jpg

As far as I can see it has these positives:

  • You can make smaller circuits because you don’t have to worry so much about wires connecting inadvertently
  • All existing builds work as previously (because they have only non-painted wires that connect to everything)
  • You can still use it for marking function of wires, as long as entire wire is the same color, which you would probably do anyway (unless you wanted to do multicolored markings, but that seems like an extreme corner case)

I can’t see any negatives.

I don’t have time to pore over this forever, please have a think and let me know whether you foresee any problems? Or if you see a way to generalize this idea any further, perhaps some colored wires interactions with other electric blocks?

We can still back off from this, but once it is released there will be no going back, because people will start using it in their builds.

New Inventory layout

I have integrated the new big feature into the inventory system. There’s a lot of new UI that you have not seen yet, but one change to existing stuff looks like that:

Inventory.jpg

The controls are at the top and you can click on the category button (“Tools”) to pick from a list. This is usually much faster than using the arrows.

I am now doing (hopefully) the last thing to do with the new feature: integrating it with the community content. It’s already hooked into crafting and electricity.

 

Painted Clay

Clay has a completely smooth texture and gives you pure color for decorations. This is another little feature required by the upcoming big one to work properly.

PaintedClay.jpg

New Tool

With the new feature comes a new tool. Meet the hammer!

Hello, hammer:

Hammer.jpg

I’ll let you keep guessing what it does :-)

At the moment I think it will only come in iron variant. No need for others. But I may change that later.

 

Colored wires

Should have been done ages ago.

Not only it allows you to use wires for decorative purposes or to make them match the environment. It can also be used for marking wires when building complex devices.

ColoredWires.jpg

On another front, the new feature is moving forward. Actually, I added colored wires to help me with something to do with it. I also managed to let it be affected by electricity, in addition to crafting.

Will tell you more later.

Btw. I haven’t yet found any sensible service that allows people to vote on pictures. We need one to do the screenshots poll. If you have any suggestions, please let me know.

 

Follow

Get every new post delivered to your Inbox.

Join 45,911 other followers