An acquaintance of mine, Jared Wheeler, was kind enough to volunteer to create an algorithm for generating point lights in the game's backgrounds. I spent some time integrating it into the engine last night, and the results are really promising. Here is a screenshot showing the current implementation:
There are still tweaks to be made, but I'm already very pleased with what this has done for the ambiance of the lava levels; it should do some very nice things for indoor levels as well, I expect. More to come!
Telepath Tactics now previews attack damage for every target of every attack before you actually launch the attack--and unlike the "base damage" text you get when mousing over the attack button, it shows final damage after taking into account elemental resistances and unit positioning. Frankly, it's kind of awesome.
Yesterday was dedicated to polishing various interactive elements to make the game easier than ever to control:
-- I fixed a variety of small bugs relating to the interface (most notably, certain situations in which the mouse wheel would not scroll through your moveable characters).
-- The Escape key now functions the same as left-clicking or right-clicking for purposes of advancing text and clearing new turn / victory notifications.
-- Holding Shift when hitting space bar now causes the game to cycle through your characters in reverse (just hitting space cycles through them in normal spawn order).
-- You can also now right-click the character Rotate button to rotate a character counter-clockwise (left-clicking just produces clockwise rotation).
The game's demo has been updated with all of this stuff. Merry Christmas.
YES. I just fixed a bug that (appropriately enough) had been bugging me for weeks. The bug was weirdly specific: it interfered with the transfer of character information between battles, but only for characters that had already been through a battle previously.
New! You can now cycle through your available characters using the mouse wheel.
Also: by popular demand, the game supports edge-of-screen panning once again, wherein moving your mouse to the edge of the screen starts the camera moving in that direction. (Personally, I strongly dislike edge-of-screen panning; I'm making it so you can toggle this functionality off.)
You could make one full cycle with perlin noise like you do now and cache the result to BitmapData, so creating them would be automatic.
Hm. Interesting thought. Let me meditate on that one.
The AI and GUI are definitely still works-in-progress. The auto-win thing was a bug I accidentally introduced in the second-to-last demo build, then removed in the latest one. (If you download and run the installer again, it'll update the demo for you!) Anyway, thanks for the feedback.
Oof. So, I took the whole perlin noise calculation aspect out of it by generating a sprite sheet of a perlin noise cycle for an area the size of a tile, then applying the data through the sprite sheet rather than having the game calculate perlin noise on the fly. It ran faster, but things still remained pretty darn jerky on large maps with lots of water or lava. It's obvious that the DisplacementMapFilter class itself is pretty inefficient. It's a shame; I really liked the effect. Oh well!
Maybe some kind of colour cycling, or pre-generated textures (then masked for the edges) would help?
Unfortunately, the engine does not currently support animated textures--and even if it did, creating them would be a huge pain in the butt. It's probably not going to happen. I'll have to think of some other ways to add life to the maps!
Well, I got liquid undulation working. One the plus side,
! On the minus side, on any map of significant size, it absolutely craters the frame rate. Sadly, the minus outweighs the plus. I'm going to leave this feature disabled until I can figure out a way to do it more efficiently.
It's cool. Either we'll rally in the last few days, or I'll try again in a few weeks with 620 eager backers already lined up from the start of the campaign.
On the development front, I'm currently working on a graphical effect to animate water and lava in a realistic-looking pattern. I'll post again when I have something to show there.
and gradually fading to black rather than undulating like liquid.
My guess is that since I'm using applyFilter(), the application of the DisplacementMap is cumulative, resulting in the smearing effect. Is there any way to apply the perlin noise DisplacementMap non-destructively without resorting to the use of Movieclips (as the tutorial does)?
Here's the current code:
Code:
var noiseCounter:uint = 0; var updateNoiseAt:uint = 4; var dispData:BitmapData = new BitmapData( bFieldBMP.width , bFieldBMP.height ); var dispMap:DisplacementMapFilter = new DisplacementMapFilter( dispData , new Point(0, 0) , 1 , 2 , 20 , 25 );
//called from the main loop public function updatePerlinNoise ():void { if ( bFieldData != null ) { if ( bFieldBMP != null ) { noiseCounter++; if ( noiseCounter == updateNoiseAt ) { perlinOffsets[0].x += 0.4; perlinOffsets[1].y += 0.1; dispData.perlinNoise(45, 20, 2 , 50, true, false, 7, true, perlinOffsets); bFieldData.applyFilter( bFieldData , new Rectangle( 0 , 0 , bFieldBMP.width , bFieldBMP.height ) , new Point(0, 0) , dispMap ); noiseCounter = 0; } } } }
I'm working on one of many necessary tweaks to enemy AI: soon, enemy units will recognize when a character is about to die on its own (whether via being in lava, via drowning, or via burning or poison) and will not waste time attacking that unit.