Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 15 Dec 2001
Online Last Active Today, 02:05 PM

Posts I've Made

In Topic: Is optimization for performance bad or is optimizating too early bad?

Today, 12:49 PM

To quote more than a few different tech leaders, the mentality that "premature optimization is evil" is why Word takes 10x longer to open today than it did on significantly weaker hardware over a decade ago. (I'm not in 100% agreement with that, but not in complete disagreement either.)

Honestly, I would disagree with it completely if that's the full extent of their usage of the quote; the whole point of the 'premature optimisation' thing isn't "don't optimise until you need to" but "don't try to optimise until you have profiled" with the rider "but don't write dumb code to start with either..".

People who throw quotes away in a lazy manner annoy the fuck out of me because they mangle the message to serve their own agenda...

In Topic: Why not use UE4?

Yesterday, 06:41 AM

This was just a rendering error in a test scene; G2 looked fine, Nexus 5 was missing some textures as I recall - I've not cycled back around to that problem in a few days.

As for shaders, currently we just on demand compile them on the device; I don't think that will change any time soon as we have an init step which basically throws a pixel shader at the hardware to figure out what it can and can't deal with and then patches shaders on load to work around issues.

(FYI: don't trust this either - I'm pretty sure the spec says "if a device can not support a precision requested compile or link will fail" but I've seen Mali-400 devices silently convert code from highp to mediump, with just a note in the log, which then causes fun errors because Mali-400 only has 10 bits of precision at medium so you end up with problems such as artefacts in sky domes...)

In Topic: What can we do to help remove the industry misconception?

17 October 2014 - 05:47 PM

Right now, pretty much fuck and all.

There is no discussion going on, there are just N sides shouting their point of view and how the other side is wrong and even the side which is on The Right is playing the 'tar everyone with the same brush' game and not trying to make rational points (go on, try and point that maybe not all gamers are like the idiots making threats etc, I'll wait for you to get back from the burn ward...) just simply shouting back.

To give an example, a little while ago I woke up to find that as a gamer I'm apparently a massive sexist who is the source of all the bad things in the world and that I'm "over" - yeah, thanks for that... I'll add it to the list of other things bad about me (white, male, not poor) and apparently make me a massive problem.

It's got to the point now where I'm avoiding twitter as a day wouldn't go past without someone posting something which, despite good intentions, made me angry simply because they were playing the 'tar everyone with the same brush' game which, if applied in reverse, wouldn't go down well I'm sure... or indeed I would see people retweet a frankly crazy point of view from someone as support on the matter (or related matters). Hell, when people post links on FB now I don't even bother looking.

Yes, there are problems.
But shouting obscenities at the other sides isn't going to get things sorted.

Until someone can sit down and take the rational view point that maybe, just fucking maybe, the people making all the noise are a vocal minority and start tackling them directly (instead of the buckshot 'this group' method I've seen thus far) we'll get no where.

Equality for all is great, but right now the only tactic that seems apparent is pulling down one group to raise another.


Me... I'll be over there, playing games, writing code and accepting that some people are going to think I'm part of the problem and that those people can go fuck themselves for judging me.

In Topic: Why not use UE4?

17 October 2014 - 04:48 AM

nowadays there are lots of platforms to target...

And in the case of Android that is basically 'one platform per phone per chipset per driver' as Android isn't one platform it's a utter fuck tonne of them all broken in various ways and lying to you in others.

Case and point; Nexus 5 is, hardware wise, an LG G2 - the former has rendering issues the latter doesn't have... well played Android, well played.

In Topic: max size for level using floats

16 October 2014 - 08:57 AM

Huge ranges are just bad bad voodoo waiting to happen.


I worked on Operation Flashpoint - Red Dragon and our setup was such that we broke the world up into tiles each roughly 512*512 units in size (where 1 = 1meter) and we kept 9 of them in memory at once (the tile the player was in plus the 8 around it) and everything beyond that was kept in macro tiles (where 9 of these 512*512 = 1 macro) where the colour information was baked in.


During rendering we had two passes for depth; 0.33 -> 333.33 (near/far) for close objects and 333.33 -> 3333 (iirc) for 'far' and fog removed things beyond that.

The 0.33 near was thanks to some experimentation by myself to find the closest value which would stop the player clip but also let the road decals in near scene rendering work correctly without clipping.

(The roads being rendered in such a way that after a certain distance the verts where translated upwards by an amount which scaled with distance so as to avoid clipping with the terrain they were being rendered over.)


All objects in a tile where expressed in title local coordinates so rendering required building a world transform and the world's (0,0,0) was rebased every so often (on a grid of 300*300 if memory serves due to shadow map issues at the edge of tiles if we didn't rebase more frequently) and was effectively uncoupled from the view position which also underwent this transform change.


Physics also had to be rebased every so often, I believe that was also based around a 300*300 grid, so that physics updates/rebase occurred at world rebase frequency.


With the streaming tech we had this allowed us to move from one corner of a 24*15 (again, iirc) tile world to the other steamlessly with zero precisions issues.


If you introduce an extra far pass (so near-mid-far) you might be able to get planets and other large objects in scene without clipping issues but you really do need to work on reducing the range as much as you can - this applies also to the camera; push near out as far as you can without causing clipping issues (I guess with a space game you can push out a fair distance) to get back as much precision as you can from the z-buffer.


The physics islands is probably the one that people don't think of the most however; you need to keep that as 'local' as you can for the same precision issues and rebase as the world moves around the camera.