Home

Advertisement

Customize

windwalkr

Oct. 14th, 2009

09:16 am - will.i.am

Rocked up to the recent Will.i.am set at Zuri in the valley. The venue's decent - although the kitchen was stupidly understaffed to the point where everyone was waiting 1-2 hrs for meals. The meal quality was acceptable but not excellent. Eat elsewhere unless you've got a group and are willing to drink & chat for hours while waiting.

Will.i.am himself turned up late in the evening for his set and I've gotta say he made the night more than worthwhile. I think I enjoyed his set more than I enjoyed the regular B.E.P. music - and I like the B.E.P. music. If you get a chance to see him in person, DO IT. Apl.de.ap and Taboo turned up just to hang out and look cool.

Much enjoyment, A+++ would buy again.

Someone put some photos of the event online here: http://www.inthemix.com.au/photos29/090930-Zuri

Current Mood: [mood icon] bouncy

May. 27th, 2009

10:00 am - canadia

Heading to Canada for a week, work-related. Will be my first visit there; it's going to be fairly hectic but should be fun. Unfortunately, since it's a short work visit only, I can't bring Trammy with me :~(

'course, that gives her a good excuse to throw a party in my absence ;p

Apr. 14th, 2009

10:27 am - Canberra

Canberra was unexpected. I've never really paid any attention to our capital - I've only seen a few images of the parliament house and heard that it's a planned city. This left me with the impression that it was somewhat like central Washington, which is not remotely correct.

On approach to the city, the maps show that Canberra doesn't have many streets. This gave me the impression that it was a lot smaller than I'd expected. This isn't entirely correct either.

The city gives me the distinct feel that it was built to represent stereotypical Australia. On many of the major roads, you could be forgiven for thinking that you were on a highway traveling through the Australian countryside. There is a huge amount of empty space between everything - it's like the architects took a typical small Australian city and just stretched it out, allowing that everything would return to normal density once the population increased. It's very pretty, in a typical ozzy "dry and barren" kind of way. Lots of grass and boulders and stunted trees.

Apr. 7th, 2009

11:35 pm - Away - family matters

I'm going on a road trip to Canberra, probably drop through Sydney and newcastle briefly. Won't be in any one place for very long, but will be away from brisbane for a bit. Will have my mobile with me so phone or email if anyone needs anything while I'm away.

Apr. 1st, 2009

01:55 pm - new mac

I've ordered a new mac, a trusty sidekick in my quest to take over the world. Admittedly, it's probably the cheapest computer I've ever purchased, although I nearly brought the price back to normal by spending on software ;p

* A baseline mac mini with 4GB RAM (~$1300)
* A family edition of iLife (~$150)
* A copy of Photoshop (~$1400)
* A DVI-to-ADC adapter (~$200)
* The ability to use the iPhone Dev Tools on my Cinema Display.. priceless.

Kind of sad that Photoshop (which I need for very trivial tasks only, but for which there is little in the way of alternatives) costs more than the computer.

Mar. 28th, 2009

04:47 pm - iPhone PNG idiocy

Apple, in their infinite wisdom, deliberately corrupt any PNG files located in your application bundle when compiling for the iPhone. A technical discussion of the changes made can be found here but suffice to say that the end result is no longer a valid PNG file, though it is still readable by Apple's custom PNG codec.

Thankfully, you can turn this behavior off by adding the following option to your target settings:

IPHONE_OPTIMIZE_OPTIONS=-skip-PNGs

Feb. 27th, 2009

11:02 pm - epic thread

It seems that the power of threading should not be underrated. Initial performance results for a double-buffered test (display one texture at maximum rate while loading the other) give the following numbers. (Keep in mind that I'm still seeing 20fps variations in the idle frame rate with no solid cause.)

* 256x256 Blit only: 48fps
* upload 256x256 texture while blitting: 54fps while uploading 21 textures per second.
* upload 512x512 texture while blitting: 36fps while uploading 8 textures per second.
* upload 1024x1024 texture while blitting: 27fps while uploading 2 textures per second.

So it looks like we're seeing a fixed time spent per data size uploaded, and also an reduction in average frame rate based on the size of the texture (I have no data as yet on whether this takes the form of a single pause per upload, or an ongoing penalty across the duration of the upload - i'd prefer the second but the first is more likely.)

It's obvious that this is allowing the subload and the blit to run in parallel, but I'm uncertain whether that means that the GPU has something like a separate DMA engine and pixel pipe, or whether it means that subloading is actually being performed on the CPU while the rendering occurs on the GPU. If it's the CPU (and that would be my guess) then having the subload thread running could really eat into the CPU time available for gameplay. Whether this is a problem depends on the game. It does mean that in a real game, the texture loads will take longer to complete.

It's also interesting that I didn't do anything to "warm" the textures after subloading them. I've previously noticed a significant penalty for the first use of a texture, which I'm not seeing here. My reading of that is that a swizzle penalty applies on the first use after creating a texture, but that subloading to an existing texture pays the swizzle cost up-front.

This does raise the interesting question of how best to make use of the background loading facility for the atlas system. Some possible approaches here:

* Loading two copies of the entire atlas so that I can double-buffer - this seems very wasteful, as it would double both memory usage and effective loading times.

* Keep the atlas broken into a small number of smaller textures. This means that only one of the textures needs to be doubled at a time. Not ideal, but possible.

* Upload to an unused portion of the same texture that I am blitting from (single buffer approach.) I'm not really sure whether this will work, or whether it will crash or force an unwanted lock. I'll need to read up and see if anyone has comments one way or the other.
edit: As usual, nobody seems to talk about this online, but it appears to crash the iphone. Guess that rules out this approach.

* Some fancy scheme involving render-to-texture. Assuming that this is fast (it should be) then it may actually be advantageous in a number of ways. It's still the last thing I want to try - quite a bit of additional work is needed for this approach, and I'd prefer to get a simpler technique working first.

04:52 pm

I still have some testing of the more advanced features (background texture loading, VBOs, etc) to go, but here are some interim results:

* Idle framerates vary wildly. I've seen 60fps (the full refresh rate) and also numbers such as 40fps from the same code on a different run. Perhaps the system is doing background work or in some form of power-saving mode? This is not a major issue except that it brings into question the accuracy of other benchmarking on the device.

* 10 render calls of 100 polys each gives around 59fps.
* 10 render calls of 200 polys each gives around 47fps.
* 10 render calls of 400 polys each gives around 48fps.
* 10 render calls of 500 polys each gives around 36fps.

* 40 render calls of 100 polys each gives around 50fps.
* 400 render calls of 10 polys each gives around 23fps.

* Texture size significantly impacts load times, but does not appear to affect render times.

Note that these tests are designed to measure polygon rates, and use tiny non-overlapped polys. I'll be testing fill rate and overdraw performance later.

So far, it's looking like you should expect around 30fps for a 3D game, and should look to draw no more than 4000 polys, split into no more than 40 draw calls.

It's reasonable to expect that uploading the geometry for each request introduces a delay, which may mean that VBOs could give higher polygon rates by avoiding the upload cost. I'll look into testing this after I make further progress with the texture tests.

Feb. 26th, 2009

11:07 am - Benchmarks

It's taken me longer than I expected to get any reasonable benchmarks. I'm finally starting to see some useful numbers and it doesn't paint a pretty picture.

* Manipulating a texture is slooow.
* Uploading a small texture part is much faster than uploading an entire texture, but it's still slooow.
* Creating and deleting textures, rather than updating them, is really slooow.
* Using an atlas is less important than "they" claim.
* Drawing every polygon with its own texture is still a bad move.

I'll post some actual performance numbers soon, a little more testing is required. I also need to attempt the texture upload on a secondary thread to see whether I can hide the slooow from the user.

Feb. 23rd, 2009

12:02 pm - iphone and texture

Things have been going well on the iphone dev front. Spent Sunday working on a port to the iphone of an associate's latest flash game. I estimated that the gameplay would be a quick port, and progress has indeed been pretty good. The tricky part has been convincing the iphone's video hardware to handle the multitude of pre-rendered images. This is a problem I've been having for a while now on my other iphone project, and it's not surprising to hit it on this game. I aim to spend a few days fixing it at the engine level, so that we don't have to deal with this again - it's a bit of an R&D topic.

In short, the iPhone GPU (as with most hardware) deals best with a few large requests, rather than many small requests. This means that ideal performance is obtained through the use of a Texture Atlas. Additionally, the GPU (and the device as a whole) has limited RAM, so we need to be able to bring in new data while the game is running.

OpenGL provides a mechanism to upload a subsection of a texture, which sounds like just what we need - it's possible to maintain a texture atlas into which texture tiles are inserted on demand. Unfortunately, this mechanism is not necessarily fast. In fact, on the iPhone, it seems that it may be faster to upload the entire atlas texture again, rather than just the small modified section. Rather than actually upload a minimal texture piece, it seems that the system downloads the whole texture, un-swizzles it, composits in the new subtexture, swizzles the result, and then reuploads the whole thing. Ouch.

This leaves various options:

* Pay the hit for uploading the whole texture atlas on each modification (probably not workable.)
* Abandon the atlas scheme (not desirable.)
* Allow the texture atlas mechanism to work with a small number of smaller textures. This cuts into the efficiency of the atlas, and increases the complexity of the system quite a lot, but allows us to upload in smaller chunks which may be faster.
* Upload the subtextures as individual new texture, and use render-to-texture to build the atlas rather than doing it on the CPU.

Sounds like I'll need to do a lot of testing and benchmarking of different operations, to see what the performance impacts are from:
* Subloading a texture piece.
* Subloading an entire texture.
* Loading a new texture.
* Deleting an old texture.
* Rendering from an atlas vs rendering from individual textures.
* Render-to-texture.

In other news, i purchased iDracula. Think diablo-style on the iphone. Their control scheme is pretty good - I'd previously dismissed this type of control scheme but I'm willing to give it another chance after seeing their interpretation. Their level graphics are wonderful. Unfortunately, their level (singular?) is only a little larger than the screen of the iphone. We can do better.

Dec. 16th, 2008

10:33 am - iphone ui

Programming for the iPhone is an interesting experience. It's a very capable machine. More than capable. But there's no keyboard, and the screen is tiny.

An MMO is a fairly good fit for the iPhone market. A casual user-base who have a deep-seated belief that their device is "the shit" and a desire for software which illustrates this point. Almost crying out for an excuse to play with their phone. Gameplay should be possible in short spurts - the awaits for whenever one has time to kill, and folds into the background when reality intrudes. The phone is online, always.

None of the conventional wisdoms for building an MMORPG are appropriate. There's no room for a minimap, a quickbar, groups, status, inventory, menus. You really have to get back to basics. What is essential, that the player must know about immediately? What can wait until the player wants to find out? How does this difference in scope impact on gameplay?

I've developed an unusual approach to the user interface. It borrows heavily from interfaces found elsewhere on the iPhone, but it also shakes it up a little. I can't afford much in the way of full-screen scrolling menus (which is the normal iPhone Way) which is a shame because that's a very clean interface. But I can take those familiar interfaces and bundle them up a little. It's not quite as clean, but it's at least efficient. And hopefully easy to understand. We'll see.

Sep. 29th, 2008

11:01 am - connection: keep-alive

2008 has been a good year.

The apartment is behaving itself. Living this close to work is a very different experience - I get a lot more free time this way, and I can walk to the city or chinatown. Having Tram here is awesome, it makes everything easy and fun at the same time. I haven't seen enough of my friends, but I'm still keeping in contact with everyone. I am seeing more of my family, which is a good thing.

Had a great 30th at King Ludwig's - it's the first time I've been up there and it was well worth the driving time. Tram managed to keep it a secret until we were in the carpark so I guess that was pretty successful. :)

Work has been very different this year. A lot smaller, but still working with some very talented people and the project is a lot less stressful. Actually managing to avoid overtime for the most part. This means I have more time to spend with Tram, play WoW, code on my pet project, et al.

The current pet project is an simple MMO for the iPhone. I'm trying to keep the scope realistic, because it's important to me that the game is actually completed, and completed while the iphone buzz is still strong. If it takes too long, the next big thing will come along and it will be too late. It's no WoW, and i don't want it to be.

Sep. 30th, 2007

11:18 pm - stardust

Bought an apartment on saturday. Ended up going for one in the Emporium, but not the one I was looking at originally. After I saw the first one (which was okay) I asked the agent if there was anything else similar around and he noted that there might be something later in the week. I got to see it before it was advertised and like it enough to make them a generous offer.

28 days until I move in, everything (legals, finance, et al) going to plan.

It's a nice place. Obviously smaller than the house I'm used to, but it should suit me, the atmosphere in the Emporium is great, and I'm ever so much closer to work.

Saw stardust for a second time today. It's still a great movie.

Sep. 21st, 2007

07:28 pm - the dragon

One of my favouritest authors passed away earlier this week. It's a strange sensation to feel pain at the death of someone whom you've never met. It sucks (being selfish here, although I'm sure he's not so happy about it either) that he never got to finish that last book. Even if someone else finishes it in his place (and I'm sure they will) and even if they follow his intended storyline to the letter (they'ed better!) I'll be reading it knowing that it's not real. Farewell, James Oliver Rigney Jr, you will be missed.

(Bleagh what a mouthful. No wonder he used a pen-name.)

I always hate the ending of a series.

Sep. 18th, 2007

09:26 pm - Realm vs Realm

So we just got a whole bunch of free advertising today. Some Other Company decided to trademark 'Realm vs Realm' (of all things) and "politely" asked us to stop using the phrase to describe our game. Let's just say that their opinion didn't sit well with gamers in general. Funny how things work out. A whole lot of gamers who, regardless of what they think of us or The Other Company respectively, are sitting there giving a big "W.T.F. MATE!?"

Anyway, my house is long gone, I haven't found another quite yet. Peter's kindly putting me up in the interim.

New things are on the radar.

Sep. 8th, 2007

12:35 am - empty house

Took the day off work to arrange removalists and whatnot. My house is now pretty barren, except for rubbish, the clothing and linen that i'm not taking (hoping to find one of those donation bins and dump the lot of it, since i'll probably never wear it again) and the few things that I will need while my stuff is in storage.

I'm going to crash with a friend from work for a few weeks, which should be fun if maybe slightly inconvenient (i'll be sleeping in the lounge; that brings back some memories!) On the upside, I'll be making inroads on paying off my credit, and will be in walking distance of work finally.

Went to si's for dinner tonight. It's good to have time to just hang out with friends. Haven't done enough of that lately. Played some halo and whatnot.

Aug. 18th, 2007

11:28 pm - of silly things

People say some silly thing sometimes, without thinking about what they're really saying. You need to keep everything in perspective, otherwise a valid bias against one thing will send you too far in the other direction.

Today I've been reminded of one fragment of wisdom which effectively goes "We are what we hate." If you hate something enough, you run an all-too-real risk of becoming that thing. There's always a strong temptation to fight fire with fire, and the more strongly you feel about a subject, the more strongly you'll be tempted to use equivalent strategies against that thing.

Hate cheats? Break the rules to even the playing field. Hate terrorists? Bring the war to the enemy. Hate players? Play them.

It's really true. I don't propose to have the answers, but I acknowledge the questions.

Aug. 1st, 2007

01:16 am - of timesheets

So I was filling in my timesheet today, fifteen and a half hours, and I thought to myself "but what happened to the other eight hours? surely i didn't waste that much time."

Yeah okay, so maybe my maths is better than my common sense.

House is under contact. Started looking for a new place.

Jul. 26th, 2007

02:16 am

Work very busy. Doing 80+ hrs currently. Not long now.

House is for sale. Told you I would. Only took me about a year to get around to it. I don't really have a plan yet - intend to move near to work, but we'll see what happens here first. I'm a big fan of "take it as it comes."

Haven't had any time to WoW, which is a pity.

May. 17th, 2007

09:50 pm - Glass hates me (part deux)

So, I walked out the back today to take care of my washing, and noticed that the glass table outside now exists as millions of glass pebbles. A fine mess, it is.

Navigate: (Previous 20 Entries)