{"id":2180,"date":"2011-09-01T00:12:55","date_gmt":"2011-08-31T14:12:55","guid":{"rendered":"http:\/\/www.vectorstorm.org\/?p=2180"},"modified":"2011-09-01T00:12:55","modified_gmt":"2011-08-31T14:12:55","slug":"the-last-multithreading-post-for-now","status":"publish","type":"post","link":"https:\/\/www.vectorstorm.com.au\/2011\/09\/01\/the-last-multithreading-post-for-now\/","title":{"rendered":"The last multithreading post (for now)"},"content":{"rendered":"
Setting up multithreading code is complicated!<\/p>\n
Here’s what’s new:<\/p>\n
And now, I’m completely sick of dealing with the complexity of threads, and so the next thing on my list will be more player AI. \u00a0I think I’m going to work on making players assemble into parties that do quests together. \u00a0That ought to be entertaining.<\/p>\n
And it raises some interesting questions, which actually come up in the development of real MMORPGs; how to handle characters who are of differing levels, but who want to team up — ignore it? \u00a0Boost the level of the lower character? \u00a0Lower the level of the higher player? \u00a0Not allow teaming between those characters? \u00a0And worse, what do we do when a character completes a quest multiple times, accompanying different party members. \u00a0Do they get the reward multiple times?<\/p>\n
My understanding is that most modern MMORPGs now give credit for completing a quest again in this sort of situation, but older MMORPGs often will not give repeated completion XP. \u00a0I wonder whether I need to make this configurable for players, or whether I should just take the modern approach and assume that that’s what everyone will want.<\/p>\n
Lots of stuff to think about!<\/p>\n","protected":false},"excerpt":{"rendered":"
Setting up multithreading code is complicated! Here’s what’s new: Set up a generic “task management” system for MMORPG Tycoon 2. \u00a0Systems generate “tasks”, and tasks are assigned out to worker threads, which work on those tasks, and then let the main game know when the tasks finish. \u00a0Heightmap building now uses these generic worker threads,…<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[24,25],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/po9WK-za","_links":{"self":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/2180"}],"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=2180"}],"version-history":[{"count":0,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/2180\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/media?parent=2180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/categories?post=2180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/tags?post=2180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}