Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411508 Posts in 69374 Topics- by 58429 Members - Latest Member: Alternalo

April 26, 2024, 09:24:45 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsChrysalis - tower defense roguelite with creature possession
Pages: [1] 2 3
Print
Author Topic: Chrysalis - tower defense roguelite with creature possession  (Read 9617 times)
akoluthic
Level 0
***



View Profile WWW
« on: October 29, 2021, 01:13:07 PM »


Welcome to the Chrysalis Devlog!

Chrysalis is a rogue-like tower-defense game set in a world of natural mythology, with an emphasis on procedural generation, customizability, and replayability. Play the role of an incorporeal Wisp tasked with defending a magical chrysalis against forces of corruption and darkness. Search for resources and enlist the aid of friendly plants and animals as you explore each randomly generated level. Fend off waves of monsters, with each level offering new challenges, specialized wave types, procedurally generated bosses, and more.

Key Features:
  • Symbiosis: take control of any friendly plant or animal in the game.
  • Metamorphosis: level up your creatures and plants, transform them into more powerful versions, and apply elemental Spirits for further customization.
  • Mutation: a complex mutation system combines different species to create new creatures with unique sets of abilities and metamorphoses.
  • Customization: at the beginning of each playthrough, you choose a Chrysalis that caters to a specific style of play, with unlockable abilities that increase your power as you progress. By defeating waves of monsters, you will earn Boons which grant additional passive or active abilities, offering further ways to enhance your controlled creatures.
  • Modability: add new creature and plant species, abilities, art, and more by simply editing text files and dropping your images into the appropriate folder. Specific instructions and documentation will be forthcoming.





Steam page: https://store.steampowered.com/app/1594210/Chrysalis/
Twitter: @akoluthic
Discord: https://discord.gg/Ehjzmtv5rx
Website: https://metamorph.games

I'll use this space to go into detail about some of the things I'm working on. I'm also looking for anyone interested in playtesting, so feel free to sign up on the Steam page.




« Last Edit: October 16, 2023, 05:25:14 AM by akoluthic » Logged

Twitter | Soundtrack and trailer composer - worked on:CRAWL, Soviet Jump Game (Game Grumps), PULSAR: Lost Colony, and others. Currently solo developing Chrysalis
akoluthic
Level 0
***



View Profile WWW
« Reply #1 on: November 15, 2021, 05:43:25 AM »

MUTATIONS

In Chrysalis, there's a mutation system that combines individual parts from different species to procedurally generate new creatures. This isn't just visual novelty, however, because abilities are attached to body parts, meaning each mutated creature gets a unique set of abilities. For example, a creature with the body of a frog and the tail of a scorpion will be able to jump like a frog and sting like a scorpion. On top of that, the Mutation system interacts with the Metamorphosis system, so that each new mutated species gets unique metamorphoses, which means a unique progression path (more on this in a later post). Here's an example:


And a couple more out of the many dozens of current combinations (which grow exponentially with each new species added):



The system of combining parts is straightforward. There is an attachment point for each part, and a connecting point on the appropriate "parent" part. The challenging part is designing each sprite so that it looks appropriate when attached to every other possible parent. The mutation system makes several checks to ensure each combination of species is compatible (e.g. it must have a basic attack, so build the other parts around it, etc.)

Another aspect to this whole thing is how the combat AI works. Because creatures can have any combination of abilities, AI behaviors must be attached to specific classes of abilities, and certain interactions between abilities have to be accounted for when they exist on a single creature.

Development Update:
This week I am fixing some more bugs and will likely do a full playthrough on Twitch: https://www.twitch.tv/akoluthic. In preparation for the next wave of playtesters (over 150 currently waiting on Steam!) I will be adding more Boons and higher level species before the end of the month. If you're interested in helping playtest, head over and request access on Steam: https://store.steampowered.com/app/1594210

Until next time friends.
Logged

Twitter | Soundtrack and trailer composer - worked on:CRAWL, Soviet Jump Game (Game Grumps), PULSAR: Lost Colony, and others. Currently solo developing Chrysalis
ThemsAllTook
Administrator
Level 10
******



View Profile WWW
« Reply #2 on: November 15, 2021, 06:27:33 AM »

Wow, this looks really nice!

One tiny thing think would improve it: If you drew everything to a fixed-resolution canvas before scaling it up to screen size, all of the pixel boundaries would align. Looking through everything that's posted, I don't see any mixed pixel sizes or rotations, which is great! However, sprites are still moving through in-between states that don't follow the pixel grid. This is so close to being a perfect pixel art game and is just missing this one thing.

Keep up the good work!
Logged

akoluthic
Level 0
***



View Profile WWW
« Reply #3 on: November 15, 2021, 06:55:21 AM »

Wow, this looks really nice!

One tiny thing think would improve it: If you drew everything to a fixed-resolution canvas before scaling it up to screen size, all of the pixel boundaries would align. Looking through everything that's posted, I don't see any mixed pixel sizes or rotations, which is great! However, sprites are still moving through in-between states that don't follow the pixel grid. This is so close to being a perfect pixel art game and is just missing this one thing.

Keep up the good work!

Thanks for the reply ThemsAllTook. I share your desire to keep everything as pixel-aligned as possible. I deliberately made the choice to keep the text just as chunky as the world, and to avoid rotating anything. The one tradeoff I made was in creature movement. Since the game is 320x180, it tends to feel very jerky and "unsmooth" when moving everything around 12 pixels at a time (at 4k res) or even 6 pixels at a time (at 1080p). So I made the decision to keep character movement as smooth as possible. I went with what felt best for the game controls and movement, and it was certainly trade-off in terms of "pixel purity", but so far I'm ok with it. When seeing the difference this makes on a fullscreen monitor of 20-30 inches, this was the way to go for this particular game.
Logged

Twitter | Soundtrack and trailer composer - worked on:CRAWL, Soviet Jump Game (Game Grumps), PULSAR: Lost Colony, and others. Currently solo developing Chrysalis
Beastboy
Level 3
***

Happy birth day mom!


View Profile
« Reply #4 on: November 15, 2021, 04:24:02 PM »

I must admit, this is an interesting theme  Smiley
Logged
InfiniteStateMachine
Level 10
*****



View Profile
« Reply #5 on: November 16, 2021, 09:43:29 AM »

That's looking really fun, nice work!
Logged

bartorexplay
Level 0
**



View Profile WWW
« Reply #6 on: November 17, 2021, 12:45:25 AM »

Great Pixel art! really love this art style!
Logged

Noble's Life: Kingdom Reborn
akoluthic
Level 0
***



View Profile WWW
« Reply #7 on: November 18, 2021, 06:12:13 AM »

I must admit, this is an interesting theme  Smiley
That's looking really fun, nice work!
Great Pixel art! really love this art style!

Great to have this feedback, thanks everyone!

I have been working on adding in a few new species this week. Whenever I do this, I run a script that generates a bunch of mutations on the new species, looking for anything that looks wrong. It's fun to see a bunch of weird combinations.

New species: Naga, Valedeer, New metamorphosis for canids: Direwolf



Example Naga mutations:



EDIT: I just realized there's a surprised looking Woodook photobombing these mutants at the top of the screenshot. Oh well.  Shrug
« Last Edit: November 18, 2021, 10:20:33 AM by akoluthic » Logged

Twitter | Soundtrack and trailer composer - worked on:CRAWL, Soviet Jump Game (Game Grumps), PULSAR: Lost Colony, and others. Currently solo developing Chrysalis
akoluthic
Level 0
***



View Profile WWW
« Reply #8 on: December 13, 2021, 05:41:23 AM »

A couple weeks ago I did a playtest with a group of friends, as one final push before the first public playtest. We found some good things to polish up before the playtest release, mostly balance-related. I added several new metamorphoses like the Gigafrog, which can swallow things whole, and the Golem, with a jumping aoe-slam attack.


One thing I've been struggling with is the distribution of enemies that arrive during waves. I had been spawning creatures with a random level. At levels 1-3, the "basic" unit spawns (Hexlings for the Hex faction, and Poxlings for the Pox faction). After level 3, the metamorphoses start spawning, up to level 8 which is currently the max level for monster species. Using a random number for each spawn made the waves too prone to good/bad luck - you could get a wave of 10 level 1s, or 10 level 4s with equal probability.

So rather than spawn a certain number of creatures, I started spawning a certain number of levels worth of creatures. When I spawned 10 levels worth of creatures, you could get 10 Level 1s, or 2 level 4s and 2 level 1s (for example). As part of this whole system, I also wanted a random number generator that would give me lower numbers more often. So I ended up making a weighted RNG that basically translates the random interval to a curve:


In the example above, the range is from 1-3, and the chance of getting each number is:
1: 6/9
2: 2/9
3: 1/9

If the range is 2-5 you get:
2: 6/12
3: 3/12
4: 2/12
5: 1/12

It's not perfect for every possible range, but it WORKS FINE™ for my needs.

So this week I'll be streaming some playtests over at https://www.twitch.tv/akoluthic, and then hopefully releasing the first pre-alpha playtest on Steam (where about 200 people are currently waiting for access). If the 1 or 2 people reading this are interested in playtesting, head over to Steam and request access: https://store.steampowered.com/app/1594210/Chrysalis/.
Logged

Twitter | Soundtrack and trailer composer - worked on:CRAWL, Soviet Jump Game (Game Grumps), PULSAR: Lost Colony, and others. Currently solo developing Chrysalis
Ashedragon
Level 2
**



View Profile WWW
« Reply #9 on: December 15, 2021, 02:49:30 PM »

Huh. This is interesting. And I'm always a sucker for games where you can collect and fuse monsters. Looking forward to progress!
Logged

akoluthic
Level 0
***



View Profile WWW
« Reply #10 on: December 17, 2021, 05:44:29 AM »

Huh. This is interesting. And I'm always a sucker for games where you can collect and fuse monsters. Looking forward to progress!

Same here! One of the most fun parts of developing this game has been seeing all of the new combinations that are generated, some of which I have never seen before. I love that aspect of procgen/roguelike games, that even the developer will find new things that they didn't explicitly design but are created by the game systems.

In other news, I finally released the first public playtest build, Alpha 1! Things have been going great, and I love seeing new players figure things out. Here's a video of one player's stream documenting their first attempts:



Logged

Twitter | Soundtrack and trailer composer - worked on:CRAWL, Soviet Jump Game (Game Grumps), PULSAR: Lost Colony, and others. Currently solo developing Chrysalis
akoluthic
Level 0
***



View Profile WWW
« Reply #11 on: January 02, 2022, 10:02:18 AM »

I want to update my game's logo, so now I have to update all the Steam images across the library, store page, and announcements, then the website, the game itself, this devlog...I'm sure I'll forget something.  Shocked

Logged

Twitter | Soundtrack and trailer composer - worked on:CRAWL, Soviet Jump Game (Game Grumps), PULSAR: Lost Colony, and others. Currently solo developing Chrysalis
Beastboy
Level 3
***

Happy birth day mom!


View Profile
« Reply #12 on: January 02, 2022, 10:30:28 AM »

Congratulations on that gameplay video!

And i like the new polishd version of the game logo
Logged
akoluthic
Level 0
***



View Profile WWW
« Reply #13 on: January 10, 2022, 06:40:11 AM »

Congratulations on that gameplay video!

And i like the new polishd version of the game logo

I'm glad you like the logo - the consensus has been positive so far. The old one just didn't have much character, and was too "serious" for a game that has spiders with frog heads  Tongue

In other news - I finally have Linux and macOS builds for the game! I don't if anyone else has experienced this, but it seemed like there were a bunch of weird, undocumented idiosyncrasies I had to uncover when building the game from a Makefile on macOS. I expected to have a few of those things pop up, but I ran into so many that it took me a couple of extra days to get everything running from a .app bundle file (and even then, I STILL haven't gone through the notarization process which is, of course, required by Apple now).

Here is the Linux build running on Ubuntu on my Thinkpad:


And here is the Mac build on macOS Monterey on my Mac Mini:


Once I get through the notarization process, I will have a couple more things to finish before the Playtest Alpha 2 release (which will be available on Windows, Mac, and Linux for the first time!)
Logged

Twitter | Soundtrack and trailer composer - worked on:CRAWL, Soviet Jump Game (Game Grumps), PULSAR: Lost Colony, and others. Currently solo developing Chrysalis
akoluthic
Level 0
***



View Profile WWW
« Reply #14 on: January 13, 2022, 08:15:44 AM »


The next Playtest Alpha release is now available! Finally, Linux and Mac users can start playing.

Patch Notes and other info:
https://store.steampowered.com/news/app/1594210/view/3119306223321101797

Logged

Twitter | Soundtrack and trailer composer - worked on:CRAWL, Soviet Jump Game (Game Grumps), PULSAR: Lost Colony, and others. Currently solo developing Chrysalis
akoluthic
Level 0
***



View Profile WWW
« Reply #15 on: January 15, 2022, 06:39:20 AM »

For Screenshot Saturday I thought I'd share one of the new growths (towers) in Chrysalis, introduced in Alpha 2: the Toadstool! You can make a veritable army of frogs - and maybe get slightly grossed out by the incessant sound of their lick attack. So many licks...



In other news, after a couple of playtesters on Steam reported some crashes, I pushed some bug fixes which should clear most of them up. We even had a player beat the game this morning after a full 10 hours of pushing through. Shocked
Logged

Twitter | Soundtrack and trailer composer - worked on:CRAWL, Soviet Jump Game (Game Grumps), PULSAR: Lost Colony, and others. Currently solo developing Chrysalis
bayersglassey
Level 0
***



View Profile
« Reply #16 on: January 17, 2022, 10:42:50 PM »


We even had a player beat the game this morning after a full 10 hours of pushing through. Shocked

Aww, the first time someone beats your game sounds like a fun moment. Smiley
Logged
Beastboy
Level 3
***

Happy birth day mom!


View Profile
« Reply #17 on: January 19, 2022, 05:49:19 AM »

The gameplay looks so alive in your latest gif, it is like your game world hase a mind of its own. Was it hard to make all that pathfinding?
Logged
akoluthic
Level 0
***



View Profile WWW
« Reply #18 on: January 20, 2022, 12:12:51 PM »

The gameplay looks so alive in your latest gif, it is like your game world hase a mind of its own. Was it hard to make all that pathfinding?

Thanks! Admittedly there is a lot going on in that GIF.  Writing the engine from scratch allowed me to make sure efficient pathfinding was a priority from the very beginning. In reality, most of the units in that GIF are only looking a short distance away, so each individual pathfinding run is quick.

This week I've been adding a new rabbit species. The base rabbit unit has a bite attack, a "hide" ability that causes enemies to stop attacking/following it, and an Evasion ability that gives it a chance to dodge direct attacks.

It has two metamorphoses, Jackalope (Gore ability and increased Attack stat) and Bunniloo (spawns other rabbits that follow it around).

Here are some of the possible mutations (out of many dozens), each with a unique set of abilities from both species:


Logged

Twitter | Soundtrack and trailer composer - worked on:CRAWL, Soviet Jump Game (Game Grumps), PULSAR: Lost Colony, and others. Currently solo developing Chrysalis
Ramos
Level 10
*****



View Profile WWW
« Reply #19 on: January 24, 2022, 03:10:28 AM »



Now, this is an interesting project with some unique combo on the target audience, you can target both TD/simulation players and also Pokemon fans.

What are your design plans regarding the tutorial? I am asking this because I always have some problems when making my  tutorials for TD games
Logged

Pages: [1] 2 3
Print
Jump to:  

Theme orange-lt created by panic