<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-18924013</id><updated>2011-12-15T02:36:19.674Z</updated><category term='smoke menu ingame footage flash animation'/><title type='text'>Earth Squadron</title><subtitle type='html'>This blog will be all about my new ES Game. The game is a 3d top down space scroller; a bit like Xenon2.
It will be created with VB.Net using managed Directx 9. 

The blog will include the development issues I encounter, the game ideas I have, concept drawings and story ideas.
This is an ongoing development process, so any ideas or comments anyone has are welcome.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18924013.post-6237061022566363400</id><published>2008-01-04T02:37:00.000Z</published><updated>2008-01-04T03:08:05.712Z</updated><title type='text'></title><content type='html'>I've just added the ability to use Progressive Meshes. It was a really simple addition.&lt;br /&gt;I found a web page with a really good &lt;a href="http://www.codesampler.com/usersrc.htm"&gt;simple sample&lt;/a&gt; (http://www.codesampler.com/usersrc.htm) and working with that as a reference I was able to add this feature in. &lt;br /&gt;Now I just need to combine the ability to change the number of faces on a mesh with the distance of the object from the camera and perhaps the FPS will go a little higher.&lt;br /&gt;&lt;br /&gt;I've also found another nice program called &lt;a href="http://camstudio.org/"&gt;Cam Studio&lt;/a&gt; for capturing the screen, this time it captures it to an Avi so I can upload it straight to BlogSpot.&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-e34a2cdc654017d4" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v17.nonxt4.googlevideo.com/videoplayback?id%3De34a2cdc654017d4%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330222252%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D31AEA41633C47788CD9816ECA44802266DD1365D.59A2888112570A4A322421A18B5C13708035C806%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3De34a2cdc654017d4%26offsetms%3D5000%26itag%3Dw160%26sigh%3D3Y145v3hg7KhbrsnSAoHjHQy-BE&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v17.nonxt4.googlevideo.com/videoplayback?id%3De34a2cdc654017d4%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330222252%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D31AEA41633C47788CD9816ECA44802266DD1365D.59A2888112570A4A322421A18B5C13708035C806%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3De34a2cdc654017d4%26offsetms%3D5000%26itag%3Dw160%26sigh%3D3Y145v3hg7KhbrsnSAoHjHQy-BE&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-6237061022566363400?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=e34a2cdc654017d4&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/6237061022566363400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=6237061022566363400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/6237061022566363400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/6237061022566363400'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2008/01/ive-just-added-ability-to-use.html' title=''/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-6081478586890836771</id><published>2007-12-04T20:51:00.000Z</published><updated>2007-12-04T21:53:00.351Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='smoke menu ingame footage flash animation'/><title type='text'>Particles</title><content type='html'>I saw a great &lt;a href="http://codefortress.blogspot.com/2007/01/shaderx-5-demo-codeexe-shadows.html"&gt;screenshot and article &lt;/a&gt;the other day of a great smoke effect. I then thought that would look nice on the back of a rocket! Now I already have a particle effect in the game, as I use it for the ships engines and the explosions.&lt;br /&gt;This is the simpler version I came up with, no lights effecting it and the tone of each smoke "particle" is now a bit to similar, I think it needs a little randomness and a blackening, as well as the fading over time.&lt;br /&gt;&lt;br /&gt;I also created a simpler menu, away from the tacky 3d menu and the flying circling light and in with a nice 2d menu that can easily be customised (for add on packs?) and tweaked. You'll see 2 concept art spaceships either side framing the menu. You can still see the old 3d menu when the game ends, as it still goes back to the old for now.&lt;br /&gt;You'll also see the story screen, which took a lot longer than I thought. It's a simple thing in theory, but in practice it took a lot longer to get it how I wanted i.e. fading in line=-by-line with 5second intervals. It does take a little while to load up this screen. This is because I'm creating a texture on the fly and it's the CreateTexture part that can take 10seconds or so, the delay only happens when debugging from VStudio and is a documented issue.&lt;br /&gt;You'll notice the enemies have a particle generated explosion and then "fall" before vanishing. Later on I think it'll look better if their was a particle generated explosion, but fewer particles and instead of being alpha blended they were spaceship bits, the enemy ship could then be removed under the cover of the debris.&lt;br /&gt;&lt;br /&gt;&lt;embed type="application/x-shockwave-flash" src="http://www.merlinswisdom.com/blogspot/InGame20071204.swf" pluginspage=" http://www.macromedia.com/go/getflashplayer" width="429" height="336" autoPlay="false"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;The animation was made with a great little freeware utility called &lt;a href="http://www.debugmode.com/wink/"&gt;Wink&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-6081478586890836771?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/6081478586890836771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=6081478586890836771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/6081478586890836771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/6081478586890836771'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2007/12/particles.html' title='Particles'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-1649022270388347240</id><published>2007-09-30T23:24:00.000+01:00</published><updated>2007-12-04T20:51:08.472Z</updated><title type='text'>Re-ignite my fire</title><content type='html'>&lt;div&gt;I was in New York recently and while I was there I picked up the new iPod nano, with video!!&lt;/div&gt;&lt;br /&gt;&lt;div&gt;I liked the concept of short podcasts but never had a device to play it and decent software to mange it all, but now thanks to Apple I do. I've recently been listening to podcasts, one of them relates to &lt;a href="http://www.flammablepenguins.com/"&gt;games programming&lt;/a&gt;. The podcast isn't bad, but it does seem to concentrate on C++ concepts a bit too much for my liking. Anyway it's presented in a great light, energetic way. There are other &lt;a href="http://www.blogger.com/www.aboutmakinggames.com"&gt;podcasts &lt;/a&gt;that interview people from the industry, these also make intersting listening. So after listening to most of the podcasts I could get iTunes to download, my interest in finishing this game flarred up again.&lt;br /&gt;&lt;br /&gt;Maybe I will get something completed... and this won't end up being just a learning exercise!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-1649022270388347240?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/1649022270388347240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=1649022270388347240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/1649022270388347240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/1649022270388347240'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2007/09/re-ignite-my-fire.html' title='Re-ignite my fire'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-115236248837188885</id><published>2006-07-08T13:13:00.000+01:00</published><updated>2006-07-08T14:14:37.036+01:00</updated><title type='text'>Reinstall</title><content type='html'>So after a while away from this project I realised a few things.&lt;br /&gt;&lt;br /&gt;1.&lt;br /&gt;I've reinstalled my PC... well I actually bought a whole new one and reinstalled everything, even my little utilities! I realised how hard it can be to track down a problem if the motherboard is faulty on a new pc. I bought my PC in parts and put it together, however I couldn't tell if the motherbaord, CPU, hard drive or the gfx were faulty as they were all bought from the same supplier (Scan.co.uk), the one thing I was sure worked was the ram and that was bought from eBay!!! It came up with a hard disk error after running the seagate utility, so I returned it on that basis, and it turned out to be a bad MSI motherboard. Anyway that's been replaced and other than the cpu getting hot(57c) and the stock fan spinning like crazy it's been working ok. Not sure going dual core was worth it though, nor am I sure it is worth having 2gb of dual channel memory, but I guess I'll find out when I play a processor, memory (harddisk and ram) hungry game, or at least try out vista!&lt;br /&gt;Still I may not have 2 gfx cards running together, I did try the sli out but the frame rate incresed by just a few fps in Doom3, so wasn't worth it.&lt;br /&gt;Having a dual display however is not something I could live without, or at least use my computer without! Even at work now, I insisted on having a dual display system, it makes like so much easier.&lt;br /&gt;&lt;br /&gt;2.&lt;br /&gt;As usual I was too ambitious in my plans for the gameplay of the game. I wanted it to do too much too quick. This is odd because when I was creating the engine, I did it slowly, one feature at a time, and gently adding parts on and unit testing to make sure those units I add on all worked. Next time I think I shall get the game working fully, how I want it to flow with stick men and circles for bullets, whatever is cheap and quick to do, just so I can get the actual game to work. Once the game is working I can then work on the game engine and making things look and sound nice. Instead of graphics first and game design last! Of course next time (assuming there will be a next time) I won't be so impressed to have 3d models and particle engines in a program I created. Just imaging what it was like to go from having grey menus and arial fonts in utilities that did stuff like move a mouse to what I have now, a program with 3d text that can move and rotate on the x axis along with a 3d scene of my ship and hangar bay with a simple particle engine for the enging fumes and for the explosions. That doesn't even go into playing with the lighting or my thoughts on 3d movie scenes. Such a change, such a shame I never got round (yet?) to doing more.&lt;br /&gt;&lt;br /&gt;3.&lt;br /&gt;I realised I should have created a setup program for my game, as I've not yet been able to get it to work.  I know it's not my code because other VB DX9 programs don't work either. Where do I get a working version of the managed directx files? Must I download the entire 400mb DirectX SDK again. I suppose at least then I'll get those lovely debug directx files again.&lt;br /&gt;&lt;br /&gt;4.&lt;br /&gt;I also realised how horrible the trains and tubes are in the british summer. Even during other months, you get off the train, with its air conditioning and nice spacious seats and relatively friendly people and get on the tube, with its small seats(if you can get one) hot stuffy atmosphere, unfriendly people who are quite willing to barge and push you out of the way, just so they can get to their destination literally a few minutes quicker. It's a strange but true transformation.&lt;br /&gt;I've even drawn a few sketches on this irritating behaviour, these are now in my desk piling up, so I guess my boss is going to get a laugh out of it when I eventually leave! I'm sure that most people now just accept it as being the norm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-115236248837188885?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/115236248837188885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=115236248837188885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/115236248837188885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/115236248837188885'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2006/07/reinstall.html' title='Reinstall'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113672160673553271</id><published>2006-01-08T11:49:00.000Z</published><updated>2006-02-08T07:54:21.816Z</updated><title type='text'>update</title><content type='html'>So I've not published anything lately, I've just not managed to get anything done.&lt;br /&gt;I don't quite know how other people can do it. After working 8hrs plus another 3hrs travelling I don't really come back home wanting to use the computer, I get enough of that thing at work!&lt;br /&gt;I have no mp3 player, so the journey on the train and tube can get rather boring, not knowing what to look at! If someone out there wanted to help you could always send an mp3 player my way!! :-) or &lt;a href="http://ipods.freepay.com/?r=26824297"&gt;help me&lt;/a&gt; get a free iPod by signing up here: &lt;a href="http://ipods.freepay.com/?r=26824297"&gt;http://ipods.freepay.com/?r=26824297&lt;/a&gt; and completing just one offer.&lt;br /&gt;&lt;br /&gt;After work I'd rather do some mind numbing, dumb, easy thinking task, like watching eastenders than programming. I know that if I turn that PC on and something doesn't work, I'm gonna get very annoyed. I suppose to unwind is why some people smoke, some people drink and I, well, I kill people, well not real people, just mutilated, robot fused cyborgs who go by the name of Strogg. Yes you've guesed it Quake 4. What better way to relieve stress for a guy than to go to a mouse controlled shooting range. No clay pigeons, foxes or stuck down coconuts here, instead we have aliens who are very keen to do nasty things to your limbs. Although I've still not finished it!&lt;br /&gt;&lt;br /&gt;I did find an interesting article while I was at work though; it's about poor games with great ideas.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.guardian.co.uk/games/archives/2006/01/06/poor_games_with_great_ideas.html"&gt;Guardian - Poor Games with Good Ideas&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113672160673553271?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113672160673553271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113672160673553271' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113672160673553271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113672160673553271'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2006/01/update.html' title='update'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113605893639511379</id><published>2006-01-01T06:00:00.000Z</published><updated>2005-12-31T19:55:36.406Z</updated><title type='text'>Sonic</title><content type='html'>I was watching my 4yr old cousin play Sonic on the Xbox over New Years.&lt;br /&gt;There was this switch on the wall and you have to press X and then push it into the wall by pusing up, or down to pull it out. He must've spent a good few minutes trying just to get a hold of the switch. With Sonic being a fast action packed game, a few minutes spent on any part is a long time. I began wondering how long it would be before he gave up, how long is a 4yr old attention span, or at least his commitment to pushing that button. Anyway he eventually got that button pushed into the wall and a door opened with something good inside.&lt;br /&gt;&lt;br /&gt;Perhaps I could incorporate a similar idea into my game. For instance shoot a special buoy and suddenly the camera zooms out and there is a (metal? ) passage/tunnel on the left, you can go through it, whereupon you find some goodies. Then when you reach the end of the heavenly tunnel, you rather speed backwards where you came and the camera pans right, or there is an exit on the right for you to get out, and then the camera resumes normal playing zoom level. So perhaps a tunnel in the shap of an elongated straight C.&lt;br /&gt;&lt;br /&gt;Just an idea though, perhaps a good way to avoid certain enemies, perhaps not a metal tunnel but a wormhole?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113605893639511379?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113605893639511379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113605893639511379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113605893639511379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113605893639511379'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2006/01/sonic.html' title='Sonic'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113433645884354490</id><published>2005-12-30T21:00:00.000Z</published><updated>2005-12-30T19:55:30.896Z</updated><title type='text'>Graphics vs Gameplay</title><content type='html'>Which do you think is more important?&lt;br /&gt;&lt;a href="http://forums.joeuser.com/Forums.aspx?ForumID=143&amp;AID=82303"&gt;I read an article today on my internet travels.&lt;/a&gt;&lt;br /&gt;I believe that without gameplay a game is not worth playing. However without the graphics to tempt people, they are not likely to pick it up in the first place.&lt;br /&gt;&lt;br /&gt;If you were able to create a game that looked bad but had fantastic gameplay, and then you somehow managed to get that game into a game-players hands, I think that person would become interested in the game. The problem is how to get people to actually play the game, there are a few possible solutions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;So far, from what I've seen, most publishers solve the problem with fancy graphics&lt;/li&gt;&lt;li&gt;Another possible solution is "reviews"&lt;/li&gt;&lt;li&gt;Or Demos - these can be cut down and missing features from the full game though (&lt;a href="http://jng.rakeingrass.com/"&gt;Jets'n'Guns&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Trials - time or usage trial. These are fully functioning games that only last for a certain length of time. Most small developer companies I've seen, seem to use this method. (e.g, &lt;a href="http://www.jaggedbladesoft.com/"&gt;Xeno2&lt;/a&gt; (30 min), &lt;a href="http://www.retro64.com/platypus_game.asp"&gt;Platypus&lt;/a&gt; (60 min) , &lt;/li&gt;&lt;/ul&gt;If more of the development resources are spent on making the graphics  of a game look good, then that would mean less resources are available to make sure the gameplay is as good as it can be. It usually takes a lot of time and money to create the art for a game. Plus there is a fear that you must not be too creative or original, so the game is stuck with high visuals and reduced gameplay.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113433645884354490?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113433645884354490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113433645884354490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113433645884354490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113433645884354490'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/graphics-vs-gameplay.html' title='Graphics vs Gameplay'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113502996722266694</id><published>2005-12-27T21:13:00.000Z</published><updated>2005-12-27T16:20:33.286Z</updated><title type='text'>Flatspace</title><content type='html'>I played a demo of flat space the other day. I wasn't impressed. I took up a mission and just couldn't get to the grid reference I needed to finish it, I was one square away and it just said out of range. So I quit, uninstalled and then installed FreeSpace2 in the hope it was better, but alas it was virtually the same game.&lt;br /&gt;I did manage to finish a mission, but trying to get to grips with that map and the controls was so frustrating. Once I arrived out of hyperspace, I was flying around not knowing where I was going! Having no scanner and flying blind is not much fun. I should mention, there is a targetting mechanism, so you can target a base and then at least head in the right direction. I do prefer an overall view however, so I know what is around me, i.e. with some kind of scanner. Perhaps you can buy this later on in the game though, I couldn't be bothered to play long enough to find out. The graphics were nice though!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:arial;color:#006600;"&gt;&lt;em&gt;The Bad&lt;/em&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;I didn't like the mouse controls much, I found them rather frustrating. I can understand having to use comms as it adds to the atmosphere, it is rather frustrating I feel though. I would rather have automatic docking with a base whereby when I'm in range it docks with the base itself, rather than have to target the base by pressing "t" and then press "r" for radio comunications and then click "2" to talk to the base and then "1" to ask for docking permission and if I'm in range permission will be granted whereby I can move my ship into the ring and then press "D" to dock! Some things really shouldn't be overcomplicated.&lt;br /&gt;I wasn't too happy with the general UI, I don't like modular dialog boxes that I have to close. For instance when viewing equipment I would've liked to be able to click on one device to see it's stats and then click on another device and see its stats, and not have to close the stats window every time.&lt;br /&gt;Freespace desperately needed a training mission. The first one was so frustrating I just gave up on it.&lt;br /&gt;Missions should be finished as soon as you arrive at the appropriate delivery base. I shouldn't have to click the Complete mission button. Thats just a waste of my ever so precious gaming time, time that could've been better spent exploring or blowing things up. Speaking of which when I blew up an asteroid, smaller asteroids were visible before the big one blew up!... a minor bug I guess. Looks good though when it blows, probably better than mine will.&lt;br /&gt;I know I'm being picky at times, but I do need to be.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;&lt;span style="font-family:arial;color:#006600;"&gt;The Good&lt;/span&gt;&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;So what was good? Graphics were smooth. Music was cool. I liked the idea of going into the base to dock and that there is a docking ring. Nice at first, bit annoying later on.&lt;br /&gt;There was a variety of player types: Trader, mercenary, bounty hunter, etc. Plus the player could have special abilities. The game also featured guilds, so trading would raise your standing in one guild, doing taxi mission would raise your standing in the courier guild or destroying and alien fighter would raise your standing in the Alien Fighter guild. Plus you can only buy certain specila equipment if you have a high rating in a certain guild. Guilds are a very useful feature.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It would not be fair if I didn't mention that FlatSpace was created by a very tiny company. Cornutopia Software (&lt;a href="http://www.cornutopia.net"&gt;http://www.cornutopia.net&lt;/a&gt;) Mark Sheeky being the big guy behind it all. Despite all the flaws I've pointed out, it is truly a hugely impressive achievement for one person.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113502996722266694?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113502996722266694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113502996722266694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113502996722266694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113502996722266694'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/flatspace.html' title='Flatspace'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113562039300036237</id><published>2005-12-26T17:50:00.000Z</published><updated>2005-12-26T18:06:33.020Z</updated><title type='text'>Screen Flow</title><content type='html'>I created a quick mock up the other day to give me a good idea about how many, what screens I needed and how they would flow.&lt;br /&gt;So far it looks like I'll need 7 main screens in total:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Loading&lt;/li&gt;&lt;li&gt;Intro - (pre-rendered?) Movie and/or credits&lt;/li&gt;&lt;li&gt;Main Menu  - Others that show up on the main menu but not whole screens, just dialogues:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;New Game Skill chooser - Hard, easy, etc&lt;/li&gt;&lt;li&gt;Load Game&lt;/li&gt;&lt;li&gt;Options - Needs to be independant, so that we can replicate it in the in-game menu&lt;/li&gt;&lt;li&gt;Rankings / Graveyard / Highscore board&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;The Game&lt;/li&gt;&lt;li&gt;In game menu&lt;/li&gt;&lt;li&gt;Finish Game - Screen that shows when you finish the level:- briefing, Next level chooser, etc&lt;/li&gt;&lt;li&gt;Buy Now - when the game is quitting shows this screen for 10 seconds before closing.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;So far I've done 1, 3, 4 and 5.  I've not finished any of the screens I do have and some like the main menu I'm not happy with and will need to be redone from scratch. None of the sub screens from the main menu are yet done.&lt;/p&gt;&lt;p&gt;I need to get rid of the test sreens I've got in; I was using these to test the engine. I then need to put in some skeleton screens in so I know how things will flow, even if these screens consists of nothing but a simple picture or the text "Intro" on it!  Once the skeleton is done, I can begin to flesh it out and build up some better looking and more functional aspects.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113562039300036237?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113562039300036237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113562039300036237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113562039300036237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113562039300036237'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/screen-flow.html' title='Screen Flow'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113502675007586081</id><published>2005-12-19T20:54:00.000Z</published><updated>2005-12-19T21:12:30.130Z</updated><title type='text'>Darwinia and a The Big Universe idea</title><content type='html'>I've been a bit busy with work lately and have not had time to do anything on this project.&lt;br /&gt;&lt;br /&gt;I had a quick go at playing Darwinia, it was a bit of a dull game as I knew I would win, it was just a matter of time. It had a good selling point and it was quite well thought out. An interesting thing was the map, it's a half sphere. with points plotted out for city like places that you can go. Lines connect the points and there are stargate type portals that allow you to transfer from one city to anoter. One city produces energy, another raw polygons, another makes the final product, etc.&lt;br /&gt;The map was a nice idea, I think i might use something similar, but it does then raise the question to me, of how big I want to make my game universe? The bigger it is the more I need to consider how everything will balance out, plus I will need to create some sort of model for all the species to interact and trade with each other, so that there is an equilibrium. I would love to do it that way, so the universe is vast and there is lots to explore and learn. I could then have ancient civilisations, specialised technology, strange aliens who you come by, bars, pirate bases, guilds, traders, pirates, bounty hunters, militants, navies, ship wrecks with items you can pick up, and places you shouldn't visit without the right hardware!&lt;br /&gt;&lt;br /&gt;I fear if I do go down this path too soon, I will never get anywhere near a finished product, as I will spend far too much time developing the trading simulation engine. So perhaps this vast universe I want, will have to wait for another day/version. Or perhaps just make it totally random and forget the balancing act!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113502675007586081?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113502675007586081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113502675007586081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113502675007586081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113502675007586081'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/darwinia-and-the-big-universe-idea.html' title='Darwinia and a The Big Universe idea'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113433828936548384</id><published>2005-12-18T20:55:00.000Z</published><updated>2005-12-19T20:54:31.006Z</updated><title type='text'>Jets'n'Guns</title><content type='html'>I was playing the demo of Jets'n'Guns.&lt;br /&gt;It's a side scrolling game, with lots of explosions, particles flying everywhere, men (sometimes in spacesuits) shooting you with guns and bazookas, plus you can upgrade your spaceship.&lt;br /&gt;&lt;br /&gt;I like the idea of the men ejecting from their doomed craft. Then the brave people start shooting you, as if a little man with a pistol, has any chance against a massive metal spaceship with upgraded hull and shields! But it is a nice touch.&lt;br /&gt;&lt;br /&gt;In the demo, some of the upgrade options are unavailable. You are able to buy some new weapons and upgrade them. The best part is that the demo seems to repeat the same 2 levels or so, which means you can constantly keep doing those levels to earn money. Then you can use that money to upgrade your ship, adding shields, bombs, missiles, lasers, etc. So even though you are playing a demo, you still get quite a good idea what the game will be like.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113433828936548384?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113433828936548384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113433828936548384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113433828936548384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113433828936548384'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/jetsnguns.html' title='Jets&apos;n&apos;Guns'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113432392500145820</id><published>2005-12-11T23:20:00.000Z</published><updated>2005-12-11T23:21:46.986Z</updated><title type='text'>How to choose</title><content type='html'>I've never been able to know how best to make a decision.&lt;br /&gt;Do I go with my emotions and what I feel (intuition) is best (best for who?) or do I go with logic, make up a list of good and bad and then compare, or use probabilities (how do you accurately decide the weights?) and decide what has the greatest chance of succeeding or use some statistical methods to basically crunch numbers get a choice out.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dmreview.com/article_sub.cfm?articleId=6935"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="picture from: http://www.riograndefilm.com/images/camera_new_movie.gif" src="http://photos1.blogger.com/blogger/404/1863/320/4stageDecision.gif" border="0" /&gt;&lt;/a&gt;Using logic will sometimes get the most logical result but it won't always be something I'm happy with. For example how does one choose what uni to go to? Do you look at just the uni'a results average for a course, look at the outside area, the SU, the student campus facilities, the course content, the lecturers, what other students who have passed the course have gone on to do? There are a number of factors one must consider. In the end one uni may look the best on paper, but it's not until you start that you may realise you don't like it there, then all the little annoyances of the uni start shining through and you wish you went somewhere else.&lt;br /&gt;I don't think using solely logic is the best way to make a decision, especially when humans are involved in the end solution.&lt;br /&gt;&lt;br /&gt;People who succeed in life (socially and financially) tend to be people who find a carreer they enjoy. If you are happy in your job you will be happy to work longer and/or harder. After a certain point you can take the wealth of experience you've gained, find a niche market and setup a business and exploit it. You can only do that however, if you start the right way; with a job you enjoy!&lt;br /&gt;Emotions are very important with people, it would be unwise to ignore the way we feel when we make a decision. So how does one make a decision? Well it could be usefuly to look at the audience you are trying to target.&lt;br /&gt;&lt;br /&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="Picture from: http://www.istockphoto.com/file_closeup/people/children_various/306067_baby_boy_playing_teacher.php?id=306067" src="http://photos1.blogger.com/blogger/404/1863/320/baby_boy_playing_teacher.jpg" border="0" /&gt;If you are a parent and looking after your child, you do what's best for that child. Sometimes that means making the child sad and allowing him/her to cry for a minute, sometimes it means depriving yourself of things you 'want' but by doing so it allows you to give the child things it 'needs'. Every good parent does what is best for the child, sometimes this inolves looking at the long term benefits. Teaching a child to be a good, respectful human and endowing the child with good morale values is something every good parent can do. They do not do this for personal gain but for the greater good. I believe most parents don't teach their child these values so that the chlid can look after the parent, but do it because the parent believes in what they teach, they have faith in doing what is right, being a good person and helping (most) people in need.&lt;br /&gt;In this case the child is the audience and the parent does what is in the best (long term?) interest of the child. This is not necessarily what is best for the parent and not necessarily what the parent would want (presents, gifts).&lt;br /&gt;&lt;br /&gt;&lt;img style="FLOAT: right; MARGIN: 0px 0px 10px 10px" alt="Picture from: http://www.riograndefilm.com/" src="http://photos1.blogger.com/blogger/404/1863/320/camera_new_movie.gif" border="0" /&gt;When one makes a film, one must look at the target audience. Are you making a drama? An action film? A comedy, what type of jokes/humour will you use? Whatever film it is, the film will be customized and built around the target audience. There is usually no point in using action film techniques (CG 3d special effects, pyrotechnics (explosions, etc.), fast paced action edits if you are making solely a comedy type film, unless you are making an action/comedy.&lt;br /&gt;From what I know &lt;strong&gt;some of the most successful directors make films they would enjoy to see&lt;/strong&gt;. I've heard the same principle applied to games development. That being the case, the success or failure of a game (at least from a small company) is down to the person/people that is the creative genius pushing their ideas forward and going with their 'gut instinct'. Ultimately making something that they would like to play.&lt;br /&gt;&lt;br /&gt;When at work there are different types of people. There are those that are straight forward, decent, honest people who can sometimes be odd but who are the same no matter what the circumstances. Then there are those that change what they say depending on who they are around, this is usually so that the other party can understand what they are saying better, in effect putting their ideas in terms the other party will understand. Then there are people who say one thing to your face and act totally differently when you're not around, should you make friends with one of those people you wouldn't know which face is truly theirs. They seem unable or at least unwilling to just be themseleves. They can be so caught up in the need to satify others and fit-in that they may well have forgotten who they truly are.&lt;br /&gt;&lt;br /&gt;A game designer can not use solely logic to make a decision. They must use their true emotions, beliefs, creativity and experience in the field. This being the case, surely they aren't able to be two faced people, as they must be true to themselves to be able to express their inner most emotions towards the game. If they were the only creative 'push' behind the game, making the big design decisions, then that game would have a lot of that person in it, just like a music artists' music has a lot of them in it.&lt;br /&gt;&lt;br /&gt;So how does a games designer make a decision? The answer depends on the designer, and only experience can say how much of their personality they should put in it. After all how do most people buy presents for someone, they take the point of view, if I like it, then they should too!&lt;br /&gt;&lt;br /&gt;If I like the game, and I enjoy playing it, then others should also.&lt;br /&gt;&lt;br /&gt;Of course the end result (sales) says how much other people like that games designers' personality and surveys narrow it down, to say what they like or don't like. This is then the experience that tells the designer how much of their personality they should pour into a game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113432392500145820?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113432392500145820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113432392500145820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113432392500145820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113432392500145820'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/how-to-choose.html' title='How to choose'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113415490584153903</id><published>2005-12-09T17:54:00.000Z</published><updated>2005-12-10T02:54:23.333Z</updated><title type='text'>Quake 4</title><content type='html'>I got to play Quake 4 the other day. It's well made, better than Doom3. I thought the levels were better, the lighting is certainly better thought out, they actually use shadows to make it a little scarrier. The classic joke of a small enemy making a big spooky shadow appears, it's not until you get closer that you realise!&lt;br /&gt;&lt;br /&gt;It's a dark (mood) gorry game, but not too much, in my opinion. There are blood stained floors, after a monster has dragged a fellow companion away, which you just so happened to be in time to see, but too late to do anything about! Then there are dead soldiers littering the levels. Some are nailed to the wall or in contraptions being electrocuted with a thunder bolt type gun, which you later pick up. Some humans are in mechanical contraptions with their limbs chopped that make groaning sounds as you approach, some are even headless.&lt;br /&gt;Ok it sounds worse than it actually looks, but It all adds to the atmosphere. Being in enemy territory, the enemy are experimenting on humans or at least trying to convert them to cybernetic "Strogg" drones.&lt;br /&gt;&lt;br /&gt;I quite liked the health revitalisers you have on the wall ( a concept borrowed from Half Life I think). It would be good if I could use this concept also. Perhaps have drones, energy clouds or mini-lightning storms on the wall edge to raise the shields. Perhaps if you have no shields (drained or not turned on) then these things will damage your armour!&lt;br /&gt;In Q4 there are other soldiers that will sometimes accompany you to acheive your objectives. There is a medic that can restore your health, if you ask him and a tech guy who can restore your armour. I liked the idea of such things in medal of honour. In MOH the number of health packs the medic dishes out was restricted, in Q4 it doesn't seem to be, although it is only available while the guy is still alive! Also in MOH you couldn't shoot while being 'repaired' by the medic, so you had to pick the right time to ask for his help.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113415490584153903?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113415490584153903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113415490584153903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113415490584153903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113415490584153903'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/quake-4.html' title='Quake 4'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113400600015341134</id><published>2005-12-08T23:11:00.000Z</published><updated>2005-12-08T23:11:13.363Z</updated><title type='text'>update - fx files again</title><content type='html'>A quick search on goolge revealed this site: &lt;a href="http://www.microsoft.com/japan/msdn/directx/japan/dx9/hlsl3.asp"&gt;http://www.microsoft.com/japan/msdn/directx/japan/dx9/hlsl3.asp&lt;/a&gt; &lt;span style="font-size:78%;"&gt;[&lt;a href="http://translate.google.com/translate?hl=en&amp;sl=ja&amp;amp;u=http://www.microsoft.com/japan/msdn/directx/japan/dx9/hlsl3.asp&amp;prev=/search%3Fq%3Ddirectx%2BEffect.getParameter%26hl%3Den%26lr%3D"&gt;&lt;span style="color:#3333ff;"&gt;Translated&lt;/span&gt;&lt;/a&gt;]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Of interest is the effect.GetParameterBySemantic(null, "WORLD");&lt;br /&gt;&lt;br /&gt;so it is possible to check up on what variable types there are and then return an&lt;br /&gt;"EffectHandle". Once we have the Effecthandle we can then set the value like so:&lt;br /&gt;---&lt;br /&gt;myEffect.SetValue(hWorld, matWorld)&lt;br /&gt;---&lt;br /&gt;&lt;em&gt;Where hWorld is the EffectHandle returned from the GetParameterBySemantic method&lt;/em&gt;&lt;br /&gt;&lt;em&gt;and matWorld is the value to set, in this case the world matrix&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;So after reading the code on the site I produced a class to hold the effect. I tested the program and guess what happened... my once nice clean space ship just dissapeared!&lt;br /&gt;I ran into this problem before, it's something to do with those parameters I need to set.&lt;br /&gt;Now I know the code before today was working. Luckily for me I keep backups of everyday. So I compared the code and it looked almost the same. Originaly I ran&lt;br /&gt;"MyEffect.CommitChanges()" and I multiplied the matrices differently and set the values a little differently (I found out the parameter type and then got a handle to it).&lt;br /&gt;I basically copied and pasted my old code for settings the values and pasted it into my render routine in my effect class. Then my once nice clean space ship got a lovely coat of gold.&lt;br /&gt;Hoorah, I said quietly.&lt;br /&gt;After a little looking and commenting out, it turned out that, before when I used the WorldViewProj matrix I had set it to Matrix.Identity.&lt;br /&gt;Anyway now it's working.&lt;br /&gt;&lt;br /&gt;So today before it was working I had:&lt;br /&gt;---&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;dim&lt;/span&gt; matWorldViewProj &lt;span style="color:#3333ff;"&gt;As&lt;/span&gt; Matrix&lt;br /&gt;---&lt;br /&gt;and I was using the following to multiply the matrices.:&lt;br /&gt;---&lt;br /&gt;matWorldViewProj = Matrix.Multiply(matWorldViewProj, matWorld)&lt;br /&gt;matWorldViewProj = Matrix.Multiply(matWorldViewProj, matView)&lt;br /&gt;matWorldViewProj = Matrix.Multiply(matWorldViewProj, matProjection)&lt;br /&gt;---&lt;br /&gt;A silly error I guess, multiplying "matWorldViewProj" before it had a value.&lt;br /&gt;&lt;br /&gt;So now the working code that multiplies the matrices is like this:&lt;br /&gt;---&lt;br /&gt;matWorldViewProj = Matrix.Multiply(Matrix.Multiply( _&lt;br /&gt;matWorld, _&lt;br /&gt;matView), _&lt;br /&gt;matProjection)&lt;br /&gt;---&lt;br /&gt;I could've used "dim matWorldViewProj As Matrix = matrix.Identity" to solve it also, but I thought I might as well multiply the matrices this way. This seems to have solved the problem.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/effectflakes.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/320/effectflakes.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This screenshot shows the MetallicFlakes.fx file in action. There looks like there is a refelection as you move the camera around.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I also found this site: &lt;a href="http://www.mvps.org/directx/indexes/direct3d_articles.htm"&gt;http://www.mvps.org/directx/indexes/direct3d_articles.htm&lt;/a&gt;&lt;br /&gt;which has lots of articles, there are a couple that might help with selecting an object in 3d space with the mouse i.e. Ray Picking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113400600015341134?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113400600015341134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113400600015341134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113400600015341134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113400600015341134'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/update-fx-files-again.html' title='update - fx files again'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113395595426291130</id><published>2005-12-08T01:31:00.000Z</published><updated>2005-12-08T20:09:59.086Z</updated><title type='text'>update</title><content type='html'>&lt;p&gt;Task list for today: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:webdings;font-size:130%;color:#009900;"&gt;a&lt;/span&gt; Seperate RenderToSurface code into a seperate class &lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Webdings;font-size:130%;color:#009900;"&gt;&lt;span style="color:#cc0000;"&gt;r&lt;/span&gt; &lt;/span&gt;Add Environment mapping&lt;br /&gt;&lt;em&gt;This task is not a high priority, so I'll do it later when the required items are in place and working&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Webdings;font-size:130%;color:#009900;"&gt;a&lt;/span&gt; Add support for effect files into my DX9_RenderMesh class&lt;br /&gt;&lt;em&gt;Not quite completed, but a working prototype acheieved&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Seperate RenderToSurface code&lt;/em&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I've seperated the RenderToSurface code blocks into a seperate class. This class is give at the end of this blog (Appendix A).&lt;br /&gt;&lt;br /&gt;To create the class one would write:&lt;br /&gt;---&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Create the class, set the pos and size of the surface&lt;/span&gt;&lt;br /&gt;cRts = &lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; DX9_RenderToSurface(160, 120, &lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; Size(160, 120))&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;'setup the view matrix - if this isn't done then, it just uses the current view settings&lt;br /&gt;&lt;/span&gt;cRts .ViewMatrix = Matrix.LookAtLH(&lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; Vector3(0, 2.5, -7), _&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; Vector3(0, 0, 0), &lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; Vector3(0, 1, 0))&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;'change the backcolour from the default DarkBlue&lt;/span&gt;&lt;br /&gt;cRts .BackColour = Color.Green&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;In the Levels PreRender sub I now have:&lt;br /&gt;---&lt;br /&gt;cRts .StartRenderIntoSurface()&lt;br /&gt;Draw(&lt;span style="color:#3333ff;"&gt;True&lt;/span&gt;)&lt;span style="color:#009900;"&gt; '&lt;-- internal to the class&lt;/span&gt;&lt;br /&gt;cRts .EndRenderIntoSurface()&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;This took me about 2 hours to do, I'm now a little bored of programing for the moment, so I'm off to do something different I might go watch a movie or read one of my &lt;a href="http://www.amazon.co.uk/exec/obidos/redirect?link_code=ur2&amp;tag=vbside-21&amp;amp;amp;amp;amp;amp;amp;amp;amp;camp=1634&amp;creative=6738&amp;amp;path=ASIN%2F0575074493%2Fqid%3D1134005301%2Fsr%3D8-1%2Fref%3Dsr_8_xs_ap_i1_xgl"&gt;Rob Grant books&lt;/a&gt;&lt;img style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 0px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" height="1" alt="" src="http://www.assoc-amazon.co.uk/e/ir?t=vbside-21&amp;l=ur2&amp;amp;o=2" width="1" border="0" /&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Add Environment mapping&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;I decided not to do this today. I've added the task to my to do list, but I made it a medium priority as it's not vital for the basic functionality of the game.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Add support for effect files&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;I've got the effect files working. From looking at other code it originally looked like it would be fairly easy to implement. However the need to set values for items in the fx file such as time, WorldView or WorldViewProjection, which is those matrices multiplied together, made it difficult at first.&lt;/p&gt;&lt;p&gt;multipying the matrices like this works:&lt;/p&gt;&lt;p&gt;---&lt;br /&gt;worldViewProj = Matrix.Multiply(worldViewProj, mW)&lt;br /&gt;worldViewProj = Matrix.Multiply(worldViewProj, mV)&lt;br /&gt;worldViewProj = Matrix.Multiply(worldViewProj, mP)&lt;br /&gt;---&lt;/p&gt;&lt;p&gt;However the following will not:&lt;/p&gt;&lt;p&gt;---&lt;br /&gt;worldViewProj = Matrix.Multiply( mW, worldViewProj)&lt;br /&gt;worldViewProj = Matrix.Multiply( mV, worldViewProj)&lt;br /&gt;worldViewProj = Matrix.Multiply( mP, worldViewProj)&lt;br /&gt;---&lt;/p&gt;&lt;p&gt;At the moment before I render my mesh I'm having to set the "effect values" and then begin the effect. This is obviously not a good way to do it, because the "effect values" will change depending on the effect being used.&lt;br /&gt;e.g. The glow.fx requires "WorldView" and "Projection" variables to be set whereas the simple.fx requires "WorldViewProj" to be set.&lt;/p&gt;&lt;p&gt;At the moment I'm thinking I rather:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Seperate out the effect into a seperate class&lt;/li&gt;&lt;li&gt;Just set these values once when the effect is created and trap errors, errors are thrown when one tries to set the value of a variable that doesn't exist in an effect file. However that wouldn't work for all effects, as some need the "time" variable to be constanly changing.&lt;/li&gt;&lt;li&gt;Find a way to detect what type the variables are (PROJECTION, WORLD, VIEW WORLDVIEW, WORLDVIEWPROJECTION, TIME, etc)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Effects can apply their effect to a mesh using different techniques. The reason being, that some cards won't support certain features and so one can choose the effects' technique most suited to a particular card. At the moment I'm setting the effect technique to use manually, by specifying it in a string. I'm not concerned about this yet because I know there is a way to get the first technique in the file, but I can't remember what the call is. I think I read it on the &lt;a href="www.toymaker.info/"&gt;ToyMaker &lt;/a&gt;site somewhere, I just need to read the pages again.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Before the effect was implemented&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/noeffect.0.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/320/noeffect.1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After the glow.fx  effect was implemented&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/effect.0.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/320/effect.0.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Appendix A&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;My DX9_RenderToSurface Class - handles drawing to a surface&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Imports Microsoft.DirectX&lt;br /&gt;Imports Microsoft.DirectX.Direct3D&lt;br /&gt;'at the moment this class is dependant on the DX9_Sprite&lt;br /&gt;' it may be good to cut this class out, and have the DX9_RenderToSurface class&lt;br /&gt;' handle the sprite rendering that way it's all contained.&lt;br /&gt;Public Class DX9_RenderToSurface&lt;br /&gt;'Render to surface vars&lt;br /&gt;Private RenderSurfaceSize As Size '= New Size(160, 120)&lt;br /&gt;Private renderTexture As Texture = Nothing&lt;br /&gt;Private rts As RenderToSurface = Nothing&lt;br /&gt;Private renderSurface As Surface = Nothing&lt;br /&gt;Private spriteSurfaceToRender As DX9_Sprite&lt;br /&gt;Private SurfacePosition As Point&lt;br /&gt;#Region "Public Properties"&lt;br /&gt;Public Active As Boolean = True&lt;br /&gt;Public ProjectionMatrix As Matrix = Nothing&lt;br /&gt;Public ViewMatrix As Matrix = Nothing&lt;br /&gt;Public BackColour As Drawing.Color = Color.DarkBlue&lt;br /&gt;Public ReadOnly Property Texture() As Texture&lt;br /&gt;Get&lt;br /&gt;Return renderTexture&lt;br /&gt;End Get&lt;br /&gt;End Property&lt;br /&gt;Public Property X() As Single&lt;br /&gt;Get&lt;br /&gt;Return SurfacePosition.X&lt;br /&gt;End Get&lt;br /&gt;Set(ByVal Value As Single)&lt;br /&gt;SurfacePosition.X = Value&lt;br /&gt;End Set&lt;br /&gt;End Property&lt;br /&gt;Public Property Y() As Single&lt;br /&gt;Get&lt;br /&gt;Return SurfacePosition.Y&lt;br /&gt;End Get&lt;br /&gt;Set(ByVal Value As Single)&lt;br /&gt;SurfacePosition.Y = Value&lt;br /&gt;End Set&lt;br /&gt;End Property&lt;br /&gt;Public Property Width() As Single&lt;br /&gt;Get&lt;br /&gt;Return RenderSurfaceSize.Width()&lt;br /&gt;End Get&lt;br /&gt;Set(ByVal Value As Single)&lt;br /&gt;RenderSurfaceSize.Width = Value&lt;br /&gt;'recreate the surfaces&lt;br /&gt;InitSurfaces()&lt;br /&gt;End Set&lt;br /&gt;End Property&lt;br /&gt;Public Property Height() As Single&lt;br /&gt;Get&lt;br /&gt;Return RenderSurfaceSize.Height()&lt;br /&gt;End Get&lt;br /&gt;Set(ByVal Value As Single)&lt;br /&gt;RenderSurfaceSize.Height = Value&lt;br /&gt;'recreate the surfaces&lt;br /&gt;InitSurfaces()&lt;br /&gt;End Set&lt;br /&gt;End Property&lt;br /&gt;#End Region&lt;br /&gt;'Setting the ViewMatrix or ProjectionMatrix to Matrix.identity will&lt;br /&gt;' cause them not to be set during render, i.e. it will use the current&lt;br /&gt;' View and Projection settings.&lt;br /&gt;Public Sub New(ByVal x As Single, ByVal y As Single, ByVal SurfaceSize As Drawing.Size)&lt;br /&gt;RenderSurfaceSize = New Size(SurfaceSize.Width, SurfaceSize.Height)&lt;br /&gt;SurfacePosition = New Point(x, y)&lt;br /&gt;InitSurfaces()&lt;br /&gt;'&lt;br /&gt;'default matrices&lt;br /&gt;ProjectionMatrix = Matrix.Identity&lt;br /&gt;ViewMatrix = Matrix.Identity&lt;br /&gt;End Sub&lt;br /&gt;Sub InitSurfaces()&lt;br /&gt;'create surface to render into&lt;br /&gt;rts = New RenderToSurface(d3dDevice, RenderSurfaceSize.Width, RenderSurfaceSize.Height, _&lt;br /&gt;Format.X8R8G8B8, True, DepthFormat.D16)&lt;br /&gt;renderTexture = New Texture(d3dDevice, RenderSurfaceSize.Width, RenderSurfaceSize.Height, 1, _&lt;br /&gt;Usage.RenderTarget, Format.X8R8G8B8, Pool.Default)&lt;br /&gt;renderSurface = renderTexture.GetSurfaceLevel(0)&lt;br /&gt;&lt;br /&gt;If Not spriteSurfaceToRender Is Nothing Then spriteSurfaceToRender.Dispose()&lt;br /&gt;spriteSurfaceToRender = New DX9_Sprite(renderTexture, New Vector2(SurfacePosition.X, SurfacePosition.Y), RenderSurfaceSize)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;'These will render the scene to a surface.&lt;br /&gt;' The actual rendering of the scene must be done by another class&lt;br /&gt;#Region "StartRenderIntoSurface, EndRenderIntoSurface"&lt;br /&gt;'This sub will begin the rendering to a surface, after this sub&lt;br /&gt;' finishes, the calling class will have to render the scene&lt;br /&gt;' and then cal EndRenderIntoSurface to finish it off.&lt;br /&gt;Public Sub StartRenderIntoSurface()&lt;br /&gt;If Not Active Then Exit Sub&lt;br /&gt;' Render to this surface&lt;br /&gt;Dim view As Viewport = New Viewport()&lt;br /&gt;view.Width = RenderSurfaceSize.Width&lt;br /&gt;view.Height = RenderSurfaceSize.Height&lt;br /&gt;view.MaxZ = 1.0F&lt;br /&gt;rts.BeginScene(renderSurface, view)&lt;br /&gt;'clear&lt;br /&gt;d3dDevice.Clear(ClearFlags.Target Or ClearFlags.ZBuffer, BackColour, 1.0F, 0)&lt;br /&gt;'setup the view&lt;br /&gt;If Not ProjectionMatrix.Equals(ProjectionMatrix.Identity) Then d3dDevice.Transform.Projection = ProjectionMatrix&lt;br /&gt;If Not ViewMatrix.Equals(ViewMatrix.Identity) Then d3dDevice.Transform.View = ViewMatrix&lt;br /&gt;End Sub&lt;br /&gt;Public Sub EndRenderIntoSurface()&lt;br /&gt;If Not Active Then Exit Sub&lt;br /&gt;rts.EndScene(Filter.None)&lt;br /&gt;End Sub&lt;br /&gt;#End Region&lt;br /&gt;'This renders the textured surface (sprite) to the screen&lt;br /&gt;Public Sub RenderSurfaceToScreen()&lt;br /&gt;If Not Active Then Exit Sub&lt;br /&gt;'todo:record renderstate before changing&lt;br /&gt;d3dDevice.RenderState.AlphaBlendEnable = False&lt;br /&gt;spriteSurfaceToRender.Render()&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;'The all important Dispose method.&lt;br /&gt;Public Sub Dispose()&lt;br /&gt;renderTexture.Dispose()&lt;br /&gt;rts.Dispose()&lt;br /&gt;renderSurface.Dispose()&lt;br /&gt;spriteSurfaceToRender.Dispose()&lt;br /&gt;End Sub&lt;br /&gt;End Class&lt;/span&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113395595426291130?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113395595426291130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113395595426291130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113395595426291130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113395595426291130'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/update_08.html' title='update'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113274457676484777</id><published>2005-12-07T21:10:00.000Z</published><updated>2005-12-10T01:57:42.386Z</updated><title type='text'>To Do</title><content type='html'>This is my updated, prioritised to-do list.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;Items in the priority section are not in any order.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;color:#000099;"&gt;&lt;strong&gt;High - Must Have&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Webdings;font-size:130%;color:#33cc00;"&gt;a&lt;/span&gt;Ability to move from one Level to another&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Beginning Levels should be short, and get progressively harder and longer&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Ability to show a story line either via pre-rendered videos or by using the engines DX generated 3d characters.&lt;br /&gt;If using pre-rendered videos, it maybe worth making it an optional download, as the videos could end up being 30MB or so.&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:webdings;font-size:130%;color:#33cc00;"&gt;a&lt;/span&gt;Particle Explosions&lt;/li&gt;&lt;li&gt;Save and Load game progress&lt;/li&gt;&lt;li&gt;Raster Pictures:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Backgrounds - Level, Menu&lt;/li&gt;&lt;li&gt;Level loading&lt;/li&gt;&lt;li&gt;End level - Completed, died&lt;/li&gt;&lt;li&gt;Intro/Splash screen&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;3D Meshes - Create or find some free ones&lt;/li&gt;&lt;li&gt;Sounds - sound effects and/or voices&lt;/li&gt;&lt;li&gt;Music&lt;/li&gt;&lt;li&gt;Resource Manager - to hold and load meshes, textures, sounds, music, etc.&lt;br /&gt;(Updated 7/Dec/05)&lt;/li&gt;&lt;li&gt;Rendering (Updated 7/Dec/05)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:webdings;font-size:130%;color:#33cc00;"&gt;a&lt;/span&gt; Lights - Number limited by cards capabilities&lt;/li&gt;&lt;li&gt;Effect files - vertex and pixel shaders&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;color:#000099;"&gt;&lt;strong&gt;Medium - Would be Good&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;A pluggable architecture. Allow the additions of extra (3rd party?) weapons, upgrades, particle systems, levels and other features such as expansion packs.&lt;br /&gt;I really would like two versions of the game, one semi-realistic looking and one cartoon looking complete with the Smack and whallop star shaped onomatopoeia explosions and comic style story.&lt;br /&gt;* A useful plugin would be to allow scripts to be run, if not just for the cinematics. Perhaps even make this fundamental to the internals of the game?&lt;br /&gt;I've read that reflection can be slow when used in the game loop. So need to measure speed before implementing the plugin architecture(dynamic loading of assemblies) and after to see how much of a performance loss the plugins cause.&lt;br /&gt;(Updated 7/Dec/05)&lt;/li&gt;&lt;li&gt;Online updates - Allow the program to download updates.&lt;/li&gt;&lt;li&gt;Multiplayer - via a LAN or internet&lt;/li&gt;&lt;li&gt;Animated 3d meshes - This is trickier to do so I might leave it until version 2 or make it an upgrade at a later date.&lt;/li&gt;&lt;li&gt;Physics engine - so players ship could have a grapling hook/tractor beam and drag enemy ships around. Accomodate for ships being dragged into a black hole or at least dragged slowly, like a magnet.&lt;/li&gt;&lt;li&gt;&lt;em&gt;Possible &lt;/em&gt;Pre rendered animations (AVI, WMV)- Player Died, upgrade received, medal received, players face during combat, introduction and story&lt;/li&gt;&lt;li&gt;Rendering (Updated 9/Dec/05)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Bunp Mapping&lt;/li&gt;&lt;li&gt;Environment maps&lt;/li&gt;&lt;li&gt;Shadows - hard line shadows to begin (shadow volumes) , with Soft Shadows (Shadow Mapping) later on. The game won't really have any major need for shadows, so this isn't a high prioority, perhaps not even a medium.&lt;/li&gt;&lt;li&gt;Progressive meshes - Level of detail changes depending on how far away mesh is from the camera&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;color:#000099;"&gt;&lt;strong&gt;Low - Would be nice&lt;/strong&gt;&lt;/span&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;User Level editor - A level editor an end user could use&lt;/li&gt;&lt;li&gt;Story editor - Allow the user to make their own stories and then package it up with their levels to effectively make their own Expansion Pack for the whole world to enjoy&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113274457676484777?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113274457676484777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113274457676484777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113274457676484777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113274457676484777'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/to-do.html' title='To Do'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113391823082208560</id><published>2005-12-07T01:42:00.000Z</published><updated>2005-12-08T19:44:19.716Z</updated><title type='text'>Render to Surface/Texture</title><content type='html'>A&lt;a href="www.gold-code.co.uk"&gt;CarPC project &lt;/a&gt;but, understandably, he was too busy at the time. I think I have enough confidence in DirectX now to create a pretty 3d interface for the CarPC. Perhaps if I have time I might have a quick go, although I'm not entirely sure at the moment what I want the final look to be.The program has only had 500 downloads since June 2005 and besides it's not as if I can use it, as i've got no car!&lt;br /&gt;&lt;br /&gt;Since August I've been trying to learn DirectX and my long time friend above recommended a book to me, it's the only book I've bought on DirectX: &lt;a href="http://www.amazon.co.uk/exec/obidos/redirect?link_code=ur2&amp;tag=vbside-21&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;camp=1634&amp;creative=6738&amp;amp;path=ASIN%2F0672325969%2Fqid%3D1133917135%2Fsr%3D8-1%2Fref%3Dsr_8_xs_ap_i1_xgl"&gt;Managed DirectX 9 (Kick Start)&lt;/a&gt;&lt;img style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 0px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" height="1" alt="" src="http://www.assoc-amazon.co.uk/e/ir?t=vbside-21&amp;l=ur2&amp;amp;o=2" width="1" border="0" /&gt; by Tom Miller. I've not read it fully yet, I've only been using as a reference.&lt;br /&gt;&lt;br /&gt;Rather than read a book and then code, I prefer to just dive straight in and see where I end up. If I run into any problems or I want to know how to do something, then I'll look it up. After all why read the manual on how to program a VCR when you can play with the buttons and figure it out. After all these items "should" be designed to be (relatively) intuitive and if they're not then perhaps one needs to think like the creator and have a logical engineering style mind, either way I should be ok!&lt;br /&gt;&lt;br /&gt;A couple of days ago I implemented a feature to render the scene to a texture. It was quite simple to acheive. Hopefully this will mean I can later manipulate that texture, a blur effect or some other filter. It will mean I can show a different view of the battle in the corner of the screen, like a rear view mirror in a driving game.&lt;br /&gt;A question does crop up in my mind, will this be of some real benefit to the user, or have I just added it to demonstrate what can be done in directx?&lt;br /&gt;Well if I can apply filters then it will be of benefit, as the game will look more pleasurable, however if it's just the "rear view" then it may not be of much use in this game. Having this extra camera view might be of some use when the player dies, we could focus/zoom in on the enemy that killed the player, or if a missile was launched we could use this extra camera view to show the missile as it moves to it's target.&lt;br /&gt;&lt;br /&gt;I've not posted any code yet in this blog, mostly because my code tends to link around to different classes and occasionally calls methods in public modules, plus it doesn't look to good in plain black and white!&lt;br /&gt;&lt;br /&gt;So here's how I did it.&lt;br /&gt;First thing to do was to declare some variables:&lt;br /&gt;---&lt;br /&gt;&lt;span style="color:#009900;"&gt;'Render to surface vars&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Private&lt;/span&gt; RenderSurfaceSize As Size = &lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; Size(64, 48) &lt;span style="color:#009900;"&gt;'size of the texture to be drawn&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Private&lt;/span&gt; renderTexture &lt;span style="color:#3333ff;"&gt;As&lt;/span&gt; Texture = &lt;span style="color:#3366ff;"&gt;&lt;span style="color:#3333ff;"&gt;Nothing&lt;/span&gt; &lt;/span&gt;&lt;span style="color:#009900;"&gt;'texture to hold the rendered scene&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;Private&lt;/span&gt; bRenderIntoASurface &lt;span style="color:#3333ff;"&gt;As Boolean&lt;/span&gt; = &lt;span style="color:#3333ff;"&gt;True&lt;/span&gt; '&lt;span style="color:#009900;"&gt;are we going to render it? &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Private&lt;/span&gt; rts &lt;span style="color:#3333ff;"&gt;As&lt;/span&gt; RenderToSurface = &lt;span style="color:#3333ff;"&gt;Nothing&lt;/span&gt; &lt;span style="color:#009900;"&gt;'the render to surface object&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Private&lt;/span&gt; renderSurface &lt;span style="color:#3333ff;"&gt;As&lt;/span&gt; Surface = &lt;span style="color:#3333ff;"&gt;Nothing&lt;/span&gt; &lt;span style="color:#009900;"&gt;'the surface rts will use&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Private&lt;/span&gt; spriteSurfaceToRender &lt;span style="color:#3333ff;"&gt;As&lt;/span&gt; DX9_Sprite &lt;span style="color:#009900;"&gt;' the sprite that will handle the drawing of the texture onto the screen&lt;/span&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;DX9_Sprite is a custom class of mine, it basically just wraps up the Direct3D.Sprite object. Sets the size, position and loads the texture.&lt;br /&gt;&lt;br /&gt;I have a routine that initialises directx stuff, this is called when the device is reset (OnDeviceReset event). Into this, the following code was added:&lt;br /&gt;---&lt;br /&gt;&lt;span style="color:#009900;"&gt;'create surface to render into&lt;/span&gt;&lt;br /&gt;rts = &lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; RenderToSurface(d3dDevice, RenderSurfaceSize.Width, RenderSurfaceSize.Height, _&lt;br /&gt;Format.X8R8G8B8, &lt;span style="color:#3333ff;"&gt;True&lt;/span&gt;, DepthFormat.D16)&lt;br /&gt;&lt;br /&gt;renderTexture = &lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; Texture(d3dDevice, RenderSurfaceSize.Width, RenderSurfaceSize.Height, 1, _&lt;br /&gt;Usage.RenderTarget, Format.X8R8G8B8, Pool.Default)&lt;br /&gt;&lt;br /&gt;renderSurface = renderTexture.GetSurfaceLevel(0)&lt;br /&gt;&lt;br /&gt;spriteSurfaceToRender = &lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; DX9_Sprite(renderTexture, &lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; Vector2(0, 0), &lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; Size(RenderSurfaceSize.Width, RenderSurfaceSize.Height))&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;So I can now tell if we want to render this surface by checking the bRenderIntoASurface var. I can tell what size, I have surfaces and a texture as well as a sprite to render the final texture output to the screen.&lt;br /&gt;I then proceeded to add the routine that would actually render to a surface. This code is basically from the books mentioned above.&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Sub&lt;/span&gt; RenderIntoSurface()&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;' Render to this surface&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Dim&lt;/span&gt; view &lt;span style="color:#3333ff;"&gt;As&lt;/span&gt; Viewport = &lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; Viewport()&lt;br /&gt;view.Width = RenderSurfaceSize.Width&lt;br /&gt;view.Height = RenderSurfaceSize.Height&lt;br /&gt;view.MaxZ = 1.0F&lt;br /&gt;&lt;br /&gt;rts.BeginScene(renderSurface, view)&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;'clear&lt;/span&gt;&lt;br /&gt;d3dDevice.Clear(ClearFlags.Target &lt;span style="color:#3333ff;"&gt;Or&lt;/span&gt; ClearFlags.ZBuffer, Color.DarkBlue, 1.0F, 0)&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#009900;"&gt;'setup the view&lt;/span&gt;&lt;br /&gt;d3dDevice.Transform.Projection = Matrix.PerspectiveFovLH(Math.PI / 4, _&lt;br /&gt;cEngine.ScreenWidth / cEngine.ScreenHeight, 1.0F, 10000.0F)&lt;br /&gt;d3dDevice.Transform.View = Matrix.LookAtLH(&lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; Vector3(0, 0, -7.0F), _&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; Vector3(), &lt;span style="color:#3333ff;"&gt;New&lt;/span&gt; Vector3(0, 1, 0))&lt;br /&gt;&lt;br /&gt;Render() &lt;span style="color:#009900;"&gt;'renders a single frame&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;rts.EndScene(Filter.None)&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;End Sub&lt;/span&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;Render() is a method that will call the render method for whatever "scene"/state (game, menu, splash) is currently active. In essence this just renders the scene for a single frame. At the moment the problem with this, is that the d3dDevice view and projection lines above are just ignored as the Render method will overwrite them and set them to whatever the camera class specifies. So I need to sort that out.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For testing purposes I just added the code into my render loop, so I now have the following code:&lt;br /&gt;---&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;If&lt;/span&gt; bRenderIntoASurface &lt;span style="color:#3333ff;"&gt;Then&lt;/span&gt; RenderIntoSurface() &lt;span style="color:#009900;"&gt;'This will crete the surface&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;cEngine.BeginRender(&lt;span style="color:#3333ff;"&gt;Not&lt;/span&gt; bUseblur)&lt;span style="color:#009900;"&gt; ' Begin the DirectX part of the rendering&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Render() &lt;span style="color:#009900;"&gt;' Render the graphics&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;If&lt;/span&gt; bRenderIntoASurface &lt;span style="color:#3333ff;"&gt;Then&lt;/span&gt;&lt;br /&gt;d3dDevice.RenderState.AlphaBlendEnable = &lt;span style="color:#3333ff;"&gt;False&lt;/span&gt;&lt;br /&gt;spriteSurfaceToRender.Render() &lt;span style="color:#009900;"&gt;'This will actually render the surface to the screen&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;End If&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;cEngine.EndRender() &lt;span style="color:#009900;"&gt;' End the DirectX part of the rendering and present the scene&lt;/span&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;cEngine.BeginRender calls the Direct3dDevice "Clear" and "BeginScene" methods.&lt;br /&gt;As you can see the "RenderIntoSurface" method is called before cEngine.BeginRender.&lt;br /&gt;&lt;br /&gt;That is pretty much all it took. Now I know the code works I have to extract the code and inject it into a seperate class. That way I can have my level show the "rear view" but the main menu won't!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Update: I've now moved the code into my Level class and fixed the few issues, only took about an hour! The following is the effect the render to surface technique produces:&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/game.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/320/game.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;If I move the main camera around, the render to surface view in the top left is static to whatever I set it to, so the main view changes but the render to surface view doesn't.&lt;br /&gt;&lt;br /&gt;I had to add a prerender sub to my render loop. I also modified the Draw routine - it's now&lt;br /&gt;"Sub Draw(Optional ByVal ISPreRender As Boolean = False)"- to check if its being called for a prerender (i.e. being called to render the scene to a texture), if it isn't a prerender it will update the cameras view and projection and render the prerendered sprite otherwise it won't.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113391823082208560?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113391823082208560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113391823082208560' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113391823082208560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113391823082208560'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/render-to-surfacetexture.html' title='Render to Surface/Texture'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113390035535633579</id><published>2005-12-06T22:11:00.000Z</published><updated>2005-12-06T22:43:18.230Z</updated><title type='text'>update</title><content type='html'>I found a some well written articles today on a site: &lt;a href="http://www.toymaker.info/Games/html/picking.html"&gt;http://www.toymaker.info/Games/html/picking.html&lt;/a&gt; . I thought the whole site was well written. I read the shader and effect articles and came away with a decent understanding of where the pixel and vertex shaders fit it in. I must include support for effect files - I should add that to my todo list.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/"&gt;Channel 9 &lt;/a&gt;has some great videos on it. Some are well worth a view.&lt;br /&gt;&lt;br /&gt;I also found the &lt;a href="http://www.thezbuffer.com/categories/blogs.aspx"&gt;theZbuffer &lt;/a&gt;, which has (amongst other things) a blog list of developers working on managed code. Basically the whole site is geared towards programmers developing with managed Directx. There is soo much to read there.&lt;br /&gt;&lt;br /&gt;I read a blog today (&lt;a href="http://gpxgame.blogspot.com/"&gt;http://gpxgame.blogspot.com/&lt;/a&gt;) last updated on the 22nd May 2005. Looks like he may have abandoned his plans of creating an engine. An interesting note is that he's set a milestone which he wishes to achieve.&lt;br /&gt;Milestone 1:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Simple Engine Managment - Windowed/fullscreen/D3D Device. &lt;/li&gt;&lt;li&gt;State System - Each "view" of the game will be a state. e.g. Intro, Credits, Menu, Level. &lt;/li&gt;&lt;li&gt;Event System - For controlling state changes etc. &lt;/li&gt;&lt;li&gt;Rendering System - For rendering and updating the scene objects. &lt;/li&gt;&lt;li&gt;Input Control - keyboard only. &lt;/li&gt;&lt;li&gt;Scene Object System - Simple meshes and sprites (nowhere near the final version). &lt;/li&gt;&lt;li&gt;Resource Manager - Meshes and Textures. &lt;/li&gt;&lt;li&gt;Some kind of demo.&lt;/li&gt;&lt;/ul&gt;I thought it might be helpful for me to compare my efforts over the past month or two with this milestone, to give me a better idea of where I am. So far I've accomplished all the items on that list in some shape or other except Resource Management. That certainly made me feel a little better. I just hope I actualy get something produced and not abandon the project. Perhaps it's time to set my own milestone, so that I have something to work towards? The problem with a task list is being able to break it all down, that takes experience and since I've never used DirectX before, experience isn't something I have an abundance of!&lt;br /&gt;&lt;br /&gt;As they say, when you're programming the last 10% of the program takes 90% of the time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113390035535633579?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113390035535633579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113390035535633579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113390035535633579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113390035535633579'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/update.html' title='update'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113361460184518827</id><published>2005-12-06T11:42:00.000Z</published><updated>2005-12-06T22:19:45.283Z</updated><title type='text'>Scripting to use?</title><content type='html'>There are a few roads that one can go down to integrate scripting into a .net application.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;VSA - Visual Studio for Applications &lt;/li&gt;&lt;ul&gt;&lt;li&gt;No SDK that I can find&lt;/li&gt;&lt;li&gt;This was &lt;a href="http://www.codeproject.com/csharp/VsaScripting.asp?df=100&amp;forumid=157775&amp;amp;select=1251815#xx1054428xx"&gt;discontinued &lt;/a&gt;in 2003 and will probably be replaced by Visual Studio Tools for Applications &lt;/li&gt;&lt;li&gt;Reports of memory leaks which are probably due to the inability to unload assemblies, hopefully this would not affect my application. A possible solution would be to load the assembly into its own AppDomain and unload that.&lt;/li&gt;&lt;li&gt;Requires about 300 lines of code for the class to manage the VSA scripting engine. &lt;/li&gt;&lt;li&gt;Couldn't add a textbox for the script engine to use. Classes seemed to pass along fine though.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;LUA - &lt;a href="http://www.lua.org/"&gt;http://www.lua.org/&lt;/a&gt; and Lua Interface for .NET - &lt;a href="http://luaforge.net/projects/luainterface/"&gt;http://luaforge.net/projects/luainterface/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Microsoft Script Control &lt;ul&gt;&lt;li&gt;Widely supported&lt;/li&gt;&lt;li&gt;Uses an ActiveX control. So this would need to be installed - overhead&lt;/li&gt;&lt;li&gt;Very little code require to use&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;WebService &lt;/li&gt;&lt;ul&gt;&lt;li&gt;Can be slow unless asynchronous&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Python - Perhaps overkill for such a small application.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcodedomcompilercodedomproviderclasstopic.asp" target="_blank"&gt;CSharpCodeProvider&lt;/a&gt; - The DX 9c SDK has a sample that demonstrates scripting to move an object. The scripts are normal cs files. The example also sets Permissions so "bad" scripts can't be run. The codeProvider is certainly something that need looking deeper into.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;From what little research I've done, it looks like the MS Script control would be the best way to go, especially if I'll be adding the ability to add plug-ins (i.e. dynamically load assemblies) at a later date.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Scripts Purpose&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I did see a mention on the &lt;a href="http://exdream.dyn.ee/blog/PermaLink.aspx?guid=2d4ed465-89f4-4549-bed5-6d74033c1e0a"&gt;exDream blog &lt;/a&gt;that he used &lt;a href="http://www.lua.inf.puc-rio.br/luanet/"&gt;Lua &lt;/a&gt;and c# to create the effets. So it is possible to achieve some good results with Lua.&lt;br /&gt;Scripts could be used for debugging and cheating. It would be simple to change or modify game values such as health or weapons damage. It could also be used to decide how the particle effects are generated.&lt;br /&gt;The cinematics could be created and layed out with the scripts. So in essence the scripts choreograph the cinematics dictating what to draw, what sound files to play and what lighting to use, as well as the animations and movement of objects.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113361460184518827?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113361460184518827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113361460184518827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113361460184518827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113361460184518827'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/scripting-to-use.html' title='Scripting to use?'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113259237718517508</id><published>2005-12-05T19:20:00.000Z</published><updated>2005-12-05T19:30:15.630Z</updated><title type='text'>Design Decisions</title><content type='html'>&lt;div align="center"&gt;&lt;span style="font-family:verdana;font-size:130%;color:#000099;"&gt;&lt;strong&gt;Design Decisions&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;This is an updated list of all the design decisions that need to be made. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Arial;"&gt;&lt;strong&gt;The Boss Level&lt;/strong&gt; ~ Should this be an actual big boss with lots of guns and whistles or should the level have lots of small/normal enemies but with some game play restrictions. Restrictions could include: no shields, No extra weapons, no missiles, time limit, game speed change (faster), blur or movement restricted or a speed limit so your ship is slow to move.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;"&gt;&lt;strong&gt;Game modes&lt;/strong&gt; ~ A quick skirmish mode where add-ons, bonuses and upgrades are dropped from destroyed ships and / or a career mode where upgrades must be bought and the game follows a story line.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;"&gt;&lt;strong&gt;Scroll Type &lt;/strong&gt;~ Should the space game be a:&lt;br /&gt;* Left to right scrolller - Like R-Type&lt;br /&gt;* Bottom to Top scroller - Like Xenon&lt;br /&gt;* A more 3d perspective, facing the back of the ship but allow it to go up the y axis and across the X axis.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;"&gt;&lt;strong&gt;&lt;span style="font-family:webdings;"&gt;&lt;span style="font-size:130%;color:#33cc00;"&gt;a&lt;/span&gt; &lt;/span&gt;Menu system&lt;/strong&gt; ~ Should it be a simple 2d menu or a fancy 3d menu. Must take into consideration the menu will stay loaded into memory.&lt;br /&gt;Perhaps have 2 menus; one &lt;em&gt;&lt;span style="color:#666666;"&gt;in-game menu&lt;/span&gt; &lt;/em&gt;(resume game, end game, Save game, options,etc.) that can be brought up when in the game and another more elaborate &lt;span style="color:#666666;"&gt;&lt;em&gt;main menu&lt;/em&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;em&gt; (start game, options, load game, movies, Quit, etc) which will be loaded and unloaded as required.&lt;br /&gt;&lt;/em&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;Decided&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;Two menus will be used: one 3d Main menu and a lighter 2d in-game menu.&lt;br /&gt;(Updated 2/Dec/05)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;"&gt;&lt;strong&gt;Scripting &lt;/strong&gt;~ Should scripting be implemented from the start? This would allow the mesh objects to have their transformations (size, pos, etc) to be done via script, which would make it easier to change to different meshes. It would also be of great benefit during the cinematics as a script could be written for each one, allowing for easy creation and user exapansion packs. It may also provide some benefit to the computer AI.&lt;br /&gt;Allowing for any plugins or scripting would greatly complicate matters. One would have to consider what objects those classes can see as well as accomodating for how they can interact with each other. It will not be acceptable to expect all plugins to be installed on a pc. What would happen if it's not?&lt;br /&gt;Scripting could be implemented at a later date via a plugin, assuming a plugin architecture is adopted.&lt;br /&gt;(Updated: 2/Dec/05)&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;"&gt;&lt;strong&gt;Story telling&lt;/strong&gt; - How should the story be told? Start at the end and then flashback to the beginning? Break the story into chapters? Have no breaks in the game and just tell the story continuously?&lt;br /&gt;At the moment I'm tending towards having chapters - personal preference. I like the idea of having a summary of your accomplishments and progres at the end of a "section".&lt;br /&gt;(Updated 5/Dec/05)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113259237718517508?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113259237718517508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113259237718517508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113259237718517508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113259237718517508'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/design-decisions.html' title='Design Decisions'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113381075192035901</id><published>2005-12-05T19:15:00.000Z</published><updated>2005-12-05T19:25:53.580Z</updated><title type='text'>Story Telling</title><content type='html'>In single player how should the story be told?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Flashback style&lt;/strong&gt; - Start the game at the last level, make sure the player dies on that level and then when (s)he is dead, backtrack 3yrs to how the player got there.&lt;br /&gt;&lt;em&gt;Like Medal of Honour.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Chapters&lt;/strong&gt; - The game will be broken down, into say 7 chapters/episodes. At the end of each chapter the player will be presented with a section of the story, or a cut-scene, as the game progresses the story will unravel.&lt;br /&gt;&lt;em&gt;Like the original Doom.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Continuous&lt;/strong&gt; - The game will start from the beginning, giving an introduction to set the scene, they will then do some training and the action will begin. Cut-scenes maybe added whenever appropriate or have logs appear at random times for the player to read or hear. Briefings could be carried out while in space, so that seconds later you are thrown back into action or the action may even interrupt your briefings.&lt;br /&gt;&lt;em&gt;A bit like Doom3 in that the story unravel as you go through the game.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113381075192035901?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113381075192035901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113381075192035901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113381075192035901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113381075192035901'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/story-telling.html' title='Story Telling'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113319748119052213</id><published>2005-12-04T16:52:00.000Z</published><updated>2005-12-04T18:49:47.436Z</updated><title type='text'>Concept Art - Hangar</title><content type='html'>This is a possible look for the hangar before launching and after a mission has finished, this will be home. It's a bit scarce at the moment, needs some junk (weapons, spare parts, wires, tubes, tools, maintenance people, fuel, etc) to be lying around and stuff hanging of the walls.&lt;br /&gt;Might be an idea to have the ship look battered if you dock with low health? Or would that be more work to implement than it's worth.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/hangar.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/320/hangar.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;Rendered in GameSpace LT. I'm a little surprised at how good the render is, Caligari has certainly improved the final rendered quality since I used their product (TrueSpace4).&lt;/em&gt;&lt;/span&gt; Obviously it won't be anywhere near to this quality when rendered in my Directx game.&lt;br /&gt;&lt;br /&gt;The Air Lock will exit the game, the blast door will open (it will probably move up) to let the ship fly out, the circle floor will go up to let the ship fly out to battle or down to storage or maintenance.&lt;br /&gt;This space ship is just a quick mockup I tried out to see how easy it is to model with GameSpace. The face count of the ship &lt;em&gt;without&lt;/em&gt; nurbs is 584. The rest of the scene is 116 faces. The reason that is important is because GameSpaceLT will not export an object with more than 650 faces.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113319748119052213?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113319748119052213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113319748119052213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113319748119052213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113319748119052213'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/concept-art-hangar.html' title='Concept Art - Hangar'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113353657599154567</id><published>2005-12-02T14:58:00.000Z</published><updated>2005-12-04T19:05:08.586Z</updated><title type='text'>Scripting</title><content type='html'>I saw a couple of good articles today on adding scripting to a .Net application.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/dotnet/DotNetScript.asp#xx1102472xx"&gt;DotNetScript&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://weblogs.asp.net/rosherove/articles/dotnetscripting.aspx"&gt;WebLogs - DotNet Scripting&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.divil.co.uk/net/articles/plugins/scripting.asp"&gt;Divil - Scripting&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/csharp/VsaScripting.asp"&gt;Code Project - VSA Scripting&lt;/a&gt; &lt;-- Not fully read yet but looks comprehensive&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Not sure how or if I should accomodate for scripting. At the moment this is more of a distraction and not a high priority. I'm thinking about it because, if adopted, it would have useful benefits and make the final application more flexible. It would also affect how I do certain tasks, like the cinematics. It could also mean certain aspects of the game could have hot fixes or at least allow users to customize certain parts.&lt;br /&gt;There is of course certain overhead asociated with scripting, so I need to look at alternatives and see if it's really worth it and where it would really be used. Some tasks would be easy to do with a settings (ini or xml) file. However I beleive cinematics would be easier to create with scripts.&lt;/p&gt;&lt;p&gt;If I do add the ability to use custom written scripts, I'm not sure how easy it is to expose my objects to the methods in those scripts. This is something I'll have to look deeper into and play with, before I can make any decisions.&lt;/p&gt;&lt;p&gt;Perhaps scripting is an "exclusive or" with plugins - one or the other but no need to do both?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113353657599154567?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113353657599154567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113353657599154567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113353657599154567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113353657599154567'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/12/scripting.html' title='Scripting'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113309683513450471</id><published>2005-11-27T21:00:00.000Z</published><updated>2005-11-28T16:52:45.373Z</updated><title type='text'>Concept Art</title><content type='html'>I was looking at some concept art other people have done on Google. There are some amazing designs. Most of mine are done in ten to fifteen minutes while I'm watching TV or waiting for VS to install! The ones on google are so well drawn, the perspective, the ratio, the attention to detail, they even consider the size of a human, then I look at mine, and it's funny! It's like comparing a 10yr olds painting to a true grphic artist/designer. So i'm not sure how insulting it is to me to even publish my concept ideas! But hey that aint gonna stop me I think I'm happiest when I'm a ten yr old!&lt;br /&gt;&lt;br /&gt;These drawings were done when I was installing Visual Studio. Hence the inspiration came from objects around me, from the number 7 and 8 to a mouse.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ship8.jpg"&gt;&lt;/a&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ship7.0.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/320/ship7.0.jpg" border="0" /&gt;&lt;/a&gt; &lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ship8.0.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/320/ship8.0.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;Armadillo or an Earth Drill piece&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ship7.jpg"&gt;&lt;/a&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ship9.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/320/ship9.jpg" border="0" /&gt;&lt;/a&gt; &lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ship10.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/320/ship10.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;The picture on the right started off in the shape of a fish with one eye, the eye being at the top.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ship11.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/320/ship11.jpg" border="0" /&gt;&lt;/a&gt; &lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ship12.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/320/ship12.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ship7.jpg"&gt;&lt;/a&gt;&lt;em&gt;ES sideways and the letter F&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ship13.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/320/ship13.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;Number 8&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113309683513450471?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113309683513450471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113309683513450471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113309683513450471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113309683513450471'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/11/concept-art_27.html' title='Concept Art'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113310940793465924</id><published>2005-11-27T16:35:00.000Z</published><updated>2005-11-27T16:36:47.976Z</updated><title type='text'>Where I currently am</title><content type='html'>I'm now at a cross roads on the edge of the cliff. One road goes down the cliff to a bottomless pit with scary pointy rocks the other goes back and the last way goes forward into the unknown.&lt;br /&gt;It's times like this where I wish I deisnged the program better instead of jumping head first and seeing how much I could do, then again this project did begin as an exercise to see what I could do with DirectX and how easy it is to do it, or at least thats my excuse for the poor design.&lt;br /&gt;&lt;br /&gt;The solution is split into two.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The game and &lt;/li&gt;&lt;li&gt;The Rendering engine&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Ideally I wanted to contain all the directx calls and references into the rendering engine. However due to needing DirectInput to handle what button was pressed and translating 2d into 3d coords I needed IntersectInformation in Direct3dX. I've also used default mesh objects for the weapons which are contained in the mesh class. I've also used the Vector3 and vector2 to hold the postion of the games characters (weapons, ships, bullets, etc). These are all things I've implemented in "The game" and so I was unable to seperate all the Dx calls into the Rendering Engine.&lt;/p&gt;&lt;p&gt;I've not done any UML for a while, but I've tried to draw out the classes and how they are implemented in a class diagram.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/uml.gif"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/320/uml.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Initially I had RenderMesh and MostSimpleMesh in one class, but the memory requirements was high. However each enemy I had on screen contained its own textures, having 20 enemies meant a lot of memory usage. I've now seperated the class into two, RenderMesh and MosstSimpleMesh. MostSimpleMesh is only held once per enemy, in colEnemies. This does mean that less memory is now used. 20 enemies, but only one texture.&lt;/p&gt;&lt;p&gt;I've implemented a basic particle engine for explosion and flying stars going down. The players ship can drift towards the mouse cursor at a set speed or more accurately move directly where the cursor is. The ship can hold addons including weapons and the particle emitter for the engine exhast. In theory you should be able to hold a number of weapons on the side of the ship and use meshes (.x files) for them. The player can also shoot, different fire for different weapons which do different amount of damage and travel at different speeds. &lt;/p&gt;&lt;p&gt;A screenshot of the game running, with enemies being shot down:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ss2.0.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/200/ss2.0.jpg" border="0" /&gt;&lt;/a&gt; &lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ss1.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/200/ss1.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The lighting needs fixing up, in the game and in the menu.  I think I also need to get the background to slide down and also make it a few semi-transarent layers to simulate a nebula and the ship moving upwards.&lt;br /&gt;&lt;br /&gt;At the moment I've only got one menu, i'm using the same menu for the main menu and the in-game menu. In the near future I think I'll seperate it out, I'll have a simple 2d menu for in-game and a more dramatic fancy 3d menu for the main menu.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/menu.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/200/menu.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113310940793465924?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113310940793465924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113310940793465924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113310940793465924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113310940793465924'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/11/where-i-currently-am.html' title='Where I currently am'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113309624288601288</id><published>2005-11-27T14:34:00.000Z</published><updated>2005-11-27T14:44:44.376Z</updated><title type='text'>Installing DirectX in Win2000</title><content type='html'>For the last couple of weeks I've not been able to update my program. First thing was I bought a bluetooth mouse that had a faulty adapter. When is the worst time to plug in a faulty adapter? When windows is loading, that way it can cause a surge and ultimately switch the PC off when Windows is loading; causing data to not be loaded os saved properly and general corruption of important Windows files. That is what happened to me. Despite trying, there was no way to restore my Windows 2000. So I had the much practiced but awkward task of reinstalling windows and all my software and of course trying to recover saved passwords and emails. Installing windows is no fun, ith al those F's , C's , U's and K's !!&lt;br /&gt;&lt;br /&gt;This time however I installed WindowsXP since it has restore points, I thought it might be helpful! I installed Offic2003 more than once and it still refuses to load up Access, however Word and everything else loads fine though! Yesterday I spent a long time installing Visual Studio. I must have installed it 4 or so times with various options, but it still complained that the debugger wasn't installed. Only after installing SP1 did it work properly and I could finally run a solution without any problems.&lt;br /&gt;&lt;br /&gt;I then tried to run my ES Game which seemed to run ok, it just wasn't able to create the Direct3d device? I had the same problem in Windows XP as well. Perhaps it my program I thought, so I ran some other DX programs, all worked fine. I then ran programs that used Managed DX and they too had problems. So it has got to be the managed DX that messing it up somewhere.&lt;br /&gt;I have no idea why though. I've tried installing the Directx9c user runtime -which downloads what it requires from the web, the 9c manged redistributable and the oct 9c redist, the oct20005 sdk - which doesn't run in Win2k. All with no joy, I'm not sure what I had isntalled last time that allowed it to work. I've just read that from Feb 2005, Win2k is no longer a supported platform for DirectX development (&lt;a href="http://www.toymaker.info/Games/html/directx_9_0c.html"&gt;http://www.toymaker.info/Games/html/directx_9_0c.html&lt;/a&gt;). So i'm downloading the Dec2004 sdk (They seem to release sdk updates every two months), if that doesn't solve my problems I'll have to try and get it to work in WinXP. I can't believe how much trouble I'm having to get this working. I just hope no end-user has to go through this, as I'm sure they would just not bother, give up and move on to the next game.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Dec2004 sdk solved nothing. I've given up on Win2k since its no longer supported it's not worth my efforts or time. I installed the enhanced asus video driver for my nvidia Geforce 4 card, no help there. I installed the via 4 in 1 driver (it has AGP 8x driver) that didn't help.&lt;br /&gt;&lt;br /&gt;I then ran the Windows Update and installed the Service pack 1 for .Net framework 1.1 and the service pack 3 for framework ver1.0, restarted windowsXP and what do you know, it started to work. So now my game runs and I can reume development.&lt;br /&gt;&lt;br /&gt;Although I can't be bothered today, so I might just try making a start on documenting what I've done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113309624288601288?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113309624288601288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113309624288601288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113309624288601288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113309624288601288'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/11/installing-directx-in-win2000.html' title='Installing DirectX in Win2000'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113301104801932363</id><published>2005-11-26T13:04:00.000Z</published><updated>2005-11-26T13:17:28.026Z</updated><title type='text'>Finished Medal of Honour</title><content type='html'>Finished Medal of Honour Pacific assault today.&lt;br /&gt;I quite likeed the way the game starts with you landing on Tarawa island, you die, and then the game back tracks some years to the beginning. You then do training, and eventually the last level is you landing on tarawa island. Neat idea starting and ending the game in the same area, except the second time you're better equipt to deal with what is thrown at you.&lt;br /&gt;The levels are short at the beginning and gets longer at the later levels whereupon you start to realise why there is a quick save! Having short levels to begin with is another good idea, it gives the illusion of quick progress whilst also easing the gamer into the game. Once you've got them eating the honey and they realise how niec it is, they then want more, whereupon you can make them work for it i.e. longer and more difficult levels.&lt;br /&gt;&lt;br /&gt;The main menu is also interesting in that it changes as you progress through the game; the sun starts to shine through you can see the nice blue ocean, the tent gets holes in it, everything becomes nicer, brighter and cleaner as you get further in te game. Also when you choose an item in the menu it takes you to a section of the 3d scene. For example if you click on multiplayer the camera pans to show guys playing cards, exit will pan the camera to a guy sitting on a jeep, intelligence pans to the noticeboard whereupon a 2d translucent sub menu is shown.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113301104801932363?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113301104801932363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113301104801932363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113301104801932363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113301104801932363'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/11/finished-medal-of-honour.html' title='Finished Medal of Honour'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113278974394964285</id><published>2005-11-23T23:26:00.000Z</published><updated>2005-11-24T00:12:05.836Z</updated><title type='text'>Concept Art</title><content type='html'>&lt;h3&gt;Ship design&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;These are some of the concept ideas I had for possible ship designs. One if the few good things about a tablet pc is that you can draw with it. They aren't the best pictures, but any that make it into the game will have to be done in 3d anyway. I'll probably use gameSpace to create the mesh since it's free.&lt;br /&gt;Creating the 3d mesh is one thing, having the imagination to know what to create takes something else.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ship1.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="ship1" src="http://photos1.blogger.com/blogger/404/1863/320/ship1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/Ship2.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="ship2" src="http://photos1.blogger.com/blogger/404/1863/320/Ship2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ship3.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="ship3" src="http://photos1.blogger.com/blogger/404/1863/320/ship3.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/ship4.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="ship4" src="http://photos1.blogger.com/blogger/404/1863/320/ship4.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/Ship5.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="ship5" src="http://photos1.blogger.com/blogger/404/1863/320/Ship5.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/Ship6.jpg"&gt;&lt;img  alt="ship6" src="http://photos1.blogger.com/blogger/404/1863/320/Ship6.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;em&gt;I own the copyright to these images, so please ask if you wish to use them.&lt;/em&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113278974394964285?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113278974394964285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113278974394964285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113278974394964285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113278974394964285'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/11/concept-art.html' title='Concept Art'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113257928556546194</id><published>2005-11-21T13:04:00.000Z</published><updated>2005-11-21T13:21:25.580Z</updated><title type='text'>Medal of Honour</title><content type='html'>&lt;p&gt;I was playing Medal of Honour the yesterday. What a great atmosphere that game has. Could it simply be the subject material, the war, the associations and friendships that are made with your AI companions, the cut scenes, the heart moving subject/content, the pace in some parts or the subtle music that is heard yet not noticed. Whatever it is there is a good atmosphere.&lt;br /&gt;The game had some nice ideas that I thought might be worth replicating.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;I like the idea of having to call for a medic to patch you up, as oppose to it being done automatically, perhaps could add a repair bot to my game? Or even make it so you have to manualy turn the shields on?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I like the way the game shows stylised screenshots of what the oncoming level will be like. A bit like the grey foretelling future video clips in Prince of Persia Sands of Time that show before the level starts, which sometimes help in solving puzzles. Should I add this into my game though? Not sure, it really does depend on how long level take to load. There needs to be a threshold value. E.g. If it takes longer than 1 min to load a level then some music or screen shots would be nice to see, rather than just text that says "Loading...". Of course if the level is going to load in 10 seconds, then I don't think it's worth doing. Even if I did add it, what would I put? As all there would be is a few pictures of enemies being shot... a waste of hard disk space?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Having buddies/companions/colleagues in the game is very good, as we all need a rock to associate with, after all isn't that why people watch soaps? ES will certainly need to have some common ground through out the game. Perhaps a general or a major who is in constant contact with you or a hangar bay where you can store weapons, or at least feel like you are returning &lt;em&gt;home&lt;/em&gt; after a long hard day beating up aliens. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;Hmm.. I think I need to add a to-do list somewhere on this site. And/Or a possible&lt;br /&gt;features list; what is possible to add, what would be nice to have and what has now been done. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113257928556546194?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113257928556546194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113257928556546194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113257928556546194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113257928556546194'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/11/medal-of-honour.html' title='Medal of Honour'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113189382249526987</id><published>2005-11-13T14:49:00.000Z</published><updated>2005-11-13T16:17:41.660Z</updated><title type='text'>How it got started</title><content type='html'>First off I should mention why I'm doing this.&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/xenon2_06.0.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/404/1863/200/xenon2_06.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I'm a big fan off Xenon 2 and I loved the way you could buy and sell items for your ship at the end of a level. At one point you were able to have a ridiculously huge ship, well the same size ship but huge amount of addons put onto the side. From ion lasers to missiles launchers to hovering drones to side shooting things.&lt;br /&gt;I liked the levels, they made good use of the sides of the screen having walls that you could hit or bouce off, plus you had monsters crawling accross, or was that R-Type? either way the walls were as dangerous as the enemies that came hurtling towards you. So I was certain from the beginning that I wanted that &lt;strong&gt;add-on&lt;/strong&gt; feature in my game.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/es1.0.jpg"&gt;&lt;img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/404/1863/200/es1.0.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Years ago I created a 2d scrolling game. It was working from stars falling down to the enemies flying and shooting at you, to your ship being able to fly around. You could even upgrade your ship or change it.&lt;br /&gt;I never did get round to finishing the game off however. Being a 2d game there was a lot of graphics works to be done and I just didn't have the time to create all the levels, graphics and animations I wanted. Since I now wanted to learn directx I thought, why not recreate this game in 3D, that way I can take advantage of lighting, meshes (hence not so much graphics works to be done), particles effects (so little or no explosion animations need to be pre-rendered) and other effects.&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/404/1863/1600/es2.jpg"&gt;&lt;img style="float:centre; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/404/1863/200/es2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;Since I was beginning development from scratch I tried to break the project up into two parts:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a Directx rendering engine project - This will handle all the interfacing with DirectX and the associated rendering routines. Hopefully as generic as possible. &lt;/li&gt;&lt;li&gt;a Game project - This will hold all the game related code, from SpaceShip classes to bullet and weapon classes to loading up resources (sounds,music,textures,meshes,etc). &lt;/li&gt;&lt;/ul&gt;I've never done any Directx programming before so there was steep learning curve to learn. The whole project/solution was as much about learning Directx 9, as it was about having fun and doing something that I eventually could be proud off.&lt;br /&gt;After lots of searching I eventually found an &lt;a href="http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=3591&amp;lngWId=10"&gt;example of Drectx 9 &lt;/a&gt;that didn't use DirectDraw. After reading through and digesting the code I later decided to make my game 3d and not use 2d bitmap sprites.&lt;br /&gt;This example provided the basic skeleton of my eventual solution. I also found a fantastic example called &lt;a href="http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=3230&amp;amp;lngWId=10"&gt;PathFinder 3D&lt;/a&gt; that illustrated a lot of DX9 techniques. From how to draw particles to detecting what object the mouse is over (translating 2d screen coord to 3d world coords) and also how to set the opacity of objects.&lt;br /&gt;&lt;br /&gt;With these two Directx9 examples and my years of knowledge I set out to create a 2d style scroller in a 3d world.&lt;br /&gt;With the eventual aim of selling it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113189382249526987?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113189382249526987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113189382249526987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113189382249526987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113189382249526987'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/11/how-it-got-started.html' title='How it got started'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18924013.post-113189070791380356</id><published>2005-11-13T14:04:00.000Z</published><updated>2005-11-13T14:14:49.053Z</updated><title type='text'>It begins</title><content type='html'>This is my first blog post ... ever.&lt;br /&gt;This blog will be all about my new game. The game is a 3d top down space scroller; a bit like Xenon2.&lt;br /&gt;It will be created with VB.Net using managed Directx 9. So I will try and point out development problems I encounter and any issues I may yet have to resolve, such as the characters and story. As these can be changed at any point during the development process. It is partly for other people to watch the progress of the game developing and add or suggest their own ideas and partly as a personal record for me.&lt;br /&gt;&lt;br /&gt;The blog will include the development issues I encounter, the game ideas I have, concept drawings and story ideas.&lt;br /&gt;This is an ongoing development process, so any ideas or comments anyone has are welcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18924013-113189070791380356?l=vbside.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vbside.blogspot.com/feeds/113189070791380356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18924013&amp;postID=113189070791380356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113189070791380356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18924013/posts/default/113189070791380356'/><link rel='alternate' type='text/html' href='http://vbside.blogspot.com/2005/11/it-begins.html' title='It begins'/><author><name>VBSide</name><uri>http://www.blogger.com/profile/04776322274218228714</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
