Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411283 Posts in 69325 Topics- by 58380 Members - Latest Member: bob1029

March 29, 2024, 02:13:02 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsCANTATA - (1.0 OUT AUGUST 15th) Sci-Fi Advance Wars + Logistics + Base-building
Pages: 1 ... 4 5 [6] 7 8 9
Print
Author Topic: CANTATA - (1.0 OUT AUGUST 15th) Sci-Fi Advance Wars + Logistics + Base-building  (Read 29293 times)
bacon
Level 1
*


View Profile
« Reply #100 on: February 06, 2019, 05:14:03 PM »

Love these updates!

Your site looks great, very bold design. I saw one minor typo, under "Gameplay" on the guide, the second line reads "Cantata is a tactical strategy game that pulls marries higher scale...".

The Supply mechanism seems pretty intriguing, having resources start out at their greatest and be spent over time, rather than built up over time. I like that the supply chains can be directly interfered with on the map, too. I hope the types of supply and creative and compelling enough to match the great artwork!

Fog of War looks good, but adding tiered falloff (e.g. 70%/90%/99%) to shadows further into the fog would look even better!

Love the art for the COs on the site!

I'm very excited to play/mod this game!

Thanks for this! Glad you're enjoying the updates. Thanks for the site tip as well, just pushed a fix Smiley

And yeah I'm glad you're interested in the supply mechanic! It has definitely been the glue that the rest of the game has been designed with, having it really provides structure to a lot of other ideas vs. other things feeling only loosely connected because they are simply in the game. I also really like the idea of a physical tech tree that can be attacked/needs to be defended.

The tiered FoW is a good idea as well! I think in terms of legibility though I wonder if, at a glance, if FoW has a gradient, that players would register the difference between 70%/99% FoW as gameplay-relevant - i.e, does a player that sees 70% FoW think they have more "vision" into that area? Even with a 99/98/97 I could see that question coming up. I'll definitely test it out though to see what the effect is, that's a great idea!

I'll be sure to post here when the alpha is going live as well. There will definitely be a degree of modding in the game in the alpha, so if nothing else you should be able to create maps by then!
Logged

CANTATA
qMopey
Level 6
*


View Profile WWW
« Reply #101 on: February 06, 2019, 09:04:35 PM »

Nice art! FOLLOWING
Logged
Sustrato
Level 1
*


It's a good day to die.


View Profile
« Reply #102 on: February 08, 2019, 01:00:24 PM »

Thanks for this! Glad you're enjoying the updates. Thanks for the site tip as well, just pushed a fix Smiley

And yeah I'm glad you're interested in the supply mechanic! It has definitely been the glue that the rest of the game has been designed with, having it really provides structure to a lot of other ideas vs. other things feeling only loosely connected because they are simply in the game. I also really like the idea of a physical tech tree that can be attacked/needs to be defended.

The tiered FoW is a good idea as well! I think in terms of legibility though I wonder if, at a glance, if FoW has a gradient, that players would register the difference between 70%/99% FoW as gameplay-relevant - i.e, does a player that sees 70% FoW think they have more "vision" into that area? Even with a 99/98/97 I could see that question coming up. I'll definitely test it out though to see what the effect is, that's a great idea!

I'll be sure to post here when the alpha is going live as well. There will definitely be a degree of modding in the game in the alpha, so if nothing else you should be able to create maps by then!

A lot of games come to mind that have branches of the tech tree tied to units/buildings (Tiberian Sun, Starcraft, etc), but the requirement to have direct, uninterrupted lines is pretty unique. Kind of like Pylonz or Zerg Creep, but a fresh take.

I think tiered FoW would come across pretty clear, it's not too uncommon in games. You could also go the route of requiring players to explore territory before they can see what's there at all (i.e. total blackout pre-scouting), and requiring an active LoS to see the live update (units and 0% alpha).

Oh, I also forgot to say this but the neural net tiles look really good. And I love the idea of different tiles affecting the pathfinding of LoS -- are you giving a buff to units on high ground, ala Advance Wars?
Logged

bacon
Level 1
*


View Profile
« Reply #103 on: February 10, 2019, 08:53:39 AM »


A lot of games come to mind that have branches of the tech tree tied to units/buildings (Tiberian Sun, Starcraft, etc), but the requirement to have direct, uninterrupted lines is pretty unique. Kind of like Pylonz or Zerg Creep, but a fresh take.

I think tiered FoW would come across pretty clear, it's not too uncommon in games. You could also go the route of requiring players to explore territory before they can see what's there at all (i.e. total blackout pre-scouting), and requiring an active LoS to see the live update (units and 0% alpha).

Oh, I also forgot to say this but the neural net tiles look really good. And I love the idea of different tiles affecting the pathfinding of LoS -- are you giving a buff to units on high ground, ala Advance Wars?

I think the "total blackness + falloff" is definitely how I imagine things working — basically the whole map is black and you explore it, and already explored tiles get 50% dark or whatever. So that way you have  three tiers: visible, explored, and not-explored. In my mind that definitely makes a lot of sense. A lot of the game is supposed to be about exploration as well, so I don't want to "expose" the whole map to players from the start. It should definitely feel like feeling around in the dark a bit.

Thanks for the note on the neural net tiles! It was a fun exercise to see what it would be like to import a pre-existing tileset. In terms of LoS increasing based on terrain, I actually haven't directly implemented anything like that but it's definitely on the short list and would be really easy. In my mind you would have terrains have some "vision increase" number, and then a unit that is on that terrain has it's vision modified by that number.

One interesting consideration for terrain-based vision enhancements is that in Cantata, because the maps are so big, you definitely can get a mountain "range" instead of a single tile. Part of what makes visibility modifiers interesting in AW is that there isn't often a lot of mountains on a map, so trying to struggle for that spot becomes a major thing. In Cantata, if multiple factions can occupy a single mountain range at once, what does that mean? Could be really interesting! Or it could mean that "always go for the mountains" becomes a required  meta-rule of play. I'm wary to encode any "musts" in the game's design, but that doesn't mean it shouldn't be tried out!
Logged

CANTATA
Sustrato
Level 1
*


It's a good day to die.


View Profile
« Reply #104 on: February 15, 2019, 12:47:19 PM »

It sounds like the mod system you're coding would allow for a lot of different play styles? You could have factions with units that are uniquely suited to certain terrain types facing off. Maybe the mountain folx end up allying with the swamp landers, because they don't want to occupy each other's turf and they have a common enemy with units that are less dependent on territory but have some other abilities to balance.

Yeah how you're describing LoS sounds like I was imagining. I'm excited for this demo to come out! Hoping the multiplayer stretch goal can be met!
Logged

bacon
Level 1
*


View Profile
« Reply #105 on: February 18, 2019, 08:30:30 AM »

It sounds like the mod system you're coding would allow for a lot of different play styles? You could have factions with units that are uniquely suited to certain terrain types facing off. Maybe the mountain folx end up allying with the swamp landers, because they don't want to occupy each other's turf and they have a common enemy with units that are less dependent on territory but have some other abilities to balance.

Yeah how you're describing LoS sounds like I was imagining. I'm excited for this demo to come out! Hoping the multiplayer stretch goal can be met!

Yeah that's definitely the case. The backbone of the system (see the next post!) allows for a lot of flexibility in faction design so I'm excited to tweak the knobs I'm giving myself to really make each faction feel unique.

And I can already confirm that basic multiplayer is in and working with Steamworks!
Logged

CANTATA
bacon
Level 1
*


View Profile
« Reply #106 on: February 18, 2019, 08:36:59 AM »

This was originally posted on the new Cantata Website

Modding 101: Interactables and Aspects

If you’ve been following Cantata since I started, you’ve probably seen mention of modding. Though it’s already come up on the forums, I haven’t done any sort of “big” post about the plans for modding and given that we’re starting to stare down the barrel of an alpha release, I think it’s time I start to shed some light on what’s planned!

To this end, I’m starting up a blog post series called “Modding 101”, which, like “Cantata 101”, will talk generally about the scope of modding in the game and what you can expect as someone who may want to mod the game (and inspire people who never thought of themselves as modders!).

Supply Lines
To start, it’s worth stating that, nearly from day one, modding has been planned for Cantata. This isn’t just a symbolic choice — games that choose to de-prioritize mod support (or defer thinking about their integration) can easily exclude themselves from the possibility of ever using mods in the future. Not all games need mods, but for Cantata, it’s been part of the core design of the game from the very beginning.

What this tangibly means is that nearly all parts of the game have been designed around the question “how can I make this moddable?”. Even if it takes an extra week or month, I’ve always been sure that what I’m doing in the game isn’t “special” — I’m always trying to give myself only the tools that modders would also have access to.

If people are interested, I can really go into what this means architecturally for the game (little use of Update loops, lots of events, “data-driven design”, etc.) in another post, but for the rest of this post I want to talk about one of the core parts of the game and how I’ve designed it to be moddable.

Interactables
To start, I want to talk about Units. Or Buildings. Or Weather... Or basically, anything you can “interact with” on the map. All of the above (and more) are what I call “Interactables”. Interactables can take many forms, but they all share a few common properties like having a name, a vision range, health, a spritesheet, and... that’s about it. What they have that makes them special and moddable is an associated block of data that defines their specific behavior in the game, or, what “Aspects” they have.

Aspects
Aspects are essentially small, isolateable (don’t need other Aspects) blocks of functionality that can be assigned to any given Interactable. A given Interactable can have any combination of Aspects, and the different permutations of these combination are what make Interactables look and feel more like proper things in the game.

Aspect Combinations
For example, a “Unit” is just an Interactable with a “CanMove” Aspect, which gives the Interactable the ability to move in game. If we want to give that “Unit” the ability to attack, we additionally give it the “CanAttack” Aspect. Maybe a reconassiance unit is just an Interactable with a “CanMove” Aspect (and high assigned movement range), not a lot of health, and a large vision range. A Tank could be an Interactable with with a “CanMove” Aspect (with low assigned movement range), low vision, but a “CanAttack” Aspect with high attack power and forward biased attack pattern (assigned in the CanAttack aspect).

A “building” is just an Interactable that can’t move! Stationary Artillery could be an Interactable with only a “CanAttack” Aspect and a large firing range.

Aspect Parameters
I’m alluding to it a bit in the examples, but each Aspect, in addition to defining base-level functionality, also has a set of parameters associated with it that help give that Aspect “shape” for a given Interactable. Like I said above, having a “CanAttack” Aspect gives you the ability to define a firing pattern — do you make a unit that can only attack forward? Or a building that only attacks out of its sides. For the “CanMove” Aspect, how far can this Interactable move? Can it move through water?

Each Aspect has its own set of parameters that you can define on a per-Interactable basis, giving you a ton of flexibility in designing your own Interactables. All this will be properly documented once the alpha is live, but for now I hope that this gives you a taste of what will be possible in combining Aspects and Aspect parameters. I can’t wait to see what crazy stuff people come up with.

What Aspects Can I Use?
For now, these are the current Aspects in the game, some of which are self-explanatory and some that will need further elaboration later on:

CanMove
CanAttack
CanBeSupplied
CanSupply
CanSpawn
CanBuild
TimedLife
CanLoadUnload

One current limitation to this system is players won’t be able to necessarily create their own Aspects, and will need to choose from the provided list that the game supports. That said, the Aspect system is robust and flexible, so new Aspects can be easily added to the game if something specific gets a lot of demand. This list will also grow as the game continues to develop, so over time I expect this list to grow past what’s listed above.

How Do I Make Interactables
Creating new Interactables in this way will also be incredibly easy, and will use simple text/image files stored in Cantata’s game directory on your machine.

Said differently, you won’t need to know any coding to do this!

What I’d really like to do is make a hosted website dedicated to creating/sharing all things related to Cantata modding (beyond just Interactables), so that people can “mod” the game from only a web browser and not even need the game itself to make buildings/units/terrains/etc, but all things in time.

I’ll end this post here and hope it’s inspired some people to start thinking about what interesting Interactables they may want to make! For now though, thanks for reading!

Next time, we’ll be talking about Terrains!

------

As a reminder, I've recently launched a brand new site! I'd love for you to go give it a visit, join the newsletter, and join the forums! Every little bit helps in getting this game off the ground!
Logged

CANTATA
bacon
Level 1
*


View Profile
« Reply #107 on: March 10, 2019, 11:31:54 AM »

I'm starting to track a little less on TIG with the game, and have been mainly posting little dev updates on the game's forum, but wanted to post some of what I have been working on here for people that are just following the game here!

If you're interested in the game, I definitely encourage you to join the forums/signup for the alpha. After GDC I really hope to start getting the game into people's hands, so if you're interested in being one of those people, signup!

Into the updates!

First off, a lot of work has been going into the scenario builder. This is the in-game tool that the dev team uses to build maps, and will also be given to anyone who gets the game. This means that the tool will be fully featured enough to make production-quality maps, so the community has the same map-making power as the dev team.

For example, here's the ability to set "locations" - these can be either trigger points used to trigger things in a match, or can be proper "Regions" that are used in calculating the Conquest victory type.



Here's an example of how easy it is to start making new maps! The best part about this as well is that if you make your own Terrains for the game, they can easily be added and work with this same system.





That video demonstrates the idea of "brushes" - these are kind of "chorded" on the keyboard, so you can toggle different brush sizes as you draw on the map without having to manually select a different brush.





This video demonstrates the ability to place "random" sprites for a provided tilemap. You can essentially sample a provided tilemap and tell it to choose a random sprite. This can be combined with brush selection, so you can do large swaths of random terrain - really good for starting out on a map to give it immediate character. Another thing in this next video is the ability to "filter" brush tiles. Instead of painting on every tile in the brush size, you can choke in on the tiles and only use some percentage of the tiles the brush would affect. You can see that at the start with that grey terrain, and a few other times in the video.

I will say, this thing is super fun to use. I'm definitely excited to see what crazy maps people make, but also it's essentially a drawing tool! You could use it as a way to create isometric art.

In addition to scenario editing, I finally did a lot of work to optimize the ability to create REALLY BIG MAPS:

Here's a typical game screen. A normal map is about ~5 or so of these wide:



But this was built on a MUCH bigger map, so this screen is only a small part of what's possible:



You can even generate maps bigger than that if you want.

Lastly, another thing I was working on was "tiered" Fog of War. I'm not sure in the game if what you haven't discovered will actually be totally black, but this screen demonstrates the concept:



There are now three types of "visibility" for a given player: "Currently Visible Tiles" - tiles that the player can see based on unit vision, "Explored Tiles" - tiles that were Currently Visible at some point, but are no longer actively visible (good for hiding and then displaying hidden things on the map after the player has moved on), and then "Not Visible Tiles" - tiles that don't fall into the previous category.

Like I said, it's an open question about if what you haven't seen yet should be at least kind of visible from the player's perspective, or if it should be truly dark. On one hand the darkness is really fun - players have no idea about the sense of scale of the map they are playing on and it feels more like discovery. On the other hand, not seeing ANY tiles feels kind of restrictive. Maybe I'll do something where "Explored Tiles" isn't directly matched to player vision but is instead some modifier of unit vision range. That way units can "Explore" father than they can directly see, which would eliminate the weird, albeit kind of cool, "dark island" vibe of the screenshot above.

Anyways, that's what I've been working on! Here's one last small video of a map just chillin.

https://www.youtube.com/watch?v=brLS_hHtf6Q

If you're interested in the game or the alpha, please signup for the newsletter! Additionally, if you want to take a more active part in the game as it develops, I highly recommend joining the forums! I post all my dev updates there first, and also that will be a place to talk about the alpha once it's live.

Thanks for reading!

Logged

CANTATA
bacon
Level 1
*


View Profile
« Reply #108 on: March 10, 2019, 11:45:39 AM »

Also! I'll be at GDC this year if anyone wants to meet up!
Logged

CANTATA
bacon
Level 1
*


View Profile
« Reply #109 on: March 17, 2019, 09:35:56 AM »

Doing some final touches for GDC in adding a lot of quality of life things for actual gameplay!

I've added in the ability to preview an interactable's vison range, movement range (if it can move), and attack range (if it can attack) on hover if you press the correct key. In the preview, movement is blue, vision is yellow, and attack is red. You can also preview this for enemy units as well, which makes figuring out positioning much easier!





Another nice thing I did as allow you to preview your new attackable tiles when you're looking for somewhere to move (if you can attack). This means you don't have to do chess moves in your head to determine if you can attack something after moving.





Lastly, I implemented a pretty big feature that has to do with buildable interactables, also known as "Infrastructure". Infrastructure now has a "buffer" range around it which blocks you from building other infrastructure X distance from existing infrastructure.

This means that you can't just build buildings all incredibly close together, and forces you to move out an explore more of the map to give you more places to build. Like everything else, this number is also moddable and not hard coded, so it's also possible for your own interactables to make it so they can build on top of each other.






Logged

CANTATA
bacon
Level 1
*


View Profile
« Reply #110 on: March 30, 2019, 08:42:02 AM »

Killing some darlings.

For a while in Cantata I had conceived of you being able to have multiple units per tile and had done a lot of work to that end to make that sort of thing possible. Here's some of the latest work: dyanmic tooltips and unit "peeking" that let you preview what units are on a tile.





However, after actually really working with the game and playing it, it became clear that the game didn't necessarilly lend itself to "stacked" play. The maps are large enough that it never felt like you needed to add multiple units to the same tile, and if you were if felt like very cheesy meta only engaged by aggressively optimized play.

So I'm getting rid of it! In addition, this also nicely reduces a lot of the complexity of edge cases that came around needing the ability to select only a single unit on a given tile, figuring out how attacks are handled (should you attack all units in a single tile? some units? is the damage spread out?), and other small things.

A byproduct of this is that also makes the game more "readable" generally - instead of needing to constantly remember what was in a given tile or not and have to dedicate time to hovering on something, you can now directly see everything you have on the map at a given time.

So I'm now on the road of trying to clean this system up a bit, and have other ideas for how to make single units more compelling (like AoE attacks).
Logged

CANTATA
bacon
Level 1
*


View Profile
« Reply #111 on: April 07, 2019, 07:09:00 PM »

Doing a big push of the game this week. Fixing up a lot of small things, tweaking the alpha map, and adding some small QoL things. The isometric perspective is beautiful but sometimes can be hard to discern, so I added in little attack indicators that can show you what is attackable based on where you are planning to move.



Logged

CANTATA
bacon
Level 1
*


View Profile
« Reply #112 on: April 14, 2019, 05:52:01 PM »



this thing is coming together
Logged

CANTATA
bacon
Level 1
*


View Profile
« Reply #113 on: July 27, 2019, 06:41:07 PM »

Hey all! Been working on a lot of stuff behind the scenes recently, but the biggest thing was the launch of an official steam page!

Check it out here:



Any wishlists obviously appreciated!

Also, the game was recently covered in Rock, Paper, Shotgun and got some pretty glowing praise!

"I’ve tried for about twenty minutes to find an opening sentence that doesn’t sound contrivedly promotional, but sod it: Cantata is one of the most interesting upcoming tactics games around."

Read the piece here!


Logged

CANTATA
bacon
Level 1
*


View Profile
« Reply #114 on: February 08, 2020, 11:25:39 AM »

Hey people! Been a minute Smiley Long story short is that I left my full time job to go full time on Cantata!

Wanted to share some new things. First I have this development update video:





In it I got over some of the initial feedback the game has gotten from the alpha phase and what I'm doing with it, as well as talking about UI/UX!

Let's Talk About Tile Outlining

Here's a little gif of something I was working on this past week, getting tile outlining working!



This is something a lot of strategy games do but I haven't seen any really good breakdowns of how to do it, so I thought I'd write up a little bit here to help anyone looking to do something similar.

The general idea is that you grab all the tiles in the group you want to outline, and then check all the neighbors of those tiles. Amit of Red Blob Games has a great article on this method in general here. If a tile neighbor is not in your current group, you can safely say that that edge needs to be drawn. Once you have all the edges you need to draw, you have two options.

And your options here are really engine-specific, because you have essentially two options: draw all the segments individually, or try to draw them as one line only. In the case of Unity, which I'm using, I'm using the build in LineRenderer component to draw the lines. The LR has no ability to "skip and jump", meaning that I essentially need to draw each segment in one stroke, as if it's a pen on paper. This means I could draw each line segment as an individual line (easy, but HIGH render overhead), or try to draw them as a single continuous line (hard, but lower render overhead).

Because I knew the I could easily get into scenarios where a tile group may easy have 100+ edges, this meant the difference between spawning 100 individual LineRenderers or having like... 1. So, as tends to be the case, I chose the efficient, hard path!

Not only this, but because the LR needs to draw a continuous path, the edges themselves basically need to be sorted before you actually draw the line. Attempting to just draw all the segments without thinking of sorting gives you this beauty:



This again is because Unity's LR draws like a pen, where you have to draw as if you never "pick the pen up". People who have used Turtles in Python can understand this as well.

So to sort the segments, I end up basically looping through all the identified edges, and, for each edge, try to find the next segment who's start point is the end point of my current segment. Assuming I find that point, I then add that relationship to a new List (in C#), and then find the next point, and so on. And for the most part, this works!

But! There's some more complicated logic when dealing with more complex scenarios like this:



Notice here how there are sort of "orphan" blocks in the middle that aren't connected to the "main" outline. These are created as part of the same loop! So why aren't they connected?

What happens is that, as I'm looping over edges, I'm also storing points that have been "processed". If I ever get to a point where my next point I chose was already "processed", I can assume (because the line is always a continuous loop), that my current line is finished. But! If my total processed edges is LESS than my total input edges, I know I have points left over that need to be stitched! So in that case, I make a new group, and then build the line using the same algorithm, and keep going until I've process all edges!

Then, for each group that I return, I spawn a line renderer (meaning some groups do still get >1 line renderers, but we aren't talking 100s), and trace the group's points, finding each next edge's key (or start point) using the previous edge's Value (end point). And it works!

One interesting thing here as well was some weirdness around Unity's LineRenderer when it came to simplifiying a line - basically if you actually drew the whole loop and tried to Simplify() the line (necessary for sharp edges), it would cut a diagonal line across the last tile, like this:



So instead I skip drawing the last segment, turn on the Loop flag of the LineRenderer component, and it works?



Not totally sure why this "fix" fixes it, but everything all works now!

Thanks for reading!






« Last Edit: February 08, 2020, 11:38:41 AM by bacon » Logged

CANTATA
bacon
Level 1
*


View Profile
« Reply #115 on: March 10, 2020, 06:44:16 AM »

Made a new development video that goes over some of the tile outlining stuff I talked about before as well as some changes around how buildings are placed on the map! Check it out!



Logged

CANTATA
bacon
Level 1
*


View Profile
« Reply #116 on: July 08, 2020, 07:22:34 AM »

This game is still very much alive, but I'm the only person doing social stuff for it so sorry I forget you all here <3

I've been working for the past few months on just totally gutting the UI in the game and rebuilding it from the ground up to be tooltipable, clean, consistent, etc. Here's a few things to demo that:

A video where I walk through the tutorial mission (it's unlisted right now but TIG is special):




Some new screenshots!











Also if you're a small streamer/youtuber and want to play this for your channel, DM me and I can hook you up with a key!

Also, wishlist the game on Steam! Tell your friends!


Logged

CANTATA
Disturbed Coder
Level 0
**



View Profile WWW
« Reply #117 on: July 08, 2020, 10:52:30 AM »

Wow, the game looks great! Nice work :D
I like the colors.
Logged
bacon
Level 1
*


View Profile
« Reply #118 on: July 08, 2020, 02:44:31 PM »

Wow, the game looks great! Nice work :D
I like the colors.

Thank you! I actually just went back a few pages in the thread to see how far the game has come along and it's crazy how like each little step makes sense based on what I show before, but you look at the first stuff and where it is now and it's like  Blink Blink
Logged

CANTATA
JobLeonard
Level 10
*****



View Profile
« Reply #119 on: July 09, 2020, 12:38:50 AM »

Ok, how on earth did this slip under my radar for four freaking years?!
Logged
Pages: 1 ... 4 5 [6] 7 8 9
Print
Jump to:  

Theme orange-lt created by panic