Might is Right, the game

Heya, thanks for checking out the game!

  1. That’s a really good point, i should probably change the camera a bit to make those units more visible
  2. Thanks for that! I was working on stats for a while and it seems I have messed up, I fixed this one. Well spotted :sweat_smile:
  3. That was intentional really, I didn’t want to complicate that UI further, it’s there to give a bit more information as the order of cards represents turn order, so you get info on units that are about to take a turn. I’m not sure how I would go about make it scrollable without having to do a lot of work or using ugly scrollbars :crying_cat_face:
  4. The console stuff shouldn’t impact performance very much, it’s there for bug reporting mainly right now. I haven’t used any dedicated logging here, which, in hindsight might have been a bad move on my part :thinking:

About auto-scrolling, around the edges - that’s a really neat idea, thanks for that!

When it comes to animations, I worked together with a wonderful artist on the models, but when it came to animation - neither of us had the skill, and it really shows, I’m looking for a replacement to these models and animations, but it’s really hard to say goodbye to years of work :upside_down_face:

Thanks a lot for your feedback!

this is insanely well made and fun to play! Will get back with more feedback. Crazy how much you can do with threejs and creativity! Well done!

I played around an hour and really like it so far. However I managed to get stuck with a guy in the desert area (geomancer guy). See the findings below :slight_smile:

  • How can I fight as melee tank against guys which are on the last row? I play as a tank and support and fought against a geomancer which summoned in front of the tank every time a new round started. I used auto resolve and lost the match. It seems like I can fight any guy on the row in front of me, even if they are on the bottom column. Not on the same column but last row though. Not sure on how to progress now since the guy I fight is unreachable.

  • Would be nice to turn down the music and have more ambient sounds (wind, trees, birds?).

  • Enemy round keeps going even after you’ve been killed

  • Easy to select a talent not wanted (since double click without confirm popup). Perhaps make it possible to select many at the same time and have an overall confirm button instead of forcing to double click to select)

1 Like

Hey Markus, thanks for checking out the game!

  • When the game starts, you only have 2 slots available, so your tactics are quite limited. As you play you gradually unlock additional slots, at Hero level 11 you unlock the 6th slot, then you can have some archers or mages to help you deal with those enemy back-liners. It’s generally impossible to beat a summoner with a melee warrior, sorry! :crying_cat_face:
  • great idea, thanks! I added it to the backlog :+1:
  • that’s a bit of an obscurity, combat ends at the end of a round, this gives other units (especially healers) an opportunity to act when you have already won.
  • this one is a bit tough, you learn talents with 2 clicks, one to select and one to confirm, so double-click makes it fast and easy to learn:

If you have some suggestions how to make it more clear - I’d appreciate it! :pray:

1 Like

Hey, Im back with more height-related problems ;D

Maybe put the GUI stuff in separate divs with enabled overflow? (assuming its created using html) With some CSS tweaking, it could work pretty well. In the worst case, there will be an ugly scrollbar for the time being, but at least the player will be able to see all available talents ;p
Also here my height is so unfortunate that i cant really see whats the squad limit
My screen resolution is 1366x768 (although not using full screen so its a little less)

When it comes to choosing talents, I think a good idea is to have a clear [confirm] button, so the player doesnt accidentally pick something random while looking. A system I’ve seen somewhere and like is:

  • left clicking on icons to spend a talent point
  • right clicking on icons to take back the point if I changed my mind
  • a nice [ CONFIRM ] button if im done and certain about my choices. After clicking on it, all changes are saved and cant be taken back

Regarding performance - I believe I have around 20-30 fps, which is a shame because I got kinda hooked up lol. I noticed you have enabled shadow casting on almost all objects. Have you considered using light maps? It could greatly increase the performance if the shadows were baked into the terrain, especially since trees etc are static objects and the shadows arent changing. Then you could use shadow casting only on moving models. Also in my humble opinion, baked soft shadows look nicer x)
If not, then maybe allow the user to disable shadows completely in the options menu? They are nice, but I’d rather have smooth fps :sweat_smile:

I noticed the gameplay gets much more interesting with more units in the squad. Also I feel like the computer takes more time to make a move than necessary. Why would it need 1-2 seconds when a foot soldier can only attack my 1 front guy? :smiley:

Hey @DolphinIQ,

thanks for the feedback, there are actually some interesting reasons behind not using light maps. I have baked a lot of AO into diffuse maps already, but doing so for the environment was simply too memory intensive, so I opted out of doing that, i was toying with the idea of writing a virtual texture (also called “Mega Texture”) implementation do by-pass the memory constraints, but it seems like a bit too much work so far.

With respect to FPS, there are a few main weak points, you mentioned one:

  • shadow maps
  • separate pass for depth texture (i’m planning to roll that into the main diffuse pass via depthTexture extension)
  • deferred pipeline, i use a separate pass for fog of war and another one for outlines, these take up a chunk of memory bandwidth
  • large number of textures. The models are not very well optimized in terms of textures, so there’s a lot of texture switching, which again hits the bandwidth.

I’m glad you’re liking the game :slight_smile:

The reason behind AI being… slow… is that I implemented it using Monte-Carlo Tree Search, that thing doesn’t really have a termination criteria, you just run it for as long as you like, and it produces progressively better results as it goes along. I put the AI into a simulated thread, which is an abstraction I have in my engine, it’s ensures that you can run expensive stuff in the UI thread without causing FPS spikes, but the abstraction adds about 20-30% performance overhead. I was toying with the idea of just writing a rule-based AI or re-writing the whole thing in webassembly for speed, but I haven’t gotten to that desperate state yet. Ideas? :thinking:

I like your suggestions about unlearning stuff, I think i can make that implicit, let you allocate/reallocate points until you leave the talent page. There is an item that resets talents also.

Also, i’m curious, what are the specs of your machine like?

I have a Lenovo ideapad 100 laptop

Nice to see the stats being fixed :smiley:
It looks very nice and clear now, however other elements can still cover them. I feel like, since the stats are temporary and the user can turn it off anytime, they should render above everything else.

I dont know if its a bug, or something but when I added a team + %HP talent to the Baroness, it still shows the previous level of it in combat, as well as the Squad menu. It updated only after closing the tab and opening again.

Also this ;p

Thanks for sharing the info, I think I have an idea, I believe that your laptop uses custom firmware that allows using either integrated or discrete graphics card on per-application basis. I have a lenovo thinkpad and it has that quirk. Basically, when you use a browser - it switches to Intel HD 5500, meaning you’re actually running the game on integrated GPU. It’s my guess only though, based on the low FPS that you’re seeing and your machine config :wink:

Yeah, that’s a bug. I looked into it, and it was a persistence issue, a silly programming mistake. Thanks for pointing it out! :face_with_hand_over_mouth:

That’s nasty :crying_cat_face:

1 Like

Oh my God, you’re right. I thought I switched it to Nvidia card a few weeks ago, but it turns out that I’ve set the Opera launcher (which had the same icon) and not the actual Opera program. Big Whoopsie :sweat_smile: Thanks a lot for helping me figure it out :smiley:
It runs smoothly now, even with 4098 shadows :joy:

1 Like

I’ve just played for a bit. Tremendous work.


Thanks @moritz4, I appreciate it! :slight_smile:

Hey @Usnul, I’ve captured Repaire de Barbiche :smiley: However, the objectives didn’t change. I assume there is just world exploring left now?

1 Like

This was annoyingly addictive. I am kind of happy it crashed after many hours…


(Nothing reported in the console.)

Edit: Oh, nooo!!! The game was saved…


Haha, I’m super happy that you finished the game! Sorry to say, but yeah, there is no Victory screen. Let me do it personally instead: congratulations! You’re awesome :smiley:

How’s your impression?


Ha, I think it’s either a memory leak somewhere, which can happen or it’s WebGL context purging, which Chrome does from time to time. But yeah, sorry to say - the game saves automatically after every turn! :stuck_out_tongue:

We’ve been struggling for a while with the identity of the game, its main strength is in the gameplay, but conveying that and getting players to invest sufficient time to “get” that is somewhat of a challenge.

My partner in crime on this adventure is a gentleman who worked on Heroes of Might and Magic series, so most of the credit for the awesome gameplay is actually his. I will make sure to pass it on :slight_smile:

1 Like

Haha thank you! :star_struck:
It took me around 4-5 hours i think (not entirely sure) as well as something like 120 days in game. First let me address some technical issues:

  • With some battle experience I realized that reading and comparing stats is a very important to find the best move. Unfortunately healthbars as well as portraits (in case of the lowest row) obscure some important stuff
  • I run browser task manager at all times and the GPU memory usage seems to grow from 1mln KB to 3mln KB over time. I had to sometimes refresh the tab in order to avoid a crush. Potential memory leak?

Some minor stuff:

  • Player gets bombarded with a lot of text at the beginning
  • As someone commented before - chests seem pretty unexciting. The only items I ever look forward to getting are the XP/LVL boost books. Maybe healing salves and res books at the start when I cant afford them yet
  • Gold… You are in desperate need of it at the start of the game, but after around 5 levels, you are rich and have nothing to spend it on.
  • Back to items - consumables didnt really feel good to me. Maybe its just my personal opinion, but Ive always felt that I only look at the potions, when a tough battle is ahead. In other words, they’re not something i look forward to, but rather something I have to use just to increase my chances. Im not entirely sure if im making any sense here :sweat_smile:


  • Surprisingly lots of fun, despite its simplicity
  • Some unit combinations are easier to start with than others. For example, Mage+Support was a nightmare, while Warrior+Healer was like cutting through butter.
  • The game gets definitely A LOT more fun with more units in play. I feel like levels threshold for more party members could be lowered. At least one more after capturing Godspeed. It would help to avoid problems related to battles with few units (healer+warrior not being able to defeat a geomancer, Mage+support being a horrible combo at first levels)
  • Leaving one enemy unit (preferably one that cannot attack) alive and blocking until your Healer brings all your party members back to full health is a good way to avoid ever spending any money on healing items ;p
  • Initiative is possible the most important stat to have. I invested all of my leader points to get the [Team Initiative Talent], but the game was over before I could fill the requirements for it :confused:

Game Strengths:

  • Fun, although simple combat!
    I thought a little if maybe changing the Mage AoE attack from all 6 to just a square of 2x2 would benefit the gameplay. Mostly because it seems like mage is the only unit that lacks strategic decision making, since you always just attack everyone and there isnt much thought involved.
  • Level-Ups come very often, especially with more than 3 units in the squad. Very nice and addictive way to reward the player. Big part of why gameplay doesn’t become stale easily.
  • Very pretty graphics :star_struck:


  • Lack of any plot is very visible. Currently, with there being only combat, no objectives to fill the void between Godspeed and Repaire de Barbiche, its hard to see progress and it feels sort of like a mobile game :frowning: Of course I understand that the game is still work in progress :slight_smile:
  • Animations and attacks seem to not be on the same level as the overall graphics, which is a shame, since the game relies mostly on combat (at least currently). I feel like there is a lot of room to make the battles more exciting and dynamic :smiley:

Quite a lot… If I forgot something, I’ll comment again or edit :stuck_out_tongue:

Overall: did I have fun? Sure! Otherwise I wouldn’t be able to finish the game :smiley: .Magnificent job! Nicely done! Very exciting to see the browser/three.js games push the industry to new levels. I will watch the future of this project with great interest :slight_smile:


Thank you for your kind words and for playing the game. You gave me some solid ideas on how to improve, I’ll make sure to make good use of them! :slight_smile:

1 Like

Hey guys,

A few updates.

moved the camera a bit in combat scenes, so reading stats should be a lot easier. This makes combat presentation clearer as a whole.

Still haven’t caught that one. I’m pretty sure you’re right on the money about it being a memory leak. Probably event handlers somewhere, the whole engine is mostly event-driven. However, a whole bunch of stability bugs have been fixed, so the game runs much smoother overall.

We have done a major re-balance, so consumable items are a lot more desirable now. Hopefully it makes finding them a lot more exciting.

Still not solved, we did increase prices of units by a large amount, and we added a money sink, a potion which increases experience gained by 15%.

This should feel a lot better now. Overall difficulty is high enough that your decision process is often: “do I let someone die or do I use some items?”. We’re quite happy with this, but I’m a bit afraid if other people share our take on it or if they will think it’s too harsh now. Personally, I feel the stakes are much higher and the tension during the combat is more tangible.

points about the plot and animation are still the same.

We have also reworked a lot of talents, there’s a lot more variety now, less of “+X to stat Y” type of talents. We have also started experimenting with passive abilities for different units, for example a giant warrior has “Challenge” passive, which buffs the target, but only if it doesn’t defend, if it defends the buff turns into a severe debuff - this forces you to fight them more aggressively, which gives the fight a distinct character.

1 Like

Hey, happy to see updates! :smiley:
Talents seem a lot more exciting now! I especially like the ones that buff one stat a lot, but take away from a different one. However I feel like there are too many available at the start of the game. It might make new players confused and tired from reading all of them for every character. I like how the trees are divided into categories. I think an interesting change would be having each tree start off from a single Skill, for example make the damage tree start with +5 strength +4% strength, instead of having to choose between +10str and +8%str. It wont make much difference numbers-wise, but would make talents trees more clear about wbout what they do. The choices would start from there.

Also I think you need too many level points for talent trees. If the game length didnt change and the distance to Barbiche is still the same then I’d consider cutting down some skills. For example go from 6 necessary to 3 or 4. Like I said before I invested all of my leader points to get the [Team Initiative Talent], but the game was over before I could fill the requirements for it :sweat_smile:

The health bars still obscure stats but at least when i hover my mouse over it, i can still see it pop up so im happy about that :smiley:
Good job on making it better and better :slight_smile:

1 Like

Thanks @DolphinIQ! It took a while to produce some meaningful work, based on your feedback, have been a slow couple of weeks :turtle:

We talked a lot with the game designed about this. Ultimately - his vision is to offer a lot of choice early on, it’s a bit overwhelming, I agree, we’ll keep looking for a solution :slight_smile:

We have been working on that. What you said is very true, so we have re-balanced the level a lot, now you might be able to learn that talent before getting to Barbiche :unicorn: From some play-testing, around level 25-30. You need 29 points to learn that talent. We’re still working on the balance a lot :slight_smile:

I re-worked that quite a bit, here is what the inspection looks like in the new iteration:

It is now in a fixed area, and is guaranteed not to be obstructed by other things. I also added talent display there, to be able to get pretty much all the information a player might want :wink:

In the mean-while, there has been a crazy re-work of talents and abilities in the game, we added passive abilities to each class, and we branched off male and female versions of characters, so they play significantly differently from one another - effectively doubling number of classes.

I’m really grateful to you and everyone else who has provided feedback, it’s been incredibly useful! :bowing_man:



Over the past 3 months or so, I have been working on strategic AI for the game. This has taken a lot more time than I had initially imagined. Mainly because of how I written the interaction code, it was mostly synchronous and heavily tied to the player. I had to convert everything to async and add a layer of abstraction to allow AI and the Player to interact with the game through the same interface.

Actual AI is based on a paper called Adaptive Intelligence for Turn-based Strategy Games by Maurice Bergsma and Pieter Spronck

It proposes a modular architecture for decision-making with a very straight-forward implementation.

It took a while to write the tools for building so-called “Influence Maps”. In the end Might is Right uses 2 maps for it’s attack/move decision-making:

  • threat map. This dictates how much danger each game tile presents to the agent
  • reward map. This abstracts how attractive each game time is to the agent

I built a small tool for AI prototyping, here is what a threat map looks like:

Here’s a reward map:

If you look closely, you will notice that the maps are influenced by walking distances, here’s an example of a distance map:

So Dijkstra’s algorithm has seen a lot of use here :slight_smile:

Finally the AI is here, it consists of 2 parts:

  • spawner. Creates new enemies, decides which enemies to create, how strong, where to place them and when.
  • scheduler. Computes “Actions” for each enemy and executes them.

It has been one of the hardest features to implement by far, an incredible journey and a satisfying challenge.

The changes are now live. Feedback, as always, greatly appreciated.