Category Archive: Uncategorized
Subcategories: No categories
Just a quick laundry list of updates:
- Various dirks and daggers added
- Shader support added; elemental damage has colored effects
- Also, elemental damage is a thing
- ..And other randomized weapon mods
- Weapons and other equipment can apply buffs when equipped or attacking
- Chests drop a randomized weapon now
- Weapons can be picked up by pressing Down
- Linq-style Queryable class added
- Pressing Esc accesses a functioning inventory screen
Also, here’s a WIP animation of whips:
At long last, I’m finally finished with the goblin sprite set! The full .zip file includes the base, 16 outfits, 18 pieces of headgear, a frameguide, and 10 preassembled characters (peasant, mage, samurai, assassin, lord, soldier, guard, knight, centurion, and battlelord), all fully animated and ready for use! You can grab the full set from OGA right here (CC0 as usual). Preview pic:
Now to work them into Project SYPHA, first as playable sprites, and then adding some AI. More to come soon!
Just a couple of things left to do before the Bits & Bots Love2D port is complete:
Remove green ‘mouseover’ effect from menu items (since it behaves weirdly on Android) Retouch the ‘about’ text (still need to ask fysx & co. on the Love2D forums how they’d prefer to be credited)(realized it’s all zlib, so current attribution should be fine) Add handling for long frames – e.g. in love.update(), continue without updating if dt > 1 to avoid weirdness with animations when returning from background
- Create an AudioLibrary class
- Add a looped song for each game state (menu, gameplay) and some sfx for menu items, in-game buttons, and bot warp effect
Once I’ve got the above items in, I’ll be ready to post my .love and .apk files here (and possibly even submit the app to Google Play!). More soon!
Here it is, platDemo.love. Not much to it so far – just a single test environment, showcasing the character animations. Controls:
- Arrows: Movement
- Space: Jump
- S,D,F: Attacks
- R: Block
- G: Spawn bats
- F1: Toggle debug output
- F2: Decrease game speed
- F3: Increase game speed
- F11: Toggle fullscreen
- Esc: Quit
You can hold up to change the main character’s sprite, and the character has walljump and double jump enabled. Requires Love2D v0.8.0 to run (not sure if it works under 0.9.0). Give it a try, let me know what fun bugs you find.
Need to get back to work on the project – been a bit distracted as of late. It’s coming along, though, and the next step will be a big one: Helper objects, which will handle melee attacks and other effects which need to be synced to and overlaid on the character objects.
What’s been distracting me? Arkham Origins, for one thing, which I got for my birthday from my best friends. It has its flaws (weak plot, lots of glitches, and not much new in the combat/gadgets department), but it’s still Batman, dammit. Just wrapped that one up. Otherwise, been getting sucked into Gungrave, which is much better overall than the first episode would suggest. Plotwise, it’s essentially Berserk, but replace ‘medieval’ with ‘mafia’. Action’s decent, and the plot is pretty good.
Anyway, guess I should toss out a copy of what I’ve got so far for a demo. Just need to clean up the source a touch and include licensing, and I’ll post it here.
Got all fired up to do collision detection for some reason, so I wrote a QuadTree implementation in Lua. Performs pretty well, especially when tuned right – it handles 256 objects bouncing around a 3×3 screen area at around 75% of one core on my desktop, and doesn’t start even dropping frames until I drop in 512 objects. In the scenario above (256 objects, 32x32px in size, bouncing around an area 960x720px in size), the engine is doing between 600 and 1000 collision checks per cycle; for comparison, brute-force checking for that many objects would require around 33,000 (and when I try it, the framerate drops from 60 to around 4).
Working with Tiled maps got me experimenting with XML formatting for my object definitions, too. I’ve already worked out a document style which encapsulates the animation and some basic logic, giving me a nice, compact way to sketch out player and enemy behavior. Next up: terrain collisions and physics.
Still chopping through a few ‘must-play’ games (State of Decay and Chronicles of Mystara), then I’ll be getting back into my hobby dev work. My next task is either to refine my tileset (or find a suitable replacement), or come up with a few simple enemies to add in so my hero isn’t just chopping up bats and ninjas. Ideas:
- Ghostly Hand (just what it sounds like – a floating hand)
- Mud Golem
- Goblin (though I’d like this to follow the Humanoid template eventually, to be playable as a race)
- Skeleton (always a classic, and easy to mod into multiple enemies – Skel Archer, Skel Mage, Skel Knight..)
- Slime (!)
Anyone have other ideas for fairly simple creatures? Looking for common platformer tropes which I can (hopefully) animate fairly easily – things with a standard walk/fly animation, maybe one main attack, nothing overly complex.
Genre: Platformer or Zelda-style overhead adventure
Inspiration: The Princess Bride.
Premise: An old man tells his grandson a tale from his youth, but as always, he may be exaggerating a little..
Setup: The game switches viewpoints periodically; one view is in the family home, where the grandfather tells the tale around the fire. The second view is from the grandfather’s POV within the story; you control him in his adventure as he relates it to the grandson.
Hook: Every once in a while, the grandson will call BS on parts of the story; in the middle of fighting a werewolf, say, the action will be interrupted by his dialogue, asking a question or poking a hole in the story. When this happens, the view may switch to the home; your character becomes the old man, and instead of swinging a sword at a werewolf, you are instead swinging a cane at a coat rack; when the action resumes, you may be fighting a mangy dog instead. Three towering bandits become a single pickpocket, etc. This might be a player-triggered event – a given key might cause the boy to interrupt, changing the nature of the fight you’re in (and the difficulty of it).
Twist: Partway through the tale, the old man’s son (the boy’s father) walks in and contradicts parts of the story. The setting and characters in the action sequence change to reflect this, as the son remembers events differently. Where the battle begins with the old man’s memory of a valiant fight against a werewolf, when the son resumes the tale it’s completely different – the father thumped his head and fell unconscious, and the boy instead repelled a mangy old wolf by throwing rocks at it (you, of course, control the boy).
Not sure how this would actually play out, but I like the idea of details changing on the fly due to an old man’s faulty recollection and tendency to exaggerate. Might be a fun one to try someday.
Got LIV mostly refactored so I can start assembling actual tilemaps – it was mostly hardcoded to 8×8 tiles, which wasn’t doing me any favors. Now I can load my new 16×16 tileset and play with it, which is fun; next up I need to build support for my map format into the engine.
The new tileset and working on LIV again makes me ponder biting the bullet and using Tiled – it’s already polished, fully-featured, and well-supported. I think I stayed away from the format originally because it was a vast amount of overkill for the NDS. All I needed was the tile index and V/H flip bits, and Tiled’s XML format was a lot of chaff to sift through for such a small amount of data; I similarly considered Mappy, which is a much lighter-weight suite, but while Mappy can support almost any format, it doesn’t really feature anything in the way of tile mirroring. The new tileset has upper-left lighting, though, so mirroring is a moot point – I think I need to ditch another habit from my NDS days and embrace better pre-made tools.
As a note, it’s incredibly hard to rework a tileset with Dawnbringer’s 16-color palette, if you didn’t create the art with a limited palette in mind in the first place. Probably not too difficult for a more talented artist, but I am very much a beginner..
Man, this framework is great – I’ve accomplished in four hours what it’s previously taken months to write on my own. Definitely sticking with it going forward. Yeah, I’m rewriting the engine again, but this time I get to focus on gameplay and ignore the tricky hardware stuff – I’ve done enough with it to know what’s happening behind the scenes, which is enough for me. I make enough bugs as is without writing my own rendering code.
More progress – combining a few quickie tiles with the character sprite and some chests: