A lesson learned (or not)
Plenty of UX changes this week, but plenty more I want to do, so that's going to be the focus for this week as well. Now that the basic functionality and rules are in place, my next priority is game feel. If you have any suggestions of things that feel clunky, strange, or just bad, please let me know in the comments down below!
A few of the things that were changed:
-Cards now give a translucent preview of where they will drop in the timeline
-Cards can now be placed between other cards in the timeline, instead of just at the end
-Changed the shop screen UI to work better in lower resolution windows (like the web client)
-Made timelines move smoothly instead of juddering along
-Added floating numbers to indicate damage and healing
-Made enemies flash when damaged
-Fixed a few bugs
-Added names to enemies and their timelines
-Added an indicator showing what timelines are getting hit on certain ticks
-Added a longshot card to show off the indicator system
-Cards now actually move from the draw pile to your hand instead of snapping there, and move to the timeline when dropped instead of snapping.
That last one is what I'd like to talk about in the dev log portion of this, and a lesson I learned from it (or maybe one I didn't).
When I first started with this project, I was following along with a video tutorial by Adventures in Godot. You can find the playlist here, and I'd like to thank them! I've since diverged enough that it's no longer relevant, but it was very helpful in getting my head around the basic structure.
Early on the tutorial went over how to move cards from the deck to your hand. The process used involved calculating a target position, giving the card that position, and then letting it move to that target position using some simple movement code. It also talked how to create a card fan shape, a very classic card game thing.
However, I could not do the card fan shape, as my cards are wider then they are tall and all different widths. It just wouldn't make sense, and besides, I could see an easier way. My cards were set up as "Controls", a type of object in the Godot engine that has a lot of auto placement inherent to it. I could set up your hand as a Control container, and then just add cards to it and they would appear there without any other work from me.
I could even do the timelines the same way! Happy with my shortcut, I implimented it that way and it worked fine.
A month or so later I was working on this UX work and part of that was making things move more slowly and not just snap to their location. However, I found myself constantly fighting with Godot's automatic control placement stuff. I eventually realized that I was going to have to rewrite the whole placement system to work the way the tutorial originally suggested, by placing things manually.
Immediately I knew what my next dev log would be about. I had written everything assuming this quick shortcut would handle placement, and now I was looking at taking it out. What a good lesson to write about - don't take shortcuts, it only costs you more time in the long run.
Eventually, on a day I could put a few hours aside, I finally dug into it with some reluctance, and found that... it was actually much easier than I thought! It took a few hours, but I was able to entirely remove the autoplacement and replace it with my own manually defined movement over the course of a morning.
So the lesson I'm taking from this is - it's okay to take shortcuts sometimes, especially if you're early on in development! Get it up and running and mark the spots that might need updates, and the time you save on the first build will probably be worth the refactoring time later. At least that's how it worked for me.
Next up - More UX stuff, hopefully including some sound. I was going to add it this week, but I don't want to add it without volume controls or at least a mute button, so I left it out for this update. I'll also sprinkle in a new mechanic or two so it's not just quality of life changes.
Gifs in this were created using ScreenToGif - thank you ScreenToGif!
Files
Get Moment to Moment
Moment to Moment
A card game without turns where timing is key - In very early development
Status | In development |
Author | IsochronalGames |
Genre | Card Game, Puzzle, Strategy |
Tags | Deck Building, Roguelike, Roguelite |
Languages | English |
More posts
- Update #21 - New Preview SystemMar 01, 2024
- It's time to Rage with a new buff statusDec 20, 2023
- Adding Trinket Art and Thoughts on PreviewsDec 12, 2023
- Decorate your cards with new Stickers!Dec 04, 2023
- A Guided Tour!Nov 27, 2023
- Trinkets and Tweaks!Nov 19, 2023
- Tuning down the difficultyNov 13, 2023
- New structure implemented!Nov 05, 2023
- The final fight and some thoughts on game structureOct 29, 2023
- The Phalanx marches as oneOct 22, 2023
Comments
Log in with itch.io to leave a comment.
Hey, glad to see more updates. I have some feedback for you this time. There are 2 main things that would make it feel better to play for me personally (based on what you have now).
1. A way to heal more easily - maybe auto heal after fights, or if you're going for a more punishing roguelike, a way to pay for heals. As it is, the warlord seems too risky to attempt without full or near full health, and the best way I could come up with to prepare was spam the ninja with more heal cards in my deck.
2. There's a couple instances of things feeling unfair or out of my control that are probably just due to the nature of this system. When I say nature, I'm talking about cards having very specific use cases and encounters with equally specific requirements (to be clear, I like this aspect of it). But because of this, there are too many times that I'm literally unable to meet the requirements of the encounter because of rng. I wish I somehow had more control in that area, even if not always. The other thing is that if I ever overextend my timeline on a turn, I risk unavoidable bad things with the next enemy card. So, typically I feel like I have to always play safe because of how valuable health is, but sometimes given the length of cards I have available and positioning of enemy attacks, I have to overextend. Not sure what can be done there, but something to think about.
Thank you for following along! I appreciate the time you took to play and to write out the feedback.
As you identified, due to the nature of the system sometimes it's not really possible to avoid damage. That's not something I want to eliminate entirely, because I think it's something interesting about the system and I don't want people to be able to dodge all damage (unless maybe they craft a really specific deck).
But I also understand that it feels bad, so I've got a couple different things in the works that I think will help mitigate it.
1) Like you suggested, some more abundant healing. That might come in the form of better healing cards, passive healing, a shop option to heal, or some combo of the three.
A lot of deckbuilding roguelikes in my experience are more about attrition, about preventing yourself by being slowly worn down by encounters. That's not really the direction I want to go with this, to the point where I've considered just fully healing after every encounter and lowering max HP significantly. Either way, more accessible healing is definitely on the todo list.
2) RNG mitigators - some of the next cards I have planned are ones that will allow you to draw additional cards, extend your foresight of the enemies moves, or allow you to adjust their length to better line up later cards. I'm hoping that those sort of utility cards will reduce the feeling of 'unwinnable' situations.
I was going to focus on some more UX changes, but thanks to your feedback I think I'll try implementing some of these items more quickly and see how the game feel changes.
Thanks again for the feedback, I really appreciate it!