tag:blogger.com,1999:blog-34414152202542473302024-03-14T16:45:52.111+00:00BotWorksThe blog from within Botworks. Find out the latests news from within Botworks relating to all of our projects including Frozen Kangaroo. Topics on game design, developement and much more!thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.comBlogger34125tag:blogger.com,1999:blog-3441415220254247330.post-52433835463304216082014-04-30T18:22:00.000+01:002014-04-30T18:23:00.382+01:00kAI - a component based AI Tool<div style="text-align: right;">
</div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhayzYzYMqLl5jPUQmobIvH_jlikHz0-B8aC4GA8Ptb8_VPNVIHITDCGHDb-NPZX3Q8HHBiFCjv8r_eY_pXhWKuIWDlM3ZV5dXiToXo9yPJYfavw8PpAYabqFaASq-xSQxqXXeiQECnQTy3/s1600/chi.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhayzYzYMqLl5jPUQmobIvH_jlikHz0-B8aC4GA8Ptb8_VPNVIHITDCGHDb-NPZX3Q8HHBiFCjv8r_eY_pXhWKuIWDlM3ZV5dXiToXo9yPJYfavw8PpAYabqFaASq-xSQxqXXeiQECnQTy3/s1600/chi.png" height="320" width="220" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">kAI - a component based AI tool</td></tr>
</tbody></table>
For my third year project for my degree, I developed kAI - a component based AI tools. kAI is a library and visual tool for developing AI’s specifically for games.<br />
<div>
<div>
<br /></div>
<div>
The way it works is coders produces code behaviours which designers can then import in to the tool. kAI behaviours are then a collection of these code behaviours and other kAI behaviours arranged into a network. </div>
<div>
<br /></div>
<div>
The tool is similar to Kismet/Blueprint - the visual programming tool found in Unreal. The key difference is that is specialised towards AI. As a result, you can't use programming primitives like for loops (hence no programming style bugs and hangs). Instead, all behaviours can be either active or inactive and are updated accordingly. </div>
<div>
<br /></div>
<div>
The update system (detailed in 3.2.2.1 in the report) means that what frame any behaviours become active is deterministic, despite the non-determinism of the order in which the nodes are updated. </div>
<div>
<br /></div>
<div>
kAI also supports real time debugging using the editor. In this, you can see what the behaviours are doing in real time. The editor will show what nodes are active and what current values data ports have</div>
<div>
<br /></div>
<div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4XiDJiID3JMm00CwNp8wzdgBAH1u8-B8HxL9RJa4A5py7aYd6XA3yVhuUoNQ7std_D6ogPFA_F45RHldqjpcBqv2kHosJMeinOG-Kgl1Jqdw-uG2dNKF60o_CLlWLr437KU4zUumne0Le/s1600/simplebehaviour_root.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4XiDJiID3JMm00CwNp8wzdgBAH1u8-B8HxL9RJa4A5py7aYd6XA3yVhuUoNQ7std_D6ogPFA_F45RHldqjpcBqv2kHosJMeinOG-Kgl1Jqdw-uG2dNKF60o_CLlWLr437KU4zUumne0Le/s1600/simplebehaviour_root.PNG" height="408" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">An example behaviour from the editor</td></tr>
</tbody></table>
The project can be downloaded from GitHub (including pre-compiled executables) and it includes 2 example projects. The source can be found at <a href="https://github.com/thk123/kAI">https://github.com/thk123/kAI</a> and the executables at: <a href="https://github.com/thk123/kAI/releases/tag/v1.0">https://github.com/thk123/kAI/releases/tag/v1.0</a></div>
<div>
<br /></div>
<div>
The report is a lengthy document (~90 pages) that explains a lot about the project. Chapter 4 is a user guide and is probably the most useful part of the document. It contains detailed walk thoroughs of most of the features of kAI. The report is called ProjectReport.pdf and is at the root of the repository.<br />
<br /></div>
<div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAuJadAeJA8KicPSxjPak62qDbZXnIIePfe8zpgmgh87oONXdxzmcwEACpLV1zwURW9eaicz-dpQrzwYmXXRWo2j2oSkMUvBuowxkise5SN7fjZA2kx87iw-nC0Sm_KQW5R_IMOh-mnbmw/s1600/20140430_142241.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAuJadAeJA8KicPSxjPak62qDbZXnIIePfe8zpgmgh87oONXdxzmcwEACpLV1zwURW9eaicz-dpQrzwYmXXRWo2j2oSkMUvBuowxkise5SN7fjZA2kx87iw-nC0Sm_KQW5R_IMOh-mnbmw/s1600/20140430_142241.jpg" height="300" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">My final report</td></tr>
</tbody></table>
It was a lot of fun to develop and I developed some pretty neat code including operator constraints for generic functions that I'll tidy that up in to a standalone library at some point, and converting functions into nodes with ports. </div>
<div>
<br /></div>
<div>
In-spite of the limited development time (which can be seen in the "<i>functional" </i>interface that the editor has), the tool proved surprisingly useful when creating AIs and the debugger is very powerful for this kind of thing. I believe kAI to be flexible enough that you could make just about any AI in it and still get some benefit (even if you just used kAI as a general purpose visual debugging tool).</div>
<div>
<br /></div>
</div>
thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-32989430601414923252013-03-06T00:21:00.001+00:002013-03-06T00:21:51.777+00:00UpdateLong time no see. A lot has happened, I have some stuff I want to write about and in general I want to get back in to the habit of writing. I find that if I don't write for too long, my sentences start to lose non-essential words and everything reads like it was meant to be a series of bullet points.<br />
<br />
I am currently working as an intern programmer at<a href="http://bornreadygames.com/" target="_blank"> Born Ready Games</a>! (nb, standard disclaimer about these being my views not those of BRG or any affiliates etc. etc.). As a small company, I have had the opportunity to try lots of different things. Our most recent game is Strike Suit Zero (<a href="http://store.steampowered.com/app/209540" target="_blank">Steam</a>, <a href="http://www.gog.com/gamecard/strike_suit_zero" target="_blank">GOG</a>), which came out in January (I got my first hand experience of crunch).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn3.steampowered.com/v/gfx/apps/209540/header.jpg?t=1359664602" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="149" src="http://cdn3.steampowered.com/v/gfx/apps/209540/header.jpg?t=1359664602" width="320" /></a></div>
<br />
<br />
Next year I will be entering my final year of my degree, and as such am required to do a 3rd year project. I have about a bazzilion ideas for this and all of them are too complicated to do in 5 years, but I am slowly zoning in on one (or more accurately, a linked pair). I plan to talk about these more at a later date and then when I start work on them, have my development diary up here too.<br />
<br />
I've also developed a couple of games in some jams (eg, <a href="http://globalgamejam.org/2013/disaster-mode" target="_blank">Global Game Jam</a>). I am planning on setting up a basic site that'll support hosting of games since I've made now I have a few.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://globalgamejam.org/sites/default/files/styles/large/public/screenshots/2013/mainMenu_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="188" src="http://globalgamejam.org/sites/default/files/styles/large/public/screenshots/2013/mainMenu_1.png" width="320" /></a></div>
<br />
<br />
I'm going to blog about <a href="http://www.ted.com/talks/amanda_palmer_the_art_of_asking.html" target="_blank">this TED talk by Amanda Palmer: The Art of Asking</a> later this week. I am going to address how I think it relates to games, specifically indie games & the current trend of Kick Starters.
<iframe allowfullscreen="" frameborder="0" height="315" mozallowfullscreen="" scrolling="no" src="http://embed.ted.com/talks/amanda_palmer_the_art_of_asking.html" style="float: centre;" webkitallowfullscreen="" width="560"></iframe>thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-23700746415976438892012-02-28T18:44:00.002+00:002012-02-28T18:44:57.033+00:00Front Row on GamesI while back I posted about how the BBC Radio 4 program Front Row doesn't cover video games. On Friday they ran this show:<br />
<br />
<a href="http://www.bbc.co.uk/iplayer/episode/b01c7xfd/Front_Row_Naomi_Alderman_on_video_games/" target="_blank">Front Row - Naomi Alderman on video games</a><br />
<br />
It is well worth the time to listen to it. Molyneux, as usual, gets a bit carried away! I always find these shows part reassuring and part frustrating. They have so much ground to cover and have to touch on so many issues that, as someone who is invested in all this, find infuriating that they spend so little time on things that warrant entire shows. However, the closing point is fantastic: Probably the main reason games don't get the cultural recognition they deserve is simply because critics find them too difficult. But instead of saying games should be made easier, she instead concludes that people should invest the time now so they don't miss out on the future of the most exciting art form of the moment.<br />
<br />
Anyway, apologies for not posting, very busy with uni stuff. I took part in Global Game Jam 2012 and worked with a team of people from Lionhead which was very exciting. You can <a href="http://globalgamejam.org/2012/gloop" target="_blank">play Gloop here</a>. It is a racing game made in UDK where the path you took on the previous lap determines the next lap. You are only allowed off the track for a certain amount of time. The aim is to race for as long as possible - you can increase your time by collecting power ups that are off the edge of the track. Sometimes they will be too far off to drive to collect and instead you must morph the track towards them.<br />
<br />
I also took part in the Warwick Game Design Societies game jam where we made games for the <a href="http://www.piratekart.com/" target="_blank">Pirate Kart 2012</a>. We made two games. The first: <a href="http://www.glorioustrainwrecks.com/node/2351" target="_blank">Magic Mooshrooms</a> is a snake-esque game where you control and cow and the more mushrooms you eat, the more trippy the game becomes. The second (not yet published) game was called mad Cow Stacking Attacking defender (or something) and you had to fight off oncoming cows who would form a set of stairs to climb over your wall. These are both proof of how could XNA is at a tool - I worked with two people who hadn't made a game (certainly not in 48 hours) and we were able to produce two games that I am very proud of.<br />
<br />
I will try and write up a post mortem for both jams but currently super busy. I am working at doublesix for my internship next year and hopefully, since I won't have piles of home work, will be able to blog a little more<br />
<br />
<br />
<br />thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-7028570932608206842010-08-24T11:10:00.004+01:002010-08-24T11:31:03.644+01:00The disconnect between story and gameplay pacing in RPGsSoren Johnson has recently written a <a href="http://www.designer-notes.com/?p=240">couple of posts about the disconnect between theme and mechanics</a>. One example he gives is applicable to just about any free roaming RPG like the Elder Scrolls series. The theme, or story, is about being a hero and defeating some huge evil. However, the mechanics are about scavenging, hardly heroic stuff.<br /><br />In this post I am going to consider another disconnect that occurs in this genre: pacing in gameplay and narrative. The story will be telling of an impending threat and that speed is of the essence; the gameplay will be rewarding you for taking your time and actively avoiding advancing the story. I must have played Oblivion for about 100 hours and countless in game days, I have become leader of the Mage's Guild, gone on a killing spree and numerous other things and the imminent threat still hasn't actually developed (except when I try to deal with it).<br /><br />All of this stops the story meaning anything. The threat never feels genuine; yes it would be nice for you to defeat it, but if you don't, it's no big deal. Instead, I think that stories should be crafted to match the inherent gameplay pacing of an RPG.<br /><br />One example that came to my mind recently is global warming. It has the same giant scope as a normal story - the end of the world - but the time scale is in terms of years rather than days. This will allow players to explore without feeling like the threat is made up. It could also be worked so that the gameplay of scavenging, or <span style="font-style: italic;">recycling</span>, fitted with the theme as well.thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-60789981471435630512010-06-10T17:44:00.003+01:002010-06-10T18:26:17.400+01:00A puzzle game - Weeping AngelsThe basic premise of this game is based around the BBC drama <a href="http://www.bbc.co.uk/doctorwho/dw">Doctor Who</a>. One recurring race (well, recurred once) of aliens are <a href="http://www.bbc.co.uk/doctorwho/dw/characters/Weeping_Angels">the Weeping Angels</a>. They move incredibly fast and then kill you. The catch is, they can only move when no one is looking. While someone looks at them, they appear to simply be stone statues. This makes for some properly scary drama and feature in my two favourite episodes of Doctor Who. However, it also suggested quite an interesting strategy game to me.<br /><br />Or a puzzle game. <a href="http://www.flashofsteel.com/">Troy Goodfellow</a> describes strategy games as elaborate puzzle games (or something to that effect). I think it is more a gradient and this got me in to an interesting discussion on <a href="http://twitter.com/thk123">twitter</a> about the merits and demerits of single solution puzzles. That for me is the difference between a strategy game and a puzzle game. In a strategy game, you are given a set of rules and tools and then you have to work out how to defeat the opposition: a puzzle to solve, but one with an infinite (or seemingly infinite) number of solutions and where there is very rarely a right or wrong answer.<br /><br />At the other end of the spectrum is something like Braid where only one solution exists and you must work out what this is. Games like this are much harder to get in to - you can't just mess around and hope to achieve the answer (at least once you get to the more challenging end of the game)<br /><br />Obviously you get in to hazy semantic battles here: is Peggle a strategy game; it does have multiple solutions. I would argue yes because you don't work out the entire solution; instead you analyse the situation and work out a logical next step.<br /><br />The basis of the game would be you would have a set number of people who you have to get from one side of a room to the other. They would each be capable of looking in one direction and while the angles were in their line of sight.<br /><br />So the question is do I make this a strategy game or a puzzle game (by the above gradient). Do I create each room so you have to move and place your people in a specific place to get across the room, or do I make it more tactical. It would certainly be possible to mix it up, or even choose something in the middle such as elements of the room that have to be solved in one way, but a lot of it could be done in a more free way.thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-82232273416025338502010-04-14T19:42:00.002+01:002010-04-14T20:30:53.880+01:00Scale (Or "I am important too")When multiplayer digital gaming was new, there were huge technical hurdles with everything developers tried to do. As a result, games blindly sought greater technological achievements such as number of simultaneous players. While these issues still exist, they are quickly becoming less significant with wide spread broadband and fibre optic cables quickly becoming main stream.<br /><br /><span style="font-style: italic;">(For this post, I will assume we are talking about a shooter, obviously MMO games have many more simultaneous connexions, but that is something different). </span><br /><br />Everyone likes the idea of hundreds of people all playing in the same game at the same time. You can truly create that war time feeling with bullets whizzing past you and players shouting. Suddenly it isn't you charging some enemies, it is you and loads of other people. It sounds really awesome.<br /><br />However, I don't believe we should simply be going for as many people as technically possible. Halo 3 supports 16 players in a 8 versus 8 battle. I think this is pushing the limit for standard first person shooter mechanics. Already, you start to feel insignificant. In a balanced 4 versus 4 game in Halo, each death matters and each kill feels like cause for celebration. In <span style="font-style: italic;">Big Team Battle</span>, this simply isn't the case. You charge in because one death is trivial; there is no tension.<br /><br />I believe the more people you add, the worse the problem will get. Does this mean that I think that large count first person shooters are doomed to failure despite sounding awesome? Well, no.<br /><br />Instead of giving up, a large scale game needs extra work to make the player feel significant. If every player is doing the same thing, then each players actions become virtually irrelevant: if they fail, either someone on their team will do it, or it won't be their fault because everyone failed.<br /><br />Instead I think large numbers should be used as a backdrop for smaller games. You and a small group of people would be tasked to doing something. There would be an equal group on the opposite team tasked with doing the opposite. The players could still kill people who are not directly related to their mission, but it would not count towards the final score.<br /><br />The problem with this is then you are not really a team, just lots of games going on on one map. Sure, you still create a sense of scale, but without a sense of being a team, you would feel no compulsion to attack the other team. I think this would almost completely counter balance the benefits. How many wars have enemies walking past one and another not shooting because they are not related to what they have been tasked to do. The player would be frequently and strongly reminded that they are not in a war, defeating the entire point.<br /><br />The obvious solution is to have each teams success count as a point towards its team. The problem with this is then you get back to the original problem: getting that point doesn't matter, you won't win because of that point or loose by your failure. While it may not be a complete solution, I think it does reset the counting. If you have 8 players per team, then your kills don't matter. But if there are only 4 teams of 4 per side, then you have 16 players per side (so double) but you would hopefully have the tension of a 4 on 4.thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-60011928990466291962010-03-14T00:48:00.004+00:002010-03-14T01:11:09.529+00:00StillnessI was walking back from baby sitting tonight and I realised that late at night was actually one of my favourite times to be walking. Everything is so quite and still. I think the reason it is such a nice enviroment is because it is such a juxtaposition to the norm of everything moving and making a noise. It gives me a chance to reflect on the day, I don't have any music, there is no one else about, no rush and my mind is already winding down.<br /><br />It got me thinking about how rare stillness is as a game enviroment. As we strive after ever more realistic graphics with more interactive elements, nothing is ever still. The idea of intentionally leaving an area empty of people, animations and sound is almost unheard of. Even the peaceful evenings on Assasins's Creed 2 still have people milling about.<br /><br />One thing I have been thinking about is the idea of pacing in games. For a lot of games, the designers expect players to manage their own down time. Playing though Call of Duty for example, if you want a breather, you have to stop the game; the story doesn't have any slow paced sections. I think the idea of of stillness is tied to this: designers are unwillinging to provide a sensorly underwhelming experience in the same way they are unwilling to intentionally let of the action.<br /><br />I hope anyone who went to GDC had a nice time, some very interesting talks and I can't wait for Fable 3.thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com1tag:blogger.com,1999:blog-3441415220254247330.post-73176194742248744662010-01-03T22:36:00.003+00:002010-01-13T23:25:21.390+00:00Outlook of 2010 for BotworksOne of the main reasons I started this blog was as a way for me to keep track of my ideas and projects. So, in that context, this is more of a post for me, as it is a rough plan of what I plan to do this year.<br /><br /><a href="http://botworkstudio.blogspot.com/search/label/Frozen%20Kangaroo">Frozen Kangaroo</a>, the real time strategy game I am making has been put on hold. This is for a number of reasons. The most important is simply that I have learnt so much since I have started that I have emerged on to the second stage of ignorance: aware of my failures (the step before being incompetent AND unaware). As a result, I can look at Frozen Kangaroo and say it is a lot more complicated than I thought and needs full planning.<br /><br />I need to find you what works for me. My Computing coursework has helped me in this respect, but there is still much I need to learn. However, Frozen Kangaroo is too big for me to experiment with<br /><br />Instead, I am planning a couple of <span style="font-style: italic;">much </span>smaller projects. The first one I am allowing only a month to complete. I will have more details out soon, but I will briefly explain what I am trying with the planning. I am using a free piece of software called <a href="http://freemind.sourceforge.net/wiki/index.php/Main_Page">Freemind </a>which allows me to create mind maps. Now, none of this is new, but I have never really done it properly. What I am going to do is break down each part of the game in to tiny little components that may be one algorithm or object.<br /><br />The aim is, if I can make sure I know how to do each component, then theoretically I can make the whole game. The problem I had with Frozen Kangaroo, the nail in the coffin if you will, was that I needed to enhance an existing feature to include extra functionality. However, the feature was woven in to the very fabric of the game and when I changed it, everything broke. My hope is, with these tiny parts, each part will equate to one function that will have a fixed output and once they are done, they are done.<br /><br />The second stage will be drawing up a schedule. I said that I would limit myself to one month. That means, that at the end of one month, I will publish everything I have made if it works, and if it doesn't, I move on with only a post mortem to remember it by (where I will try to decide what I did wrong)<br /><br />I hope to start this one month project in February but I want to draw up a plan before I start and I have exams in January, so it may be more like half way through February. If all this goes to plan, I will begin planning a 6 month project. Hopefully, this will lay quite a lot of ground work for Frozen Kangaroo as it will have similar planning challenges as FK.<br /><br />I also want to learn how to use <a href="http://unity3d.com/">Unity</a>. I don't plan to make anything particularly noteworthy, my rough aim is to make a game set on an island where you must collect 8 items to help your escape. Hopefully, there should be just enough there for me to learn the basics of Unity.<br /><br />The big thing for me this year is going to university. Don't ask me where I am going, I don't actually know (:S). Also, as it will be the last year at school I plan to go on holiday with my friends during the summer. None the less, I would still like to get the proper Bot website up and running, whilst maintaining <a href="http://www.veterangamer.co.uk">Veteran Gamer</a>, this blog, my school work, playing games and all of the above.<br /><br />I hope everyone had a merry Christmas and a happy new year. Hopefully this time next year I will have 2 games to my name, an understanding of planning (and Unity 3D!) a place at a university and ready to restart Frozen Kangaroo. Bon Voyage!thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-43183196316814130992009-12-22T18:18:00.006+00:002009-12-22T18:38:57.026+00:00A very small Chirstmas present from BotworksWell seeming as I haven't finished any of the projects I am working on yet (more on what they are in the new year) so I can't offer discounts or bonus content. However, I can offer a little something for XNA developers. One of the things that I found most frustrating in XNA was drawing a line, so I created a little function to do just that. It isn't especially clever, but it gets the job done<br /><div class="code"><br /><pre class="csharpcode"><span class="kwrd">void</span> drawLine(Texture2D line,<span class="kwrd">int</span> lineWidth,Vector2 startPosition,Vector2 endPosition,SpriteBatch spriteBatch)<br />{<br /><span class="kwrd">float</span> length = Vector2.Distance(startPosition, endPosition);<br /><span class="kwrd">float</span> theta = (<span class="kwrd">float</span>)Math.Atan((<span class="kwrd">double</span>)((endPosition.X - startPosition.X) / (endPosition.Y - startPosition.Y)));<br /><span class="kwrd">float</span> alpha = (<span class="kwrd">float</span>)(2*Math.PI) - theta;<br />spriteBatch.Begin();<br />spriteBatch.Draw(line, <span class="kwrd">new</span> Rectangle((<span class="kwrd">int</span>)startPosition.X, (<span class="kwrd">int</span>)startPosition.Y, lineWidth, (<span class="kwrd">int</span>)length), <span class="kwrd">null</span>, Color.White, alpha, <span class="kwrd">new</span> Vector2(lineWidth/2,0), SpriteEffects.None, 0);<br />spriteBatch.End();<br />}</pre></div><ul><li><span style="font-weight: bold;">line</span> - this a pre-loaded texture2D which is your basic line pixel. It needs to be 1 pixel high. It can be of any width (for example if you want a glowing line) but a standard line is 1 pixel wide</li><li><span style="font-weight: bold;">lineWidth</span> - unsurprisingly this is the width of the texture loaded in the line property</li><li><span style="font-weight: bold;">startPosition, endPosition</span> - these vectors are the start and end co-ordinates of the line</li><li><span style="font-weight: bold;">spriteBatch </span>- this is just the instance of the spriteBatch which, unless you have specifically changed, is just called spriteBatch</li></ul><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIuKcz3iCVgC-Gqgo_h4UzQr5d3aDJ8ZHIa2DL33ev7Ui37Nb5VsMRVE7K_UQHN4OXT5zyLQUitZK93vKQ6c-hCu3J0BFWWsSBrZnkUQqpxsqmLBl0FOaigFC5vgUyhie_CU5epsao1Pth/s1600-h/screenGrabLaser.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 310px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIuKcz3iCVgC-Gqgo_h4UzQr5d3aDJ8ZHIa2DL33ev7Ui37Nb5VsMRVE7K_UQHN4OXT5zyLQUitZK93vKQ6c-hCu3J0BFWWsSBrZnkUQqpxsqmLBl0FOaigFC5vgUyhie_CU5epsao1Pth/s400/screenGrabLaser.png" alt="" id="BLOGGER_PHOTO_ID_5418129895755572466" border="0" /></a><br />And here is a quick demonstration. I am using a 21x1 image file which is just a red pixel in the middle with fading transparencies going out to create something of a laser effect.<br /><br />Merry Christmas and a happy and productive new year to you all.thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-53779958128255923352009-12-09T13:23:00.002+00:002009-12-09T13:52:02.477+00:00Thankyou, BBCIn <a href="http://botworkstudio.blogspot.com/2009/11/perception-of-games-and-why-it-needs-to.html">my last post</a>, I explained why I felt that video games should be covered by mainstream media as a proper medium. I sent a link to the BBC as I believe they could do a program, I even suggested including it in the Radio 4 programme, Front row.<br /><br />So you can imagine how pleased I was when last nights episode of Front row included an interview with <a href="http://en.wikipedia.org/wiki/Shigeru_Miyamoto">Shigeru Miyamoto</a>. You can<a href="http://www.bbc.co.uk/programmes/b00p4q2n"> listen to it here</a>, it is at the end.<br /><br />My only complaint is that the presenter called other companies Game manufactures (as opposed to developers or even producers). Other than that, it was really quite good. I am sure it wasn't down to my letter, but hopefully it will lead to further coverage. If they are looking for additional people to interview, they should try <a href="http://en.wikipedia.org/wiki/Peter_Molyneux">Peter Moleyenux</a> (a keen advocate of pushing the boundaries of game design rather than graphics).<br /><br />Mr. Miyamoto was fantastic as well, quick to defend the accusation that games and films will merge. All in all, I am very happy and hope it continues. <br /><br />Thanks BBC, you guys are awesome.thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-86859168733638378852009-11-11T20:52:00.017+00:002009-11-14T15:35:41.644+00:00The perception of games and why it needs to changeIt is my belief that the general perception of video games is that they are exclusively aimed at children. In this post, I hope to challenge this view, explain why it is damaging, examine the causes and outline what you can do to change this view.<br /><br /><span style="font-weight: bold;">The Perception is Wrong</span><br /><br />Before going any further, let us be clear what I am saying. I believe that video games as a medium have as much potential for depth as any other media (film, books, music etc). I am not saying that all games are mature pieces of artwork, but, this is the same for any medium. Film has great thought-provoking movies, like Shawshank Redemption, but it also has Final Destination 4. Books have Lord of the Flies, but they have Tom Clancy's Rainbow Six. Do any of these less mature titles mean that the rest of the medium is childish? Of course not.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZSDH3EhH7fSgCf-iGJOmFdm76AnuejJkTLM-LKPx1YPs-rSyJhPCel3cuTLQyCQRFoVnGHo2mBHa3IXrHU4RUUTL8xjgiD3fh3kNwfFiRlAX-mR3LR5g1sjuycY4x1w0s9wVBWhykyyuz/s1600-h/games,+films,+books+and+songs.png"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 300px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZSDH3EhH7fSgCf-iGJOmFdm76AnuejJkTLM-LKPx1YPs-rSyJhPCel3cuTLQyCQRFoVnGHo2mBHa3IXrHU4RUUTL8xjgiD3fh3kNwfFiRlAX-mR3LR5g1sjuycY4x1w0s9wVBWhykyyuz/s400/games,+films,+books+and+songs.png" alt="" id="BLOGGER_PHOTO_ID_5403646958516122514" border="0" /></a><br />Games can provide a unique way of telling stories that involve the player; not only can they immerse the player, they can let the player effect the story and the whole experience becomes more real. It even goes beyond this, games don't have to be a linear traditional story, but an abstract experience. It is beyond the scope of this post to discuss this fully, but games have a near infinite capacity for making players feel a huge variety of emotions. I think this means they qualify as a mature form of art.<br /><br /><span style="font-weight: bold;">Why it matters</span><br /><br />I care because I have a true passion for playing games. When playing a really good game, I experience a truly fulfilling enjoyment and it saddens me that so many people dismiss it on the basis it is different. However, there is a real danger when parents take a games-are-not-for-me attitude.<br /><br />Typically, parents do not get involved in the process of choosing and playing games, hence they are not best able to make judgments of what may or may not be suitable for their children. I am not going to deny that games<span style="font-style: italic;"> </span>can be damaging to a child's welfare, like <span style="font-style: italic;">every other medium</span>. However, like movie ratings, game ratings are guidelines. Some children are going to be able to play 15s when they are 12 and they aren't going to grow up to become murderers. It has to be done on a child by child basis.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgie5ka4O5xP1ItZzWcPKcnCMpGPy6lp41-VqyIrS14WGugBYQRCrxo0Aib9tzyK7Oygm82NHo9ArOI9bjxiY2YjWWdYcCJNd94C7n010VUjByAdapxWWB8PkRjoto0amcmI9cmJfdrHsx-/s1600-h/ratingSys.png"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 300px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgie5ka4O5xP1ItZzWcPKcnCMpGPy6lp41-VqyIrS14WGugBYQRCrxo0Aib9tzyK7Oygm82NHo9ArOI9bjxiY2YjWWdYcCJNd94C7n010VUjByAdapxWWB8PkRjoto0amcmI9cmJfdrHsx-/s400/ratingSys.png" alt="" id="BLOGGER_PHOTO_ID_5403651236201672946" border="0" /></a><br />Films have a PG rating which means that younger audiences may require an adult to watch it with them. I think the same applies in games, sometimes having an adult take an interest in the game and discussing the more mature themes with the person may help them to understand the game in a sensible way.<br /><br /><span style="font-weight: bold;">What causes this perception?</span><br /><br />The games industry itself is, in part, responsible for this perception. Not only has the industry promoted the clichéd image of teenagers mindlessly shooting people, but until recently it has not addressed the "controller" issue which, to many adults, can be highly intimidating.<br /><br />However, there is another element contributing to this perception - the main stream media. The only stories covered by the popular press are when either financially significant games are released or scare stories saying that games are turning children in to dysfunctional slobs or mass murderers.(<a href="http://www.youtube.com/watch?v=-vXTEhZDchM">see this video for the other side of the story</a>).<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZlLGlisKdE-3fkB8-HHbpnm0lf5QrWRpd-WiHvsVEF8wsClBpMtPbzQMisrirp7UTqyR5r3Ojv4UPHvHrad201ne-P3mn5gQEddh2HqEFoSdc8r-JXaF0Hw1DAmhqsFR5G_VATaNaJf78/s1600-h/boom+headsho.png"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 300px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZlLGlisKdE-3fkB8-HHbpnm0lf5QrWRpd-WiHvsVEF8wsClBpMtPbzQMisrirp7UTqyR5r3Ojv4UPHvHrad201ne-P3mn5gQEddh2HqEFoSdc8r-JXaF0Hw1DAmhqsFR5G_VATaNaJf78/s400/boom+headsho.png" alt="" id="BLOGGER_PHOTO_ID_5403651490062463810" border="0" /></a><br />I feel the problem is that there are no programs on television or radio dedicated to indepth discussion of games. This reinforces the idea that games are for children. There are programs on the BBC for <a href="http://www.blogger.com/http//www.bbc.co.uk/podcasts/series/kermode/">films</a>, <a href="http://www.blogger.com/http//www.bbc.co.uk/radio2/shows/the-radcliffe-and-maconie-show/">music</a>, <a href="http://www.blogger.com/http//www.bbc.co.uk/programmes/b006v8jn">books</a> and <a href="http://www.bbc.co.uk/programmes/b006qsq5">plays</a>. However, there is nothing for games, even though programs such as Front Row could easily cover it under it's remit of: <blockquote>"Live magazine programme on the worlds of arts, literature, film, <span style="font-weight: bold;">media</span> and music"</blockquote>If the BBC or any other mass consumption media want proof that interesting intellectual discussion can be had about video games, <a href="http://flashofsteel.com/index.php/three-moves-ahead/">Three Moves Ahead</a>, a real time strategy podcast, is a good start. (<a href="http://flashofsteel.com/index.php/three-moves-ahead/">Try episode 8).</a><br /><br /><span style="font-weight: bold;">What can be done</span><br /><br />It is all very well me criticizing, but what do I think should be done?<br /><br />I genuinely believe the BBC has a responsibility to host a program that facilitates informed discussion of games. (This means more than a quick review of the latest releases). Games now have a larger market share than DVD purchases; it isn't a niche market anymore. I will be sending this post to the BBC and, if you agree with what I am saying, I ask that you do the same . Likewise, repost, link, retweet and spread the word.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_R1sjVzt2BmRFDvi4FaNsi-_sIX10lFy7ftuleXNN-c9mgu_ULFR11etY6AzmlnBC5ctHGG37DvUKa906H0AQz75-Mv0CKQb-ZpF0Z2to1v5vS4LRoF5Z7RzTr4v9Ms-afjZ8R_KyUL5J/s1600-h/game+growth.png"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 300px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_R1sjVzt2BmRFDvi4FaNsi-_sIX10lFy7ftuleXNN-c9mgu_ULFR11etY6AzmlnBC5ctHGG37DvUKa906H0AQz75-Mv0CKQb-ZpF0Z2to1v5vS4LRoF5Z7RzTr4v9Ms-afjZ8R_KyUL5J/s400/game+growth.png" alt="" id="BLOGGER_PHOTO_ID_5403748041694017730" border="0" /></a><br />However, there is something we all need to do; talk to people who hold this negative view of games. Don't call them a n00b, try to engage them in a meaningful conversation relating video games back to a medium they enjoy, such as films or books.<br /><br />If you feel you are getting somewhere, there are 3 games which I feel are both accessible for anyone to be able to play and also demonstrate the potential of video games to engage, entertain and stimulate the player.<br /><ul><li><a href="http://www.amazon.co.uk/Electronic-Arts-Portal-PC-DVD/dp/B00169L9C2/ref=sr_1_1?ie=UTF8&s=videogames&qid=1258043370&sr=8-1"><span style="font-weight: bold;">Portal</span></a>: This game is available for both the PC, Xbox 360 and PS3 and has modest PC specifications. This game has a beautiful and very funny story and the best puzzle design I have ever seen. It shows games to be an intellectually stimulating pass time. It has a very gentle learning curve and does not require first person shooter skills to get started.</li></ul><ul><li><a href="http://www.amazon.co.uk/Microsoft-Fable-II-Xbox-360/dp/B001CSO00A/ref=sr_1_1?ie=UTF8&s=videogames&qid=1258043398&sr=1-1"><span style="font-weight: bold;">Fable 2</span></a>: This game is very easy to pick up: the combat system only requires one button and death penalty is minimal. However, it demonstrates the power of story telling in games. Encourage them to let go of themselves and become their character. Tell the player not to feel self-conscious and make the decisions as they actually would. If they do this, they will be treated with the kind of emotional depth that few books have achieved</li></ul><ul><li><a href="http://www.amazon.co.uk/Take-2-Bioshock-PC-DVD/dp/B000V1VZNE/ref=sr_1_2?ie=UTF8&s=videogames&qid=1258043420&sr=1-2"><span style="font-weight: bold;">Bioshock</span></a>: This game demonstrates a world to explore - one of the things that games excel at. This game also has very little punishment for dying (although I would recommend letting them have a little experience with first person shooters such as Portal first, you can get both games on the PC, Xbox 360 or the PS3). It also has an absolutely fantastic twist that a book could not pull of due to the nature of games.<br /></li></ul><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMJkFMWt6KhECmrJ2o34-T-TfJT7q9XCRn-9F-Vc7iXMW80klfHpY0wtxtK8POXpYaTJ9oEQn83UMDAM-haItGawltSNhK6sFVoBIdE2L19RR-kfWXF59zCVIFncJbq_puM_dHqhWj3Poa/s1600-h/mechanicmessage.png"><img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer; width: 300px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMJkFMWt6KhECmrJ2o34-T-TfJT7q9XCRn-9F-Vc7iXMW80klfHpY0wtxtK8POXpYaTJ9oEQn83UMDAM-haItGawltSNhK6sFVoBIdE2L19RR-kfWXF59zCVIFncJbq_puM_dHqhWj3Poa/s400/mechanicmessage.png" alt="" id="BLOGGER_PHOTO_ID_5403651862742880146" border="0" /></a>If the skeptic player is still in any doubt that video games are a serious topic suitable for serious discussion, then encourage them to read about a <a href="http://playthisthing.com/train">game designed by Brenda Brathwaite called Train</a> or listen to the aforementioned<a href="http://flashofsteel.com/index.php/three-moves-ahead/"> Three Moves Ahead podcast</a>.<br /><br /><span style="font-weight: bold;">Conclusion</span><br /><br />Thank you for reading. To summarize:<br /><ol><li>Games are not just for children</li><li>Games are a serious medium and have as much potential for emotional depth as any other medium<br /></li><li>Main stream media should be encouraged to devise new programs to cover games<br /></li><li>Parents - get involved in games. Only you can know what is right for your children, and you might even enjoy it!<br /></li></ol>Spread the word and, if you disagree with anything I say, please leave a comment, I would love to hear other opinions.thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-60025842255460254572009-09-26T22:51:00.004+01:002009-09-27T00:24:46.021+01:00Music as a source of inspiration, Part 1: Lost CoastlinesMany things inspire specific game ideas for me. In fact, hardly a day goes by without some crazy, ill-thought-through idea planting its seed in my head. It normally starts with a desire to create a feeling or an emotion. For example, today I was watching a film called <a href="http://www.imdb.com/title/tt0811080/">Speed Racer</a> (surprisingly good actually) and I wanted to recreate the thrill of racing at absurd speeds requiring stupid reaction times where you had to jump, spin and smash your way to victory. I had even started mapping out the controls and how the single player would work by the time the film ended.<br /><br />In the following two posts, I will be outlining a couple of game ideas that have been inspired by pieces of music. As with everything else, what normally happens for me is that it conjures up an image in my head, that then translates in to a game play concept.<br /><br />The first song is an obscure song that was released on the Single of the Week offer run by iTunes. The song is called <a href="http://open.spotify.com/track/5QhPiUySPmu8WRgyXQRLZX">Lost Coastlines by Okkervil River</a> (<a href="http://www.spotify.com/en/">Spotify </a>Link). My idea started at the end of the game, I, however, will start at the beginning.<br /><br />It is a RPG of sorts set on the seas back when wind was the main means of getting around. At the start of the game, you have a simple choice, are you a right honourable sailor, or a pirate? You then arrive in a port and you are tasked with choosing a crew for your ship (which you inherited from your father who died at sea). In the port there would be about 100 people. (This is where the fact that I don't intend to build this in the coming weeks comes in to play): Each one of these would have a in depth and varied history and personality.<br /><br />The basic game play would consist of a number of potentially unrelated quests separated by expanses of time. This comes back to an <a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=535890">idea I discussed on GD.net</a>, with a more "real" world and potential for more varied quests. I'll do a post why I think this kind episodic game play could work at some other point, however, it is not really relevant to this post.<br /><br />If you're listening to the song, you are probably wondering, other than the vague sea theme, how the song inspired me to make this. In truth, most of what I just said existed before I heard the song, the sea theme is what made the following element glue with the rest of it.<br /><br />Through out the game, there would be vague hints, mad ravings and general NPC chatter about a "Lost Coastline". At the start of the game, I imagine most players will completely ignore it. However, I hope, as the game develops, and the references are repeated, people will pick up on it. There would be stories of sailors who went mad looking for the coastline, there would be hysterics who claim to have seen it etc. The only thing in common is that everyone who knows anything about it, says it is the most beautiful place ever and that no sailor has been known to return.<br /><br />Once you complete the game, as with many RPGs, you are free to continue looking around. It would be an open world in which you spend most of your travelling time auto sailing between ports and using maps to find known destinations. However, it will be perfectly possible to freely sail anywhere. Somewhere in the vast sea of the game, there will be the Lost Coastline (of course) and players can try to find it.<br /><br />At first you are probably repelled by the idea as being cheap. However, if it were easy to find, the whole point would be destroyed. I also regard it as in addition to the main game; for most people, the game will end without more than a cursory search. As it will be so hard to find, I envisage a giant internet cult spawning to try to find this beautiful lost coastline (I love designing without reality messing things up!).<br /><br />Then one day someone will find it, and it will be a beautiful experience for them. They would be the first person to set foot on the lost coastline. The first person to see all the wonder. True discovery is something that few in the 21st century have experienced. I would employ an artist specially to create it (who would be killed after development is finished, obviously) While I have mapped out what will happen, I don't really feel comfortable typing it out. Suffice to say it would poetic, or at least try to be.<br /><br />Afterwards the person would run and tell the internet all about it and everyone would rush there, but the magic would be lost. But for that one person, I (hopefully) would have created a unique experience that they will treasure for the rest of their life.<br /><br /><span style="font-style: italic;">Inevitably, it would be found by some stupid spoilt kid who played the game for five minutes, constantly tried to skip the damn thing because he was bored, until he found out he would be internet famous, but that's life!</span><br /><br />----------------<br />Now playing: <a href="http://www.foxytunes.com/artist/okkervil+river/track/lost+coastlines" title="'Okkervil River - Lost Coastlines' - open on FoxyTunes Planet">Okkervil River - Lost Coastlines</a><br /><span style="color: rgb(153, 153, 153); font-style: italic; font-size: 10px;">via <a style="color: rgb(102, 102, 102);" href="http://www.foxytunes.com/signatunes/" title="FoxyTunes - Web of music at your fingertips">FoxyTunes</a></span>thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com1tag:blogger.com,1999:blog-3441415220254247330.post-47549812556325070502009-08-15T13:51:00.004+01:002009-08-15T23:49:39.296+01:00Games as a form of artThis is a very hot topic at the moment and one that a lot of people have posted opinion on. I have my own opinions, but they basically boil down to that a good games makes you feel something (be it excitement, intrigue or success) but an art game makes you feel something that is not necessarily regarded as a positive feeling. For example, you could make the case that Fable is an art game because you feel responsibility, sadness at loss etc.<br /><br />I have more to say about it, but I really posted this to link to an <a href="http://www.zenofdesign.com/2009/08/07/the-art-of-fun">interesting post of the Zen of Design about this topic</a>.<br /><br />I largely agree with what it says. I think it is practically true that just because we have plenty of games that definitely aren't art (Gears of War 2) the same is true for all artistic mediums. In books, we have the Olaf Stapledon but then we also have Andy McNab. Does that mean that books can't be a form of art. No. There are hundereds of pictures that are just well painted nice landscapes, which I wouldn't call art. Or rather I would, which is part of the problem, as I see them as the painting eqivalent of Gears of War, nice to look at but won't make you think.<br /><br />That is also the other thing, everyone has a different deffinition of art, which futher complicates the matter and risks reducing the arguement to one of pointless semantics.<br /><br />[Sorry for the lack of posts recently, been on a French Exchange and going back to France in two days!]thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-33654658982813628082009-07-26T15:19:00.003+01:002009-07-26T16:23:32.618+01:00Twitter - Not Just Jumping on the BandwagonTechnologies come and go on the Internet and I like to think I only sign up for technologies which I can actually think of a use for, rather than just what everyone else is using.<br /><br />For example, with <a href="http://twitter.com">Twitter</a>, I wanted to use it to post updates on the development on Frozen Kangaroo. I often found that I had made progress in its development and wanted to keep a record of this, but it was not nearly enough for a blog post. In that sense, Twitter was ideal.<br /><br />However, today I found another use for it. I can't work out if Twitter is actually any good at this, or whether this is basically what forums have been doing for ages. Basically, there is now a <a href="http://search.twitter.com/search?q=%23gamedesign">#gamedesign</a> tag where frequent discussions about different game design topics take place. Its been going for a few weeks now, but I only really got involved today (discussing professinal gaming as a public sport, after I watched some of the Star Craft final live). It was then I realised how fantastic it was.<br /><br />I think the reason it is good is because it forces people to express short points, which means it is easy to keep up with it, instead of having to read pages of text, as is often the case at <a href="http://www.gamedev.net">Gamedev.net</a>. Also, <a href="http://tweetdeck.com/beta/">Tweetdeck </a>does live updating, meaning you don't have to keep using F5. As a result, any games designers or wannabe games designers, if you are looking for an excuse to join Twitter, here it is.<br /><br />(Oh, and make sure to follow me <a href="http://twitter.com/thk123">@thk123</a>)thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-64883118354867516572009-07-15T16:23:00.002+01:002009-07-15T16:42:36.963+01:00Go with the Flow is Audiosurf...A while back I<a href="http://botworkstudio.blogspot.com/2009/02/go-with-flow.html"> posted a game idea I had for a rhythm based platformer called Go with the Flow</a>. The basic premise was that it would be a platformer that went at such as speed you had to use the rhythm of the music to predict what you had to do. A raise in pitch would signify a jump and a lower would require you to dive. Whilst I tried to implement it in Flash, timing the level creation proved near impossible and my work in to byte interpretation of a song (where the program would look at the binary version of the song and calculate whether the sound was a raise in pitch or not) was not making sufficent progress to use<br /><br /><a href="http://www.gamedev.net/community/forums/topic.asp?topic_id=525848">I posted the thougths to Gamedev.net</a> and while I did get some game suggestions, no one suggested a game I later found out about (<a href="http://dieseltekk.blogspot.com/2009/06/games-for-windows-netbooks-part-one.html">reading an unrelated blog post</a>) called Audiosurf. If, like me, you haven't heard of the game, you control a little ship and must collect things to the rhytm of the music.<br /><br />While it isn't a platformer, and you don't really use the music to know where to go, it captured the essence of what I was trying to explain with Go with the Flow. I also realise that this basic concept is also in Guitaur Hero. It is simply a more involving way of listetning to music. It is like tapping your fingers to the tune, but slightly more interesting.<br /><br />Anyway, just a short post today, just wanted to have a go at all of you for not reccomending it to me.thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-43529952089265902392009-07-06T18:21:00.004+01:002009-07-08T18:55:37.715+01:00Driving Games: Change we need<span style="font-style: italic;">Apologies for lack of posting recently, my exams are over, so I really have no excuse.</span><br /><br />Racing games, in my opinion, are no longer designed. While racing games aren't my favourite genre, I certainly enjoy them. For me, however, I believe the game play is beginning to get stale. Obviously the racing component is essentially right; it's the rest which I have a problem with. In this post I hope to explain exactly what I have a problem with and what I think can be done to fix this.<br /><br />When new racing games are released, the major focus is the physics engine that can realistically model the cars. This seems to be almost exclusively what is demonstrated. Now don't get me wrong, of all the genres, racing is the one where the physics engines are most important. And it is important, <a href="http://thkgamereview.blogspot.com/2008/03/terrible-graphics-crysis.html">as I discussed in my post about excessive graphical focus on Veteran Gamer</a>, it increases the tension within the race, making it much more enjoyable.<br /><br />However, there is more to a game than one aspect. And a genre needs change, not just improvement. Every racing game follows the same basic plan. Loads of realistic cars, extensive realistic modding for said cars, hundreds of realistic tracks and a realistic physics engine. With the exception of Mario Kart, all racing games seem to target the realistic market.<br /><br />On top of that, the game play does not change. You race, you earn money to buy cars, you do more races. You fail a race, you retry. The game is always linear but without a story. I don't think racing games need a story, but if it doesn't have a story, why is it so linear?<br /><br />One of the things I would like to see is a more believable world with a fixed calendar of events. Obviously you wouldn't have to wait months to play the game, but if you loose a race, you might have to wait a game year to play in that race again instead of instantly retrying until you succeed. <span style="font-weight: bold;">Make individual failures acceptable and you should make the game less frustrating. </span><br /><br />One of my favourite off-track racing experiences was in some formula one racing game on the PS1, where you had to qualify for a tournament and you were given 12 game hours to do so. In that time, you had to get a qualifying time, fix any damage done to your car whilst doing this and do any upgrades/changes you wanted. This made the game feel more real and made the race more tense as you had already invested a considerable amount of time and effort in to it.<br /><br />At the moment, racing games lack interesting decisions, <span style="font-weight: bold;">you race as well as you can in every race, if you fail, you just restart. There is no reason to do anything else</span>. If however you had a calendar, you may have to choose between two tournaments (with different rewards, one might come with more money, the other with more prestige or a rare cup).<br /><br />And that is just an example. There are surely many ways to mix up the game play so it is not all the same. Take, for example, Burnout: Paradise, where you had an open world to explore.<br /><br />Another thing that seemingly all racing games do (Mario Kart excepted) is use super-realistic cars. While the real world is often a very good source to base your game ideas on, it certainly shouldn't be the sole source in a whole genre. The world lacks variety (there is, after all, only one). However, if you delve in to the fictional, your options are limitless.<br /><br />But even sudo-realistic universe could be significantly better in game play terms. In real life, cars are made to be as good as possible at everything. In a fictional, albeit similar universe, this could be impossible and instead cars have to be highly specialised or or below average in all areas. This would make choosing and tuning a car not so much a matter of finding the best, but the one best suited to the race ahead.<br /><br />However, I am not optimistic we will see this any time soon. As I've already said, good physics are important in a racing game and these are still expensive to create. This means that indie developers who want to try something new can't choose this genre (or else fail on the racing part, which is more important, no matter how I try to argue this). Publishers will not want to invest in other areas of the game that they cannot so easily demonstrated, particularly if it means cuts to the physics development or their own profits.<br /><br /><span style="font-style: italic;">Thoughts and opinions welcome. Have I missed the point, are racing games fine?</span>thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com1tag:blogger.com,1999:blog-3441415220254247330.post-12971311651220920992009-04-23T20:17:00.003+01:002009-05-14T10:13:24.445+01:00Posting hiatusWell you will have probably noticed posts seems to have dried up. To avoid the situation which happened last year on my other blog I am posting an official hiatus notice. Due to exams, posting on this blog, (and my<span style="text-decoration: underline;"> <a href="http://thkgamereview.blogspot.com/">game news site</a></span><a href="http://botworkstudio.blogspot.com/"></a>) will halt. Posting will resume on June 15th with a post about the resource model in Frozen Kangaroo.<br /><br />In the mean time, I will leave you with some links.<br /><br />I am really enjoying the <a href="http://flashofsteel.com/index.php/three-moves-ahead/">Three Moves Ahead podcast</a> from <a href="http://www.flashofsteel.com/">Flash of Steel</a>. If you want a taster of what the podcast is like, my favourite one was about <a href="http://flashofsteel.com/index.php/2009/04/14/three-moves-ahead-episode-8-symmetry-and-asymmetry/">symettry and asymettry</a> in games. The podcast is well worth a subscribe because it combines genuinely interesting discussion about games design with some funny personalities. Better yet, it doesn't just focus on the latest game release.<br /><br />Finally, an odd link. I am linking to this site primarily so that it can be found by Google. It is a website I designed (email me @ <a href="mailto:thekileyenator@gmail.com">thekileyenator@gmail.com</a> if you fancy one for yourself) and so I need Google to index it. However, if you are looking for plants in your work place, and you are based the home counties, this is the site to go to - <a href="http://www.renaissance-plants.co.uk/">Renaissance Plants</a>thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-40439168695249390852009-04-09T11:40:00.007+01:002009-04-11T23:27:40.991+01:00Frozen Kangaroo Concept: Nuclear Weapons<span style="font-style: italic;">In a series of posts I intend to explain the more detailed elements of Frozen Kangaroo, the real time strategy game that I am working on. You can <a href="http://botworkstudio.blogspot.com/2008/10/frozen-kangaroo-quick-summary.html">read an executive summary here</a>. I hope to make it so that the posts only rely on things explained before them. However, please excuse me if my posts either digress to explain some concept, or don't make any sense because of no digression. If you have any questions, leave a comment (if it is an old post, I would recommend posting it on a newer post) or email me @ <a href="https://mail.google.com/mail?view=cm&tf=0&to=thekileyenator@gmail.com">thekileyenator@gmail.com</a></span><br /><br />As with the real Cold War, nuclear weapons will play an important part in Frozen Kangaroo. Not only do they add a devastating weapon to your arsenal, they can be used as a diplomatic bartering tool and even a direct path to victory.<br /><br /><span style="font-weight: bold;">Types of Nuclear Missiles</span><br /><br />There are three types of nuclear missile in this game, each with their own strengths and weaknesses. They are: long, medium and short range nuclear missiles, or ICBM, err normal, and tactical nukes. Sadly, Blogger doesn't support tables, so I will have to explain it in paragraphs.<br /><br />The long range nuke has, as you might expect, the longest range. Indeed, it can shoot anywhere on the map, including the <a href="http://botworkstudio.blogspot.com/2009/03/frozen-kangaroo-concept-proxy-nations.html">proxy nation</a>'s colony cities (Will explain this in a later post, but they are basically where the civilians live. Each proxy nation has an associated colony city which contains millions of civilians who have been moved to keep them out of the way of the war). These missiles also inflict the most damage. Sadly, the pay off is in cost and speed. Cost is fairly self explanatory, but the effect of speed I will explain in a moment.<br /><br />The medium range missile can reach most of the map, but cannot reach the proxy nations colony cities. Damage is similarly weakened, although it is still very powerful. However, it is faster and cheaper.<br /><br />Finally the short range missile, which can only fire in provinces within a 4 province radius (subject to testing), and deals far less damage, particularly to buildings. It is, however, significantly faster and cheaper.<br /><br /><span style="font-weight: bold;">Missile Launchers</span><br /><br />To fire these missiles you have three options; fixed, mobile and submarines. Fixed missile launchers can be constructed by your builder units. They can fire any of the above missiles.<br /><br />The mobile missile launchers are a trainable unit. They can be moved about on the map, but need to be "deployed" before they can fire. These can only fire medium and short missiles.<br /><br />Finally, the submarine is a normal unit. It can carry two small nuclear missiles with it. Further nukes must be collected from a port. However, it does not need to set up. Also, as they are water based, they can quickly manoeuvre very close to key enemy provinces and threaten them before they have a chance to respond.<br /><br />With the exception of the sub (which needs to take its nukes with it) the launchers can only store one nuke at a time. Further nukes must be stored in a silo and then transported to the launcher. These silos come with stationary launchers, so you don't have to constantly arrange the transport of nukes. Trucks carrying nukes can also be "parked" in to either of the launchers, allowing all the connected nukes to be fired.<br /><br />However, if you wish to use a mobile nuclear launcher to target deep within the enemies territory, you will have to advance it with a truck carrying a nuclear missile. It may also be wise to accompany the truck and the launcher with some form of defence, as neither have any attack capabilities.<br /><br /><span style="font-weight: bold;">The Nuclear Missile Management Screen</span><br /><br />So how does speed factor in to all of this? Well, nuclear missiles aren't instantaneous. When you fire a nuke, your opponent is immediately alerted to this development and are taken directly to their nuclear missile management screen. On this screen, for each of the provinces there is a count down till the missile will hit... if its been targeted. The opponent, however, does not know which province has been targeted and so all provinces will have a countdown clock running. I hope to make this quite a tense screen to be on, with flashing red lights, constantly ticking clocks and maybe even a siren!<br /><br />What can you do with this information? Well, each one of your provinces can be sent into "bunker mode". This significantly reduces the damage done by any potential nuclear strike. However, going into and coming out of bunker mode takes time. During this time (and the time in bunker mode) all buildings production queues halt, units stop moving and you can't enter the province.<br /><br />You must then decide which provinces to put into bunker mode. Obviously, the opponent is more likely to target high value provinces, but if one of them is producing something very important, does the nuclear missile pose a big enough threat to warrant halting production.<br /><br />This is also where the speed of the nukes comes into play. A short range nuclear missile gives the player virtually no time to react, let alone put any of their provinces in to nuclear bunker mode.<br /><br />The other important thing with nuclear weapons that I want to cover in this post is retaliation fire. When a nuclear missile is sent your way, you have the option to hit a big red button marked FIRE. Prior to any nuclear strike, preferably during a quite period of the game, you can target your nuclear missiles at specific provinces. Then, whenever you hit the red button, they all simultaneously fire at these predetermined locations. This means that if the opponent launches a huge, devastating barrage of missiles at you, you can retaliate before they even hit.<br /><br />From the nuclear screen, you can set up retaliation fire, deploy provinces in to bunker mode and watch the approach of oncoming nukes with suitably tense flashing red lights.<br /><br />Nuclear missiles are clearly a very powerful weapon. However, they come with a severe cost. Using nuclear missiles is highly frowned upon by proxy nations and their colonies. As I explained in <a href="http://botworkstudio.blogspot.com/2009/03/frozen-kangaroo-concept-proxy-nations.html">my post about the proxy nations</a>, firing nuclear missiles, particularly in a province associated with them, has a strong negative impact on your relations. If you fire at their colony city, that will make them sworn enemies to you, and will strongly effect everyone's opinion of you.<br /><br />I will be explaining this is more detail, but nukes are, in some ways, more useful when not fired. You can use them in diplomacy to threaten your enemy or "persuade" other proxy nations to join you, lest they fall foul to your rain of terror. Also, as I said earlier, you can use them to win. Although I will be covering ways to win more fully, if you manage to significantly out-build your opponent on nuclear missiles, you can force them in to surrender.<br /><br />For my next Frozen Kangaroo concept I hope to be covering either the resources or diplomacy (including how you can use nuclear missiles in diplomacy - I never said it was friendly diplomacy).thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-23281611077975818862009-03-26T18:18:00.004+00:002009-03-26T18:34:23.347+00:00Blender fun and a quick update<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcA7qEiThA1PnnBaI-A0xBkX2llnBo8vFtqONQrM1ciZtNCOSN51LIe75rxUvktr_tT2ZcICRaQ4TnUGT5kiVRsS2Yrj0CdW98ClOjx6n81WqQvyCp8Zur8vficoNJ4A9G-vQUKQZ6Il2k/s1600-h/ray+gun.png"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcA7qEiThA1PnnBaI-A0xBkX2llnBo8vFtqONQrM1ciZtNCOSN51LIe75rxUvktr_tT2ZcICRaQ4TnUGT5kiVRsS2Yrj0CdW98ClOjx6n81WqQvyCp8Zur8vficoNJ4A9G-vQUKQZ6Il2k/s400/ray+gun.png" alt="" id="BLOGGER_PHOTO_ID_5317562735171188914" border="0" /></a>I have recently been using Blender. Here is my image that I created this afternoon. I was trying out a few things (transparency, multiple light sources and actually finishing an image). No, it isn't a hint as to any future project, it's just a ray gun of some sort.<br /><br />Also, I found out how to make really quick games in Blender. I had always thought you needed to use Python and so didn't bother, I have enough to learn as it is!<br /><br />However, what you can do is use the <span style="font-style: italic;">very </span>simple "Behaviour Editor". While I haven't produced anything meaningful, indeed anything even resembling a game, it does some very cool stuff out of the box. Namely, it has a physics engine complete with rotation, bouncing and friction. Hooking up keyboard input is easy and you can quickly get to grips with the basics.<br /><br />In the way of Frozen Kangaroo, the real time strategy game that Botworks is currently making (read the articles linked on the right under Frozen Kangaroo Concepts for an overview), progress has been made, but not huge progress. My exams are coming up, and so a lot of my time is devoted to revision etc. However, my laptop should be turning up within the next 2-5 working days. When that happens, I will hopefully be able to spend much more time working on it.<br /><br />Probably the most signifcant improvement I have made is the terrain engine. Before, each province had an asocitated image file which had all the terrain features in it. However, I have now moved the actual features off the image and in to a seperate file. When I want to place down a clump of trees, I now create a new TerrainFeature, giving it width, height and type of terrain. The engine takes that, tiles the correct image the set number of times, adding some random spacing to give it that natural feeling. It also can be queried to see whether a unit is within it. This will allow for easy checking to allow for speed modification.<br /><br />It also means it will be easier to update map designs without having to<br />a) go in to the image file and edit that and<br />b) recode it to hit test different areas of the map for movement modification (in the original, if I wanted units to slow down when travesering a ceartain type of terrain, I would have to manually set where the terrain was going to be and enter how much I wanted the unit to slow down by).<br /><br />Finally, there may be a hiatus of posts during my exam period. Hopefully I will get one or two more posts in before, but if I don't, posting will resume on the 11th of June.thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-26517998901755667042009-03-20T17:20:00.004+00:002009-03-20T22:45:48.945+00:00Context to the battlesI was listening to Troy Goodfellow's (<a href="http://www.flashofsteel.com/">Flash of Steel</a>) podcast 3 Moves Ahead today (<a href="http://flashofsteel.com/index.php/2009/03/11/three-moves-ahead-episode-3/">episode 3</a>) and they were discussing Empire: Total War. E:TW was highly criticised by Tom Chick, one of the contributors to the podcast, in <a href="http://www.crispygamer.com/gamereviews/2009-03-17/empire-total-war-pc.aspx">his Crispy Gamer review</a>.<br /><br />What interested me about their discussion was "do the tactical real time battles need the strategic layer". Putting aside the debate of whether the strategy layer is actually good (you can read my other blog, <a href="http://www.veterangamer.co.uk/">Veteran Gamer</a>, for this type of thing.), I will be looking at whether it is needed and what alternatives exist.<br /><br /><span style="font-weight: bold;">Is it needed?</span><br />What does the strategy layer offer? If you assume, for the moment, that the strategy layer is not fun enough to play on its own, why include it? In the case of Total War games, the most impressive element of the game is clearly the real time tactical battles. That is what makes up the adverts and that's where the development money went. So surely people view the campaign as just getting in the way. However, people insist on playing it.<br /><br />The reason is they give the battles <span style="font-weight: bold;">context</span>. This is an example of the strange phenomena of games. People needs rewards. This is completely bizarre when viewed with a purely logical mindset. Gamers play games to have fun (or to escape or whatever), that is the real reward. However, players need something in game too. Achievements are another example. Your gamer score counts for nothing, and yet people insist on playing the game again to get all the achievements. Why do they need the excuse, if they are enjoying the game enough, why can't they just play it again?<br /><br />I'm not a psychologist, so my answer is simply that humans are illogical and, as game designers, you must cater to this.<br /><br />Context provides this reward. What is the point of winning the battle on its own, where is the reward? However, if your battle contributes to winning the war, then suddenly it is worth while. Yes, this is ridiculous, what does winning the war grant you; nothing. But it doesn't matter any where near as much, as you don't finish the campaign half as often as you do a mission.<br /><br />A possible explanation for this need of context is that it helps immersion. In real life, there are no isolated fights, there must be some external purpose, no matter how basic.<br /><br /><span style="font-weight: bold;">Alternatives</span><br />OK, so context is needed, but what if you want all of your game to be fun. What alternatives exist to the campaign mode found in Empire and the like? Well obviously you have the traditional linear mission mode. Now sometimes, I think it is very easy to be snob like in your favourite genre. Recently, Resident Evil 5 came out. A lot of people lashed out at the controls. Immediately, Resi fans struck back with "this is how it has always been, you just can't HANDLE the controls". Just because this is how it has always been does not mean it isn't time for change.<br /><br />I make no such judgements over RTS fanatics, I have played enough to consider myself, at least partly, amongst them. I also freely admit that I don't normally bother with linear campaign missions.<br /><br />I think part of the attraction with these spiralling campaigns is they make an emergent story line (the best kind of story, in my opinion, when it comes to games). Also, I think with linear missions, some of the immersion, i.e. the point of not just playing the real time element, is lost. You can only win, if you lose, you restart, you will only advance in a set way and you cannot deviate from this. It isn't helped that the stories are usually predictable and unimaginative.<br /><br />One campaign I did like was Dawn of War 2. I think this excellently combined the two methodologies. It keeps the linear missions, which means you are very rarely distracted from the heart of the game, but keeps a strong sense of context. The whole campaign just feels more real than other real time strategies, including Dawn of War 1 (ignoring Dark Crusade and after, they suffered from a different problem entirely). The use of optional missions which provide optional benefits creates the reward system and interesting decisions for the player. As does war gear and levelling up your troops. True, there is a scripted series of events and you can't lose. The difference is, it feels like you have some control over the story and, because it is the same units with the same names, you get an emergent story that feels unique to you. Does your scout squad get annoyed they are often viewed as cowards? Do you try and balance which units get deployed so they don't get upset?<br /><br />The campaign is excellent for a number of other reasons which I detailed in <a href="http://thkgamereview.blogspot.com/2009/02/dawn-of-war-2-review.html">my review of the game</a>. However, the key thing is, it doesn't distract from the meat of the game, it just gives the missions context and reward.<br /><br />Overall, I don't think the campaign mode needs to be as complicated as Dawn of War (and believe me, that isn't complicated) All it needs to do is provide you with a believable back story before you begin the mission, and a reason to finish it other than pure advancement. Other great things include continuity between missions and interesting decisions that don't take hours to have visible effects. It is a real time game, and if your decisions don't have an immediate and obvious impact, then they become a drag and just taking you away from what you want to do. In some ways, I think this is where TW games fail. A turn can take as long as a turn in Civ. In Civ, that's what you want, in TW, it is taking you away from that.thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-77525470747796544282009-03-09T23:02:00.004+00:002009-03-10T22:41:14.456+00:00Frozen Kangaroo Concept: Proxy Nations<span style="font-style: italic;">In a series of posts I intend to explain the more detailed elements of Frozen Kangaroo, the real time strategy game that I am working on. You can <a href="http://botworkstudio.blogspot.com/2008/10/frozen-kangaroo-quick-summary.html">read an executive summary here</a>. I hope to make it so that the posts only rely on things explained before them. However, please excuse me if my posts either digress to explain some concept, or don't make any sense because of no digression. If you have any questions, leave a comment (if it is an old post, I would recommend posting it on a newer post) or email me @ <a href="https://mail.google.com/mail?view=cm&tf=0&to=thekileyenator@gmail.com">thekileyenator@gmail.com</a></span><br /><br />As I explained in my summary, Frozen Kangaroo is set in a fictional second Cold War in 2046 (100 years after the start of the first Cold War). A Cold War is one without direct fighting between the two countries involved. At first, this may seem to be quite a crucial element to any war. Or even if it isn't, how do you plan to make an RTS without fighting? In a Cold War, the two countries compete in other ways. For the original Cold War, the Space Race (the race to get a man on the moon) was a significant focus. These non-military competitions will be in Frozen Kangaroo. In this post, however, I will focus on the other main element of a cold war; proxy nations.<br /><br />Proxy nations in the real Cold War were nations that were in alliance with one of the two super powers. These nations then attacked either other proxy nations allied to the other side, or the other side itself. Through this, direct combat between the two super powers was avoided. Instead, they would advise, supply and help the proxy nation in every other way they could.<br /><br />In Frozen Kangaroo they will operate slightly different. Naturally, you will control one of the two super powers. Sadly, I do not believe the game would be much fun if all you could do was vaguely boss around some inadequate AI (because, whoever I am, it would end up being inadequate for what a player would want to do with them). Instead, I am going to take a slightly satirical view and give the player complete control of all their proxy nations; well, nearly.<br /><br />I am hoping to implement a change in game when fighting breaks out between American and Russian troops. However, I am not quite sure what it should be. While in theory the player will have control over where their units come from, this could be incredibly annoying to manage. What I will probably do is restrict diplomacy after this global event. I will be talking about diplomacy in a later post, where I'll explain what the implications for direct confrontation are.<br /><br />You will have control over your proxies as if they were your own troops... while they like you. If you upset them, they will cease to operate under your orders, and may even join the other side. Likewise, enemy proxies can be converted to your cause. This is done indirectly through your actions.<br /><br />There are three main elements that effect your standing with the proxy nations. Firstly, there is how well you are doing generally. If you are quite clearly more powerful, then they may wish to join you out of fear. Likewise, they might chuck in their lot with your enemy if it seems he is going to win. If you can't beat them, join them. This does create a design problem - once you start winning, you could become unstoppable. If it becomes too overwhelming, I may swap this round, as people would want to ally against the dominant force to bring back the status quo.<br /><br />The second factor is more directly tied to the nation. If you use their troops wisely, ie. low casualties for high kills, they will like you more. If, however, you seem to be sending their men in to pointless deaths, they may stop supplying you with troops.<br /><br />The other modifier is nuclear weapons. Using nuclear weapons is frowned upon by all nations. As I will explain in more details in a later post, you can either use nuclear missiles on provinces, or fire them directly at colonies. While targeting provinces can cripple your opponent, many nations will desert you as you are incredibly evil.<br /><br />Furthermore, it is possible to take action to reduce damage done by nuclear attack, as I will explain in a future post. If a leader neglects to do this, proxy nations may cease to want to be under your control.<br /><br />Each proxy nation has a score for both super powers. The proxy nation will ally with whichever score is higher. This means that if your opponent is treating a nation terribly, it will be easy for you to convert them.<br /><br />However, if both teams treat the country with disregard, the country can invoke sanctions and even withdraw completely to a state of neutrality. If, say, the score falls below 5 for either side, they cease to provide population for the construction of troops even if they are on their side. At 3, they may take away control for existing units, they can even block your troops advancing through their territory.<br /><br />So, to summarise, most of the fighting in this game is done through proxy nations. For the large part, this has little impact on how you play the game. However, if you are not careful with your allies troops, they might stop being your troops to control, or even your ally.thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-62885728981685274932009-02-27T23:02:00.006+00:002009-03-01T12:21:30.403+00:00Dynamic economies in games<span style="font-style: italic;">Before reading this post on how dynamic economies can work within games, I recommend reading <a href="http://www.designer-notes.com/?p=114">Soren Johnsons post on Game Economics</a>.<br /><br /></span><span style="font-weight: bold;">The Problem</span><br />Due to the international credit crisis, stories about our worlds economics going wrong are rife. More relevantly there was a case in Eve Online. You can <a href="http://news.bbc.co.uk/1/hi/technology/7256069.stm">read more about it on the BBC website</a> but it basically involved some viscous back stabbing on the part of some players. I bring this up for two reasons. Firstly, Eve is a game which is heavily focused around a dynamic economy. However this story demonstrates both the pros and cons of a manipulatable economy. This Sandbox environment allows for cool, real life things, to happen. This keeps the game fresh and interesting. However, this comes with its downsides. While some people may have loved this twist in the galaxy, many players will have had there experiences ruined by 2 people who they probably don't know.<br /><br />While this isn't exactly synonymous with dynamic economies, particularly in single player, the problems are certainly similar. Even in a single player game, a dynamic <span style="font-style: italic;">closed </span>economy can bottom out. A closed economy is one which everything remains inside the system and nothing can be added.<br /><br />This is actually less common than you might think. Take any RPG, drops from monsters are being created when you kill them. In an otherwise closed economy, this will create hyper-inflation as you sell all the excess items you find, so you have more money to spend, so prices rise etc.<br /><br />However, even if you create a completely closed economy, you will hit problems. For example, in an RTS, most resources are finite, so the system is closed. At the start of the game, this can make for interesting trading; if you are fortunate enough to start next to lots of stone, you can trade it for wood. However, as the game goes on, supply will out-pace demand as other constraints come in to play, namely managing your troops. This causes the market to drop out with everything becoming worthless.<br /><br /><span style="font-weight: bold;">Advantages of a dynamic economy</span><br />All this adds up to is, if you include a dynamic economy, you need to think carefully about a lot of things. Obviously, the reward is a dynamic game that features an extra layer of strategy. One of the main things that makes Civ 4 so re-playable is the different strategies that are available to you. Even the different victory conditions can all be broken down in to different ways of achieving them. A dynamic economy can become one of these ways; cripple the persons economy, then you can easily walk over them.<br /><br />Sins of a Solar Empire (a game which I will be mentioning a lot on this blog as in some ways [not setting] Sins is very similar to Frozen Kangaroo and there are many lessons to be learnt from it, both in its successes and failures) features a dynamic economy involving the buying and selling of resources. It doesn't immediately suffer from the above problems, but rather another thing that you need to consider when including an economy in to your game.<br /><br /><span style="font-weight: bold;">Distractions can destroy economy</span><br />Unless your game is entirely focused around the economy, then it is likely to be a small part of some other strategy. The problem with Sins isn't an economic one, but a game design one. To read the economy requires careful injections and extractions of resources to raise and lower the price. You have multiple options for buying and selling. However, you simply don't have time to figure out how it works. You are expected to do this whilst managing your fleet, your empire, your technology and your diplomacy. As a result, despite the fact it is quite cool, it slips down your list of priorities as the reward is simply not worth the time investment.<br /><br />What are the solutions to this? The first solution is to strip everything else out of the game, leaving only the economy. Obviously, this is not viable for Sins, the focus of the game is epic space battles.<br /><br />However, that doesn't mean that an economically focused game can't work. I read an interesting post on Gamedev.net about why all our games seem to be focused around violence or fighting. Part of it is certainly down to the human need to feel like we are winning. However, that does not mean that an economy driven game can't do that. Possibilities include either having to bankrupt your enemy, or, if you want to keep the war aspect, have a "war" being fought with you only managing the economy. Cornering resources secures you battlefield advantages etc. While you don't manage the battles, they are almost entirely play out as a result of your actions (the last thing you want is for your actions the feel irrelevant)<br /><br />The other solution is what I hope to implement in Frozen Kangaroo; automation. In some ways, this does not solve the problem; the fun is playing the economy and seeing the results. As a result, in Frozen Kangaroo it will be everything else that is more automated. While I describe Frozen Kangaroo as a real time strategy game, it is heavily focused on management and logistics of a war. As a result, I think that it is right to allow a greater focus on the economy. I'll be posting more about what the economic element is in Frozen Kangaroo soon.<br /><br /><span style="font-weight: bold;">Conclusion</span><br />Back to my original point: can dynamic economies in games work. The short answer is yes. However, you must consider a number of different things. The first one is one you should ask yourself every time you add anything to your game, does it fit with what already exists and does it improve the enjoyment? If you can't confidentially say yes to both questions, chances are you are putting it in because it sounds quite cool.<br /><br />Next, you must asses whether the player will have enough time, and the reward great enough, to actually use it. If you think it passes these stages, then an economy can work in your game. Only then do you need to start working how keep the economy balanced and interesting throughout the duration of your game. Play testing is the key to this.<br /><br /><span style="font-weight: bold;">And finally, a "realistic" economy is not necessarily a fun economy, our economy is realistic, is unemployment or very expensive oil fun for anyone?</span>thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-29416648069123039822009-02-24T22:38:00.004+00:002009-02-24T23:00:38.558+00:00Go With the FlowSorry for the lack of posts recently, I have been busy with my review(!) copy of Dawn of War 2. <a href="http://thkgamereview.blogspot.com/2009/02/dawn-of-war-2-review.html">You can read my review here</a>.<br /><br />Anyway, I had a game idea a while back that I think has some potential. Building on the success of many rhythm games and combining it with one of my favourite genres, I came up with: "Go with the Flow".<br /><br />You start off with a simple platformer. In this platformer, the map is constantly moving and you must use your 4 commands to avoid obstacles. These four commands are jump, duck (slide if you keep it held down) spin and moues grind (I'll explain in a second). Once you have built this, speed up the movement of the map so it is unplayable without lengthy memorization of the entire course, sounds terrible doesn't it?<br /><br />Then, you add the music. In theory it should work for any song. You craft the map around the song. The map is moving to fast for the players to play it blind, or deaf in this case. Instead, they must get in to the rhythm of the music and predict what they are going to have to do.<br /><br />This is probably the tripping point of the game. It is all very well if the programmer knows why he put such a block in, but the game will become very frustrating if you have to keep repeating the level to learn its foibles.<br /><br />The solution, at least in theory, is to stick to a logical implementation. If the note goes up, jump, if it is a low note, use down. Spin on beats .<br /><br />However, the second problem comes in two forms. Firstly, if you picture a jump animation, can you see the character landing before the next beat? And what if it is more extreme, with continuous variation?<br /><br />That is where the mouse grinding comes in. With continuous change in pitch, such as during a guitar solo, the user would use the mouse to keep the character in a broad path (that would rise and fall with pitch)<br /><br />Obviously, the best way to see if this idea would work (and be fun) is to implement a level. This is what I aim to do if I get time during the next month. The problem is, the platformer element needs to be <span style="font-style: italic;">really </span>smooth. Having played Guitar Hero, there is nothing more frustrating that when the game lets you down. The last thing you want is some dodgy hit testing!<br /><br />In the mean time, I will post this idea on Gamedev.net and see what they think about it. Feel free to post your thoughts in the comments below.thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-61329285011776998972009-02-03T17:52:00.008+00:002009-02-03T23:53:47.424+00:00London Global Game Jam 2009Last weekend, I took part in an event called the "<a href="http://www.globalgamejam.org/">Global Game Jam</a>" in London. As the name suggests, it was part of a much wider, global event. Basically, you go along, teamed up with some people and then have 48 hours to make a game. This time includes time for sleeping (heh! like anyone did any of that) eating etc. Despite this, the quality of the games produced was incredible. It was a truly fantastic event and I am so pleased I went along, everyone was nice and incredibly talented.<br /><br />Here is how it went:<br /><br /><span style="font-weight: bold;">Day 1 (Friday)</span><br />We arrive and meet up. There is a lot of expensive equipment just lying about, it was stunning. There were TVs, 360's, piano/keyboards and obviously hundreds of laptops. I have no idea how these people got this stuff here on the tube. We then received a couple of interesting key note speeches. The key message: Keep it simple! I have (some what embarrassingly) forgotten the names of both the speakers. One worked in a game development company where he programs console games. The second speaker talked about quick turn arounds and then admitted that "quick" normally meant three weeks rather than 48 hours!<br /><br />Then we got a third keynote speech delivered by the wonders of Youtube. The speaker was Kyle Gabler who created the successful indie game World of Goo.<br /><object width="350" height="215"><param name="movie" value="http://www.youtube.com/v/aW6vgW8wc6c&hl=en&fs=1"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/aW6vgW8wc6c&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object><br /><br />Then, we were given the restrictions and theme for our game. These were:<br /><ol><li>A complete round must last no longer than 5 minutes</li><li>Your game should use this theme: "While we were together, there shall always be problems"</li><li>Your game should use on of these three adjectives: "Grow", "Hurry" or "In-between".<br /></li></ol>Then it was discussing ideas. This was possibly my favourite part as it really was just a crazy brainstorm. Looking back at out post-stick notes later, it was difficult to believe that we didn't have a completely disjointed conversation.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmmaZi-c1GlmLNQvkJl1BmbhcuIW0CrK4y20I89MF1Lm4SwXSymQrScp0jJ5Uxl23iNcHN27B0NZWTdBRFCXo70cxEr2CEGQhbw8S0-q6kSfinq-azARJlJW4Ah2Y48C3M-7oBY0z_lnD6/s1600-h/DSCN0496.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmmaZi-c1GlmLNQvkJl1BmbhcuIW0CrK4y20I89MF1Lm4SwXSymQrScp0jJ5Uxl23iNcHN27B0NZWTdBRFCXo70cxEr2CEGQhbw8S0-q6kSfinq-azARJlJW4Ah2Y48C3M-7oBY0z_lnD6/s320/DSCN0496.JPG" alt="" id="BLOGGER_PHOTO_ID_5298633683647724274" border="0" /></a>In the end we settled on a fish based game. I would like to point out, for my egos sake, that it was me that originally, right at the start, suggested the idea of a chain linking two things together. None the less, most of the credit for our idea goes to Yanhua, an undergraduate at Metropolitan University of London. From there, Jon, our genius programmer, showed us some actionscript physics type thing which was awesome, and we went from there.<br /><br /><span style="font-weight: bold;">Day 2 (Saturday)</span><br />Day two was largely spent programming away. Or in Chris's case, our musician, coming up with the amazing sound you find in our game. His trust worthy bucket and him spent many an hour recording sound effects to give the impression of the tranquil underwater. We also prototyped some of our sea creatures - in plasticine!<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7JRmmgrfWFZc-rlQ1oiTPonKFrT6t1z4HQCQRpTQsYMaaIJCfBDhzQro4CsL4oiOBXtiKaIPhRytjn0G-YguWOY14hj8T2G5rrb2xn7ClAxMBBnZqIYTMJUoeBDUTHDsPjdz1fnae4ezC/s1600-h/DSCN0503.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7JRmmgrfWFZc-rlQ1oiTPonKFrT6t1z4HQCQRpTQsYMaaIJCfBDhzQro4CsL4oiOBXtiKaIPhRytjn0G-YguWOY14hj8T2G5rrb2xn7ClAxMBBnZqIYTMJUoeBDUTHDsPjdz1fnae4ezC/s320/DSCN0503.JPG" alt="" id="BLOGGER_PHOTO_ID_5298722126795937906" border="0" /></a><br /><br /><span style="font-weight: bold;">Day 3(Sunday)</span><br />Crunch day. What was really frustrating was at about 2 o'clock, Jon had got the game pretty much working. Then, in an attempt to do some minor change, he some how managed to break some other, unrelated, thing (so often the way with programming). In the end, the three o'clock deadline was a bit of an anti-climax. The upload failed (and did for a number of people) So, we carried on working on it till about 4. Then we watched, demonstrated and played the games. I videoed the demonstrations of all the games (except one - I ran out of memory) My personal favourite was a game called "MA", built in Unity (a 3D game making bit of software costing £A,Lot). In essence, it was a maze game. The clever part was, you couldn't actually see the walls of the maze at all. Instead, you had little particles which you could send out which would bounce off the walls. I liked it because it was a neat mechanic and it just worked really well. Anyway, here are the videos:<br /><object width="350" height="215"><param name="movie" value="http://www.youtube.com/p/440BB011E21911DD"><embed src="http://www.youtube.com/p/440BB011E21911DD" type="application/x-shockwave-flash" width="480" height="385"></embed></object><br /><br />I strongly recommend that you <a href="http://globalgamejam.org/category/london-england">check out these games</a> (especially ours - the Deep) If you can't be bothered to download the zip, you can also <a href="http://studweb.north.londonmet.ac.uk/%7Eyao0044/doc/the_deep.swf">view it here</a>. You may want to restore your web browser, it can be quite processor intensive (there is a lot of physics going on!)<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE2M9QX8ieDquK3LxbxmNClamVcXaxfU0FIhbBvvu7ZebWJk8SWTVUye-cPgFlQ3kpu8SEwLlqLPv_xUdwgAbwAgrf_JoWdljWJdu8Wjf7Vqau4uRvJHT7ek2cvFzhz0ww_-6-7EVewbhu/s1600-h/DSCN0515.JPG"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE2M9QX8ieDquK3LxbxmNClamVcXaxfU0FIhbBvvu7ZebWJk8SWTVUye-cPgFlQ3kpu8SEwLlqLPv_xUdwgAbwAgrf_JoWdljWJdu8Wjf7Vqau4uRvJHT7ek2cvFzhz0ww_-6-7EVewbhu/s320/DSCN0515.JPG" alt="" id="BLOGGER_PHOTO_ID_5298720267855836866" border="0" /></a><br />Finally, just want to say a huge thank you to all my team, you guys were awesome! It was amazing to be in such a talented and nice team, thanks for letting me get involved. I hope all of you do it next year. If <span style="font-weight: bold;">you </span>didn't do the Global Game Jam this year, make sure to do it next year. It doesn't matter what you do or even how good you are, come along it is great fun and you will meet some really cool people!<br /><br />Until next time Game Jammers!thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0tag:blogger.com,1999:blog-3441415220254247330.post-25377147989175716272009-01-26T13:40:00.000+00:002009-01-26T13:43:20.938+00:00Moving in an RTSIn this post I will be discussing the theory behind the code in making a unit move from one location to another. This is not meant to be a complete tutorial, nor ground breaking. In fact, it won't even cover basic path finding. However, if you are having problems making a unit move between two points (namely, they move diagonally and then straight along) read on.<br /><br />Such a seemingly simple thing, moving a unit between two points in a straight line (ignoring path finding as FK will not have path finding) However,I struggled with it for quite some time.<br /><br />At first, I thought it would be really simple. See if the X co-ordinate of the object is bigger or smaller than the target X co-ordinate. Then, add/subtract the desired speed depending on whether the number is bigger or smaller (with bigger numbers being down and to the right). This works fine if the destination is as much above as it is to the right. However, if the target is not, the unit moves at 45 degrees toward the thing until either the X or Y co-ordinate are in line with the destrination (which ever is sooner) at which point, it moves horizontally/vertically. Apart from looking ridiculous, it is not the quickest way between the two points and so will be incredibly frustrating for the player. But then, if you are the target audience for this post, you knew this already.<br /><br />[Note: Another problem that you may encounter is that as the unit reaches it's destination, it jumps around it. This is because it is unlikely the player will click on a pixel that your units movement speed goes in to exactly. As a result, you unit will switch between being to the left and to the right of the target. I will explain my solution to this at the end of the post]<br /><br />I tried a couple of other things that, in hind sight, are long winded amd complicated; I won't bore you with the the details. They ended up working to a point, except when the unit had to move either vertically or horizontally, it would accelerate to near infinite speeds.<br /><br />The solution I finally settled on, at first seemed too complicated (and for all I know, there might be a better one) It relies on creating a right angled triangle with the destination point, finding the accute angle and creating proportional x/y speeds that add up to make a total (limiting the maximum speed) (See diagram)<br /><br /><br /><br /><p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVPi-lwNefpJz80B9Ml6-lbL5gh-Ax58joOd-66jGfwFHRpNs7n-oBKpZnWDs1B_05hwAQ9oM1pycdlaAHlKqdcSJ57M42ZRnJiwP-Oi5i2hOZIGh2JnOwEL9yDOPjv1lhhImY8OksiYqP/s1600-h/unitMovement.jpg"><img id="BLOGGER_PHOTO_ID_5293890645262232034" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: pointer; HEIGHT: 287px; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVPi-lwNefpJz80B9Ml6-lbL5gh-Ax58joOd-66jGfwFHRpNs7n-oBKpZnWDs1B_05hwAQ9oM1pycdlaAHlKqdcSJ57M42ZRnJiwP-Oi5i2hOZIGh2JnOwEL9yDOPjv1lhhImY8OksiYqP/s400/unitMovement.jpg" border="0" /></a>Using trigonometry (Soh Cah Toa!) we can find the angle using xDist and yDist (which can be calculated by subtracting the larger x/y co-ordinate from the smaller of the unit and it's destination)<br /><br />Tan(Angle) = yDist/xDist<br /><br />Or...<br /><br />Angle = atan(yDist/xDist) //atan is the inverse of tan, called atan in most programming langauges.<br /><br />In most programming languages, this will actually give you the answer in radians (a way of numbering angles where pi represents 180 degrees). However, for the sake of simplicity (no PI key on my keyboard!) I will use degrees. You can either convert Angle in to degrees (*180 and then divide by PI) or when I say 90, use PI/2.<br /><br />Next, we work out how steep the hypotenuse (longest side of the trianlge) needs to be. By doing the angle/90 we can work out what proportions the 2 speeds need to be. If the angle is 90, then we know we want the whole speed to be vertical, whereas 0 needs to give the whole speed as horizontal.<br /><br />The way I did this was first calculate the Y speed.<br /><br />ySpeed = (Angle/90)*Speed //where speed is the distance in pixels that you want your unit to cover in one frame.<br /><br />In this, if the angle is 45, (ie. as far up as it is across) then you get (1/2)*speed resulting in half of your total speed to vertical.</p><p>The xSpeed is then calculated by taking the angle from 90 and putting that over 90. In the end, you will get two angles that add up to 90. Therefore, when you put them over 90 as two seperate fractions, they will add up to 1. So, when the two fractions are times by the speed, the two fractions of speed will add up to speed.<br /></p><p>The problem with this is it will only work when both values are increasing (ie, the unit is moving right and down) To get around this (and deal with a second problem which I mentioned earlier) when the destination is selected, define two boolean variables to store whether the target is left/right and up/down. Then, when your regular function to move the unit is called, if movingRight == true, if != true, then subtract the number and so on.<br /></p><p><span style="FONT-STYLE: italic">I realise that this is a little confusing, so here is a quick summary of what I mean</span><br /></p><p><span style="FONT-WEIGHT: bold">Summary: By finding out the angle that the destination is from the current position, you can find the preportion that the two speeds need to be. </span></p><p>The final issue is checking when a unit is arriving. By using your movingRight boolean variable, you can simply see whether the unit has passed the X co-ordinate. If movingRight==true then if curX >= targetX then it has arrived. Likewise, if movingRight != true, then curX <= targetX for it to have arrived. And you do not need to check y, as they should happen at the same time. </p><p>Here is my C#/XNA code if it is any help: (distASec is a Vector2 which stores the speed, curPosition is a Vector2 which has the units location and currentTarget is a Vector2 which is where the unit is heading. Vector2 is a XNA data type which stores X and Y co-ordinates(as floating point numbers, if your in to that sort of thing!).<br /></p><p style="FONT-FAMILY: courier new">if (currentPosition != newTarget)<br />{<br />Vector2 totDist;<br />float refAngle;<br />currentTarget = newTarget;<br /><br />//Calcuates total distance and direction<br />if (currentPosition.position.X < movingright =" true;" x =" currentTarget.position.X"> <p style="FONT-FAMILY: courier new"><br />}<br />else<br />{<br />movingRight = false;<br />totDist.X = currentPosition.position.X - currentTarget.position.X;</p><p style="FONT-FAMILY: courier new"><br />}<br /><br />if (currentPosition.position.Y < movingdown =" true;" y =" currentTarget.position.Y"> <p style="FONT-FAMILY: courier new"><br />}<br />else<br />{<br />movingDown = false;<br />totDist.Y = currentPosition.position.Y - currentTarget.position.Y;<br />}<br />refAngle = (((float)(Math.Atan((totDist.Y / totDist.X))))*180)/(float)Math.PI;</p><p style="FONT-FAMILY: courier new"><br />distASec.Y = (refAngle / 90)*speed;<br />distASec.X = ((90 - refAngle)/90)*speed;</p><p><span style="font-family:courier new;">}</span></p><p>Finally, to check if the unit has arrived.</p><p><span style="font-family:courier new;">if((movingRight && currentPosition.position.X >= currentTarget.position.X)(!movingRight && currentPosition.position.X <= currentTarget.position.X))</span><br style="font-family:courier new;"><span style="font-family:courier new;">{</span></p><p style="FONT-FAMILY: courier new">//Code to be excuted upon arrival</p><p><span style="font-family:courier new;">}</span><br /></p>thk123http://www.blogger.com/profile/12721921644663912935noreply@blogger.com0