Monday, August 29, 2011

Gridmole reborn

I downloaded Unity, it's pretty fun. Managed to crash it once already! Turns out update scripts get called a lot; creating one object per call makes a lot of stuff.

The plan is to rewrite Gridmole under the new name Gridslam, with a 3D engine, particle effects etc. Oh and respond to more than one mouse button. Doing everything from scratch in pure JS/Canvas was extremely slow so I'm going to try Unity3D.

The original concept was a healing simulator. However I'm not that interested in a fixed range of 'spells'. I'm thinking I'll use a dragbox / holdclick model with an exponential efficiency curve and an S-curve for power (with a bump at the start).

Given Power (in points out of 100), Time (in seconds), Cost (points where click = 50), Efficiency.

Click: power 50, time <0.3, cost 50, E = 1
  - "Flash Heal"
Held click: X = (min(T,3)*10/3)**2, S = 0.25. Power X, cost = P - X*S*P/100
  - Power and efficiency both increase as you hold up to 3sec
Dragbox: S = (25+N)/100. P/N = X,
      C = N(P - XSP/100)
        = N(XN - XSXN/100) 
        = XNN(1 - XS/100) 
        = XNN(1 - X(25+N)/10000)
  - Power is equal for all targets, efficiency increases per target.

As a future improvement, I could add shield mode (-10% effi, adds secondary HP pool) and HOT mode (healing is delivered over T**3 secs, for some efficiency bonus).

So far this is a very smooth design. It needs some bumps to create pressure. The bumps will come from irregular incoming damage. Levels will consist of a number of Hurts, with an attack pattern (EG row, column, random(5)), frequency (probability of occurrence) and power level. With this degree of randomness, I'll need to cap the short-term DPS or (very) occasionally the system will go totally psycho.

When blocks take damage they will wobble and overextend towards red before returning. I'd like to add warning indicators to Hurts, which would make the shield mode more interesting and allow for prehealing. Ideally this would be meteors and dragons, but I'll settle for a red backdrop for now.

TBC