What I did today

  1. Told Riven that raw float bit manipulation is slow.
  2. Disproved 1, thus making an ass out of myself.
  3. Since I’d broken out jitwatch I started looking at how HotSpot handles some patterns.
  4. Discovered that FP abs (which ignores negative zeros really should look like this)

[icode]return Float.intBitsToFloat((Float.floatToRawIntBits(a) & (-1>>>1)));[/icode]

  1. Banged my head on my desk.

@philfrei

There are some potential options: https://www.google.com/search?q=java+vst

One of which I messed around with a while ago is this: http://jvaptools.sourceforge.net/scripteffect.html

Here it is in FL:

Derpy sample script: http://pastebin.java-gaming.org/f83f944373d17
Based on a gompertz curve for asymmetrical waveshaping: https://www.desmos.com/calculator/fcxl2xtwld

It’s really more of a prototyping thing though.

Spiced up the trailer for release.

9NzhP9KAD-U

-wes

as opposed to which implementation?

About three weeks ago I had the same idea, and I’m still not sure why there is a discrepancy between Math.abs(float) and Math.abs(double), according to the javadoc.

Math.abs(float) --> Float.intBitsToFloat(0x7fffffff & Float.floatToIntBits(a))
Math.abs(double) --> Double.longBitsToDouble((Double.doubleToLongBits(a)<<1)>>>1)

The result is the same, but why would you want two shifts instead of one masking operation.

[quote=“Roquen,post:2721,topic:49634”]
Rude.

Got some joined-up thinking from my woodcutters, so GoToBehavior, ConsumeResourceBehavior, CraftBehavior and PickUpBehavior all worked together as expected. Just got to add a DropOffBehavior to drop off the wood-based merchandise at the market.

[quote=“NegativeZero,post:2725,topic:49634”]

I’m being an ass again…negative zeroes are properly handled.

“If” based versions are staying comparisons and branches based (that’s where my brain misfired on the negative zero thing). An odd thing I noticed is that hotspot doesn’t seem to be producing CPU aware short-cut opcodes like xor on same reg to produce a zero…it’s loading a zero from memory. I’ll look more closely at that later.

The properly inlined bit manipulation support chances all kinds of stuff.

For singles on Intel it’s takes both and produces the masked version. As a guess because 64-bit immediate constants are uncommon in ISAs…but that doesn’t matter if it recognizes the pattern. Probably just a quirk of the author.

I’m starting a test-suite for some intrinsics and common interesting patterns.

Well, I didn’t manage to snag the lunch with my boss yesterday. He’s tied up in meetings until Monday, so that’s when I’ll hopefully know if I got the job. In the meantime I have to deal with one dependency that is stopping my project from building which is driving me insane because it builds in Eclipse just fine and it was building yesterday in Gradle. My boss wished me luck while I fell down the rabbit hole.

Finally add multi file linking support to my parser :wink:

it’s looks messy but I am so happy so want to share it ^^
(long names - for debug,

  • need set uniq colors: now working on parsing, fix visual later - so many work to do =) )


http://s15.postimg.org/k6v9vc0dj/ggg1.jpg

parse this to java with file import )


T_Class_Fun_Call_Prim_0.int_1 = T_Class_Fun_Call_Prim_0.int_1 + int_1 + 1;


T_Class_Fun_Call_Prim_0.B_Extra_int_1 = T_Class_Fun_Call_Prim_0.B_Extra_int_1 + T_Class_Fun_Call_Prim_1.B_Extra_int_1 + 1;

I just found that everyone can now post 60 fps videos on youtube (its been like that for some months actually).
So yeah I recorded some gameplay of my game and tried to upload it on youtube with the absolute best rendering quality possible, and man, watch it on full screen 1080p this is really sweet :slight_smile:

hXcRS-Tbf9k

Btw it seems that it’s running at 30fps on quality <= 480p :point:

Accidentally plugged node to wrong plug and computer just hard crashed. Infinite loop. Coding with ue4 Blueprints feels like doing bungee jumping with cord that is plait from spaghetti.

Zeldar, are you planning on adding any kind of double wielding to your game? :point:

I had this idea in my head, thing like having several weapons types in the game, but I don’t know how I would handle it, there will be hundreds of spells in the game and for example a spell that make you do a super-big strike with your weapon and you are carrying a staff, or dual wielding swords, how will it looks like?

The thing is that before having acces to spells you have to chosse one of the 8 masteries (like fire, combat, holy, assassin, etc…) after it’s done you can choose spells that the mastery gave you (it was holy on this video :point: ) so maybe the type of weapon depends on the mastery you have chosen? Thats a possibility, there is the ice, fire and dark masteries which are more ranged oriented playstyle so I let them have a sword instead of a staff to let them be able to do something in melee combat :point:

edit: Actually, I will make a weapon type for each mastery! combat will have double axe, earth will have a hammer, and so on so that it reflect the playstyle !

I forced myself to finally sit down and give NodeJs + Express a serious try, and I think I did pretty good! I’ve got a backend that can pull down data from a MongoDB instance and then some custom routing and I figured out how to create modules etc… Also Jade isn’t as big a pain as I thought it would be, it’s actually pretty nice for writing “shorthand” HTML.

Pretty much finished converting WSW to using JOML instead of LibGDX. Excellent library. Faster implementations, thread-safety out-of-the-box, smaller. Still awaiting a few features to be able to finish it and see how broken it is. =P

Did some profiling now that skeleton animation is over twice as fast thanks to JOML and found a physics bottleneck. The physics simulation uses a 2D grid to quickly find nearby bodies for collision detection. Each “tile” in the grid is just a list of bodies that are in that grid. To query nearby bodies, you pass in a position and a radius, and the grid returns all bodies that intersect the square the position+radius forms (circle test is too expensive). Since the grid tile size is bigger than the bodies, each body generally only needs to check 1 tile, or 2 or 4 if the query area extends across a grid boundary. While doing some optimizations getting rid of some unnecessary divides, I realized that there was a bug in there that expanded the search area by 1 tile in each dimension, meaning a 1x1 check turned into a 2x2, and a 1x2 check turned into a 2x3. This had a huge impact on performance as it basically does 2-4x as much work. In combination with getting rid of a few divides, Math.floors() and Math.ceils(), I almost managed to double the body-body collision testing performance.

Today, I added the character creation part to my RPG. There won’t be a free character creation but the stats will be defined by five questions that you have to answer when starting a new game.
These questions work as a kind of exposition dump as well. They introduce the player to the character’s back story and his/her motivation.
Answering them will add some points to one (or more) of the char’s attributes (or even decrease some slightly in some cases) depending on your answer. Here’s a screen shot of the german language version:

What kind of perfomance scaling you have with increasing tile size. Many times I have found that making tiles much bigger than bodies is net win. Basically it increases number of hit test but fits cache much better.

I once has this grid that was self-adjusting. Every N frames it would either grow or shrink in cell size, and measure performance differences. It would converge to the optimal solution, and then adjust itself when the environment changed, and converge to the new optimal solution. Give it a try, it is easy to implement.

Pretty much finished RFLEX. Submitted it to Valve for approval.

That date could be wrong.

:yawn: Woot.

-wes

Awesome! Wish you luck with the review :slight_smile: (Altough, they released even Grass Simulator, or Dream (#walkingSimulator), so, you may not even need luck :stuck_out_tongue: )