Log in

No account? Create an account
Douglas Triggs
Since our last episode:

- Added a background galaxy to the galaxy display. It actually took quite a bit more work than you'd think; I had to figure out how to draw parts of the stars transparently, and part opaque, which required figuring out the Cocoa drawing methods and making additional masks and such of the star images. But... I did manage to get the effect I was looking for, with the galaxy fading out as you zoom in, and more prominent zoomed all the way out. I also changed the overall galaxy shape and creation process to match.

- Did some optimization to speed up scrolling and zooming, i.e., fixed off-screen rendering (i.e., so it doesn't happen) and added a bunch of smaller versions of all the images so it can draw things faster when zoomed out -- I might do a little more work there, it's responsive, but it's still not nearly smooth enough to make me happy. Instead of enforcing scrolling so you can't go off the map, I let you do whatever you want, so added a center button if you managed to get lost off the edge, or just want to zoom out more quickly so you can go somewhere else.

- Changed the look of the screens so that they're more uniform (mainly the tech screen). I also changed the buttons so they look better on black (which ended up giving them kind of a "Star Trek" feel which I like). I also integrated debug into the existing screens and removed the dedicated debug screens (basically, you can toggle on debug to make everything visible instead of just what would normally be visible).

- Added a system screen that shows, well, the planetary systems. Added more controls to handle that, as well as planetary information with colors based on habitability. I also upped the minimum size a bit so that was more readable.

- Added a startup screen, with options to set the galaxy size and research rates.

- Went through all the existing code and refactored out a huge number of NSNumbers I don't really need (replacing them with floats and ints).

So... Some screen shots. This time, full-sized screens (full-sized on my huge screen, I mean), starting with the galaxy display as it was a few days ago:

[Click through for full-sized (also below).]

And the system display as of a couple of hours ago (still fiddling with it right now, none of this stands still):

...And onward we go...

[ Crossposted from http://doubt72.dreamwidth.org/4700.html ]
Douglas Triggs
21 August 2011 @ 10:45 pm
So, some decent progress this week/weekend.

- Worked on some basic technology descriptions for the tech tab. Didn't quite finish -- it's kind of mind-numbing to come up with interesting copy for everything. It's even more mind-numbing to come up with non-interesting copy for everything, but at least it's quicker.

- Worked a little bit on the graphics for the tech screen, too, but didn't get very far there, either, just redid a couple things. Really need to spend some quality time there at some point.

- Added a galactic display, figured out how to render it properly (aha, NSImage, not NSImageView. Now I can draw lines over everything), added labels and controls for the labels and generally made it pretty-fied, and then threw in zooming and panning.

...Actually, damn, that looks pretty good.

Here's an early-game view:

[Click through for full size (also below).]

And a later game view:

And you know what, it looks really nice on the big screen:

It can probably handle some decent-sized galaxies on the big screen.

Next up: navigation to and from the system display (next weekend when I can concentrate on it) and images and stuff for the tech screen (which can be more of a catch-as-catch-can evening activity).

[ Crossposted from http://doubt72.dreamwidth.org/4440.html ]
Douglas Triggs
14 August 2011 @ 10:21 pm
A fair bit of stuff this weekend:

- Added a status bar. (Ooh. Aah. Cue applause.) There's a (now working) "next turn" button there, although the status itself isn't actually hooked up to anything yet.

- Started on the player code. I started with tech handling -- the "next turn" button now lets you advance through the tech tree, although the amount of progress per turn is currently hard-coded.

- Build a player tech page, where you can watch your progress while you advance through that same tech tree (I'm probably not going to make a whole lot of changes to it, I'm fairly happy with it in its current state):

[Click through for larger size.]

- Started adding descriptions (as well as text for technology benefits that aren't directly tied to, say, specific ship modules or planetary improvements and such). I'll probably spend the bulk of my time over the next week or two working on that (and graphics for the techs and such -- right now, I just have the a "default" image, which you can see above. Yay, generic sphere).

- Here, have an unexplored star:

[ Crossposted from http://doubt72.dreamwidth.org/4302.html ]
Douglas Triggs
13 August 2011 @ 11:49 am
So, things have progressed slowly since my last update. I went from insomniac (read: tired but rather productive) to insomniac and exhausted (read: utterly unproductive) to now (read: um, signs cloudy, ask again later). But, in the last few weeks:

- Created the tech tree. For that, I broke down and got Omnigraffle -- although I (pretty much) had the rough outlines of it worked out ahead of time, it's still pretty complicated and I needed better visualization tools to really get it organized (and I do still tweak it from time to time, but it's mostly done):

[Click through for larger size.]

- Implemented the tech tree. For that, I'm using ruby to generate the XML/plists. It's much easier than editing the plists in Xcode, and if I need to change things, I can make quick changes to the Ruby and regenerate as needed. I also wrote a lot of code to validate the tech tree on load.

- Created a tech tree debug screen:

[Click through for larger size.]

- Moved all the star names to plists (again, hello ruby-generated XML). I'm probably not done there; want to add some more names and generally clean the names up -- for one thing, I'm fairly certain there are some duplicate names in there.

- Created the ship module definitions. Also, wrote code to link them to techs properly and validate them on load.

Anyway, from here I'm probably going to work on the user tech interface, which also means I'll have to start on some of the core user code.

[ Crossposted from http://doubt72.dreamwidth.org/3958.html ]
Douglas Triggs
24 July 2011 @ 09:20 am
So, since the last update:

- Created the galaxy, i.e., figured out how the stars are going to be generated and laid out (mostly this was a matter of implementing what I'd decided to do several weeks ago, and tweaking it to make it work better). I'm envisioning various galaxy sizes from 25 to 100 stars (with up to six planets each -- this turned into seven once I actually started making the systems). This could easily change, though.

- Came up with some names for stars, neutron stars, and the central black hole. I did this the stupid way, though, and need to refactor it now that I know better (it's kind of hard-coded, needs to move to a plist). So I'll need to clean that up at some point.

- Created a debug panel for the galaxy layout, with star information tooltips (nothing fancy, the actual user navigation screen should be a lot slicker). Have a small galaxy:

[Click through for larger size.]

- Generated all the planets and planetary parameters; again, this was mostly implementing something I'd worked out a few weeks ago (lack of sleep has made me surprisingly productive here, since when I couldn't sleep, I'd noodle with things. Although, at times, it's also made it impossible to do much of anything, too, when I've been too exhausted). Although I did end up tweaking it an awful lot, since one I had it running, I could figure out how many of what types of planet were being generated a lot more accurately. There may be a lot more tweaking in the future, as well.

- Added more planet pictures (now that the planet frequencies were better defined), now have a total of 57. Also split the gas giant class into inner and outer gas giants with different art.

- Created a debug panel for the star systems, so I could see what they looked like (in terms of parameters, I mean, I know what the pictures look like, and again, the game navigation screens should be slicker. Among other things, the planets would be rendered at different sizes). Here are a few systems:

[Click through for larger size.]

Next up, the tech tree.

[ Crossposted from http://doubt72.dreamwidth.org/3652.html ]
Douglas Triggs
17 July 2011 @ 04:02 pm
So, the last week-plus I've been working on the game off and on, I think I'm actually past my first trac milestone, need to update that at some point. Everthing's pretty much in place and going now, so a (quick-ish) progress report is in order.

- More or less finished the Cocoa/Xcode development book I was reading (I haven't read the stuff on dealing with dispatch queues or anything, but I was tired of reading instead of coding and I've already covered the critical stuff. This project probably won't be compute-intensive enough to use those, anyway).

- Built the interface framework in Xcode, started on galaxy/system/planet generation code; in parallel I'm working on the debug interface. I figure I'll do my first serious interface there, so by the time I get to the user stuff it'll be a bit more polished (mostly on the code side; polished interfaces are easy to build in the Xcode Interface Builder).

- Took a break and created some art for the galaxy/system/planet views. Have thumbnails:

- Stars:

- Planets:

That's one star per spectral type, plus neutron stars and black holes. There are also ten classes (so far) of planets (categorized by atmosphere) but I did up several versions of each class for visual variety (at least two per class, more for common or interesting classes). Three of the classes are invented; the rest exist in the solar system (you might recognize some). I could do more easily if things felt too repetitive; all the planets and stars are Lightwave3D objects or scenes and easy to regenerate or modify.

And that's pretty much it so far.

[ Crossposted from http://doubt72.dreamwidth.org/3444.html ]
Douglas Triggs
10 July 2011 @ 08:53 pm
For no apparent reason, I've decided to write a game. Possibly because I've gotten tired of playing them for now. Possibly because I had the urge to play the kind of 4X space game nobody really makes anymore, or if they do, aren't quite the sort of game I want to play.

So, I grabbed Xcode 4. Because, well, despite spending several years developing on Windows, I really hated it as a development environment. And I don't currently have a Linux box. And (apart from actually playing games, for which I have a dedicated Windows box) I spend most of my time in OS X (both at home, and at work where we mostly use Macs for development). I also installed trac. And subversion. And got a book on Cocoa programming with Objective-C and Xcode. Having gotten started, it actually seems to be a pretty nice framework to work with -- I like it so far (getting trac and subversion working... Well, that was more of an ordeal). Although, if I have any illusions of being able to port this later, I'd be better off with a C++ model layer. I guess I'll have to think about that.

Whether I'll stick with this game writing thing... I don't know. I've never finished a project this large (although I did get pretty far with the whole Japanese drill tools thing before I decided to just use Anki -- I don't know how many hours I actually put into that, but a lot. Almost certainly thousands). But then, I've never been this organized, either -- I mean, with a ticket tracking system and revision control and everything. Keeping game concepts organized in tickets might actually work.

I guess we'll see.

In the meantime, I'm totally using this as my temporary logo.

Anyway, while I was at it, I installed rvm, git, emacs, ruby 1.9.2 and rails 3.0 -- I figured I could use some of the same tools I'm using for the game to work on CalTrackr (especially trac -- I created a bunch of tickets instead of the old "notes in a text file" method I was using before. What I haven't decided -- yet -- is whether or not I'll switch from git to subversion there). Besides, I wanted to move all that off my old Windows box -- I don't use that box for much anymore, and it's getting due for retirement. I've already made some fixes/enhancements, but as of this writing, I haven't rolled any of the changes out, but I will when I finish things up at some point -- there's one date-related bug that will be much easier to fix at the beginning of next month.

But, back to the game thing, I'm finding that the hardest part is actually coming up with a decent name. The art and stuff I feel like I can handle myself -- I'm not going for fancy, I'm going for clean.

[ Crossposted from http://doubt72.dreamwidth.org/3251.html ]
Douglas Triggs
10 July 2011 @ 12:24 pm
Lousy refereeing. Really lousy refereeing... Game-changing lousy. At least it ended up making the game interesting and not worse.

And I have trouble respecting Brazil's women's team after that performance. But then, Brazil's men's team never got by on teamwork, either, they've always done it with individual skill and flair. But really... Not classy.

[ Crossposted from http://doubt72.dreamwidth.org/3006.html ]
Douglas Triggs
14 June 2011 @ 09:07 pm
...I love you. But how the hell did you miss that goal?

[ Crossposted from http://doubt72.dreamwidth.org/2659.html ]
Douglas Triggs
11 June 2011 @ 05:03 pm
Had a houseguest in town from Japan, so we went up into the mountains. Fortunately for them, they came the first nice weekend we'd had in a while (May was extra-rainy). Unfortunately, they hadn't finished opening Trail Ridge Road (the high road) in Rocky Mountain National Park yet. Fortunately, they'd opened all the good bits up to the Alpine Visitor Center (the rest is anti-climax, honestly). Unfortunately, the visitor center was closed. Fortunately, the main visitor center at the entrance was open -- as was the road up to Mt. Evans, which we also visited.

It was really, really cold and windy up on top of Mt. Evans, though, so we didn't make it the last few feet to the top. Rocky Mountain National Park wasn't so bad, though.

The biggest unfortunate thing, though, was the Arizona wildfire smoke which made the skies hazy and gray, and distant mountains brown or invisible. That was very sad.

Anyway, Summit Lake:

[Click through for the set.]

[ Crossposted from http://doubt72.dreamwidth.org/2511.html ]
Douglas Triggs
10 June 2011 @ 07:00 pm
...You've managed to make the constant Russian spam even more annoying.

(Pre-Irony alert -- I bet this entry gets plenty of Russian spam, too)
Douglas Triggs
06 June 2011 @ 08:23 am
...They're out.

[ Crossposted from http://doubt72.dreamwidth.org/2227.html ]
Douglas Triggs
04 June 2011 @ 08:26 am
Regionals have started. Baylor up today.

[ Crossposted from http://doubt72.dreamwidth.org/1896.html ]
Douglas Triggs
02 June 2011 @ 07:22 am
After some trials and tribulations (including upgrading to LW10), I finally got a new version of Bad Egg finished. This one (unlike Game) I think is a clear improvement over the old one -- I actually tried to do something even more ambitious, that is, replace the yellow egg with a yellow-ish crystal egg, but the result wasn't really that good. Anyway, old one on the left, new one on the right:


[Click through for larger versions.]

The difference in speed here is obvious and astonishing -- half an hour versus forty-two, and that tells only part of the story because I also turned the quality way up, rendered at 16 times the resolution, and threw in depth of field to boot which is probably would have added another 20 times to the render time to the old version, minimum. Part of this is the 100+ times speedup in CPU, part of it is far better algorithms (add another 20 times speedup, maybe), but... My guess is that (if it didn't run out of memory and explode) the old machine would have taken north of a month to render what the new machine rendered in half an hour.

Stats for the original (render time 42:01:13 at 1280x960):

6 objects
77020 points
74322 polygons
0 lights
7 surfaces
0 image maps

Stats for the new version (render time 0:30:04 at 5120x3840):

48 objects
263589 points
266951 polygons
7 surfaces
0 lights
0 image maps

Yes, zero lights -- both images were done entirely with radiosity using a luminous surface instead as an indirect light source. Also, I guess the old version of LW only counted distinct objects -- both scenese have the same number of those (although the new one definitely has more instances of the objects).

[ Crossposted from http://doubt72.dreamwidth.org/1707.html ]
Douglas Triggs
31 May 2011 @ 11:05 pm
So, upgraded from v9 to v10. The reason for this was the limitations of the old 32-bit v9 executable; the damned thing constantly crashed on my second project when it ran out of memory (while actually using a laughably small fraction of my total RAM); I never got a successful render, so I finally gave up and grabbed v10. The new version is 64-bit and was built for OSX 10.6 (Snow Leopard) which I'm running on the iMac -- I threw a project at it and turned up the settings and immediately it was using half of my 16GB. Score!

First impressions... Well, it's an awful lot faster than v9, especially at radiosity (holy batcrap it's fast -- at least 10x faster than v9, seems like, possibly more -- with what seems like less obvious visual artifacts to boot). Which would be great if it would at least think about using more than one core when calculating anything else -- it rendered the new version of Game just a couple minutes slower -- while using approximately 25% of the processing power. WTF. It's so much worse than v9 at CPU utilization that it's not even funny -- it probably averages a core and a half, when v9 at least averaged five out of eight (which is already pretty embarrassing for a rendering engine).

[ Crossposted from http://doubt72.dreamwidth.org/1455.html ]
Douglas Triggs
29 May 2011 @ 02:59 pm
Done fiddling with my Dreamwidth layout for the time being; I think it looks decent enough for now.

[ Crossposted from http://doubt72.dreamwidth.org/1256.html ]
Douglas Triggs
28 May 2011 @ 01:07 pm
Well, spent an hour or two getting used to the lay of the land here, and having beaten a theme I could stand into submission until it didn't completely make my eyes bleed (through the application of a fair amount of custom CSS -- I wasn't quite willing to write a style completely from scratch, which would have taken longer. Maybe I will someday).

So, well, I'm officially here on Dreamwidth.

So... From now on, I'll be posting to Dreamwidth instead of Livejournal. I think Dreamwidth is probably the future, and if it isn't, well, I still don't care, because the key point is that it doesn't annoy me like Livejournal increasingly has, and besides, the people I read are slowly switching over. Plus... I don't really care that much about blogosphere in the first place, truth be told (as if you couldn't tell by my extremely frequent posting), especially as I've now uncoupled all of my RSS feeds from it. I read the stuff that seems interesting as I have the time.

And so... Now I've got a seed account here to go with my permanent account on LJ.

So, what does that really mean? For the time being, I'll be crossposting from DW to LJ, although eventually it's likely I'll stop, maybe in a year, maybe in three. Or maybe never -- you never know. I'll still read my friends list on LJ for a while, although eventually I'll probably stop doing that, too. No idea when that might happen, though, maybe in a year, maybe in three, maybe after some other finite period of time.

If anyone is interested in moving as well (or, well, diversifying?), I do have a number of Dreamwidth invitation codes; I just need an email address to send them to. You can leave a comment with your email address, or probably better yet, get my email address out of my profile (if you don't already have it) and drop me a line. At the moment I still have eleven left; I think Ai-chan might have more, too, on the off chance I actually run out.

Anyway... That's the state of the blog. Other than the hosting, it's unlikely much will change.

[ Crossposted from http://doubt72.dreamwidth.org/719.html :: comments there. ]
Douglas Triggs
28 May 2011 @ 12:06 am
This is my post on Dreamwidth. It has a style.

Perhaps, one day, I make style my own, plus new post with content.

Crossposted from http://doubt72.dreamwidth.org/270.html :: comments there.
Douglas Triggs
22 May 2011 @ 01:08 pm
So, I've started working with LightWave3D again on the new iMac.

It has a few issues which will probably lead me to upgrade it at some point -- it has a tendency to run out of memory for no good reason (presumably because it's a 32-bit executable dating back a number of years -- it tends to run out of memory with large shadow maps and images when it's only using maybe 2GB out of the 16GB I have available. Version 10 is presumably 64-bit, however -- it seems to require Snow Leopard. It's still its cranky old self, too, with the occasional crash -- it's something to be tolerated, since I can't afford/justify buying Maya).

At any rate, since I've sort of lost the originals of some of my older renders (in that I can never re-render them in larger versions or anything, most of these are from around a decade ago), I've decided to make new versions (not exact copies, more new renderings inspired by the old one). The first one I did was "Game" (old one on the left, new one on the right):


[Click through for larger versions.]

The old one was rendered on 10 Dec 2000 (or possibly a day or two earlier). Total render time was 2:56:24 on... Maybe a P3-800? ...at 1280x960.


31 objects
31791 points
27768 polygons
1 light
33 surfaces
0 image maps

The new one was rendered today (22 May 2011). Total render time was 2:15:51 on my i7-2600 (3.4GHz, 4 cores hyperthreaded, i.e., 8 cores to the OS) at 5120x3840.

Statistics [updated]:

71 objects
159964 points
130257 polygons
1 light
18 surfaces
0 image maps

The big difference between the images is the use of radiosity on the new picture; both use depth-of-field, volumetrics and a lot of reflection. I suspect if I'd tried to notch up the quality effects to the level used on the newer version on the old computer it would have taken weeks -- assuming it actually had the memory to handle it at all. I suspect a newer version of Lighwave would do slightly better -- while the bulk of the render time was calculating radiosity, which was equally distributed over the cores, it's less efficient rendering polygons and wastes at least 25% (often more) of the CPU with it's not-entirely efficient thread scheduling.

And after all that... I'm not really sure the new version is actually an improvement (and my attempt to put a robotic hand in there just didn't work -- it looked terrible).
Douglas Triggs
22 May 2011 @ 11:29 am
Here are some old pictures I took in Malaysia and Singapore on our trip to meet Ai's family in March of 2010. The sad thing was, these had been sitting on the SD card in the camera for over a year -- I only finally dumped them when I got the new iMac and Aperture 3 (which could finally read the RAW format my point-and-shoot uses). I had thought I'd at least dumped them onto disk somewhere, but apparently not. Anyway, I went through them, processed them and now they're up on Flickr.

And yes, I took a lot of pictures of orchids... I really liked the Singapore Botanic Gardens (other than the debilitating heat and humidity, of course) and I totally abused my Sophia student ID to get into the Orchid Garden for cheap.

One of the orchids:

[As always, click through for the set.]