{"id":1110,"date":"2010-01-29T22:32:44","date_gmt":"2010-01-29T11:32:44","guid":{"rendered":"http:\/\/www.vectorstorm.org\/?p=1110"},"modified":"2010-01-29T22:36:52","modified_gmt":"2010-01-29T11:36:52","slug":"ui-work-always-takes-longer-than-you-expect","status":"publish","type":"post","link":"https:\/\/www.vectorstorm.com.au\/2010\/01\/29\/ui-work-always-takes-longer-than-you-expect\/","title":{"rendered":"UI work always takes longer than you expect"},"content":{"rendered":"

I keep forgetting how much of a time-sink UI coding can be.<\/p>\n

Lately, I’ve been working on the GUI for MMORPG Tycoon 2. \u00a0I still haven’t started on a visual pass for it; \u00a0instead, I’ve been working on its structure. \u00a0One big change I’ve made recently is to give the player a different action bar when on the grid than when he’s in the game world; \u00a0he gets terrain-shaping tools while on the grid, and game-world-effecting tools while in the game world.<\/p>\n

Or to put that differently, if you want to make a mountain, you need to be on the grid. \u00a0If you want to build a tavern, you need to be in the game world.<\/p>\n

I’ve stripped the “Road” button out of the general “Build” toolbar, and put it into its own “Roads” toolbar. \u00a0This is to make room for more types of roads (different sizes, bridges, and eventually maybe even tunnels). \u00a0I’ve also stripped the “QuestGiver” button out of the Build toolbar, and moved it into a new NPCs toolbar, where it will eventually be joined by a few other types of NPCs.<\/p>\n

Speaking of which, actually providing a real model for characters in the MMORPG world is rapidly becoming more important. \u00a0But I’m going to try to put it off until after my first milestone.<\/p>\n

I’ve also spent some time designing how the player will place these objects within the MMORPG world. \u00a0I like the simplicity of being able to place an object, and then having it be fixed in place; \u00a0moving it not being an option. \u00a0However, with the current interface, the player can’t really see precisely how the object is going to be situated within the world, so it feels a little unpredictable. \u00a0I might need to expose the “Move” interface again, to allow the player to tweak the position of his buildings. \u00a0I’d also like to allow him to rotate them.. \u00a0that’s not an issue right now because I haven’t spent any time on actually building nice-looking structures, but once I’ve done that, it’s going to be really awkward if every building is always facing the same direction.<\/p>\n

Next step is building a GUI for manually setting up quests. \u00a0I was going to do combat engine v2.0 first, but discovered that it’s really annoying to go test combat when the random quest generation can end up putting all the monsters an extremely awkward distance away from anywhere useful, so the GUI work is going to come first. \u00a0Once that’s done, I’ll start on the revised combat engine.<\/p>\n","protected":false},"excerpt":{"rendered":"

I keep forgetting how much of a time-sink UI coding can be. Lately, I’ve been working on the GUI for MMORPG Tycoon 2. \u00a0I still haven’t started on a visual pass for it; \u00a0instead, I’ve been working on its structure. \u00a0One big change I’ve made recently is to give the player a different action bar…<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[3],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/po9WK-hU","_links":{"self":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/1110"}],"collection":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/comments?post=1110"}],"version-history":[{"count":0,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/1110\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/media?parent=1110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/categories?post=1110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/tags?post=1110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}