Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411503 Posts in 69373 Topics- by 58429 Members - Latest Member: Alternalo

April 25, 2024, 03:47:58 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsTactics: Age of Affliction - A Tactical Strategy Game(warning: GIF Heavy)
Pages: [1]
Print
Author Topic: Tactics: Age of Affliction - A Tactical Strategy Game(warning: GIF Heavy)  (Read 5183 times)
tankorsmash
Level 1
*



View Profile
« on: January 04, 2019, 11:01:06 PM »

Tactics: Age of Affliction
formerly Magnolia





What started me on this project

I've been working on this project, since early October '18, (after Roguebreaker, and Build Up The Base before it), and I'm ready to start sharing stuff with you guys! Right off the bat, if you want to talk to me about the game, or get a free pre-alpha Steam key for it, join my small discord I started, and message me there! I'd love to hear what you think!

I've been playing Dominions 5 pretty casually over the last year or so, and I loved getting into these huge battles where all these stats came together in very impressive ways, and I thought that I could make something similar, with a much smaller scope and some user experience improvements. One thing led to another and now I'm basically making a 2D combat simulator, where you set up a bunch of orders in advance and then watch it play out. The set up is as follows:



The Premise

The world is angry and cyclical, dark souls style. so every XX years, this huge ragnarok event happens and wipes everything out. You wake up and need to get your shit together to rebuild civilization and stop the thing from happening next cycle.

The idea is that you'll have a shitty camp, go out out on an excursion with a few buddies, fight some dudes, gather their bones and gear, craft some new upgrades for your base, unlocking new gear, and levelling up your dudes. The idea is that you're in a constant loop of going out of base for resources, then spending those resources on gear and unlocks.

The trick is that you don't have much active control of anything, you set up itineraries for your parties to go to, and before battle, you set up Tactics so that your dudes attack someone if they're weak, or cast a fireball if they're vulnerable to fire. Say you schedule a trip to the Plains of Smapply to get some sweet green ooze for your homies at home, you might get ambushed by some dick trolls and need to fight them off, then you decide whether you want to go back to base to heal poor Tommy, or to continue as planned and potentially sacrifice the guy for a few more bits of ooze to slap on your sword.



This is the last project I'm going to try to make before my savings are out, so I'm trying to make it as big as possible, compared to Roguebreaker, my tiny roguelite-breakout game, but still keeping the scope tight enough that I can actually finish building it. I'm hoping that within a few months I can get a rough MVP out in Early Access to not only fund the development, but get as many people involved as I can.

The first gif I've got recorded was when I just got the combat system barely visualized. It starts with the game telling you you ran into a combat encounter, then it moves to the PreBattle screen, where you set up your squad, then it goes into battle. You can see the text output log is very rough, dense and hard to read. Nothing is sized right. Scrunched and weird. The manual battle controls on the left:




Here's the next gif, where you can see the positions in the grid being decided by the type of equipment the units are wearing. Melee units in front, ranged then casters behind them. Melee units can only attack those directly in the front, so if any melee characters are alive in the enemy ensemble, the ranged and caster units are safe.

I was very happy to get the list in the blackness on the left. It starts out ugly here but I keep making it nicer as time goes on. With this, the first inkling of a game was growing:




Then I went back and tweaked a lot of the InBattle scene, where I spread things out, added some nicer panels in  the back of elements, cleaned up text just about everywhere, and added the Initiative list along the top, so you could see who's going to attack next



Then I started animating the grid a little bit on 'next turn', so that you could get a better sense of what was happening each turn without reading all that much



Here's just a small UX change I made, combining the 'start round', 'next turn', and 'end round' buttons into one, so you can just mash 'next' and it'll play through the battle



Then I wanted to start showing the game off to some close friends who haven't played, or let alone heard of, Dominions 5, so I added some hover text to a lot of the output log. I was diligent in tying some metadata to each of those log messages, and assigning them a category. The category is read and then text is rendered based on that category. Think 'AttackStarted' or 'RanOutOfStamina'. This is one of those usability things that would be nice in Dom5, if anyone at Illwinter is reading.




Here, I added the start of inspecting a unit, so see all its stats. Standard stuff like HP and resistances, but some neat to-hit and to-damage type stats, very familiar to any Dom5 player, and most RPGs. There's also a PostBattle screen now, so you can see not only how you did, but how the enemy fared too.

You can inspect the pre-battle, in-battle and post-battle panels. As you probably know, the more nice stuff you add, the more its obvious what you're missing.




Here the inspect weapon, armor and actor panels are shown. You can see how most keywords have highlighted text. More colored text in the listviews to the left of PreBattle. Not a huge visually impressive change, but its a nice-to-have that goes a long way in helping the game feel more cohesive, even if its early.




Here those same panels are improved again, this time adding hover-text that explains how they work, and I'm using my friend's brother's art as placeholder profile picture. This was one of those 'holy crap, there's something here' moments that I think a lot of us love about gamedev.



This gif shows off the flavour text and information added to the combat encounters representing the idea that player knowledge and experience will help you design your party. More of the inspect panels are shown, and a bit of the Tactics editing you can do in the game.



This shows more tweaks to the InBattle scene, where you've got colors for the actor tiles to give you an idea of their HP at a glance, and then they tilt when they finally die. I also added a verbosity control, so if you only want a bit of text, you can see the summaries of turns instead of all of the nitty gritty. What's cool about this is that while I was adding in the categories from earlier, I proactively added in that metadata to generate the summaries on the fly, rather than hard code them like I did in the verbose mode. Like most things in this gif, I'm probably more proud of that than I should be!



Here's the last gif of the day. This shows off the screens you might see before heading out on the excursions, where you plan what you want to do, and check up on your dudes to make sure they're not dying. I want to give a shoutout to BlueSwordGames for letting me use his beautiful battlemaps as WIP placeholders, they are gorgeous, and I recommend checking out his Patreon.

You've got the screen where you can see the status of all of your ensembles, the Workshop where you'll craft your equipment and items to use in combat, the Storage where you'll keep the resources you've earned after you complete your excursion, and the Itinerary planner, where you'll mark the locations you want to go. If you need wood you'll go to the forest and hope you don't get swarmed by Elves for example.



These gifs were made between Oct '18 and Jan '19.



Anyway that's about it for now! If you're interested in try the pre-alpha to let me know what you think, let me know and I'll send you a Steam key for it and tell me what you like and don't like. I'm working very hard on the game and I'm trying to get a playable version out for everyone maybe towards the end of next month, but we'll see how that goes. If you can't wait, hit me up for a Steam key.

If you want that pre-alpha key or to let me know directly, join on my small Discord at https://discord.gg/theworldoutside. It's just me and a few buddies, so I'm always around.
« Last Edit: November 03, 2019, 04:12:49 PM by tankorsmash » Logged

Julien
Level 2
**


View Profile
« Reply #1 on: January 14, 2019, 02:40:44 AM »

I'll follow this one Smiley

I like the idea to have to prepare in advance
Logged

tankorsmash
Level 1
*



View Profile
« Reply #2 on: January 15, 2019, 10:16:51 PM »

Things are moving along well, sent the Early Access store page for review, I'm still a month or two away from putting the game on sale as a very early access, but it's nice to have progress. I'll talk about all the stuff I've done in the last few weeks, but I wanted to jump in and show off a screenshot of the Python tool I wrote to prototype a bunch of the systems that ended up in the C++/Cocos2dx project so far.

You can see the battle system in the top left, the attribute designer in the bottom left (think Wild: +1 ATK, -2 DEF). Then you've got the player's party in the middle, and the enemy party just next to it. Below that you've got the simplest tracker for gold/xp earned. Mid-right is the location list, showing off where you might go to fight or rest, and then the buildings where you'd go to craft or equip your party members. Then the very right has the character editor, and the tactics editor below it.

It was a lot of fun to make and I think I benefited from the quick iteration, and seeing things come together like that helped guide the next steps.

Logged

tankorsmash
Level 1
*



View Profile
« Reply #3 on: January 22, 2019, 12:36:23 PM »

In the last few weeks since the last update, I was able to get some momentum going on the discord, add some new features to the game, and got a chunk of the UI implemented.

Magnolia is about planning your excursions, making sure everyone is well-equipped for the journey and adapting to the unknown.

With that in mind, I started implementing the Armory screen, to show the player what they've got stored in their base, and the Packmule screen, to move stuff out of the Armory into the ensemble's packmule to carry with them on each of their excursions. Without anything in their packmule, they won't be able to equip anything on their units, and more importantly, won't be able to swap out their weapons when they encounter a particularly tricky foe.




Here's a few gifs of the progress over the last week. You can see the new map being used, hand-drawn by a friend helping me some of the game's design.

This first one is the start of the Armory screen, where you can see all the Weapons implemented in the game. There's no icons, hover text, or anything besides the actual button.  The filter buttons along the top are not yet implemented



Here the hover text is implemented, with the misaligned text along the bottom.  Still only weapons, and they're not limited to the ones you currently have access to. Speaking of, at this point in development, there was no concept of equipment count, so one weapon could be shared by all units in all your parties.



Here, filters are now implemented, you can see all types of equipment now, weapons, armors, and items. They're even color coded so you can be blinded by a slightly different shade of brown. I imagine once I get some art assets these'll look a lot nicer. Text is still misaligned at the bottom, but that'll be changed soon.



Now the hover text along the bottom is portioned off, making space for buttons eventually to discard and scrap old unwanted equipment.

What's nice for me about all of these screens, is that they're possible now, much much faster, thanks to all these wrappers around cocos2d-x's code. Instead of a few dozen lines to make a panel laid out in a certain way, with a certain background, with a certain alignment, it's just a single line with some params. It's fairly obvious in hindsight but until now I had always repeated the code over and over again. Don't get me wrong, I love DRY code, it's just that it never occurred to me to wrap stuff like this. I maintain though, that HTML/JS beats everything else out the water for UI design.



This is the start of the packmule screen, where you move equipment from the armory into a given ensemble's packmule. It's basically the entire armory code, copy and pasted, then tweaked after. Old me would have abstracted out the shared bits into a parent class then changed params as needed, but I'm trying to be more, uh, conservative with my efforts to make sure everything ends up being worth it. I've spent a lot of time in the past on abstractions that didn't end up adding any value for me, so I want to go against my instinct and just copy and paste more.



This is the current version of the Armory/Packmule loop, where you see the equipment being put into the pacmule, then going into the equipment screen to be used on the units. Behind the scenes, the inventory system was just about totally reworked, but the end result is that parties can carry equipment, and when you defeat an encounter, they might drop stuff that goes right into your packmule, instead of unlocking in base.



Also new is the mechanic of choosing what you'll be doing at a given stop in your excursion. If you're patrolling, you have a much higher chance to encounter a roving band of enemies, whereas if you're gathering, you are more quietly collecting resources.  



Now, the more time any of your parties spend at a given location, the more noise you make, and the larger, more dangerous enemies are likely to come. This is represented by an alert level, per location. It'll go up each week you spend there, and after two weeks of no activity, it'll start to go down. That means if you want the best loot, you're going to need to spend time getting the wilds angry at you. But remember, if you don't make it back to base, you won't be able to pocket any of the good loot you've stashed into your packmule on the excursion.

The gif shows off what it might look like when you've gotten the earliest stages of danger at a location




If you want that pre-alpha key or to let me know directly, join my small Discord at https://discord.gg/theworldoutside. It's a great place to get to a chance to try the game, and to give me your thoughts on the game.,
« Last Edit: May 23, 2019, 02:54:54 PM by tankorsmash » Logged

tankorsmash
Level 1
*



View Profile
« Reply #4 on: February 05, 2019, 05:53:18 PM »


This week, I wanted to get Magnolia closer to the vision I had of the game, where every unit you have is precious, and what better way to represent that with permadeath.

Now when a minion dies in battle, it has a 50% chance of being revived by an ally, or being lost forever. To offset the constant unit loss, you are able to recruit vagrant units that come join your pub every few weeks.

Next week, I'm reworking how the Itinerary planning works and its user interface!

If you want to try the game out as it's being developed, join the discord and I'll send you a beta Steam key for free. It'll help me out, I'm always looking for more feedback!


    Minion permadeath:
  • Minions (everyone but the one unit the ensemble is named after) can now permanently die.
  • If they go to 0HP in battle, on their next battle turn, they make a 50/50 roll. If they pass, they survive the battle with 1HP. If not, they are dead forever

    Better Pub minions:
  • Now have names (no longer all called Acme)
  • May be a strong/common/weak unit, and have a random assignment of stats based on that unit type
  • May cost anywhere from 15 to 65 resources, randomized based on their unit type

    Scaled encounters:
  • To better support permadeath, alert level now, on top of affecting who you'll encounter, now determines how many enemy units you'll be fighting
  • At alert level 0, you will likely see only two enemies at once, but at alert level 3 or higher, you're fighting enemy ensembles as large as five.


    World Log:
  • Added weekly log in the AllEnsembleOverview.
  • Anytime anything notable happens, you'll have record of it. If you'd like for something else to be logged there, let me know.
  • Currently tracked is: when a unit dies, when travelling/preparing/arriving, when a unit joins the pub, when dropping resources off at home, for advancing time
  • On booting the game, the world log contains a quick primer on how to play.

  • Removed suffixes from unit names: no longer says 'Mage/Ranger' after a units name
  • Added backpanel to the leftside of the PreBattle scene (used to be raw black)
  • Only show first 12 characters of a unit's name in battle
  • Sharpen unit names in battle
  • Widen changelog modal
  • Add fadeout to preload message
  • Added floating label for clicking 'advance time'
  • Fix crash when monsters would try to rout from their party
« Last Edit: May 23, 2019, 02:54:31 PM by tankorsmash » Logged

tankorsmash
Level 1
*



View Profile
« Reply #5 on: May 20, 2019, 11:21:12 PM »

Tons has changed since the last update. Reworked the art style, got some new art finally. Reworked the main AllEnsemblesOverview screen so it's a scrollable map and plopped all the character icons on it. Things look a lot more interesting now but they're still a long way from where I want to be.

Here's the latest gif with all the new art and icons




This is what some of the UI looks like with placeholder icons:



This is how the hovering works on the main map:



Added custom cursors:



A while back, I added saving and loading. This was before the UI rework:



Finally, here's a mockup of what battles might look with the new art:




The game's always being worked on. Track the beta builds in my discord: https://discord.gg/theworldoutside and wishlist the game to find out when it's going to be released in early access!

Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic