Showing posts with label Tools. Show all posts
Showing posts with label Tools. Show all posts

Saturday, November 08, 2008

Free Subversion hosting at XP-Dev.com

I had been using Assembla.com for Subversion control of my files. They recently announced that private repositories are no longer going to be free of charge (though they are cheap).

I decided to look for another alternative and found this list of free SVN hosting sites. From the list I decided to choose XP-Dev.com. It's a relatively no frills site, but free. It's only been a couple of days so far, but I really like it. The guy who runs it is very friendly and quick to help.


If you're thinking of moving from Assembla to XP-Dev.com, here are some steps which make it easy:

  1. Check all your code in to Assembla.
  2. Download a dump of your repository from Assembla. To do this, click on: SVN/Trac > Import or Export your Subversion repository here > Get SVN Backup
  3. Set up an account and repository with XP-Dev. This takes about a minute, it's easy. Note that your username and repository name together become the url of your repo, e.g. BradPitt_MyRepoName
  4. Email your Assembla repository dump and new repository name to XP-Dev support, and they'll set it up for you.

Then just set up a new folder to point to your repository. (With TortoiseSVN - Make a folder. Right click and select 'SVN Checkout'. Give it the server URL and username/password as needed.) Also I recommend keeping your old Assembla linked folder around, just in case you forgot to check a file in.

Happy coding!

Sunday, July 13, 2008

TrueType to bitmap conversion

A common bit of code which needs writing for game UI's is something which converts a TrueType font to being bitmap based, so it can be rendered in game efficiently.

A friend of mine has written a shareware app called Fontrast which does just this. Well worth the $15 compared with spending the time to write it yourself...

Thursday, May 15, 2008

List of Automated Build Systems

Once you've got a game in development, it becomes important to streamline your build process, so you can quickly create a build without a lot of manual work. (I explain what a build process is at the bottom.)

This is a list of products I've found which aim to speed up and automate the compilation and build process.

What do you use?

What's a build process?

A typical build process might look like this:

  • Fetch the latest code and data from source control.
  • Run a perl script which updates a version number in a header file.
  • Compile the game, and the editor.
  • Run the editor in command line mode, telling it to 'pack' all the game data for the various levels of the game.
  • Run a script which packages the compiled game and game data into a windows installer 'MSI' file.
  • Copy the MSI to the network for consumption by the team.
  • Send an email to the team, saying that the new build is available.

The reality is that they get a lot more complicated than this, as some steps may fail, you might be building for multiple consoles, you might be building from multiple code branches, you might have to build for multiple languages, etc...

Saturday, February 16, 2008

OpenSVN Review

UPDATE #2: Assembla is no longer free, so I looked for other options and I've switched to XP-Dev.com.

UPDATE #1: Following writing this review, and the suggestion in the posts below, I looked into using Assembla. I've now been using it for several months for version control for home. I find it very fast, and haven't seen it go down once. I highly recommend it!


ORIGINAL POST:

I recently bought a laptop, so that I don't have to be sat at a desk to ruin my eyes. I wanted to use my laptop for a bit of coding, but Perforce, the version control system I had been using, was installed on my desktop machine. This meant that my desktop had to be turned on, for my laptop to be able to check things in and out. This bugged me, so I started to look for solutions were my source could be hosted online.

There are lots of companies out there who will host your source code. They mostly use the open source systems CVS and Subversion (also known as SVN). Some companies charge monthly, with increasing fees for increasing server space and/or numbers of users. Some have a 'free' service, but the restrictions are pretty tight. If you're interested in open source development, and don't mind the world seeing your code, then there are other free hosting options out there too.

I found one SVN hosting site which was completely free, didn't have tight restrictions, and didn't require that your code is open source - OpenSVN (OpenSVN.csie.org). It's operated by some students at National Taiwan University. As I'm always interested in a bargain, I thought I'd give it a try. After 5 weeks of using it, here are my thoughts:


  • The presentation on the OpenSVN site is poor. The other project hosting sites, with their art work and stock photos of people pointing at monitors, make you feel a lot more comfortable about putting your valuable source in their hands. Plus the OpenSVN site has some kind of bad certificate, which makes IE7 give dire warnings.
  • After the initial setup of the account, you don't need to go back to their site. Just use TortoiseSVN (or a similar windows client) to manipulate your files. I chose TortoiseSVN, and after a short learning period, I really like it.
  • The server has been down on four days of the 5 weeks that I've been using it. This hasn't caused big problems for me, as I just code on my own, for fun, and am OK waiting for them to fix it. If however I was working in a group, at a serious development company, this level of down-time would be unnacceptable.
  • I've not needed tech support, but doubt that whatever they provide would be on a par with what a professional hosting company could provide.
  • Initially I was a bit concerned about whether it would be too slow. I've found it to be fast enough for my needs - just checking in/out relatively small amounts of code. I'd say it takes about 15 seconds to either check in, or get latest, for an average amount of change. If however you were thinking of storing larger binary data (e.g. textures) then it may be worse.


Overall, OpenSVN is OK. I find the occasional down time acceptable, considering that it's free. If you use it, I recommend that you also make your own backup procedures, and not rely on theirs. For home development, when it comes to backing up a version control system, I'm of the belief that it's OK to just back up the last good version. If the history gets lost, then it's just tough turkey.

If you're new to SVN and hosted version control, then it's a good idea to use OpenSVN first so you can get a better feel for what your needs are before shopping for a commercial/reliable service.

What do you use?

Friday, February 01, 2008

Version Control at Home

If you spend time programming at home, I strongly recommend using some kind of version control system, such as CVS, Subversion or Perforce.

Basically a version control system is a repository which stores a history of all the major versions of your source files. You can modify a bunch of files, and then 'check them in' together. Since the system knows all the versions of your files, you can do things like:
  • Compare different versions of a file, to see what changed, and when code was introduced.
  • 'Get' and old version of all your source. This can be handy if your code stops working, and you have trouble working out why. You can go back, find the version which last worked, and then compare the versions.
  • Discard the changes you've made since you last checked in, reverting back to the last good version. This is one of my favourites :)
You can also do more advanced things, like branching the code base. This can allow you to keep a stable branch, if you're going to attempt some big/risky changes.

CVS and Subversion are both free. Perforce is free for small scale personal use (2 users max). Perforce is quite popular in gaming companies too. I use Perforce at work, and so decided to use it at home too. Installing a version control system can be a bit daunting, but there are good tutorials out there if you look.

I don't recommend version control to the absolute beginner, it's better to focus on learning the language and making little sample apps. But if you're going to work on one program, for a while, then I recommend it.

Friday, June 15, 2007

Bryce 5.5 is now free...

Gamasutra just announced that Bryce 5.5, the 3D modelling package, is now free to download.

Sunday, May 20, 2007

Sketchup

Sketchup is a modelling tool which Google bought a little while ago. It’s used, in part, to create buildings and such for the Google Earth project. It’s not as sophisticated as something like Maya, but it’s easy to use to create simple static models. It comes in two forms, a free version, and a more feature rich version for $500. There’s also an SDK you can ask them for (email sdk@sketchup.com and they'll ask you to complete a Non Disclosure Agreement), which allows you to read sketchup files.

It occurred to me that the free version, and SDK, could be used as a level editor for simple home projects or shareware games.


The idea for how to build levels would be similar to how I said that Inkscape could be used. The general level geometry is built using the normal modelling tools, and then gameplay information is layered over the top. For example a box with a spider texture on it, would turn into a spider enemy in game, or an object with a wood texture, would become a wooden dynamic physics object. The limitations come when you want to do scripting, such as configuring a platform to move back and forth, or triggering an event when the player reaches a certain point.

As with using middleware, you should aim to bend your designs to fit with what you're given. Though the limitations might change the game you're making, the time saved in having such a stable and feature rich editor on day one would be massive.

Level editing aside, Sketchup is a lot of fun. If you’ve not had a play, I recommend watching this video, and having a play yourself. Also take note of the huge free collection of models in the warehouse.

There's a great 15 minute video which shows you the features here, and you can download Sketchup here (the free one is the button on the left).

Here's a timelapse view of someone building a house in sketchup...

{Edit May 2009} I just spotted on Jim's blog that exporters for XNA '.X' format are available for Sketchup. More on this at my newer post.

Saturday, May 12, 2007

Free Visual Studio - Update

Remember me saying that you can get a free copy of Visual Studio Standard by taking a couple of labcasts? Well I did it, paid the $11 shipping, and received my copy the other day!

It was a little strange at first. You complete the second labcast, there’s no confirmation that you’re going to get anything, and then two weeks later you get a mail with a link to the redemption page. Ohh, and make sure you use IE.

The Standard edition normally costs something like $300, so it’s a good deal. The offer is still running until June 30th / while supplies last, so you can still get your own copy.

(United States Only)

Sunday, April 01, 2007

Get a free copy of Visual Studio 2005 Standard

For a limited time, you can get a copy of Visual Studio 2005 Standard by taking two online labcasts. Cool!

Thursday, March 29, 2007

Excel Tips

Lately I’ve been spending a lot of time in Excel, and I thought I’d pass on a few tips. Hopefully I'll give you a tip you don't know :)
Open Excel at the same time, and try them out.


Dragging the current cell to extend to other cells
  • Select a cell, and key in either the name of a month, the name of a day, or a whole number.
  • Now put your mouse over the small black square in the bottom right corner of the cell, and drag it either vertically or horizontally over some more cells.
  • When you let go, Excel will fill the cells with a procession of appropriate values, if a pattern can be found. E.g. January, February, March, etc…

Fill Down
  • Select a cell, fill it with some text.
  • Now select that cell, and a series of cells below.
  • Now press ‘Ctrl D’
  • Et Voila, the value in the first cell is copied to the lower cells.
  • This is similar to dragging the small black square, as listed above, but this won’t spot sequences (which is often desirable) and can also done without using the mouse.

Format Painter
  • Next to the toolbar icons for copy and paste is ‘Format Painter’. I didn’t know what it was for a long time.
  • First, select a cell, put some text in it, color it, give it a border, make the text bold etc.
  • Now select another cell and just put some text in it.
  • Select the first cell, then click ‘Format Painter’, then click the second cell.
  • Hey presto – all the formatting information from the first cell is copied to the second. This also works for copying regions of formatting.
F2
  • Pressing F2 while a cell is selected allows you to edit the cell, without having to click on the edit box at the top of the screen. (This works in other places in Windows too, e.g. renaming a file in Explorer.)

Thursday, August 10, 2006

Favourite Tools - Inkscape

I recently came across Inkscape. It’s an open source vector graphic editor. An example of vector graphics is windows clip art. The image is stored as lines and colored areas rather than pixels, which means you can zoom in infinitely without pixelation.

I find it absolutely brilliant. It’s very intuitive and easy to use, and comes with interactive tutorials.

A big hurdle for small scale independent coding is that programmers are usually pretty bad at art – hence the commonly used term “Programmer Art”. I find that this program allows me to ‘build’ my art, rather than ‘draw’ it. It allows me to make much better images than I get when I try and use something like Photoshop. You could use it for in game art, website art, icons, all kinds of things.


Now for something really cool. It saves in Scalable Vector Graphics (SVG) format, which is an open source XML format. You could use Inkscape as a level layout tool for a game. For example, red circles are where enemy tanks go, the player starts on the blue circle, walls can be made from lines, etc. You can even import textures into the art, which could be a way of bringing texturing into the world. Using Inkscape in this way could save you months of effort compared with making an editor yourself. You can then use an open source XML parser like Xerces to parse the file. Your whole tool chain is written for you!

Another thing you could use it for is laying out UI screens. Using Inkscape could provide a far better development process than hard coding positions, or hand writing a text file of parameters.

One downside is that it doesn’t support making animated vector graphics. Still though, it’s mighty cool. If you’ve got some free time, I recommend downloading it and having a play.

Thursday, July 06, 2006

Favourite Tools - Copernic

There are some tools which I really love. Near the top of my list is Copernic. Copernic is a ‘desktop search’ program which ‘indexes’ all your Outlook / Outlook express email, and the files on your computer. It’s similar to Windows Desktop Search and Google Desktop Search. I tried a few desktop search programs and Copernic is my favourite.

Using Copernic, you can key in a couple of keywords, and in a couple of seconds – bam – you’ve got a list of every email and file containing those words. You can then refine the search by being more specific about the sender or the type of file. If you’ve ever searched for email using the search feature in Outlook, you’ll never use it again.

If you get a lot of email and you don’t already have a desktop search program, drop everything and install Copernic now. It’s free, and you’ll start raving about it too.

Tuesday, May 16, 2006

Experiences with Visual Studio Express

A programmers choice of development environment often ranks slightly higher than religion and politics in the list of things which they're fanatical about. Recently I needed to upgrade my version of Visual Studio.

Last November, Microsoft released Visual Studio Express. The name always confuses me, I always want to add .NET 8 2005 to the end, just to be clear. It's a trimmed down version of each of their Visual Studio packages. First of all they said that it was going to be free for a year, but they recently changed their minds and made it free all the time (announcement).

For professional games development, for Xbox[360] and tools, we use the professional edition of Visual C++. This costs around $500 per seat, and so for playing around at home I decided to try out the express edition.

Previous to Express, I was using Visual C++ Professional 6.0. There are lots of enhancements that they've done here and there which I knew would make things better, but I was also worried about dropping from professional to express. I've now made the switch, and the main things I've noticed are as follows:
  • First of all, it all feels very familiar to what I was used to with version 6.
  • While you're editing text, it does a little pre-processing of the code. Among other things, this allows it to grey out code which isn't going to compile. For example, code is in a "#if 0" block would be grey. Good.
  • When debugging, you can hold your mouse over a variable and a tooltip of the current value will pop up. If it's a pointer, it will let you drill down into the structure using the tool tip. Good.
  • When coding, you can hold your mouse over functions, variables, and likely other things, to get tool tips which tell you the type/definition. This is very cool as it saves right clicking and going to the definition. Good.
  • They've disabled source control integration in Express. This means you have to manually task switch to some other application to check things in/out of source control. Personally I have Perforce installed (it's free for under 2 users). I find the easiest way to check things in/out is to right click on the tab of the open source file and select "Open Containing Folder". This opens an explorer window with the appropriate file already selected. I then right click the selected file and use the Perforce context menu options to perform the operation. Also, due to the way that Perforce and VC work, if I'd accidentally started editing a source file which wasn't checked out, the check out operation wont stomp on my changes. I'd prefer proper source control integration, but my workaround is sufficient.
  • I'm not sure but I think that the DirectX plugins for debugging surfaces and renderstates don't work. I can't see them in VC but haven't looked into it. It would be a shame if these weren't present, as they really make development of rendering code easier.
Overall, I give VC++ Express two thumbs up and a cheeky wink. It's hobbled a bit, but still a really great tool for game development.