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

Login with username, password and session length

 
Advanced search

1392666 Posts in 66985 Topics- by 59835 Members - Latest Member: jlivingstonsg

June 20, 2021, 02:30:35 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsCANTATA - Sci-Fi Advance Wars + Supply Lines & Base-building
Pages: 1 ... 6 7 [8]
Print
Author Topic: CANTATA - Sci-Fi Advance Wars + Supply Lines & Base-building  (Read 19777 times)
bacon
Level 1
*


View Profile
« Reply #140 on: April 08, 2021, 08:31:20 AM »

Ok, I'll bite: how much of this was motivated by mod-friendliness and how much of this was being tired of fighting Unity yourself? :p

Haha I would say equal parts of both, but definitely driven by a want to make the game moddable from the ground up. I was a good Unity citizen and was trying to do it with ScriptableObjects for a while, looked at AssetBundles, looked at Addressables (or at least what little docs there were on them) and most all of them required people to have access to Unity. I'm making a pixel art 2D game! Why should a modder need to download ALL of Unity just to add a single 64x64 sprite? If we weren't making it moddable, we could definitely have worked with those other solutions, but we wanted moddability to be a core thing so it sort of necessitated its own solution.

So I eventually moved the asset pipeline to sort of start outside of Unity itself. We load in all the game data from a "core" mod file, but because that pipeline is open to anyone, you can just put mods in the right folder and they will load into the game natively as well.

It's also been nice for a general production workflow, as the data for the game is versioned separately from the code itself. So the artist + sound people just update the data file and commit their changes to the trunk. The code has its own source control that doesn't have any data in it, and just loads the latest from the data stuff into it. So artists dont need to worry about branching or anything.
Logged

CANTATA
JobLeonard
Level 10
*****



View Profile
« Reply #141 on: April 08, 2021, 08:50:43 AM »

Quote
It's also been nice for a general production workflow, as the data for the game is versioned separately from the code itself.
That also sounds like a great way to avoid those disaster stories you hear from people who tried to upgrade Unity in the middle of a project. Like, the more decoupled it is the less affected
Logged
bacon
Level 1
*


View Profile
« Reply #142 on: April 08, 2021, 08:58:13 AM »

Quote
It's also been nice for a general production workflow, as the data for the game is versioned separately from the code itself.
That also sounds like a great way to avoid those disaster stories you hear from people who tried to upgrade Unity in the middle of a project. Like, the more decoupled it is the less affected

Yeah for sure. We've definitely still encountered some issues with the workflow, but the positives definitely outweigh the negatives. Like right now, because the data is versioned seperate, we can basically still work on new updated/content for the game with only the build itself. We don't need to rebuild the whole game is someone wants to change an attack value by +1 lol. Which before we basically had to do.
Logged

CANTATA
fishtaco567
Level 0
**


View Profile WWW
« Reply #143 on: April 08, 2021, 05:47:22 PM »

The idea of a partially automated RTS drew me in, the bright colors caught my eye, and all of this talk of mod friendliness within unity got me! I've got to say, the pitch you get coming from the forums is great!

I'm excited to get the chance to mod it! I hadn't seen this covered in any of the media you've posted but my apologies if I've missed it; will you also be able to use custom code in mods?
Logged

Levathia Bound Devlog - A Metroidvania

Everything's procedurally generated if you think about it.
bacon
Level 1
*


View Profile
« Reply #144 on: April 09, 2021, 06:22:17 AM »

The idea of a partially automated RTS drew me in, the bright colors caught my eye, and all of this talk of mod friendliness within unity got me! I've got to say, the pitch you get coming from the forums is great!

I'm excited to get the chance to mod it! I hadn't seen this covered in any of the media you've posted but my apologies if I've missed it; will you also be able to use custom code in mods?

Well just to be clear it is turn-based Smiley But everything else is right!

For custom code, right now we're not allowing custom code, mainly due to other development priorities, but also in that we expose a TON of variables in data. So ideally you can do what you want through a combination of the deep unit/terrain editing + the built in scenario editor. That said, custom code would be fun to have in the future!

Also, we're starting to put out feelers for people who are interested in modding right now to both make mods for the game as well as give us feedback on the tools, so if you really are interested, PM me and we can talk!

Also, just posting the latest video here so it doesn't get lost in the jump



Logged

CANTATA
Copywright
Level 0
***


Vague Katti Wielder


View Profile WWW
« Reply #145 on: April 09, 2021, 08:54:39 PM »

Ok, I'll bite: how much of this was motivated by mod-friendliness and how much of this was being tired of fighting Unity yourself? :p

Haha I would say equal parts of both, but definitely driven by a want to make the game moddable from the ground up. I was a good Unity citizen and was trying to do it with ScriptableObjects for a while, looked at AssetBundles, looked at Addressables (or at least what little docs there were on them) and most all of them required people to have access to Unity. I'm making a pixel art 2D game! Why should a modder need to download ALL of Unity just to add a single 64x64 sprite? If we weren't making it moddable, we could definitely have worked with those other solutions, but we wanted moddability to be a core thing so it sort of necessitated its own solution.

So I eventually moved the asset pipeline to sort of start outside of Unity itself. We load in all the game data from a "core" mod file, but because that pipeline is open to anyone, you can just put mods in the right folder and they will load into the game natively as well.

It's also been nice for a general production workflow, as the data for the game is versioned separately from the code itself. So the artist + sound people just update the data file and commit their changes to the trunk. The code has its own source control that doesn't have any data in it, and just loads the latest from the data stuff into it. So artists dont need to worry about branching or anything.

Interesting!

I'm running into a similar issue -- but I've settled on serializing my ScriptableObjects into JSON. Hopefully, I'll be able to get funding to build external C# modding tools that basically provide a GUI to create these JSON files that get ingested on game start.
Logged


bacon
Level 1
*


View Profile
« Reply #146 on: April 09, 2021, 09:10:48 PM »

Ok, I'll bite: how much of this was motivated by mod-friendliness and how much of this was being tired of fighting Unity yourself? :p

Haha I would say equal parts of both, but definitely driven by a want to make the game moddable from the ground up. I was a good Unity citizen and was trying to do it with ScriptableObjects for a while, looked at AssetBundles, looked at Addressables (or at least what little docs there were on them) and most all of them required people to have access to Unity. I'm making a pixel art 2D game! Why should a modder need to download ALL of Unity just to add a single 64x64 sprite? If we weren't making it moddable, we could definitely have worked with those other solutions, but we wanted moddability to be a core thing so it sort of necessitated its own solution.

So I eventually moved the asset pipeline to sort of start outside of Unity itself. We load in all the game data from a "core" mod file, but because that pipeline is open to anyone, you can just put mods in the right folder and they will load into the game natively as well.

It's also been nice for a general production workflow, as the data for the game is versioned separately from the code itself. So the artist + sound people just update the data file and commit their changes to the trunk. The code has its own source control that doesn't have any data in it, and just loads the latest from the data stuff into it. So artists dont need to worry about branching or anything.

Interesting!

I'm running into a similar issue -- but I've settled on serializing my ScriptableObjects into JSON. Hopefully, I'll be able to get funding to build external C# modding tools that basically provide a GUI to create these JSON files that get ingested on game start.

This is basically exactly what I built for Cantata Smiley

http://depot-editor.com

Here's an overview video:





I author all the data in Depot and that gets ingested on load to Cantata. I stopped using ScriptableObjects because I didn't actually need "Assets" anymore, and just use the serialized data directly in its representation.

Logged

CANTATA
Copywright
Level 0
***


Vague Katti Wielder


View Profile WWW
« Reply #147 on: April 09, 2021, 10:03:28 PM »

Wow, that is awesome!

I am bookmarking this -- thanks for sharing!
Logged


bacon
Level 1
*


View Profile
« Reply #148 on: April 22, 2021, 08:03:31 AM »

Got a new video for everyone! We spent the last stream talking all about unit mechanics. Watch to learn about all the little knobs you can tweak for a unit in Cantata, with everything from movement range to attack patterns to even adding INVENTORY to units!



Logged

CANTATA
bacon
Level 1
*


View Profile
« Reply #149 on: May 10, 2021, 01:41:55 PM »

We're wrapping up our modding series, so with that here's the final video! In this video we walk your through Interactable Projects and Supply Lines, diving into some of the meatiest topics in all of Cantata! We also tease some upcoming features.





If you're a fan of AW or tactics games in general, I think you'll find the projects/supply lines system pretty unique. We'll do more targeted videos/blog posts about this stuff in the future, but if you want to know the real meat of it all, check out the video above.

We also just got new key art in but I can't share it yet  Shocked

Also here's some shots from the redesigned scenario editor (not in the videos!):





« Last Edit: May 10, 2021, 02:43:47 PM by bacon » Logged

CANTATA
bacon
Level 1
*


View Profile
« Reply #150 on: June 03, 2021, 05:35:29 PM »

Many things happening as always and feel like I need to do 10 devblogs. For now, here's a new thing:



Basically, terrains now aren't bound to only be the core "base" tile that defines the terrain type. There is also a "detail" layer that exists on top of that, that allows you to not only change the look of the tile, but can also alter the properties of a tile. This is just a simple example with some flowers and mushrooms with some units standing in it, but detail terrains can be anything from roads to mountains, etc.

What's really interesting about this as well was that it is REALLY pushing the isometric-ness of the game to the limit. There's actually a fairly complex pipeline to make a lot of this stuff happen, and the game effectively has ~5 layers of stuff in it that all have to overlap in the right way and not look weird.

The detail terrains themselves were really interesting to implement — instead of creating another full map and interleaving the mesh of it with the mesh of the base terrain, I'm now using geometry shaders on the map to "emit" the detail layer on the tile. This means I can keep the whole map to a single class and not worry about having to juggle multiple maps.

One other thing:



Notice how you can see the detail terrains on top of the infantry units, but don't see the same overlap on the buildings (despite those buildings be on tiles with detail - I promise). This was a surprise as part of this process — basically, all units don't actually "feel" like they should interact with the detail in the same way, despite them all existing as the same types of entities on the map. What I did here to do this was added in a flag to the data file of a unit, stating if it should be drawn on top of detail terrain. Then, when that unit is placed on the map or moved, I offset it slightly closer to the camera if it's meant to be drawn on top of the detail terrains. I don't bring it too far forward though because then it would break the sorting of the tiles "below" it, drawing on top of elements that are meant to overlap it. It's a delicate balance!

The other part of this was managing the sorting of tiles more general as well. If an infantry unit appears under the flowers, and the flowers are detail, doesn't that mean it would appear under the road as well because the road is detail? Well if everything was sorted to the same layers, yes! This is where the five layers of the game come in though to make sure that doesn't happen.

Cantata's map has 5 layers (6 if you count both interactable layers), ordered here from farthest from the camera to closet
1. "Flat" terrains — these are terrains that don't have elements that are meant to overlap tiles behind them (think grass, flat lands, sand, etc.)
2. "Flat" detail — these are detail terrains that always draw on top of flat terrains
3. "Non-flat" terrains — mountains, forests, etc. - terrains that overlap elements behind them
4. Interactable layer with "blocks detail" not checked
5. "Non-flat" detail — these are elements on top of those non-flat elements
6. Interactable layer with "blocks detail" checked

It's worth noting as well that if a flat detail terrain is put on a non-flat terrain, it gets bumped to the non-flat detail layer, that way the detail is always visible. TBH I had no idea this was going to be such a pain to do! The original target concept art had this stuff and it seemed like a no-brainer, but it also makes sense why so many isometric games don't do this mixed approach we do, and instead will just have two layers. However, I do think it looks wonderful now and I'm glad it's in!

Here's one last shot of me messing around with detail terrains in the editor:



Hope you enjoy!

« Last Edit: June 03, 2021, 05:46:09 PM by bacon » Logged

CANTATA
vivaladav
Level 1
*



View Profile WWW
« Reply #151 on: June 03, 2021, 08:22:01 PM »

Very nice update and I feel your pain... getting some complex isometric rendering right can be way harder than most imagine. I know it well! Smiley
Logged

Creating "Virtueror, the virtual conqueror" (RTS + 4x + RPG)

[Wishlist on Steam]
[TIGS devlog][YouTube devlog][website]
bacon
Level 1
*


View Profile
« Reply #152 on: June 08, 2021, 07:42:37 AM »

Very nice update and I feel your pain... getting some complex isometric rendering right can be way harder than most imagine. I know it well! Smiley

Yeah it forever feels like a moving target. I was watching some of your development videos as well and saw some similar issues that I've encountered Smiley I think I've finally finished all the rendering bugs for this though, so until Cantata 2 I'm hoping I don't have to worry about it anymore haha.
Logged

CANTATA
vivaladav
Level 1
*



View Profile WWW
« Reply #153 on: June 09, 2021, 02:58:53 PM »

Yeah it forever feels like a moving target. I was watching some of your development videos as well and saw some similar issues that I've encountered Smiley I think I've finally finished all the rendering bugs for this though, so until Cantata 2 I'm hoping I don't have to worry about it anymore haha.

Hahaha yes! I must confess that until a few weeks ago I almost never showed units building walls because there was a problem with the sorting algorithm that was giving wrong results in a few cases.

You can't imagine how many times I ended up re-recording some videos or taking screenshots because of it... Lips Sealed
I fixed it now and maybe I should have done it earlier, but it took me a full day and I was trying to move forward with other features first.

To the next challenge! Beer!
Logged

Creating "Virtueror, the virtual conqueror" (RTS + 4x + RPG)

[Wishlist on Steam]
[TIGS devlog][YouTube devlog][website]
bacon
Level 1
*


View Profile
« Reply #154 on: June 16, 2021, 02:49:36 PM »

Trigger editor for the scenario creator:

Logged

CANTATA
Pages: 1 ... 6 7 [8]
Print
Jump to:  

Theme orange-lt created by panic