Illusionist-v23
Recent changes:
- Updated for 1.0.1.
- Doppelganger works on uniques.
Glutton 0.0.6b
– Digesting no longer stops you from entering the world map.
– Learnable talents are now limited to the level of Digest instead of the level of Gastric Acid.
– Regurgitate and Catabolize are now disabled if your stomach is empty.
– Decreased Gorge's damage scaling with talent level.
Benchmarking Lua
Just out of curiosity, I decided to see how much I had to worry about optimization in Lua. I downloaded a Lua binary from http://code.google.com/p/luaforwindows/ and ran a few tests.
Fresh boot, AMD dual core 2.6ghz. In case you're curious, that's a pretty old computer; it was at the price-performance sweet spot when I bought it, but parts are going to start failing soon.
local time = os.clock(); for i=1, 10^7 do if i==0 then break end end; print(os.clock()-time)
0.422
Note that this basic loop consists of 1 increment, 2 compares, and 1 jump. Every loop that follows is going to be the same, except sometimes they have 1 less compare (the if in the middle of the loop). I can run it more than 20 million times in a second. If I was doing this in ToME, I wouldn't notice any difference in framerate until I did it around 2*10^4 times every frame. That would drop my framerate from 30 to 29.
local time = os.clock(); local p; for i=1, 10^7 do p = math.sqrt(i) end; print(os.clock()-time)
1.766
Takes about four times longer to do a square root loop. I could only do 5000 square roots every frame before affecting Lua framerate.
local time = os.clock(); local p; for i=1, 10^7 do p = i^0.5 end; print(os.clock()-time)
1.11
Huh, that's funny. For the non math inclined, i^0.5 is the exact same thing as sqrt(i). I repeated this several times to be sure-- sure enough, ^0.5 is faster. And, I might add, easier to type, and easier on the eyes. So adjust that square estimate to 9000 a frame until we affect framerate.
local time = os.clock(); local p; for i=1, 10^7 do p = math.sin(i) end; print(os.clock()-time)
2.281
Slowest yet. Looks like I could get away with 4000 sines. I'm going to assume tan and cos work at similar speed (maybe not a safe assumption in light of the surprising square root discovery!)
local time = os.clock(); local p; for i=1, 10^7 do p = math.exp(i) end; print(os.clock()-time)
2.484
About the same as trig. Can't imagine wanting to do a lot of this.
local time = os.clock()local p = "test"; for i=1, 10^7 do if p~="test" then break end end; print(os.clock()-time)
0.422
Comparison of strings isn't any slower than comparison of numbers. That's because of how Lua handles strings. p is a pointer to a string; "test" is a pointer to the exact same string.
TL;DR: Unless you're writing display code or pathfinding code, there is almost nothing you can do that will noticeably impact the performance of ToME. Don't worry about speed-- worry about having your code do what it's supposed to do, and do it clearly.
Glutton 0.0.6a
Fixed a bug that caused talents to be learnable past the cap restrictions if the digested creature had more than one talent.
Glutton 0.0.6
– You can now unlearn a Digested talent from the right-click menu in the use-talent menu ('m').
– Added a new talent, Excrete, which is learned automatically with Digestion and is used to immediately remove a creature from your stomach.
– Added effect icons.
– Ward is now excluded from Digestable talents.
– Gorge now correctly Devours enemies even if it applies enough extra physical damage to kill them.
– Inhale's use range is now correctly 0.
– Removed Catabolize's Hunger increase.
– Decreased cooldown on Catabolize.
– Digestion is now uncancellable.
Tales of Maj'Eyal 1.0.1 available on OSX
My dear OSX minions,
You too can now enjoy 1.0.1 on your favorite OS !
Go download it: http://te4.org/download
Have fun!
- darkgod's blog
- Login or register to post comments
Druid Class v1
Its a complete version 1.
So hopefully it doesn't have any bugs. XD
Glutton 0.0.5
– Talents learned from Digestion are now capped at both the effective level of Gastric Acid and the level at which the digested creature knew the talent.
– If you already know a talent at or above maximum learnable level, then that talent will not be selected for a learning attempt.
– Fixed learning object talents like Block, Command Staff, Shoot, and Reload.
– Telekinetic Grasp is now unlearnable directly from Digestion.
– Increased stat gain from bosses from 2 to 3.
– Now works with Classic UI.
Resource Tutorial 1.0.3
Now works with the Classic UI, thanks to nate/natev.
Glutton 0.0.4
– Devour now ignores instakill resistance. >:)
– You can now learn talents from Digesting any creature.
– Decreased effect of Hunger on life regen so that at max Hunger, your life regen will stay above 0.00 at the start of the game.
– Decreased stat bonuses from Digestion (again). You no longer gain stat points from Digesting elites.
– You are now granted 10 stat points on birth.
– Fixed Devour targeting message.
– You no longer start with the Combat Techniques category.
– You can no longer Devour self-resurrecting creatures.
– Digest, Catabolize, and Regurgitate now each display the next creature to be used.
– Catabolize now displays the Catabolize results for the next creature to be used.
