Might is Right, the game

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?