{"id":68,"date":"2009-06-29T04:59:33","date_gmt":"2009-06-29T00:59:33","guid":{"rendered":"http:\/\/www.jrtwine.com\/blog\/?p=68"},"modified":"2012-02-20T06:07:44","modified_gmt":"2012-02-20T02:07:44","slug":"xna-wonderfulness","status":"publish","type":"post","link":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/","title":{"rendered":"XNA Wonderfulness"},"content":{"rendered":"<p>So having some extra time on my hands, I have started playing around with XNA Game Studio again (version 3.0 this time).  I picked up a shooter tutorial created by <em>PHStudios<\/em> which gives you a functional, but very simple game.<\/p>\n<p>I started about the shooter that I have always wanted to write.  It was going to look and behave much like an old arcade shooter.  I wanted the details of the game to be just like an arcade game.  For example, when it first starts, it will show a garbage screen quickly followed by an alphanumeric test (with some sprites in there), grids and colors, and ROM and RAM test (with successful results, of course), and then jump into attract mode waiting for someone to <em>coin it up<\/em>.<\/p>\n<p>I have started this dream by taking the shooter tutorial and making extensive changes to it.  I have since extended it by adding the following features:<\/p>\n<ul>\n<li>Background Stars with multiple behaviors and effects (stopped, moving, warp, etc.)<\/li>\n<li>Improved collision detection (only objects &#8220;near&#8221; each other are checked, and multiple collision rectangles are used for better checks)<\/li>\n<li>Multiple enemies, including <em>mini-bosses<\/em> and <em>bosses<\/em><\/li>\n<li>Bonus items that &#8220;fall&#8221; that give you health, weapons, points, etc.<\/li>\n<li>Additional weapon types<\/li>\n<li>&#8220;Buddy&#8221; ships that dock to your ship for additional firepower<\/li>\n<li>Auto-pilot\/behavior for the enemy ships (i.e. what they do when the come on screen)<\/li>\n<li>A &#8220;story&#8221; manager that manages each game level (i.e. what ships appear when and what their behavior is, also handles &#8220;waves&#8221; of attacks)<\/li>\n<li>Explosions<\/li>\n<li>Sound<\/li>\n<li>A console that you can enter commands on to change\/adjust the game&#8217;s behavior<\/li>\n<li>And more!<\/li>\n<\/ul>\n<p>Some of the features could be useful to others (like the background star, console, input manager) and I will release them free-for-use once I am done.<\/p>\n<p>I am starting to think that I may be able to actually sell it once it is complete.  I think that the retro arcade behavior of the game may appeal to some, and I hope that I can make it fun and challenging enough to get people interested.<\/p>\n<p>Oh, and before I forget, there is a really nice free tool called (<a href=\"http:\/\/www.cyd.liu.se\/~tompe573\/hp\/project_sfxr.html\"><strong><em>sfxr <\/em><\/strong><\/a>) that can create sound effects.  I am using it for the retro-like sounds in the game.  I have also created a bunch of different types of sounds that I will likely also release free just as a time-saver to others.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So having some extra time on my hands, I have started playing around with XNA Game Studio again (version 3.0 this time). I picked up a shooter tutorial created by PHStudios which gives you a functional, but very simple game. I started about the shooter that I have always wanted to write. It was going [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,46],"tags":[45,44,43,42],"class_list":["post-68","post","type-post","status-publish","format-standard","hentry","category-developing","category-xnagame-development","tag-retro","tag-shooter","tag-xbox","tag-xna"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"So having some extra time on my hands, I have started playing around with XNA Game Studio again (version 3.0 this time). I picked up a shooter tutorial created by PHStudios which gives you a functional, but very simple game. I started about the shooter that I have always wanted to write. It was going\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"James R. Twine\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"James R Twine Blog -\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"XNA Wonderfulness - James R Twine Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"So having some extra time on my hands, I have started playing around with XNA Game Studio again (version 3.0 this time). I picked up a shooter tutorial created by PHStudios which gives you a functional, but very simple game. I started about the shooter that I have always wanted to write. It was going\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2009-06-29T00:59:33+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2012-02-20T02:07:44+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"XNA Wonderfulness - James R Twine Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"So having some extra time on my hands, I have started playing around with XNA Game Studio again (version 3.0 this time). I picked up a shooter tutorial created by PHStudios which gives you a functional, but very simple game. I started about the shooter that I have always wanted to write. It was going\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/xna-wonderfulness\\\/#blogposting\",\"name\":\"XNA Wonderfulness - James R Twine Blog\",\"headline\":\"XNA Wonderfulness\",\"author\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/author\\\/jtwine\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#organization\"},\"datePublished\":\"2009-06-29T04:59:33+00:00\",\"dateModified\":\"2012-02-20T06:07:44+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/xna-wonderfulness\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/xna-wonderfulness\\\/#webpage\"},\"articleSection\":\"Developing, XNA\\\/Game Development, Retro, Shooter, XBOX, XNA\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/xna-wonderfulness\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/category\\\/developing\\\/#listItem\",\"name\":\"Developing\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/category\\\/developing\\\/#listItem\",\"position\":2,\"name\":\"Developing\",\"item\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/category\\\/developing\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/xna-wonderfulness\\\/#listItem\",\"name\":\"XNA Wonderfulness\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/xna-wonderfulness\\\/#listItem\",\"position\":3,\"name\":\"XNA Wonderfulness\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/category\\\/developing\\\/#listItem\",\"name\":\"Developing\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#organization\",\"name\":\"James R Twine Blog\",\"url\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/author\\\/jtwine\\\/#author\",\"url\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/author\\\/jtwine\\\/\",\"name\":\"James R. Twine\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/xna-wonderfulness\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/77d36362e353ec1c88adc48b48055faee96497898a208d3a6a05897d4902e552?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"James R. Twine\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/xna-wonderfulness\\\/#webpage\",\"url\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/xna-wonderfulness\\\/\",\"name\":\"XNA Wonderfulness - James R Twine Blog\",\"description\":\"So having some extra time on my hands, I have started playing around with XNA Game Studio again (version 3.0 this time). I picked up a shooter tutorial created by PHStudios which gives you a functional, but very simple game. I started about the shooter that I have always wanted to write. It was going\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/xna-wonderfulness\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/author\\\/jtwine\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/author\\\/jtwine\\\/#author\"},\"datePublished\":\"2009-06-29T04:59:33+00:00\",\"dateModified\":\"2012-02-20T06:07:44+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/\",\"name\":\"James R Twine Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"XNA Wonderfulness - James R Twine Blog","description":"So having some extra time on my hands, I have started playing around with XNA Game Studio again (version 3.0 this time). I picked up a shooter tutorial created by PHStudios which gives you a functional, but very simple game. I started about the shooter that I have always wanted to write. It was going","canonical_url":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/#blogposting","name":"XNA Wonderfulness - James R Twine Blog","headline":"XNA Wonderfulness","author":{"@id":"https:\/\/jrtwine.com\/blog\/author\/jtwine\/#author"},"publisher":{"@id":"https:\/\/jrtwine.com\/blog\/#organization"},"datePublished":"2009-06-29T04:59:33+00:00","dateModified":"2012-02-20T06:07:44+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/#webpage"},"isPartOf":{"@id":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/#webpage"},"articleSection":"Developing, XNA\/Game Development, Retro, Shooter, XBOX, XNA"},{"@type":"BreadcrumbList","@id":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/#listItem","position":1,"name":"Home","item":"https:\/\/jrtwine.com\/blog\/","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/category\/developing\/#listItem","name":"Developing"}},{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/category\/developing\/#listItem","position":2,"name":"Developing","item":"https:\/\/jrtwine.com\/blog\/category\/developing\/","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/#listItem","name":"XNA Wonderfulness"},"previousItem":{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/#listItem","position":3,"name":"XNA Wonderfulness","previousItem":{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/category\/developing\/#listItem","name":"Developing"}}]},{"@type":"Organization","@id":"https:\/\/jrtwine.com\/blog\/#organization","name":"James R Twine Blog","url":"https:\/\/jrtwine.com\/blog\/"},{"@type":"Person","@id":"https:\/\/jrtwine.com\/blog\/author\/jtwine\/#author","url":"https:\/\/jrtwine.com\/blog\/author\/jtwine\/","name":"James R. Twine","image":{"@type":"ImageObject","@id":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/77d36362e353ec1c88adc48b48055faee96497898a208d3a6a05897d4902e552?s=96&d=mm&r=g","width":96,"height":96,"caption":"James R. Twine"}},{"@type":"WebPage","@id":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/#webpage","url":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/","name":"XNA Wonderfulness - James R Twine Blog","description":"So having some extra time on my hands, I have started playing around with XNA Game Studio again (version 3.0 this time). I picked up a shooter tutorial created by PHStudios which gives you a functional, but very simple game. I started about the shooter that I have always wanted to write. It was going","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/jrtwine.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/#breadcrumblist"},"author":{"@id":"https:\/\/jrtwine.com\/blog\/author\/jtwine\/#author"},"creator":{"@id":"https:\/\/jrtwine.com\/blog\/author\/jtwine\/#author"},"datePublished":"2009-06-29T04:59:33+00:00","dateModified":"2012-02-20T06:07:44+00:00"},{"@type":"WebSite","@id":"https:\/\/jrtwine.com\/blog\/#website","url":"https:\/\/jrtwine.com\/blog\/","name":"James R Twine Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/jrtwine.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"James R Twine Blog -","og:type":"article","og:title":"XNA Wonderfulness - James R Twine Blog","og:description":"So having some extra time on my hands, I have started playing around with XNA Game Studio again (version 3.0 this time). I picked up a shooter tutorial created by PHStudios which gives you a functional, but very simple game. I started about the shooter that I have always wanted to write. It was going","og:url":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/","article:published_time":"2009-06-29T00:59:33+00:00","article:modified_time":"2012-02-20T02:07:44+00:00","twitter:card":"summary_large_image","twitter:title":"XNA Wonderfulness - James R Twine Blog","twitter:description":"So having some extra time on my hands, I have started playing around with XNA Game Studio again (version 3.0 this time). I picked up a shooter tutorial created by PHStudios which gives you a functional, but very simple game. I started about the shooter that I have always wanted to write. It was going"},"aioseo_meta_data":{"post_id":"68","title":null,"description":null,"keywords":null,"keyphrases":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-09-17 06:50:56","updated":"2026-09-17 06:50:56"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtwine.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtwine.com\/blog\/category\/developing\/\" title=\"Developing\">Developing<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tXNA Wonderfulness\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/jrtwine.com\/blog\/"},{"label":"Developing","link":"https:\/\/jrtwine.com\/blog\/category\/developing\/"},{"label":"XNA Wonderfulness","link":"https:\/\/jrtwine.com\/blog\/xna-wonderfulness\/"}],"_links":{"self":[{"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/posts\/68","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/comments?post=68"}],"version-history":[{"count":1,"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/posts\/68\/revisions"}],"predecessor-version":[{"id":120,"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/posts\/68\/revisions\/120"}],"wp:attachment":[{"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/media?parent=68"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/categories?post=68"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/tags?post=68"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}