Sponsored Links
Monday, March 31, 2008

People have been telling me that they can't download my latest TileEngine Tech Demo, and I found out that it was due to the permissions model changing when I upgraded the Soap Dragon website recently.  I have found the issue now so you should be able to download it fine.

You will still have to register to get access to the Tech Demo downloads however.

Monday, March 31, 2008 12:25:30 AM UTC  #    Comments [0]  |  Trackback
Wednesday, March 19, 2008

I've posted an updated TileEngine Technology Demo to v0.6.3 for dowload on the Soap Dragon Games website.  The new version look very similar to the old v0.2.3 one but there are a lot of changes behind the scenes, including heaps of scripting updates, dialog box handling, dynamic buttons (which can be created in lua script), multiple player actors and switching between them, and a bunch of other improvements.

It also includes a (semi) working map editor, but you need to know some script commands to make it work.

Jump over to the site and download it.  I'm keen to hear any feedback that you have about it.

Wednesday, March 19, 2008 9:07:27 PM UTC  #    Comments [0]  |  Trackback

My head is spinning.

Last week the guys from the game development house Straylight Studios contacted me and offered me a job as a senior programmer.  I've been talking to them for a while about the possibility of working there, but I thought that it was a bit of a shot in the dark.

So anyway I have accepted the job.  Hell, how could I not accept.  Game development has been my hobby since I was about 8 years old, and it is my ultimate career choice.  They could have asked for me to work for free and I would have jumped at it (well, not actually, I still have a family to support).

I'm starting on the 21st of April, which is just in time for their company reboot.  I've been told which project I'll be working on initially, but I'm not sure how much I'm allowed to comment on publicly just yet.  I do know that I'll be using C++, C# and Lua.

I was a bit worried about how it would go down with everyone at eMedia (where I current work as a web developer) because it's going to make things hard for everyone until they can find someone to fill my shoes, but everyone has been REALLY supportive.

 

 

Wednesday, March 19, 2008 9:02:24 PM UTC  #    Comments [0]  |  Trackback
Wednesday, March 05, 2008
Dungeons & Dragons first edition
As various sources around the web are reporting the death of Gary Gygax.  Gary was of course the co-creator of Dungeons and Dragons

I've never really thought about it before but this guy was actually a major influence in my life, from playing D&D at high school, to when I started playing with computer game development I used to base all of my code on good ol' 3d6 dice rolls rules out of the D&D rulebooks.

A salute to Gary.  You have left a mark on our world and we thank you for it.

Gary Gygax
Wednesday, March 05, 2008 7:07:47 AM UTC  #    Comments [0]  |  Trackback
Sunday, December 16, 2007

There's a pretty good article over on CodeProject discussing how to get an XNA Game Studio 2.0 project working in Visual Studio 2008.  It also quickly goes over how to get an XNA project hosted in a Windows Forms application.

Take a look at http://www.thecodeproject.com/KB/game/XNA_And_Beyond.aspx

Sunday, December 16, 2007 11:06:12 PM UTC  #    Comments [0]  |  Trackback
Tuesday, November 20, 2007

You've probably already heard this from a hundred blogs across the planet already, but there is a beta release of XNA Game Studio 2.0 available.  The official announcement on the XNA blog is here.  They also have a full list of what's new on the official site.

The biggest changes include support for Visual Studio 2005.  You don't have to run it on Visual C# Express anymore.  Unfortunately there is no support for Visual Studio 2008 which was released yesterday, although I imagine it will be supported by the time it comes out of beta.

It also includes support for the new multiplayer APIs so you can set up your games to play over system link, xbox Live (you need an XNA Creators Club membership for that), as well as over a local network.

Tuesday, November 20, 2007 8:42:29 PM UTC  #    Comments [0]  |  Trackback
Monday, September 24, 2007

If you are running both Visual Studio 2005 and Visual Studio 2008 (beta 2 at the time of writing) then you may wish to load solutions with both IDEs.  Unfortunately the Solution files are a binary format which differs between VS2005 and VS2008, however the Project files are a text format which is backwards compatible.

So what I do is I copy the VS2005 solution files (.sln, .sou, .vsscc and .vssscc) and append "_VS2008" to the end of the filename, so for example you would rename "myapp.sln" to "myapp_vs2008.sln" etc.  Then I load this new solution into VS2008 which will convert it.
 
Then you have two solution files, one which is loadable in VS2005 and one which is loadable in VS2008.  I often use this in my development environment where most of my developers are still using VS2005, but I use VS2008 B2, and we can collaborate using both versions.

Monday, September 24, 2007 12:53:29 AM UTC  #    Comments [0]  |  Trackback
Monday, April 02, 2007

Lua 5.1.2 is now available at http://www.lua.org/ftp/lua-5.1.2.tar.gz

This new release fixes all of the known documented bugs from v5.1.1 (see the list at http://www.lua.org/bugs.html#5.1.1).   Thanks to Luiz and all the other contributors.

Hopefully I'll be able to get my Vault source safe repository back online soon and get this release built into my TileEngine platform.  Unfortunately SourceGear Vault isn't supported on Vista yet, so i'm going to have to install it on a spare WinXP box that I have.  Apparently SourceGear are planning an update to v3.5.2 in a month or so with Vista support.  There is a thread about this on their forums here: http://support.sourcegear.com/viewtopic.php?t=7048

 

Monday, April 02, 2007 9:20:11 PM UTC  #    Comments [0]  |  Trackback
Monday, February 19, 2007

Ozymandias (Andre Vrignaud) has posted links to some awesome YouTube footage showing off a bit of the "Digital Molecular Matter" physics and Euphoria AI being used in the upcoming Star Wars game Star Wars: The Force Unleashed.  It is absolutely awesome.  It is still in the tech demo stage, but I can see a day when we are all using plugin modules to accomplish these results.

Head over to Ozymandias blog entry to view the tech demo videos.

Monday, February 19, 2007 11:50:09 PM UTC  #    Comments [0]  |  Trackback
Wednesday, February 14, 2007

It's been a while since I've posted so I figure I should keep everyone in the loop.

I was planning to get a whole lot of work done over the christmas break, but ended up spending heaps of time with my wife and kids, which was probably more fun anyway.

Getting back to work was hectic because we are in new offices so I've been rebuilding the network and trying to keep up with coding jobs as well.

Last week I installed Vista on my home machine which runs great, short of the lack of drivers for either of the available ADSL modems that I have.  I ended up having to revert to building an old computer and running it without a monitor as a gateway machine.  It is appropriately named R2D2 on my home network.

During the period of installing Vista and trying to get the ADSL modems working on it I had to reboot lots of times.  Unfortunately I'm having further issues with my Gigabyte GA-8N-SLI Pro motherboard (see here and here). 

The problem that I am having is that when I turn the computer on it will power up for a couple of seconds and then reboot (you can hear the drives recycling and the fans resetting), then powers for a couple of seconds, then reboots, etc.

This will happen anywhere from 4 times or more. I've seen it cycle more than a dozen times before, but I usually turn it off again before it does it too many times for fear of causing permanent damage to the computer. If the rebooting does stop then it won't load up the video card (a Gigabyte 7800GTX card) and the computer will continue to load into windows but without the video card working. At this point I have to turn it off again to try again.

This happens at least 19 out of 20 times that I turn it on. Getting the machine to boot up is a labourious task because of this; it can take over 30 minutes or more to get it to turn on successfully.  This definately made installing Vista a problem, especially due to the fact that I needed to open the box a bunch of times and twiddle with the internal PCI ADSL modem.

Usually I avoid the problem by not turning off my computer, but after last week I decided to get something sorted out about it.

I think it must be an incompatibility with the motherboard and my Pentium D 830 CPU, which is supposed to be supported but I'm not entirely sure.

Unfortunately the only option to get it sorted was to send it back to the supplier in australia, and it could take a couple of weeks to sort out, so once again I am without a decent computer to code on.  On top of that my source code repository (running on SourceGear Vault) is on that computer so I can't even code on my laptop.

I have been doing a bit of work creating tilesets however, so during this downtime I might attempt to get a better set of graphics for my TileEngine prototypes.  I've been working on some cave wall tilesets, plus some better brick walls, and also some road floor tiles and roadsigns etc.

Wednesday, February 14, 2007 11:09:54 PM UTC  #    Comments [0]  |  Trackback
Thursday, December 14, 2006

Just days after Microsoft released XNA Studio Express they have now released the December 2006 DirectX SDK.

Head over to the Direct Download page and grab it.

Thursday, December 14, 2006 3:49:33 AM UTC  #    Comments [0]  |  Trackback
Monday, December 11, 2006

Well this one snuck up on me a bit.

I came in this morning and found that the Microsoft XNA team had released XNA Game Studio Express v1.0!  Head over to http://msdn.microsoft.com/directx/xna/gse/ to grab it.  It is still free of course, however if you want to create games for your Xbox 360 then you'll need to subscribe to the XNA Creators Club from the Xbox Live Marketplace on your Xbox 360.  You will need an active Xbox Live silver or gold subscription to do that.

Looking at the system requirements it appears that you still need Microsoft Visual C# 2005 Express edition installed, which surprised me a bit because one of the most requested features that I was aware of is the ability to use other editions of Visual Studio 2005.  For instance I have Visual Studio 2005 Professional, and I usually use either Visual C++ or Visual Basic; I haven't delved into C# nearly as deep as the other two languages.  From the readme:

XNA Game Studio Express is designed to work only with Microsoft Visual C# 2005 Express Edition. Other members of the Visual Studio 2005 line of products, for example Visual Studio 2005 Professional, can co-exist with XNA Game Studio Express on the same computer. However, you cannot access the functionality of XNA Game Studio Express from these other products.

Other than that, I'm sorry that I haven't had many updates lately.  Things have been pretty hectic around here;  we recently moved offices at work, renovations on the new kitchen at home are just about complete, and it's Christmas time etc.

I'm off on holiday next week so I'll hopefully be able to get back into development on my TileEngine.  It has progressed somewhat, i've been working on some new tilesets for a Christmas themed game for the kids.

 

Monday, December 11, 2006 8:30:35 PM UTC  #    Comments [0]  |  Trackback
Thursday, November 02, 2006

The XNA team have just released Beta 2 of Microsoft XNA Game Studio Express for download.  For the direct download page download it here.

The new beat includes the content pipeline functionality that we've all been waiting for.  There are quite a few changes between Beta 1 and Beta 2 so anything that you've built with the first beta will need a few modifications to work, however they say that the changes between Beta 2 and release should be much smaller.

For a lot more details on what has changed, head over to the XNA Team Blog and read Mitch Walker's post.

The readme page notes that you'll still need to run it on Visual C# Express, and it still doesn't run out of the box on Vista.  It is well worth reading the readme before you start because there are some important setup issues:

1.1.1. Uninstall XNA Game Studio Express Beta1 Before Installing XNA Game Studio Express Beta2

You must uninstall XNA Game Studio Express Beta1 before installing XNA Game Studio Express Beta2. You can uninstall XNA Game Studio Express Beta1 using the Add or Remove Programs applet in Control Panel.

1.1.2. Visual Studio 2005 Reports "This Project Type is Not Supported", After Uninstalling XNA Game Studio Express Beta1

Uninstalling XNA Game Studio Express Beta1 causes ProjectAggregator.dll to be unregistered. As a result, if you have SKUs of Visual Studio other than Visual C# Express installed on the same computer, they may report that some project types are no longer supported. Examples of such SKUs are Visual Studio 2005 Standard and Visual Studio 2005 Professional.

To workaround this issue, give the following command at a console command prompt to re-register ProjectAggregator.dll.

 regsvr32.exe "%vs80comntools%\..\IDE\projectaggregator.dll"

This issue is fixed in the Beta2 release of XNA Game Studio Express; uninstalling Beta2 will not cause this issue.

1.1.3. Run Visual C# 2005 Express Edition at Least Once Before Installing XNA Game Studio Express

You should run Visual C# 2005 Express Edition at least once before installing XNA Game Studio Express. Otherwise, features of XNA Game Studio Express may be missing from the user interface. For example, the XNA Game Studio Xbox 360 item in Tools | Options dialog may be missing. If you encounter this issue, we recommend that you do the following:

  1. Uninstall XNA Game Studio Express.
  2. Run Visual C# 2005 Express Edition.
  3. Exit Visual C# 2005 Express Edition.
  4. Reinstall XNA Game Studio Express.
1.1.4. Register Microsoft Visual C# 2005 Express Edition Before Installing XNA Game Studio Express

You must register Microsoft Visual C# 2005 Express Edition before installing XNA Game Studio Express. To register Visual C# 2005 Express Edition, click Register Product on the Help menu.

1.1.5. Close Visual C# 2005 Express Edition Before Installing XNA Game Studio Express

Before installing XNA Game Studio Express, close any running instances of Visual C# 2005 Express Edition.

 

Thursday, November 02, 2006 1:27:09 AM UTC  #    Comments [0]  |  Trackback
Tuesday, October 31, 2006

For all of you VB.NET developers out there Alan Phipps has a really good tutorial on how to get XNA studio up and running on Visual Basic 2005.

Take a look at his XNA/VB.NET tutorial.  Good work Alan

Tuesday, October 31, 2006 12:02:34 AM UTC  #    Comments [0]  |  Trackback
Monday, October 30, 2006

Yesterday a new bunch of Visual Studio 2005 IDE enhancement powertoys were released.  The pack includes 5 powertoys, most of them are pretty average, but the last one is something that I've been wanting since VS 2005 came out:

Source Code Outliner : The Source Outliner tool is a Visual Studio extension that provides a tree view of your source code's types and members and lets you quickly navigate to them inside the editor.

This doesn't appear to work with C++.  I haven't installed the powertoys on my work computer yet, so I haven't had the chance to see how well it works with VB.net and C#, or how much use it is.

Indexed Find : The Indexed Find tool is a Visual Studio extension that uses the Microsoft Indexing Service to provide improved Search capabilities to the integrated development environment (IDE). It sends the results of a search to the Output Window.

I've never been much of a fan of the indexing service, especially when it comes to finding files on the filesystem.  I think that the default find functionality in Visual Studio 2005 works perfectly well as it is.  If I really need to find something on the filesystem (when it isn't isn't in an open VS solution) then I'll use the exellent Agent Ransack tool (which is free btw), and I have it installed on every machine that I use.

Super Diff Utility: The Super Diff Find tool is a Visual Studio extension that compares text files. It uses color coding and graphics to show the difference between the files in deleted text (red), changed text (blue), inserted text (green).

I haven't tested this very much.  It's a nice tool, but I haven't seen much to write home about.  It is a good replacement for the windiff tool from the Windows Resource Kit, I'll probably start using it a bit, but I already use the perfectly functional compare functionality within Visual Studio.  Unfortunately it doesn't integrate with Source Code Control providers, so for that I use the Vault Compare tool which comes with SourceGear Vault (my source code control provider of choice).

Event Toaster Utility: The Event Toaster tool is a Visual Studio extension that notifies users about specific events within the Visual Studio IDE.

This is a weird one... who dreamed this up.  I can only say that it would be useful for very large projects.  It allows you to be alerted when any of the following events occur:  Build Completed, Code Analysis Completed, Entering Break Mode, Execution Session Completed, Document Opened, and Document Saved.  The ways that you can be alerted is via customisable sounds, or taskbar notifications, or you can run a command or macro on any of these events.

It could be useful for me in the future, but at this stage I can't see me using it.

Visual C++ Code Snippets:The Visual C++ Code Snippets tool lets you insert snippets in your code by using a pop-up menu that contains programming keywords. VB.NET and C# languages have this functionality in Visual Studio 2005.

This is the powertoy which has me all excited!  We finally have code snippet functionality for C++.  Try these out for size:

  • Drag over a block of code, right click on it and select "Surround with..." to be provided with a bunch of different control blocks, such as a try block or a while loop. 
  • Type "tryf" and press tab to create a complete try/catch/finally block
  • Type "attribute" and press tab to create a full class attribute (based on the attribute guidelines on MSDN (this is for C++/CLI).
  • Type "prop" and press tab.  This will create a class property.  I've modified this because I'm not familiar with the format that it produces (is it C++/CLI?), to create a class with a __declspec statement as per this page on MSDN. You can download the modified property snippet file here: prop.snippet (1.22 KB)

You can of course create your own code snippets.  Just copy any of the default snippet files from the "C:\Program Files\Microsoft Visual Studio 8\VC\Snippets\1033\Visual C++" folder into your custom snippets folder at "C:\Documents and Settings\YourName\My Documents\Visual Studio 2005\Code Snippets\Visual C++\My Code Snippets" and modify them to suit.

Anyway, go and download the powertoys for yourself and have a try.

Monday, October 30, 2006 4:53:47 AM UTC  #    Comments [0]  |  Trackback
Thursday, October 26, 2006

Michael Thomas Daniels has just helped point out that some of the formula on my Isometric Coordinate Calculation tutorial were broken.  It turns out that for some reason the HTML editor on the site was stripping out the '+' characters.  I fixed the error in one formula and then immediately noticed that the plus symbols in another formula had disappeared. 

I've fixed them all now, but I'm going to have to keep an eye on it when I make any changes in the future. 

Thanks Mike for pointing it out.

Thursday, October 26, 2006 10:29:21 PM UTC  #    Comments [0]  |  Trackback
Wednesday, October 25, 2006

I've recently been brainstorming new features for the TileEngine Isometric game platform that I'm building.  I still hadn't had many decent ideas on how to deal with combat in the actual game that I'm working on.  I have always been a huge fan of turn based strategies, so I spent a couple of days thinking how I could do this with the TileEngine.  The engine designed as a realtime platform, but I've come up with a plan to implement a turn based combat mode.  I just have a few features that I need to implement. 

Working out how I could do this has gotten me a bit excited about working on the engine again, so I've made some good progress, and I should hopefully be putting a lot more work into it over the coming weeks.

Tonight I have implemented GameFlags for each actor.  This will allow me to specify attack strength, defense, health, movement points and so on for each actor.  It uses the same GameFlags class that the whole game uses, so it only took about an hour to wrap in (with associated lua hooks etc).  It should serialize correctly too, however my save functionality is still a little broken and I don't have the patience to properly test it just at the moment.

I have also implemented MouseOver functionality.  This allows me to call a lua script whenever I move the mouse over a new map cell.  At the moment I have a test script which looks to see if there is an actor on that map cell and display information about them in the text log window.

The next piece of functionality that I want to build is ScreenButtons and ScreenText.  ScreenButtons are buttons which you can place on the screen from within lua scripts, and you can specify a lua function to call when it is clicked on.  I'll use this functionality to better display information about the actors and terrain that you mouse over. 

ScreenText is simply a way to print some text anywhere on the screen (again, from lua) and have it optionally fade away after a period of time.  This could be used again to display information about what you are mousing over, plus it will be very useful to display attack results over the top of actors such as displaying a fading "-10" to show that they've taken 10 points of damage.  It will also be good to display unimportant things that actors say (like mini speech bubbles).

I've also uploaded a new screenshot over at the SoapDragon games website.  In it you can see a couple of the new Actor sprites that I've borrowed from Reiner's tiles.

Wednesday, October 25, 2006 9:16:59 AM UTC  #    Comments [0]  |  Trackback
Monday, October 16, 2006

Just a quick note to say that last night I updated my Isometric Coordinate Calculation tutorial over at Soap Dragon Games.  I've added some more detail explaining the TileWidth, TileDepth and TileHeight dimensions, plus a few other minor updates.

I have also added a button to add this blog to your Windows Live homepage for anyone that would like to.

Monday, October 16, 2006 11:55:42 PM UTC  #    Comments [0]  |  Trackback
Tuesday, September 19, 2006

The guys over at http://www.trystan.org/lua.html have updated their Visual Studio 2005 Lua Language Integration Pack to version 0.5.

This new version implements code outlining features on Lua functions (ie:expanding/collapsing code segments) plus some bug fixes.

I've been using this for some time, but i've just un-installed it.  Don't get me wrong, LuaLangPack is a great plugin which I highly recommend, however I'm currently trying to get VSLua working and I don't want the two to conflict as they have functionality crossovers.

VSLua v1.0 has also just been released by Trango Interactive.  It offers similar lua code display functionality as well as allowing lua code step through debugging for Visual Studio.  I've yet to get it working but the results will be awesome if I can.  It should allow you to debug from your C++ code, step into Lua code and back out again, set breakpoints in both languages etc, plus have variable watching and intellisense.  It currently supports lua v5.0.0, v5.0.1, and v5.1.0, but not v5.1.1 just yet.

Plugging VSLua in to your application appears to be a little tricky, and there seems to be little of any forums or anything with much advice, but if I figure it out then I'll probably post a tutorial of some form on the SoapDragon website that should be helpful.

Tuesday, September 19, 2006 4:07:20 AM UTC  #    Comments [0]  |  Trackback
Wednesday, September 06, 2006

I've been meaning to mention for some time a plugin which I've been using for Visual Studio 2005 called LuaLangPack.

This plugin provides syntax highlighting for lua scripts within Visual Studio.  It's really useful.  Apparently they're working on code regions and intellisense features.

Go to the homepage and download it at http://www.trystan.org/lua.html

Wednesday, September 06, 2006 9:32:48 PM UTC  #    Comments [0]  |  Trackback
Monday, September 04, 2006

I've added a section on the SoapDragon website for you all to download free isometric game sprites.  You can use them freely for any non commerial use.

I know that they are not very high in quality, and the stickman actor tileset isn't very pretty, but I'm still using them with my TileEngine game development platform as placeholders while I develop it.

Go take a look here:
http://soapdragon.true.geek.nz/SoapDragon/Tutorials/FreeIsometricSprites/tabid/65/Default.aspx

Monday, September 04, 2006 10:07:14 PM UTC  #    Comments [0]  |  Trackback
Thursday, August 31, 2006

Benjamin Nitcshke has posted a great XNA FAQ.  It has a bunch of excellent steps to walk you through getting started with XNA Game Studio Express, lots of common questions and answers, and a LOT of links to other related sites with more info.

Check it out here:
http://exdream.no-ip.info/blog/PermaLink.aspx?guid=44339eda-86da-4a2d-ae94-9387aad9c178

I'm posting it here for all of your benefits, plus it's a great post which I will be running through quite a lot.

Go Benjamin! Thanks

Thursday, August 31, 2006 9:57:11 PM UTC  #    Comments [0]  |  Trackback

I have an update to yesterdays post about installing and running the XNA Game Studio Express beta with Visual Studio 2005 Pro installed.

To install the XNA Game Studio you will need to install Visual C# Express.  The installation is fine however, and Visual C# Express does happily install side by side with Visual Studio 2005 Pro with no side effects.  Unfortunately you can only play with Game Studio within VC# Express though.  None of the wizards or help or anything is available from within VS2005.

Still, I'm really happy with it.  The game framework that you build with is quite a large mindset change, but it makes good sense.  I'm dead keen to have a play and hack something together with it.

Thursday, August 31, 2006 9:02:04 PM UTC  #    Comments [0]  |  Trackback
Wednesday, August 30, 2006

Today marks the release of the new XNA game studio beta.  This is the new framework that Microsoft have designed for us to create cross platform (Windows / Xbox360) games, or from the official blurb:

XNA Game Studio Express enables individuals and small teams to more easily create video games using new, optimized cross-platform gaming libraries for Windows and Xbox 360. This beta release targets the development of games for Windows. The final version of XNA Game Studio Express will be available this holiday season and will enable development of games which target Windows and upon purchase of a XNA Creators Club subscription, the Xbox 360 as well.

The download is available at:
http://www.microsoft.com/downloads/details.aspx?FamilyID=21e979e3-b8ae-4ea6-8e65-393ea7684d6c&displaylang=en

This release requires requires Windows XP SP2 to run.  Sorry guys: I've heard that it doesn't work on Vista beta builds.  Apparently it will install on Windows 2003 server however it isn't a supported operating system, so your mileage may vary.

It also requires Microsoft Visual C# 2005 Express Edition to be installed first.  I haven't installed it yet to see if it will work with other versions of Visual Studio 2005, but the XNA Game Studio Express readme document implies that it should.  I'm going to install it today and hopefully make another post as to how well it works with Visual Studio 2005 Professional.

The August 2006 DirectX Software Development Kit is required for the tools needed for audio development. (Download)

You will of course also need the Microsoft .NET Framework v2.0.

For more details head over to the XNA site on MSDN

I'm considering porting my TileEngine game platform to the XNA framework, however i'm not entirely sure how simple it will be porting a Native C++/DirectX application to a Managed DirectX application

Wednesday, August 30, 2006 8:58:50 PM UTC  #    Comments [0]  |  Trackback
Tuesday, August 15, 2006

I was just thinking about the new domain (http://buzzrick.true.geek.nz).  If I change my blog to this URL what will this do for my google ranking (which I am quite happy with at the moment)?  Will my rank dissappear?  or will google be smart enough to figure out that it's actually the same site?

If anyone has any knowledge about how this works then I'd be dead keen to hear.  Just post a comment below.

Tuesday, August 15, 2006 4:42:47 AM UTC  #    Comments [0]  |  Trackback
Friday, August 11, 2006

Just a note to say that I've just set up a new domain for this blog, and I will slowly migrate my links over to it. 

you can now get to the site via http://buzzrick.true.geek.nz

Aside from that, I am still making progress with my TileEngine game platform, however I've been too busy with work and life and house renovations and car accidents and stuff to keep this updated.

I've been very keen to do more work in Jason's SpriteMaker, but I haven't been able to spend much time on that yet either, but hopefully I'll get some time in the next week and post an update.

I have been continuing with my data serialization, which is going very well.  I can now load different levels and all of the actors in it.

Anyway, back to the real world.  I'll be off to Microsoft TechEd in Auckland the week after next, but I hope to post more info soon.

Friday, August 11, 2006 2:35:55 AM UTC  #    Comments [0]  |  Trackback
Thursday, July 20, 2006

I've been talking with Jason Berger lately, and he's given me a beta copy of his SpriteMaker application.  It has a MS-Paint like interface and it is designed for building sprite animations, including Isometric tiles, which is perfect for what I need for drawing tiles and animations for my Isometric TileEngine games.

It allows you to create multiple frames for animation sequences and preview them in the editor.  It also allows you to flick between frames to make sure that your image alignment is correct.

Unfortunately he's not ready to release it for public consumption just yet, so I can't offer up a link for it, but watch this space.  I'm sure that Jason will keep us informed of updates on his blog, or possibly even on his company website (RightBytes Software).  Keep up the good work Jason.

Thursday, July 20, 2006 3:48:10 AM UTC  #    Comments [0]  |  Trackback
Wednesday, July 12, 2006

Andre Vrignaud, who works at Microsoft in the Game Technology Group, has just put online a very good blog called Ozymandias, which focuses on the current state and future of computer and console game technology.  The stuff that he's writing about covers new technologies and looks forward discussing things that will affect us over the next couple of years.

He's only had it online for a couple of days and he already has some very good content, covering areas such as XBox 360 vs PS3, Blue-ray vs HD-DVD, and Intel's integrated graphics motherboards. 

It's all a very interesting read.  Go and check it out at http://ozymandias.com/.  I've also added it to my blogroll on this site.

Wednesday, July 12, 2006 10:07:50 PM UTC  #    Comments [0]  |  Trackback
Tuesday, May 30, 2006

I've been working on setting up serialization functions for my actors so that when I load a new level I don't have all of the actors from the previous level wandering around in it.

The way that I've done this is to add Serialize and Deserialize methods to the Actors list to save the actors state, and if there is an existing actors state file when loading a level it deserializes that, otherwise it runs the LevelInit lua script.

Unfortunately as I've been working through this I kept finding more related objects that needed to be serialized.  For example the Actors each have an isometric TileSet associated with them, so then I needed to serialize the TileSetList, and so on.

The upshot of all of this is that doing all of this has brought me a long way down the path building the game save functionality.  I wasn't planning on thinking about that for some time, but now i'll upgrade it to next on my list to complete.

Tuesday, May 30, 2006 8:46:49 PM UTC  #    Comments [0]  |  Trackback
Wednesday, May 24, 2006

I spent last night upgrading the TileEngine game platform from Lua v5.02 to v5.1 and came across a few incompatibilities.

Firstly, the lua_baselibopen() function needs to be replaced with lua_openbase() which will just load the base library, or luaL_openlibs() which will open all of the standard lua libraries such as math, io, string, etc, and the new os (or operating system) library.

Next, the lua_dofile() function has been deprecated.  It has a replacement macro luaL_dofile(), which simply calls both luaL_loadfile and lua_pcall and returns the result, however I decided to expand this out manually and correctly capture any errors (which I was lazy before and wasn't checking).

So the old syntax which I used was:

lua_dofile(luaVM, ".\\master.lua");

is now replaced with a luaL_loadfile(), and then lua_pcall()'ed with no params like this c++ code snippet:

int iResult = luaL_loadfile(g_pGameGlobals->luaVM, ".\\master.lua");
if (iResult == 0)
	// the master.lua file is loaded, now we'll run it so 
    // that we get any global declarations and includes etc.
	iResult = lua_pcall(g_pGameGlobals->luaVM, 0, 0, 0);

switch (iResult)
{
case 0:			// no errors
	break;
case LUA_ERRSYNTAX:	// syntax error during pre-compilation
	{
		::MessageBox(g_hWnd,
		             "Syntax error during pre-compilation",
		             "Error",
		             MB_ICONERROR);
		exit(LUA_ERRSYNTAX);
		break;
	}
case LUA_ERRMEM:	// memory allocation error.
	{
		::MessageBox(g_hWnd,
		             "memory allocation error during load",
		             "Error",
		             MB_ICONERROR);
		exit(LUA_ERRMEM);
		break;
	}
case LUA_ERRFILE:	//  error reading file
	{
		::MessageBox(g_hWnd,
		             "error reading file 'master.lua'",
		             "Error",
		             MB_ICONERROR);
		exit(LUA_ERRFILE);
		break;
	}
default:		// display the error message.
	{
		const char* szErrorText;
		szErrorText = lua_tostring(g_pGameGlobals->luaVM,-1);
		::MessageBox(g_hWnd,
		             szErrorText,
		             "Error Running 'Master.lua'",
		             MB_ICONERROR);
		exit(iResult);
		break;
	}
}

As you can see, you simply load the lua chunk and execute it wholesale with lua_pcall().  If there was an error executing it then the error message will be placed on the top of the lua stack, and you can view it with the lua_tostring(luaVM,-1) function.

I should really wrap all of that into a function properly, but that'll happen later.

There is a very similar change for lua_dostring, which has been replaced with a luaL_dostring macro.  I use this functionality for the command interface in the game engine.

Those changes were relatively simple.  The one that really threw me, was that math.random() stopped working.  Any call to random simply returned zero. 

My Actor AI relies pretty heavily on random functionality, so all of my actors basically stood still and did nothing.

After an hour or so of debugging and not getting anywhere I ended up posting the question to the very helpful guys and gals on the lua list just before going to bed.  By the time that I checked my mail this morning I had a dozen or so helpful emails waiting for me.

The short and simple answer was to create my Direct3D device with the D3DCREATE_FPU_PRESERVE flag.  There were other options that I'm going to look into in the future, such as importing or creating a custom random function.

The only other problem I've encountered since upgrading to lua v5.1 (which I haven't had a chance to look into yet) is the inventory icons aren't displaying.  I'll hopefully sort that out tonight.

Wednesday, May 24, 2006 11:51:26 PM UTC  #    Comments [0]  |  Trackback
Tuesday, May 16, 2006

Microsoft and the Coding4Fun team have released some new starter kits and video tutorials on creating your own classic arcade games using the Visual Studio Express products.

The games are very simplistic, especially the graphics, but the tutorials are a great way to get you started and understand the basic game development concepts.

The games are available in both VB and C# and include:

  • Tiny Tennis (Pong clone) in VB or C#
  • Space Blitz (Space Invaders clone) in VB or C#
  • Crusader (2D Adventure game) in VB or C#

To learn more, visit UpgradeYourGame.com and be entered into a sweepstakes to win a full-size Namco/Galaga arcade game machine!

Tuesday, May 16, 2006 11:20:10 PM UTC  #    Comments [0]  |  Trackback
Tuesday, April 11, 2006

I just got word from David Weller (Community Manager, Microsoft Game Technology Group) that the April 2006 DirectX SDK is now out.

The primary areas of concentration for update have been with the updates to the beta components for Direct3D 10, Managed DirectX for 2.0, and XAct (Microsoft Cross-Platform Audio Creation Tool). The included developer runtimes and the DirectX Redistributable have also been updated to include the latest updates.

You can get the new April 2006 DirectX SDK (390.2MB) at:
http://www.microsoft.com/downloads/details.aspx?FamilyId=7AB978B5-5F1A-4F6A-88EB-FC646138BECA&displaylang=en

and the symbol files (38.4MB) at
http://www.microsoft.com/downloads/details.aspx?FamilyId=562D72FC-61C8-41A3-8BFF-509466F3D6AA&displaylang=en

or you can visit http://msdn.microsoft.com/directx/sdk/ tomorrow for all of the goodies.

Tuesday, April 11, 2006 1:42:04 AM UTC  #    Comments [0]  |  Trackback
Friday, April 07, 2006

Those of you who followed the link in my previous blog entry to the Isometric Coordinate calculation tutorial will have noticed that the new Soap Dragon Games website is online.

It's pretty ugly at the moment and missing a bunch of content but i'm slowly getting it together.

Surfing to http://soapdragon.emedia.net.nz will still forward you to this blog until I'm happy with it, so for the time being if you want to look at the site go to http://soapdragon.emedia.net.nz/soapdragon 

[update]http://soapdragon.emedia.net.nz now takes you through to the soapdragon website.[/update]

I hope to get online more regular updates to the game engine such as alpha demos and screenshots, plus I'm planning more tutorials covering lua scripting and a few other things.

Friday, April 07, 2006 4:38:20 AM UTC  #    Comments [0]  |  Trackback

I've finally got off my butt and written an Isometric Coordinate calculation tutorial

It covers the algorithms used in my TileEngine game platform to convert from Map coordinate systems to Isometric coordinate systems and back again. 

At this stage there is no code in the tutorial, but it is derived from the TileEngine source code written in c++ so in the future I will probably add some sample code as well.

To take a look at it click here.

It's still a little rough around the edges so I'd welcome any feedback and suggestions.

Friday, April 07, 2006 4:30:04 AM UTC  #    Comments [0]  |  Trackback
Tuesday, March 28, 2006

Roberto Ierusalimschy has just released his new "Programming in Lua, Second Edition" book.

Lua is the language of choice for anyone who needs a scripting language that is simple, efficient, extensible, portable, and free. Currently, Lua is being used in areas ranging from embedded systems to Web development and is widely spread in the game industry, where knowledge of Lua is an indisputable asset.

Programming in Lua is the official book about the language, giving a solid base for any programmer who wants to use Lua. Authored by Roberto Ierusalimschy, the chief architect of the language, it covers all aspects of Lua 5---from the basics to its API with C---explaining how to make good use of its features and giving numerous code examples.

Programming in Lua is targeted at people with some programming background, but does not assume any prior knowledge about Lua or other scripting languages.

This Second Edition updates the text to Lua 5.1 and brings substantial new material, including numerous new examples, a detailed explanation of the new module system, and two new chapters centered on multiple states and garbage collection.

Take a look at it on the Amazon link to the right.

Tuesday, March 28, 2006 10:09:16 PM UTC  #    Comments [0]  |  Trackback
Thursday, March 09, 2006

While surfing today I found a site developed by Patrik Nordquist.  He has a bunch of game graphics that we can download and use in game development for free.  He has various Sprites, Tilesets, Textures and a few articles as well.  It looks like he is also going to include some 3D models in the future too.

As a brief summary you are allowed to:
- copy and use the work in your game/product/application
- modify the work to suit your needs
- even use it for commercial work

Under the following conditions:
- you give [Patrik Nordquist] credit for producing them 

Take a look at his site at http://www.nordquistart.com

You'll probably see some of these textures and sprites in earlier copies of my game engine.  Some of them will be great for placeholder images and so on.  It looks like Patrik is planning to expand on his graphic collection too.

Thursday, March 09, 2006 1:28:55 AM UTC  #    Comments [0]  |  Trackback
Tuesday, November 22, 2005

I ended up going with option #2 for my AI scripts (with the scripts built as state machines).  It's more work, but it does have some other advantages, such as being able to program for when things go wrong (such as when a MoveTo operation doesn't get the Actor to an expected location because it's blocked).

I currently have a "Sheep" AI system where the Actor randomly walks around.  I only need to expose a couple of more C++ functions to Lua to get a lot more functionality, and more complex scripts.   Once I've completed that I'm keen to release an updated demo for you to play with.

Tuesday, November 22, 2005 1:00:16 AM UTC  #    Comments [0]  |  Trackback
Monday, November 21, 2005

3DBuzz has just released their training videos for making Half Life 2 mods!  There's about 3 hours of videos, and it's all FREE!

Go and check it out.  Click on the "View All VTMs" link in the "Video Training Modules" section (on the RHS at the top).

Monday, November 21, 2005 9:21:47 PM UTC  #    Comments [0]  |  Trackback
Saturday, November 19, 2005

I've got my actors displaying on the map, and I've got them moving, but I need to figure out a decent plan on how to get them deciding what to do on an ongoing basis.  At the moment when they finish a move there is no way for their AI scripts to kick in and do something else.

What I would like to be able to do is something like a lua thread or coroutine (that is my best guess anyway).  Each actor has a behaviour script in lua.  At the moment I can only script one action, such as MoveTo(x,y).  This move action takes some time to perform (many render frames) so I'd like to suspend (yield?) the lua script and carry on performing other important tasks in the C++ side (y'know, like rendering to the screen and updating other actors and stuff).  Once that actor's
task has been completed I could then resume the actor's script.

I'm still trying to figure out how to handle coroutines and threads from within C++.  If I can do that then I'll be able to simplify the scripting process hugely for level designers.

The goal here is that I could create a script like this for an actor:

MoveTo(x,y)
Say("Look at me")
MoveTo(v,w)
PerformSomeAction()
...etc...

The alternate to all of this is to have the actor trigger his script whenever it is idle (ie: finished doing the last action).  The script would then figure out what to do next, trigger the action, then exit. Repeat when the action has completed, etc.  I can see how to engineer something like this, but it's not nearly as elegant as I'd like.  It requires much more complex scripting when I want an actor to perform some very specific steps.  The script would have to be a state machine, and figure out what the current state is whenever it was called.  They would be a lot more complex do develop:

iState = GetMyState()
SWITCH iState
   case 1:
      MoveTo(x,y)
   case 2:
      Say("Look at me")
   case 3:
      MoveTo(v,w)
   case 4:
      PerformSomeAction()
   ...etc...
end switch
iState = iState + 1

(As you probably guessed, these are just pseudo code and not real Lua script).

Saturday, November 19, 2005 3:13:47 AM UTC  #    Comments [0]  |  Trackback
Thursday, October 20, 2005

Argh.  I can't believe that I haven't mentioned 3DBuzz before.  Basically, I spend time checking out their site every day.  It's a great place to learn about 3D design and a bunch of programming stuff.  They have some great training videos for learning 3DS Max and Maya, and a bunch of stuff, including a whole lot of FREE videos. 

There's a GREAT community feel to the whole site, heaps of people are there to help out with any questions and answers.  It's great.  I tend to hang out in the C++ forums, and the lounge (although I admittedly tend to lurk more than contribute due to the amount of time I can get to it)

They also have a wikkid downloadable BuzzTV thing going which is a great laugh.

Go CHECK THEM OUT

Thursday, October 20, 2005 1:09:44 AM UTC  #    Comments [0]  |  Trackback

Theme design by Jelle Druyts

Sponsored Links