Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1404753 Posts in 68422 Topics- by 62083 Members - Latest Member: hby_stuff

February 07, 2023, 02:12:33 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsAirships: Conquer the Skies
Pages: 1 2 [3] 4
Print
Author Topic: Airships: Conquer the Skies  (Read 16646 times)
Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #40 on: December 10, 2014, 07:33:30 AM »

When you start upgrading the visuals of your game, some parts start sticking out like a sore thumb. In this case, I'm really unhappy with the way damaged armour looks, so I'm going to outline a way to make it look better. This is a bit involved, but there is a really cool picture at the end...

Currently, each type of armour has a series of five appearances, from "unblemished" to "destroyed". When undamaged, the armour tiles nicely and looks quite nice, especially with the lighting effects now applied. The problem comes when there's heavy damage: since there's only one picture for a destroyed armour tile, this gets tiled and looks very bad: a regular series of holes with the exact same shape.



The obvious way to fix this is to add more pictures for damaged armour tiles, but this doesn't fix one problem: a damaged tile may be right next to an unharmed one, which means that the hole can't quite extend to the edge without a sudden and obvious transition from one tile to the next. So I'd still up with a grid of holes, just of different shapes.



I could add pictures for all the configurations of tile adjacency, but this produces a combinatorial explosion: including diagonal adjacency, each tile has eight neighbours that could be damaged or fine, which means that I'd need to draw two to the power of eight different tiles. I am not drawing 256 armour tiles for each type of armour if I can help it!

So instead I've hit upon a different idea to make the armour drawing look really good. Unsurprisingly, this involves a clever shader. (I get this feeling that more and more of the game is moving to shaders, until eventually the entire thing will just run on your graphics card.)

Note that I haven't actually implemented what I'm about to describe, so it's perfectly possible that I'll have to abandon it because it's too hard, or too slow, or just looks bad. Normally, when I write dev blogs I do retrospectives where I can describe what I ended up doing, leaving out all the false starts and dead ends, which makes me look more clever than I really am.

On to the idea: per-airship damage maps. Each airship gets an associated grayscale image of where its armour has been damaged: white means undamaged, black means the armour's been punched through. Impacting shots draw splashes of damage onto this image, bigger and darker for stronger projectiles.


This damage map is then used in the shader to put together the look of each tile. In places where the map is nearly white, it draws the normal look of the armour. In places where it's grey, it draws an alternate, damaged look, which comes from a second armour picture that looks all roughed up. Finally, in places where the damage map is black, it doesn't draw the armour at all, leaving a hole.

 

 

The result is that each airship gets its unique patterning of armour damage and holes, going across tile boundaries with no visible transition.



What's more, the shader can also calculate the lighting for that tile using a few bits of extra information. First, it needs a height map for the undamaged armour. This is different from the bump map described in the lighting post. A height map shows where the armour sticks out. A bump map is the derivative of a height map: it shows where the height map changes.

The shader combines the height map of the undamaged armour with the damage map for the tile, which results in a new height map that shows what remains of the armour after the damage has been done. Then it derives the bump map and uses it for the lighting calculations.

 

 

The result should be pretty awesome: armour that can be blasted off pixel-by-pixel and dynamically lit at the same time, so flashes of light will play across the jagged edge of the holes, making splinters of still-unblemished metal light up.



Can I pull it off? As you can tell, I've got the logic of the shader pretty much worked out. The bigger question is whether it's feasible to attach a damage map to each ship, update it, and feed it to the shader in the correct way with all the offsets set up properly.For now I will leave you with this amazing piece of Airships fan art created by Jenny Thorne:



(Oh, and please vote for Airships on IndieDB! Only a few hours left.)
Logged

Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #41 on: December 30, 2014, 12:23:18 AM »

At the start of 2014, I'd been working on Airships for a few months, and the major components were beginning to take shape: ship design, combat, heraldry, even a simple strategic map and multiplayer. I'd been blogging about the game on my site and IndieDB right from the start, and the very positive response was a major source of motivation. Still, the game lacked much of a user interface, and the computer's ships just hung in the sky and fired, with no tactical AI to drive them.



I wanted to get an early version of the game into people's hands quickly to start getting more feedback, so on March 23, I released the first early access version. To sell the game, I chose itch.io, a relatively new game store which is wonderfully straightforward for both players and developers. There's no application process, and no super-complex backend - you just upload the game, write a description, set the price, and you're ready.

As these things go, having activated the store, published the blog posts, and sent out the press releases, I then spent the rest of the afternoon hitting refresh in various places, anxious to see if people noticed or cared. And they did - the game sold maybe 30 copies in the first day, which isn't a lot, but a clear indicator of interest. Compared to my previous, much smaller game, Patent Blaster, which only ever sold about seven copies, things were definitely looking good.

A second and third version followed pretty quickly, adding smaller modules, an Internet game server, and a lot of balancing and bug fixes. By that time, I realized that Airships really needed a soundtrack. I advertised for a composer on Reddit and was fairly flooded with responses. I ended up making a spreadsheet of nearly forty candidates, whittled those down to seven, and finally chose Curtis Schweitzer, who impressed me with his orchestral scores, high quality of work, and previous experience making the soundtrack for Starbound. Frankly, I was a bit amazed that he was willing to join up with some tiny unfinished game, but clearly he could see its potential.

By the end of July, version 4 was ready, adding floating rocks, espionage, flamethrowers and Suspendium cannon. Most of the major changes were under the hood, as I'd reorganized the main game view into a more flexible componentized system that's since held up very nicely. Shortly afterwards, I took the plunge and added the game to Steam Greenlight. Sure, itch.io is great, but Steam still utterly dominates the PC games market, so Airships has to get onto the Steam store sooner or later.

This did mean that promoting the game got a bit more complicated: in general, you want to suggest one concrete action for people to take. Previously, this was obviously "buy the game", but now "upvote the game on Greenlight" competed with this. In practice, I've found the conversion rate to be about the same, which is kind of weird. People are as likely to fork over $5 for the game as they are to click "upvote" on Greenlight!

Early access 5 added major new features in the form of ramming and boarding, opening up new combat strategies. Subsequent updates finally brought a degree of balance to the strategic mode as well.



Shortly after the release of EA5, Youtuber Stuff+ started his very popular

on Airships, introducing many new players to the game. I think that by now, about half of Airships players found it through Stuff+.

And indeed, by the end of November, the tally of games sold reached and exceeded 1000 copies, a pretty major milestone. In and of itself, a thousand copies don't make the game commercially successful: It's had about 7 man-months invested in it by now. But it's a very heartening sign that even half-done, unpolished, and with limited media attention, the game already sells.

So what's the plan for 2015? Obviously, I want to finish the game in that year. I'm aiming for early Q3, making it a solid two years of development time.

The next step, what I'm working on now, is to make the game a lot prettier: the new dynamic lighting system is now in place and looking really good, and still to come is a prettier and more consistent user interface. Early access v6 is where the game starts growing up a bit, hopefully moving beyond niche appeal to something that looks cool and plays well.



With version 6, I also hope to get the game greenlit. There's a mere 300 votes still needed to reach the top 100. Valve no longer do whole batches of greenlighting but rather pick individual games, usually from the top 100. I'd like to think that Airships is a pretty good contender. It's distinctive and already has a track record of success.

Beyond v6, it's a question of spending some time adding cool features. This will be a balance act between putting in all the things I can think of, and having enough time to really debug and polish it within my timeframe. If it turns out that I have to cut major features I wanted to put in, and the game sells reasonably well, there's always the option of creating an update or expansion to add in the extra stuff.

Finally, by early summer 2015, I want to switch full-time to polishing and debugging, ensuring the game's quality and compatibility. The words "early access" have lately acquired a bad reputation for games that are abandoned partway, and this is not what I want for Airships. I buy and play games too, after all, and it's so heartbreaking to end up with something that would have been really cool if only it had been fixed, polished and balanced. And after all, I want you to buy my next game too, and the one after that!

So what are the cool additional features I still want to add? A lot of this is in the plan file, but that's actually somewhat out of date, so here's my current list, in no particular order. Not everything may make it into the final game, for reasons of time, balance, or implementation difficulty.

  • Land-ships that walk on legs or drive on tracks. Cheaper but less flexible than airships.
  • Infantry: Cheap but squishable.
  • Bodies of water in combat mode.
  • Dragons, Sky-Krakens and other monsters.
  • Ship captains with special abilities.
  • Magical spells for combat.
  • Turreted weapons and droppable bombs.
  • Diesel engines as a more powerful alternative to coal.
  • A more fleshed-out single-player campaign.
  • A multiplayer ladder system.



I'm certainly having a lot of fun making this game, and I'm very happy that people are playing and enjoying it. 2015 should be a good one.
Logged

Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #42 on: January 04, 2015, 04:33:46 AM »



One of the nifty features of Airships is that you can create your own coat of arms. You can do this for your single-player empires, selecting a symbol (a charge) to give you a particular bonus. And you can design and register a coat of arms for your unique use in multiplayer. The system hasn't really changed since the initial release with the exception of a few added charges, but with dev 6 - the update of prettiness - I want to improve on what's there.

Currently, a coat of arms is defined by selecting a layout, a charge, and two or three colours. This leaves some coats of arms looking rather bare, though. In a quartered coat, only the top left quarter contains anything, whereas it would be much nicer and more realistic if all quarters could contain charges.



In the new system, each layout has between one and four slots that can be filled with different charges. I'm also adding a whole bunch of minor charges such as stars and wings that don't have a bonus effect in the single-player game and can be added freely. You will be able to combine multiple major charges (say a scales and a lion) on your arms, too. In single-player, the most prominent major charge (the one closest to the top left) will be the one that provides the bonus.



This opens up a whole lot of options for much nicer-looking arms:

       

       

Your already-registered arms will stay unaffected by this change, of course, though you might want to look into upgrading them.
Logged

Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #43 on: February 06, 2015, 05:45:43 AM »

I've been hard at work on Airships dev 6, and have now fixed upon a release date for it, and for Airships on Steam: February 25. So unless anything goes majorly wrong in the next two weeks, that's when you get the fancy new version of the game.

There's still a fair list of things I want to improve before the release, mostly on the visual side. Right now, I'm working on making the strategic map screen nicer. The idea with that screen has always been to make it look like a desk you're looking at, plotting your empire's path. To make it look less bare, there's going to be some pieces of paper at angles half-beneath the map, and probably some coffee stains.

Of course, the pieces of paper are an irresistible opportunity to do some worldbuilding:



Can you decipher the scrawled handwriting to discover the terrible secret of dragon-rearing?



An important part of any imperial presence is maintaining positive relations with the natives.



To be fair, airsailors will eat pretty much anything that's not even more hardtack.
Logged

Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #44 on: February 25, 2015, 08:42:08 AM »

It's out! Airships version six, bringing new lighting, new heraldry, new guns, and weather!

It's out on Steam too, which means this finely crafted link now brings you to the Steam store page.

So what's next?

First and foremost, with new players coming in, there's sure to be new bugs discovered. So my first priority is likely going to be putting out some bugfix patches. After that, I want to spend some time on game performance. The new fancy graphics take their toll on the graphics card, and while you can switch them off, it would be much nicer if everyone could enjoy them.

Improving performance means restructuring how airships are drawn from the ground up, which is why I didn't want to risk it in the week going up to version 6. The core problem is that graphics card really hate it when you do lots of small draw calls, and currently that's exactly what's happening. You might think that a 2D game shouldn't tax the GPU that much, but when you have hundreds of airsailors on-screen and make a separate draw call for each of their limbs - it's quite bad.

The solution is to organize drawing into layers. Instead of drawing one ship, one crewmember, after the other, the game will draw all the back walls, then all the modules, then all the gun barrel, then all the crew limbs, and so on. Each of these layers can be a single draw call, collapsing hundreds of them into one.

OK, so that's the immediate plan, but what about new features? What's coming between now and the final release? Well, the development plan I laid out months ago is still more or less correct, though which feature comes in which version is subject to change. There are five major additions I have in mind:

Better troops



The boarding stuff is cool and works really well, but it took such a long time that I stopped working on it as soon as I had something to show. Which means that there's some... odd missing bits: Crew stranded on the ground just stand there and are unable to move anywhere. Fixing that would pave the way for having ground troops fighting amongst one another and attacking buildings and ships. Most importantly, they can then be trod on by...

Landships



Okay, yes, the name of the game is "Airships". But landships, war stompers, steam mechs: totally cool, right? And they're basically the same as a ship or a building, they just have a different method of propulsion. The slightly hard bit here is getting their limbs and tracks to interact properly with the ground.

A more detailed strategic game



As it stands, the strategic mode is really very simple. It could be a lot more interesting. I'm still working on figuring how best to do this. There's a lot I could add, but it's important to pick additions that make the gameplay deeper rather than just more complicated. More detail on this in a later post.

Diesel!


CC

I used to insist that Airships was totally a "Steam/Dieselpunk" game. This will finally become sort of true when diesel engines are introduced. These will be much more powerful and lightweight, and won't require manual supply of fuel, but they'll also be expensive and quite prone to catching fire in a bad way. The reference time period for Airships is about 1860 to 1940, so we'll see a bunch of slightly more modern things cropping up.

Monsters!



Last but not least, the game needs monsters. There's actually dragons in the game now, but only ever seen in the distance, flying past at high speed. Dragons, Turtledoves, Air Krakens, Sentient Floatweed, Giant Spiders, Mechanical Ducks! Some of them you must fight, others might be useful to your own side.

Stay tuned.
Logged

Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #45 on: March 04, 2015, 12:25:49 AM »

Now that turreted weapons and bombs are in Airships, the next step is to make something specialized for shooting upwards: Flak Cannon! I've wanted to put these in for a while now, and several people have independently asked for them, so it is time.



To figure out what their appearance and stats, I took two things into consideration: reality and game balance. For the reality, I went to the usual place, Wikipedia, and read up on the history of anti-air weapons, trying not to get sucked in too deep. (History is so interesting! I totally need to read an in-depth description of the development of rangefinders in the interwar period! Ooh, what's that? A type of tank I haven't read about before? Mongolia was communist? There was a plot to free Napoleon from St. Helena using a pair of submarines? Why is it dark outside?)

The earliest anti-air guns were created in the 1870s to shoot down balloons, derived from small-caliber artillery pieces on special mounts, generally firing explosive shells. As their role shifted from shooting at slow-moving balloons to zeppelins and then rapidly-moving aircraft, more clever targeting and fuse timing systems became necessary.



In the world of Airships, development of anti-air guns would have taken a somewhat different trajectory, focused a bit more on firepower than accuracy, as airships move slowly, are large, and fly close to the ground. Still, the core idea of a smallish gun with a flexible mount would be the same.

The big question is about firing angle: to make these guns not just a smaller version of the Dorsal Turret, they should have a different fire arc, more restricted to pointing upwards. This also makes it possible for them to only require free space above, so unlike as with the turret, you can put multiple ones in a line. So for now, let's say 120 degrees centered upwards.



And what about fire rate and damage? For this, I have a convenient spreadsheet that calculates for me the amount of time it takes a given weapon to penetrate a given armour type, and calculates from this a general "quality" value that lets me keep fairly balanced. In the end, fiddling with this yielded 20 blast damage and 1.5 second reload time as good values that make the weapon powerful in its special area but not overwhelmingly good.

This left me with actually implementing the thing, which wasn't too big a job: drawing graphics for the module, the barrel, and the projectile, adding an entry to the module types, and putting in translation strings. So watch out for it in the next update!

Logged

Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #46 on: March 10, 2015, 01:36:24 PM »

Modern graphics cards are complicated beasts. Treat them right and they're extremely powerful, but use them badly and you produce a lot of heat to no great effect. They like to do things in big batches: give them thousands of polygons in one go, and they're fast, but send them information piecemeal and they'll spend most of their time on overhead.

So why do computers that can run Skyrim on high settings struggle with big fights in Airships, a mere 2D game? The problem is that there's so many small things to draw: each module, each tile, each individually rotated limb of a crew member. Until recently, the game did this in an utterly inefficient way.

To draw a picture in OpenGL, the GPU's language, you roughly have to do the following things:

  • 1. Tell it what texture you're going to use.
  • 2. Tell it what shader you're going to use. (A shader is a kind of "visual effects" program running on the GPU. Airships mostly uses shaders for lighting effects.)
  • 3. Tell it that you're going to start drawing pictures.
  • 4. Give it the coordinates of the pictures.
  • 5. Tell it that you're done drawing pictures.
  • 6. Tell it to stop using the shader.
  • 7. Tell it to stop using the texture.

If you want to draw a whole series of pictures using the same texture and the same shader you can just repeat step 4 and give the GPU a whole series of picture coordinates. It's much faster than doing all seven steps each time.

Back in version 5, Airships' drawing worked by going through the whole seven-step process for each picture, each module, tile and limb. Making drawing fast meant reorganizing things so that it could repeat step 4 as long as possible without having to stop and switch shader or texture.



In version 6, when I started using shaders heavily, I improved on this somewhat: now visual layers within the same airship, such as all the modules, shared one texture and shader initialization. Only steps 3-5 would get invoked for every picture.



This was better, but nowhere near perfect: the only time the game really *needs* to finish blasting picture coordinates is when the shader needs changing.

In version 6.2, ship drawing is strictly organized in layers. All the backgrounds of all the ships are drawn first, then all the gun barrels, the modules, the crew, the armour. The game only says "I'm done drawing pictures" when it needs to switch from one layer to the next or change shaders.



The result? Here's a before-and-after comparison of a battle between six massive airships. The graph in the top right shows the amount of time it took to draw each frame. The improvement? About a factor of four!





Airships 6.2 will release later this week, featuring these improvements and a variety of bugfixes.
Logged

SunWuKong
Level 5
*****


Help me, help you.


View Profile WWW
« Reply #47 on: March 10, 2015, 10:08:52 PM »

Yo man, I don't post a lot but I want you to know everything you do is magic. Really great stuff and KEEP ON KEEPING ON! This is a dream project you have going.

Love it!

Best,

-Tim
Logged

marcgfx
Level 7
**


if you don't comment, who will?


View Profile WWW
« Reply #48 on: March 10, 2015, 11:51:30 PM »

the whole rendering pipeline stuff is crazy complicated. so many things you can do wrong without even noticing, even more so when working on a high-power system. It's always nice to read about these things and maybe get some new ideas. I'm working with webGL and ended up drawing everything in one call with one shader and one texture, but still had performance issues on lower end devices. one thing I just learnt recently, is that the shader themselves can be a problem. what they really dont like are loops and if conditions (branching). I still use them a bit too much, but at least my GPU no longer howls.
Logged

Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #49 on: March 18, 2015, 03:01:33 AM »

the whole rendering pipeline stuff is crazy complicated. so many things you can do wrong without even noticing, even more so when working on a high-power system. It's always nice to read about these things and maybe get some new ideas. I'm working with webGL and ended up drawing everything in one call with one shader and one texture, but still had performance issues on lower end devices. one thing I just learnt recently, is that the shader themselves can be a problem. what they really dont like are loops and if conditions (branching). I still use them a bit too much, but at least my GPU no longer howls.

Yeah, it's tricky. These performance improvements have come at the cost of locking some people out of the fancy graphics mode because their cards don't support OpenGL 2.0.
Logged

Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #50 on: March 18, 2015, 03:02:37 AM »

Having covered the kind of stompy war machines I want to make in the last blog post, let's get into how to implement them.



Mostly, landships and airships can be treated the same. Buildings are technically a kind of immobile airship, so landships aren't much of a stretch. The difference is that a landship is held up and propelled by tracks or legs, rather than through Suspendium and propellers.

The question is how the ship navigates changing terrain. What happens when there's an upwards step? A real vehicle tilts when it drives up or down a slope, but the game engine can't support rotation of ships without massive complication.



On a slope, I want to keep the body of the ship level, but raise it up gradually so it can adjust to the new terrain height. To do this, I add a suspension, a set of springs that raises the landship off the ground. The ship won't bump against minor changes in terrain, and its vertical position gets smoothly adjusted. The springs aren't real physical objects, so they won't bump against the side of a hill. The tracks or legs the ship uses will get drawn on top.



This is what happens when the ship encounters a step upwards: As the springs move across the ground, the first one encounters the new height. It becomes more compressed and the additional force starts shifting the body of the landship upwards. As more springs move over the new area, the ship keeps on rising. Of course, if the hill is too steep, or the ship too heavy for the springs to push it up much, it will get stuck. But that's fine, that's realistic.



It also works when going down, though again the ship can get stuck if it doesn't have enough clearance.

So let's start implementing these springs, which will be attached to new tracks/legs modules. I start by creating a Spring class and putting in code so it can find the closest bit of ground. That gives me the length of the spring, and from that the upwards force the spring exerts, which can be easily plugged into the physics engine. Create a test module and put it on a building - and it sproings up!



Great! The next step is to actually introduce landships as a type of construction, beyond ships and buildings. Turns out that lots of things key off "is it a ship or a building", which is too specific. What matters is "can it move" and "does it fly", which nicely separates airships, landships and buildings in how they need to be treated.

Next time: Creating some basic landship modules that are able to both hold up and propel the ships.
Logged

Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #51 on: March 30, 2015, 02:59:32 AM »

We interrupt our scheduled posting about landships to bring you some info about upcoming graphics improvements. Like a lot of software, Airships development runs on two rails: major changes and minor improvements. So while I'm working on adding landships for version 7, I'm also taking time to fix bugs and add polish to version 6.



Specifically, I realized it was really time for a graphics cleanup. Airships' spritesheet has grown organically, with me adding sprites as they were needed, adapting colors and elements from previous work. At this point in its development, it was time to clean things up to get a more consistent style and colour values, in the service of prettyness. Because, as it stands, Airships is a nice niche success, but I'd like it to become a broad success, which means visuals very much matter.



So last week I redrew the entire sprite sheet on top of the originals, sticking to a palette of about 16 colours. In the process, I finally cleanly separated shading from colour value. What does this mean? Well, most brightness variations in what you can see are due to lighting, and there's now a lighting engine to handle this. Before the redraw, you would have light and dark patches on armour sprites that got applied a second time by the lighting system, resulting in a messy high-contrast look. Now, a lot of the sprites look really simple - light wood armour is literally just a brown square - with the texture coming from the lighting.



The downside is that the graphics now look awful without lighting applied, which is why the game now ships with variant spritesheets where the lighting has been pre-applied. This means you get a lot of the nice new graphics even if you've got high quality graphics turned off.



Along the way, I also updated the particle system, making smoke clouds support dynamic lighting, resulting in some pretty neat dramatic lighting.



Right now, I'm working on birds, clouds and backgrounds. There will be a 6.3 update soon which will deliver all these graphical improvements as well as the usual array of bug fixes.
Logged

marcgfx
Level 7
**


if you don't comment, who will?


View Profile WWW
« Reply #52 on: April 03, 2015, 02:46:26 AM »

saw your game featured in "20 minuten" yesterday on the train. congratulations Wink
http://www.20min.ch/digital/games/story/Bei-diesen-Games-kann-der-Osterhase-einpacken-21436201
Logged

Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #53 on: April 03, 2015, 04:52:38 AM »

Oh cool, it's in the online edition too now. My GF brought me home a copy of 20 minuten. :D
Logged

Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #54 on: April 03, 2015, 08:26:44 AM »

I'm still working on Airships 6.3, and it's shaping up to be a *very pretty* update. Most recently, I've made particles and explosions look much better and am now replacing the simple low-res backgrounds with more detailed ones. Also, Airships has an official wiki now!

Up until now, particles in Airships have been very simple: they were all coloured squares of various sizes, which works well for small things like sparks, but is a bit bland for smoke and explosions. In particular, I really wanted the smoke to be lit up dramatically by the flashes and fire of battle.

Getting particles hooked up to the lighting engine wasn't that hard - all the shaders were already in place - but it took me a while to find a good look for the smoke. I first tried using a smooth look for the particles, and while it looked quite nice, it didn't fit the look of the rest of the game.



Eventually, I ended up with square-ish particles with square-ish lighting maps, which I do think is an improvement:



Then I came across an article about how explosions are handled in Vlambeer's Nuclear Throne, including a very nice-looking explosion animation:



Nuclear Throne explosion by Paul Veer. Reproduced with permission.

Looking at it in detail, you can see that after the initial flash, the explosion consists of a number of particles that don't move all that much but steadily shrink and darken. I produced a similar effect in Airships by spawning a central light-emitting flash particle and a number of smoke particles surrounding it:



And the same effect but on a smaller scale for cannon blasts:



Having settled on a style for this kind of thing, I also re-added clouds, again using the lighting system for them:



As I wrote previously, the point of 6.3 is to really get the game looking pretty in a bid for mainstream success. This left one major sore point: the low-res and rather uninspired forest and mountain backgrounds. At this point, they were pretty much the only thing not using the new colour palette or lighting system, so obviously they had to go. This is what they're getting replaced with:



A much larger set of modular backgrounds: hills, forests, towns, towers, windmills, and so on. This is a lot of pixeling, and it's kept me pretty busy over the last few days, as each image needs to be first drawn and then given a bump map for the lighting to work. But the end result should be really quite good.



That's all for now, except for this wiki thing: There's now an official Airships wiki hosted on Gamepedia. Right now, content is still pretty sparse, but I've put in a bunch of entries. Head over there and contribute, and one day it should be an excellent resource for the game.

And join me next time, when I'll be writing about the new modules getting added in 6.3.
Logged

Join Indies
Level 0
**



View Profile WWW
« Reply #55 on: April 03, 2015, 11:46:14 AM »

Looking great. Did you ever watch Tailspin as a kid?  :D

The canon explosion looks good. I like the small, detailed look the pixel art has in general. It will look really cool with a ton of particle effects like the canon explosion.
Logged

Watch videos of new indie games, updated daily. Promote your game on http://www.joinindies.com
Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #56 on: April 30, 2015, 01:22:02 AM »

Airships 6.3 adds lots of new decals to apply to your ships. The decal system's been around for a long time, but after the initial set of options for putting your coat of arms onto your ships, it got neglected for a while. As part of the push for increased prettyness, I added a whole bunch more, mostly inspired by real-life aerial decorations.



Eyes and teeth: These were in fashion for decorating fighter planes in WW2 and ancient Greek triremes.



Gold leaf, because sometimes you want your airships to look fancy. None of the decals cost any money, which is a bit weird in the case of gold leaf, but roll with it.



Roundels, which turn out to be a fascinating side-branch of heraldry / vexillology (the study of flags). Much as with flags, there are a number of classic styles of roundels, which many countries follow, some variant styles that are popular, and some truly weird stuff where the designers clearly didn't get the memo of "maybe make your war plane unambiguously identifiable".

In flags, the most classic layout is probably the tricolor, a field evenly divided into three, horizontally or vertically. It's a design associated with European nations. The roundel equivalent is a roundel made of three concentric circles of a solid color - pretty much the tricolor in polar coordinates!

   

European roundels: France, UK, Germany. All insignia images are public domain and sourced from Wikipedia.

Not that there's a perfect match: the UK uses a classic tricolor roundel design but doesn't have a tricolor flag, whereas Germany uses a kind of worrying throwback design instead of their tricolor.

   

Variations: Bangladesh, Equatorial Guinea, Switzerland

Fairly popular variations include different numbers of concentric circles. Bangladesh has two, Equatorial Guinea has four. Another popular option is putting a symbol into the center of the roundel. Switzerland's got it pretty easy there.

   

Bad ideas: Belize, Syria, Yemen

And then there's Belize, who just use their overcomplicated flag, and Syria, who picked a design near-indistinguishable from Yemen's. Good job!

In Airships, I've stuck to two basic designs: a bi/tricolor roundel with colours extracted from your coat of arms, and one containing your main heraldic charge.

So, what's next? I spent much of last week at A MAZE Berlin, showing around my game, and returned with my head full of ideas for improving the way it feels. Thing is, I may be a decent programmer and creator of game mechanics, but I have to observe people playing the game to notice all the rough edges in what I make. And other developers are way better at figuring out what makes a game feel fun. So now I have a long list of small things I can do to make the game subtly feel better, and it's a list I urgently want to get to.

This means that rather than going straight to version 7 with its landships, there's going to be a v6.4 and 6.5 incorporating these improvements. I know you're all looking forward to your war stompers and spider mechs, but smoother UI and more satisfying screams and explosions are going to be a pretty nice thing to tide you over until they arrive.
Logged

BeerDrinkingBurke
Level 0
*


View Profile WWW
« Reply #57 on: April 30, 2015, 02:05:43 AM »

Wow, this has really come along since I first played it a couple of years ago! Great to see you've kept at it. The graphics are looking really nice.
Logged

Developing a game called Innkeep! Serve Ale. Collect Rumors. Make Coin. Regular updates posted at https://innkeepgame.wordpress.com/
Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #58 on: May 10, 2015, 03:05:47 AM »



No, I’m not adding a paintball mode to the game.

One of the major bits of feedback I got from showing my game at AMAZE Berlin last month was that there’s a lot of potential for more spectacle in the game: more satisfying crashes and explosions and things whizzing past. We like large amounts of kinetic energy, don’t we?

So Airships 6.4 concentrates on making that happen. Airships now crumble majestically instead of evaporating in a single flash. Bullets and cannon balls leave trails in the air, which both looks cool and helps communicate what’s going on.



With these updates, it became clear that there’s one major missing piece to the spectacles: module destruction looks really boring. The module just winks out of existence and leaves behind a small number of boring brown particles. This needs fixing. Modules should break apart into parts and shrapnel, spinning and arcing away. To make this work properly, I’ve created a new layer in the sprite sheet that splits each module sprite into the regions it should break up into.

This information is then going to be fed to a program that combines the original sprite sheet and this layer into a new sheet of shrapnel and a bunch of data that ties the shrapnel to each module appearance. Then, when a module is destroyed, the module still winks out of existence, but at the same time, the shrapnel bits are placed in their starting positions and given a velocity and spin, which should give the appearance of the module breaking up dramatically...



In other news, if you’re in Switzerland or Germany: I’ll be exhibiting Airships at Fantasy Basel on May 14 - 16. More details. (Airships isn’t listed there yet, but it will be present!)
Logged

Zarkonnen
Level 1
*


Games! Kittens! Wine!


View Profile WWW
« Reply #59 on: May 24, 2015, 09:55:49 AM »

I used to devour "Making Magic", the game design column written by Mark Rosewater, then lead designer of Magic: The Gathering. I never got into playing Magic itself, but I found the inside view of game design and balancing interesting nevertheless. Probably the most famous column is Timmy, Johnny and Spike, where he introduces three archetypal player profiles that the game caters to.

Airships isn't much like M:tG in its details, but there are certain similarities: it's a 1v1 game that is played in two distinct stages of preparation and combat. In Magic, the preparation is the deck building, whereas in Airships it's the ship design. Victory is secured by some combination of good preparation and being able to use your assets effectively. With that in mind, I think that Timmy, Johnny and Spike are applicable to my game. I'm going to first explain what each of these player types is about, and then how I'm working to accommodate the interests of each of them.

Player profiles form a loose categorization system for different motivations and styles of play. Not everyone falls neatly into one category, and beyond the Timmy/Johnny/Spike system, there's a whole bunch of other categorizations that draw the lines in different places or are applicable to different kinds of game. TVTropes has a decent overview.

Timmy


This player likes things big, and dramatic. Sure, winning is nice, but spectacular wins are so much more satisfying than subtle ones. This is the guy who wants to take you out with the really dramatic finishing move, or crush you with the giant battleship.

Johnny


To Johnny, playing the game is a form of self-expression. What matters is cleverness and innovation. Sure, winning is nice, but winning in a clever way is so much more satisfying than doing it in an obvious fashion. He will try out the obtuse combos and weird tactics that take you by surprise.

Spike


Spike wants to win. He doesn't care how he does it. Tactics don't have to be clever, or exciting, they just have to work. He's the one who will happily kill you by using a perfectly executed punch 57 times in a row.

(Note of course that these archetypes apply to all genders - their names are male, and so I'm using "he" throughout for grammar reasons.)

What does Airships currently do to cater to each of those archetypes, and what future improvements can I make?

Timmy
Big airships, big weapons, flamethrowers. Ramming! The most recent update, 6.4, was very much one for Timmy, adding more visual spectacle and visceral destruction. There's still a bunch of things I want to try out for increased spectacle:

  • Temporarily panning the camera for particularly large explosions.
  • Adding crew portraits to the shouts so you can see their faces, lit up by fire, screaming dramatically.
  • Better and more varied audio for all things smashy and explodey.

Johnny
The ship editor is Johnny's domain, of course. What makes a game like Airships work long-term is a wide variety of viable strategies: high-altitude snipers, rammers, boarders, swarms of grenade ships, etc. What matters for Johnny is adding new options that expand the space of interesting things to do.

This is trickier than it sounds, because each added option needs to be *situationally* dominant rather than *globally* dominant or inferior. If I add a new gun that's better in all situations than two existing weapons, I've actually shrunk the space of interesting designs. And if I add an option that's just not very good, well, it just clutters up the game's design.

So what's definitely planned for Johnny, apart from a continual search for interesting new weapon concepts?

  • Landships: Not as flexible as airships, but cheaper and a bit more durable.
  • Most likely, small auxillary craft. This is a concept that's been worked out in some detail by people on the forum, and I think it's a good one.
  • Diesel engines: More powerful, easier to operate, but more flammable and expensive.

Spike
Winning is what matters to Spike, and especially winning against other people. Airships has had online multiplayer for a long time now, but we haven't reached a critical mass of players where you can play a match when you want to. The multiplayer calendar sees the occasional flicker of activity, but it's kind of cumbersome. This may get better over time as more people discover the game, and old players revisit it at the time of major releases, but it's clear that Spike needs some love, in the form of:

  • Tournaments! Players are self-organizing one at the moment, but it's something I want to build support into the game for.
  • Relatedly, a ranking system where players can compete for the top spot by winning multiplayer fights.
  • Practical improvements to the multiplayer calendar like being told further in advance that you have an upcoming match, and the ability to opt in to being told that there's an unmatched slot available in the near future.

All of these improvements are going to come in over time in the next three versions of the game or so. As you can see, I have a vast quantity of things I want to do with the game to make it more fun for players, as well as finishing up the list of large game features. So stay tuned, let me know your feedback and ideas, and fight me in multiplayer some time!
Logged

Pages: 1 2 [3] 4
Print
Jump to:  

Theme orange-lt created by panic