Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Mystical Conquests - turn-based strategy-RPG with 4X mechanics

Morm

Novice
Joined
Jan 16, 2017
Messages
35
Location
Paris
Hi!

I'm a software engineer and amateur game developer working on what I hope will be my first released game, Mystical Conquests. It's still in early development but I just released a demo on steam to have feedback so I can improve it.

The game started as "What if I add the mechanics of games like Civilization to a squad-based RPG like Battle Brothers or X-COM in a fantasy setting" and here I am one year later.
Features :
- turn-based tactical combats with squads of 6 characters
- turn-based strategy layer inspired by 4X games : explore an open-world, expand and develop your realm and exterminate the forces of evil
- 10+ unique classes with different skills and multiple advanced classes (promotion system not available in the demo)
- the world and its content are procedurally generated
- multiple campaigns with different final bosses and mechanics
- 2.5D graphics

Here's a link for more info and the demo : Steam.
I'll be happy to answer any questions you may have and if you play the demo, any feedback would be highly appreciated.

 
Last edited:

MalcolmR

Literate
Joined
Jul 16, 2023
Messages
48
I decided to give it a shot and played the demo. I realize it's still in early development, so I'll try not to be too nitpicky with my feedback and only discuss the things that I think might be hurting your game.


THE GOOD

1. Design

-I like the overall design of the game. It has a lot of potential. Going from Civ-like city management and exploration to zoomed in tactical combat seems to work really well.

2. Visuals
-I really like the look of the pixel art sprites in overworld mode at the default zoom level with your filtering and post-processing settings.

-The UI/sprite animations have a decent level of polish. I'm assuming you used DOTween for that. The UI layout also looks complete. I didn't encounter any UI-specific bugs while playing.


THE BAD

1. Controls/UX

I found the game's controls in overworld mode to be unintuitive. I intentionally didn't read any of the instructions, just like I didn't for any of the Civ games or Into the Breach (one of my favorite games). It may have been a bug, but I could figure out how to do anything with workers after they built farms. There was a slot for a worker in the farm, but no apparent way to assign it. Then I couldn't do anything else with workers and eventually ran out of food.

2. Sound
I have some comments about the sound in the game. I won't criticize the music tracks themselves; what I'll say is that there isn't any variation between tracks. I expect the overworld music to have a fairly calm feeling and then the combat scene to have a more intense, urgent feeling. I also expect the main menu theme to give me a sense of wonder. Instead, I got exactly the same feeling from all tracks in the game. It's as if they're randomly assigned.

As for the sound effects, it's a matter of taste so it's not my place to say, but I personally think the game would feel much higher quality with modern sounds from a sound effects pack than with the current 8-bit synth generated sounds. For example, Octopath Traveler, a pixel-art game in a modern engine with post-processing, doesn't use any of the those retro synth sounds even though it uses pixel art; It uses very well-selected recordings and foley sounds, and players feel it's a high-quality game partly for that reason.

One more point about sound effects: Some of the sounds, like the music, seem to be randomly chosen. For example, there's nothing "selectiony" about the selection sound effect. In fact, it feels more like something falling or taking damage.

My final point is that some sounds appear to be much louder than others. I hope you're using ScriptableObject wrappers for your AudioClips and can lower the volume for the loudest sounds.

3. Input / Selection
There seem to be some selection bugs which you maybe haven't encountered because you're playing your own game correctly. For example, when I click on a unit in combat that has no more action points and then right click on an empty tile, it bugs out. Also, fairly often (maybe 10% of the time) in combat, the left or right click didn't register. This is pretty serious and would definitely frustrate new players. I'd reexamine your input script to make sure it's not being blocked by something or perhaps ignoring clicks that are too fast, or I'd check the colliders to make sure raycasts aren't being blocked somehow.


Tiny suggestions:
-I suggest you add number key shortcuts for skills in combat (like in Into the Breach). I was constantly hitting "1" when looking at the attack icon expecting something to happen.

-I'd like the arrow keys to pan the screen in addition to WASD, unless they have some other function already. Some people prefer to switch between WASD and arrow keys depending on the type of mouse they use or the other hotkeys they're using at the same time.

-I'd like numpad Enter to end the turn in addition to Return. Many games use numpad Enter for end turn because it's safer. That is, it's unlikely that you will ever hit numpad Enter by accident.

-Some of your sprites have artifacts at the top or sides at certain frames, probably from a lack of padding in the spritesheet (or possibly in some cases from the wrap mode being set to Repeat instead of Clamp).

-There's some z-fighting in your combat scenes around the outer edges.

-The Tab key currently cycles through entities, but ends at the last entity. It should loop back to the first one.


I hope this helps!
 

Morm

Novice
Joined
Jan 16, 2017
Messages
35
Location
Paris
Thanks a lot for the feedback.
I fixed the bug when moving with 0 AP, I don't know how me and my play-testers missed that -_-

It may have been a bug, but I could figure out how to do anything with workers after they built farms. There was a slot for a worker in the farm, but no apparent way to assign it. Then I couldn't do anything else with workers and eventually ran out of food.
When you build a farm (or any other building that requires a worker), the character who did the construction is automatically assign to the building and start working on it. You can then assign each worker to work or not on a specific building with the "Worker management" window or directly by right-clicking on them on the world-map. If every character in your city is already working and you want to build a new building, you have to remove one of the working characters from his work post and assign him to the new building. I'm trying to make this system the more intuitive possible with multiple way of interacting with the workers but it seems it's not enough x)

Thanks for all the other suggestions as well, I'll start working on it (especially the controls which doesn't register, this is pretty serious...).
 

NancySadkov

Literate
Joined
Aug 21, 2023
Messages
17
What if I add the mechanics of games like Civilization to a squad-based RPG like Battle Brothers or X-COM in a fantasy setting
Do heroes also gain experience and can equip items, recovered from dungeons or forged with magic?
 

Morm

Novice
Joined
Jan 16, 2017
Messages
35
Location
Paris
Games like MoM, HoMM, AoW are definitely a source of inspiration but it does not really play the same, in my game you control only individual characters, no big armies or abstracted population. It's really more like Battle Brothers but with more agency on the world map where you can build and manage cities, control multiple squads, etc... (but with a battle system more fast-paced to avoid the game becoming a slog).
 

MalcolmR

Literate
Joined
Jul 16, 2023
Messages
48
Thanks a lot for the feedback.
I'm glad it was helpful! Your game looks promising and I'll definitely follow it, even if some aspects of it are in a pretty rough state right now.

When you build a farm (or any other building that requires a worker), the character who did the construction is automatically assign to the building and start working on it. You can then assign each worker to work or not on a specific building with the "Worker management" window or directly by right-clicking on them on the world-map. If every character in your city is already working and you want to build a new building, you have to remove one of the working characters from his work post and assign him to the new building. I'm trying to make this system the more intuitive possible with multiple way of interacting with the workers but it seems it's not enough x)
That makes sense. I assumed it was either a system where workers build things and city population works a tile (like Civ) or the system you described. I went back into the game just now and loaded my last save. I still couldn't figure out any way to assign a worker to the farm on the tile. I have three workers, but the worker management panel is empty, even if workers are idle in the city. I tried everything I could think of, including placing a worker on the farm tile and right clicking on it. Maybe I'm missed something, but it's also possible my save is bugged.

Thanks for all the other suggestions as well, I'll start working on it (especially the controls which doesn't register, this is pretty serious...).
As for the mouse click issue, I did some more experimentation and I found the problem. This will require a bit of explanation, but it might be helpful to you. First I'll explain exactly what's happening, and then why it's happening for me but not for you (and most other players).

The exact issue I've been experiencing is that clicks (either right or left) are sometimes ignored completely. The issue only applies to clicking on units/tiles, not the UI buttons. The clicks are only ignored when I click on a unit/tile quickly; slow clicks still work as expected.

Now for the explanation. I'm using a ball mouse called the Kensington Slimblade. I've gone through several of them over the years and I swear by them. This mouse has worked flawlessly with every game and application I've used over the past 10 years. However, it has one fairly odd feature: you can program an optional special action such as middle mouse click when you hold both the left and right buttons down. In order for this feature to work, it has to introduce a delay on the mouse down event for the left and right buttons so that they don't need to be clicked at exactly the same time. The delay is probably around 50-100ms. If you release one mouse button before the delay has finished (which would happen on any fast click), it treats it as a full click and fires both the mouse down and mouse up events on the same frame.

This never causes a problem because pretty much all software is designed to be able to register mouse down and up events on the same frame, whether it be from a pro-gamer's extremely fast click speed, a sudden low frame rate causing input to be checked less frequently, or a hardware/driver situation like mine. Even Unity's built in UI has no problem with this, as verified by every Unity project I've worked on and the fact that your game's UI has no problem with it.

Now, I suspect that in your input script, you have something like this blocking the mouse up event on the same frame:

void Update()
{
if (Input.GetMouseButtonDown(0))
{
MyMouseDownMethod();
}
else if (Input.GetMouseButtonUp(0))
{
MyMouseUpMethod();
}
}

void MyMouseDownMethod()
{
//nothing
}

void MyMouseUpMethod()
{
RaycastSelectUnit();
}

(edit: How on earth do I get code to look normal on this message board?)


It could also be something else, but I'm sure it'll be easy to find now that you know what to look for.
 
Last edited:

Morm

Novice
Joined
Jan 16, 2017
Messages
35
Location
Paris
Thanks for the detailed explanation, but I looked at my code and this doesn't really explain why you have click issues... I'm using the new InputSystem and I'm only checking for the mouseUp event :
if (Mouse.current.leftButton.wasReleasedThisFrame) selectOnMap();
There must be something else going but I must admit I have no clue and nobody else reported this issue... I'll try to reproduce the problem by firing the two events at the same time one way or another.

Btw, I updated the demo with some fix that you mentioned (z-fighting, some sfx volumes, various minor UI things, ...) and a rework of the Workers Management window (which should, I hope, make it more intuitive). If you still don't manage to make the workers do something, I would be glad if you could send me your save file so I can check if there is something wrong (located in c:/Users/[username]/AppData/LocalLow/Mormware).
 
Last edited:

MalcolmR

Literate
Joined
Jul 16, 2023
Messages
48
Btw, I updated the demo with some fix that you mentioned (z-fighting, some sfx volumes, various minor UI things, ...) and a rework of the Workers Management window (which should, I hope, make it more intuitive). If you still don't manage to make the workers do something, I would be glad if you could send me your save file so I can check if there is something wrong (located in c:/Users/[username]/AppData/LocalLow/Mormware).

I'll try it again and get back to you. Has the update gone live on Steam yet? Is it version 0.1.5?

Thanks for the detailed explanation, but I looked at my code and this doesn't really explain why you have click issues... I'm using the new InputSystem and I'm only checking for the mouseUp event :
if (Mouse.current.leftButton.wasReleasedThisFrame) selectOnMap();

I decided to do some further testing to see whether the issue is the mouse itself or the simultaneous down up events. To help with the testing, I made an AutoHotkey script that fires near-simultaneous down up events. The script has an extremely small delay which usually translates to same frame events (depending on framerate), but maybe 10% of the time the events happen on different frames. I test both my mouse and the AHK script using three other Unity games: Solasta, Pillars of Eternity, and MarZ. There were no problems with unit selection or UI using either the mouse or the AHK script. I also tested other software on my computer and had no issues. I went back into your game and got the same results as before with the mouse and the AHK script only successfully clicked 10% of the time.

This shows that the problem is indeed triggered by down up events on the same frame and is not necessarily caused by the mouse. Now, after thinking about it, the main difference between your game and other Unity games is that they're definitely not using the new Input System, so I decided to do some testing with the new Input System in a fresh Unity project. I've never used the new system before, but I was planning to switch over to it eventually. Since I'm new to it, you should take everything I'm saying here with a grain of salt. Anyway here are the results of the experiment:

1. Unlike the old system, the new Input System will cancel both "wasPressedThisFrame" and "wasReleasedThisFrame" if they are both true on the same frame.

2. This applies not only to mouse clicks, but also keyboard input.

3. The behavior will naturally happen with a standard mouse or keyboard when the framerate is low. 20fps seems to be low enough to easily trigger it with a fast key/button press. The lower the fps, the easier it is to trigger.


Here's how to reproduce the issue.

1. Create a new project and add the new Input System package. (I'm using 2022 LTS.)

2. Create a script on an object in the scene and call the following methods from Update:
void KeyInputDebug() { if (Input.GetKeyDown(KeyCode.Space)) print($"Key DOWN {Time.time}"); if (Keyboard.current.spaceKey.wasPressedThisFrame) print($"Key DOWN (New System) {Time.time}"); if (Input.GetKeyUp(KeyCode.Space)) print($"Key UP {Time.time}"); if (Keyboard.current.spaceKey.wasReleasedThisFrame) print($"Key UP (New System) {Time.time}"); } void MouseInputDebug() { if (Input.GetMouseButtonDown(0)) print($"Mouse DOWN {Time.time}"); if (Mouse.current.leftButton.wasPressedThisFrame) print($"Mouse DOWN (New System) {Time.time}"); if (Input.GetMouseButtonUp(0)) print($"Mouse UP {Time.time}"); if (Mouse.current.leftButton.wasReleasedThisFrame) print($"Mouse UP (New System) {Time.time}"); }


3. Enter play mode and then do something to tank the fps of your scene. I switch it to 8k, forward rendering, and added hundreds of duplicated spheres and directional lights to the scene. I kept going until it was at 15-20 fps.

4. Hit the space key or click the mouse button quickly. Test it at different speeds.

Here's the expected behavior that happens with a slow press of the Space key at 17 fps:
slow-click.png


And now here's the problem that happens with a faster press at 17 fps:
fast-click.png


As you can see, the new Input System complete ignores pressed/released input on the same frame. I have no experience with the new Input System, so maybe there's a way around this that I'm unaware of. If there isn't, it might be a shocking oversight from the team at Unity. It's hard to believe it's intended behavior. Maybe someone on the Unity forums knows something.

Anyway, realistically, this shouldn't have any effect on your game because your framerate probably won't get that low and probably less than 0.01% of your players will use a Kensington mouse.

And about that, I looked into the Kensington mouse issue to see if other users are experiencing problems. I found that the official driver/manager software I'm using called TrackballWorks has been replaced with with a newer program called KensingtonWorks. They're basically the same, but the newer one gives you the option to disable the two-button click behavior, which completely removes the delay and simultaneous down up event thing. Now my mouse functions like a normal mouse and has no problem in your game. However, if I turn the two-button click feature back on, the problem returns. I imagine 50% of Kensington trackball users would use this feature.
 

Morm

Novice
Joined
Jan 16, 2017
Messages
35
Location
Paris
Thanks again for the detailed explanation. This is indeed a shocking oversight from Unity... I will check on the forums, I can't believe there is no solution for this issue.
Has the update gone live on Steam yet? Is it version 0.1.5?
Yes it is the one.
 

Morm

Novice
Joined
Jan 16, 2017
Messages
35
Location
Paris
I made new updates to the demo, almost all your observations have been improved or fixed (except your weird mouse issue, next one on my todo). Once again, I'll be glad for any feedback from anyone who tried the demo :)
 

MalcolmR

Literate
Joined
Jul 16, 2023
Messages
48
I did a full playthrough of the new version using my previous save that was stuck at turn 10. The new version fixed the game and the previously invisible workers are now visible and everything's working as intended. Now that I've had a chance to do a full playthrough, here are my updated impressions:

THE GOOD
1. Stability

-I didn't experience any game-breaking bugs.

2. Design
-While the system of swapping out research cards was not intuitive to me and the short vague description was not enough for me to understand it at first, after reading the detailed description and learning how to do it, I found the system to be quite fun.
-I liked the buildings and the resource management aspect of the game.
-I loved the active and passive character upgrades/skills. A lot of work seems to have gone into their design and the skills are fun to use in battle.

3. Intuitiveness
-I was able to understand everything (except the research system) without reading the in-game encyclopedia.

4. Performance
-Based on my experience with Civ 5, I somehow expected long delays between turns even with a high-end PC. I was pleased to see that enemy turns happen instantly. I hope you can keep this level of performance as you scale the game up.

THE BAD
There was nothing truly bad, but the one thing that made the game only mildly fun instead of very fun was that the design of the game seems to expect you to get a ton of workers from somewhere and convert them into specialized fighting units and then build new squads. Most of the research and buildings seem centered on training (i.e. converting) new unit types, but at the end of my playthrough, I had found only two new workers and I needed them to generate resources. So, I only had my original three-unit squad and all the various training buildings were useless. Fortunately, I was still able to kill the dragon at the end with my one squad, but it really seemed like a waste when there was so much more I could have done. Since there's already an upkeep cost (food) for units, I'm not sure why there's no way to buy units with food or gold, or maybe there is and I missed it on this particular playthrough.

One last very minor design-related issue that bothered me was that when an enemy entered my borders, my city took "damage" for some reason and it got demoted to the previous level, which meant I lost the most recent level of the very expensive city upgrade. This seemed like way too much of a punishment for something so minor and unclear. In fact, I thought it was a bug until I found the message that my city had taken damage. Perhaps this is just a placeholder for a more advanced city combat system?

AREAS FOR IMPROVEMENT
I'm sure most of these are already planned, but I'll mention them anyway just in case.

1. I'm glad you introduced number keys as shortcuts. It would be nice if the text for the shortcut appeared over the button too.

2. I hovered my cursor over the resource icons at the top several times expecting a tooltip to pop up giving me a breakdown of all the sources of the resource.

3. The worker management system works, but I'd feel more comfortable using it if it supported drag and drop (both true drag and drop and click-to-pick-up-click-to-place drag and drop).

4. There's a bug in the worker management panel that ignores scroll wheel input if the cursor is between buttons. It should detect scroll wheel input if the cursor is anywhere in the scroll view, regardless of whether it's hovering a button.

5. I was greatly confused by the resources per turn text for the selected building in the worker management panel. It seems to show the base value instead of the current modified value. I want to see the current value, whether that's 0/turn with no worker or 8/turn with a special worker. Of course, a detailed breakdown including the base value would also be nice.

6. The sudden linear camera panning is a little jerky and unsettling. There should be some degree of smoothing, although it can be just as bad if you overdo the smoothing or use the terrible-but-often-prescribed infinite lerp system. In my experience, SmoothDamp is perfect for top down camera panning.

7. Compared to other games, your selection indicators are not strong enough. In many cases, I didn't know which unit was selected or even whether any unit was selected at all. Twice during the playthrough, I accidentally wasted my squad's turn because I clicked on a building without realizing the squad was already selected. I expect something like an outline, a selection ring or some other projector-based ground gizmo, some kind of animated widget, or a combination of the above.


I hope this was helpful again and I'd be interested in seeing what others here think of the game.
 

Morm

Novice
Joined
Jan 16, 2017
Messages
35
Location
Paris
I'm glad you enjoyed it this time! Thanks (again) for your observations. I've already fixed/improved some of them in the latest build.

About the new characters, there is a 50% chance (distributed) to get one in villages and there is at least 6 villages on the map so you should be able to get at least 3 free characters. You can also hire some in the AI cities and on one special world site. But even with only two new characters, you could have promoted one to a fighting class and left only 3 workers in town, you don't need to produce every resources all the time.

About your city taking damages, it only occurs with the special mobs sent by the boss (the red lizards), and you're supposed to have a notification when they leave their territory so you have time to get back to defend (but maybe the notifications are not visible enough). And yes I plan to add real city battles at some point.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom