Commander, Engineering Corps
Now, I have stuff all experience in Java, but I have done bits and pieces of Pixel art, been the nominated Graphics designer at the company I work for, so I think I have some idea of what im at least trying to talk about...
At the moment, Airships are square, you could sprite some shaped components but you either would have to have them a set color no-matter what armor you had applied, or you would have to have 9+ variations (one for each armor type) so they would match your airship.
I personally think, that if the system how airships are colored, then we could have much more appealing looking Airships(And Structures). my solution is as follows:
At the moment, for certain components, we have two sprites, one external and one internal. If their was a way to color the external sprites, or have the game detect the area/shape then apply the armor texture to only that colored area, we could have Heavy cannons that are just a 4x3 block, but where the top corner (above the barrel) is angled so our ships look less like bricks, and more like, well, ships.
Might make some images to help with explanation!
So the main problem with non-rectanguloid airships is actually that it makes the collision detection harder. :P The art is less of an issue.
I'll have to have a think about how this could be done.
As long as you keep it to being inside a 1x1 grid, just allowing for 45 degree slants in the block, and bits sticking out a bit further then there should be no problems.
Just experimented with some sprites, even just a few pixels can add a bit of shape, but i think having more would be a whole lot nicer and add a extra bit of shape!
btw. atm I have just a few pixels sticking out, drawn on the internal' layer of the sprite for some weapons, but when the ship is seen from the armour picker screen or in-game without a cockpit/on other side the bits sticking out turn to a very dark shade of grey, any way I can stop this?
- inside currently
- outside currently
- Quick edit to how it should look
That display issue is a bug - basically it darkens the whole sprite because it's "inside", when it should only darken the inside bits. Note how the propeller has the same problem. I've made a note to fix it. :)
Made a quick drawing to show the problem I'm seeing with slanted corners, to make sure we're talking about the same thing:
Honestly, i dont think it would be that noticeable, the airships bobble up and down a few bit so i think it would be unoticeable..
i might just do some testing to see how it looks...
Ok, yea your right, it does make a bit of a problem with hit detection...
But, just another thought (Christ, Im full of them eh?)
Is their a way for blocks to detect where other blocks are in relation to themselves? Im sure their is as we have door ways and the 'block' in front of weapons...
Just thinking about doing this:
I wonder if that gif will work, if so..
Yellow = Component in question
Red = Occupied square
Green = Available Square
Blue = just their to help 'see' an airship like shape
so you can see, the green squares get populated (maybe at random, depending on what Armour is applied & what type of Component it is) with bits and bobs to make airships look more different, adding a bit of shape but not too much that it stuffs up the hit boxes.
I hope that makes sense?
I made a suggestion where people could add wedges at their own digression, and they wouldn't have any hitboxes at all.
Would it be hard to program triangle hitboxes for the ships? Though for my suggestion that would be an unfair advantage, because ramming ships would have to break through your decoration blocks before they could hurt you.
I think if the Hitbox's were magically halved in size, making so a single 'Square' had 4 hitbox squares inside of it, then it wouldn't be such a problem... (But then, Im no programmer, I guess the engine is setup to use the current hitboxes setup and cant be changed without some heavy re-writing)
But, if they had normal, current hitbox's but were just stupidly weak? like the decorations atm (one hit and there gone)