Friday, June 29, 2007

Contribute

With a wedding to attend tomorrow, family down, and the simple fact that this is the Canada Day long weekend, I doubt I will be posting again until Tuesday night. That being said, I should probably finish off my look at the Macromedia Studio 8 programs that transitioned over to the Creative Suite 3 Web Basic edition. Obviously, the premium edition contains everything that is in the basic version.

Contribute can be thought of as Dreamweaver lite. I don't find it that useful as I have access to Dreamweaver so why would I use the lite version? The purpose behind Contribute is to allow anyone the ability to easily make changes to a site. It is sort of like a content management system for sites that aren't built on top of content management software such as the freely available Drupal. Once the site design is done, non-site designers can be given Contribute and can then make changes to the content themselves.

One of the big features about Contribute CS3 is the blog support. It even supports blogger. I haven't tried this myself, as I tend to edit my blog on my mac. Adobe will not let you switch operating systems when you upgrade a product, even though I would love to switch to the Mac version. Besides, for a blog as simple as this one, the built in editing tools that blogger supplies are more than adequate.

I still have not entirely figured out why Contribute is included in the suite when Dreamweaver is already in the suite, but then again the premium version has both Photoshop and Fireworks in it. It is such a minor product that I don't think it will factor in to anyones upgrade decision.

Tuesday, June 26, 2007

Dreamweaver

As part of the Adobe CS3 web basic and premium packages, Dreamweaver could be considered the glue of the web development suite. It is a wysiwyg html editor, but that is probably a significant understatement. A few years ago, when the web was made up of static web pages, this was the must-have program for web development. Now that dynamic web pages and content management systems are the in things, a lot of the luster of dreamweaver has vanished. I still use dreamweaver for the development of BlazingGames, and until I move to a content management system for running my site I will continue using it.

The feature I found most useful was the browser compatibility checking. Quite simply, you run the compatibility check and a list of potential problems appears. This tells you what browsers may have problems with your page and suggests how you can fix the problem. The best part is that this is suppose to be updated regularly so it should be useful even as new problems surface and browsers are updated.

The big feature of the new version is support of ajax in the form of the spry framework. This is actually a really nice addition as it makes it very easy for someone, even those without programming skills, to make a more dynamic web site. Of course, if like me you have no interest in adding ajax to your site because Flash is a thousand times better, there is little reason to upgrade to this new release unless there are other packages in your suite that you regularly use.

Monday, June 25, 2007

Spring Cleaning

I am the type of person who keeps his older computers until they no longer work. Even then I try to salvage some parts just in case I might need them in the future. Of course, I never have enough time to start on my other projects so the parts just sit in a drawer and age. My laptop computer is a MacBook, and I have two machines in my office. One machine is my internet machine while the other machine is my work machine. The internet machine is occasionally used for work, but for the most part is used for research and running processor intensive tasks so my work machine isn't burdened. The thing is, my older machine use to be my main work machine. I got my new machine last winter after my old internet machine died. It was a refurbished machine and was on sale so it was dirt cheap. When CS3 came out, the minimum requirements from my old work machine no longer were adequate to run it, but my new internet machine fit the bill, so I had to change machines.

The problem is that the new work machine was full of all sorts of programs and other stuff that I never got rid of. And Windows has a tendency to slow down as you use it. In fact, many experts recommending re-installing windows as a way of improving performance. With a lot of junk on the system, I figured that I should just start from scratch. So today (I don't know why, just a gut feeling) I decided it was time to refresh my work machine. I de-activated my copy of CS3 (see earlier entries for my rants on why copy protection sucks) and backed up my data. Once done, I inserted the restore disks and let it run. It asked if I wanted fix my current copy of windows or do a format. I wanted to be thorough and selected format. Once it started installing Windows, I started thinking about how it was going to handle my Linux partition. Sure enough, it simply got rid of it. This is okay as I had nothing important on there and was planning on installing ubuntu over it anyway.

I forgot how long it actually takes to install software. I am in fact writing this while the machine is trundling away. The clean start is kind of nice, almost like getting a new computer. Except, of course, it is not that much faster. Though with family coming down this weekend and a wedding to attend, I probably should have focused on getting ahead with Coffee Quest Revenge work. Still, my gut instinct was insisting that I do the cleaning today, so perhaps my subconscious is aware of something that I am not. Or perhaps I am just overly paranoid.

Sunday, June 24, 2007

Fireworks

It was quite a while ago that I got the web edition of Adobe CS3. When I got it I said I was going to review the programs that make up the package, but I never quite got around to it. Now that I have had time to play with the components, I suppose it is time to fulfill my promise and finish reviewing the components that make up CS3. I've already written a review of Flash CS3, so today let's look at Fireworks.

Fireworks was Macromedia's answer to Photoshop, except aimed more at the web. Now that the program is owned by Adobe, who also make Photoshop, I was quite surprised to see that they were still developing this program and including it, in addition to Photoshop Extended edition, in their pro web cs3 suite. I suspect that this is more of a transitional release, to give fireworks users a chance to migrate to Photoshop. Still, the new features in the package are aimed at web designers and are focused on quickly prototyping a website. The big feature that I noticed was the ability to have a document broken into pages in addition to the multiple layer support.

To be quite blunt, there really is not that much that is different from the previous version. I still occasionally use it as I am more familiar with it than I am with photoshop so if I need some artwork done quickly, I will still fire it up. I am in the process of learning Photoshop so I expect that as I use photoshop more and more, I will eventually stop using fireworks. If you are looking for a cheap graphics package for doing web work, Fireworks is quite reasonably priced and is fairly capable. Still, the Gimp is free so if a painting package is all you need and you can't afford photoshop, I would go with the Gimp over fireworks.

Is there enough to warrant existing users to upgrade? Not in my opinion. At least not just Fireworks. If you are a Studio 8 user thinking of upgrading, I think paying the slight bit extra to get the web pro package over their basic package is the only choice to consider as you get Photoshop Extended edition and Illustrator. In my opinion, upgrading from Studio 8 to a CS3 suite only makes sense if you are a Flash developer or want Photoshop or Illustrator.

Thursday, June 21, 2007

Staying Monthly

The results of the vote were 60% for keeping One of those Weeks monthly and 40% for having episodes voted for and 0% for going with the majority. What is most interesting about this vote is the fact that the number of people who voted were significantly less than in the previous vote which means that a number of people never bothered to vote, which would happen to be the same as voting for the third option. I was kind of hoping that the majority of the people would vote for having One of those Weeks voted for. Still, the majority have spoken and I will do my best to keep up with monthly releases of One of those Weeks episodes.

Why would I want it voted for? It makes sure that there is a game choice that has a chance of beating Coffee Quest related games and would have added a lot more excitement to the game replacement vote. Granted, at 10 hours a week, game replacement votes are not going to be as frequent as I would like. The results also alter my plans for this summer. As I will likely be between contracts over most of the summer, at least if some project doesn't appear in the next couple of weeks, I was going to focus my time trying to put together a more elaborate game that could possibly be released as a shareware title. The monthly release schedule for One of those Weeks may give me an alternative project to work on, which means I am going to have to make some tough decisions shortly.

Wednesday, June 20, 2007

One of those Weeks

Tomorrow evening I put together the final tally of the One of those Weeks related site poll. This poll is actually going to be more important than voters expect, and is a really close vote so if you haven't voted yet go to BlazingGames.com and cast your vote. At the same time as the results are announced, you will be able to play the final episode of Day 4.

Episode 28 is a special episode as it is the last episode that is going to be compiled for the Flash 7 player. Day 5 is going to be using ActionScript 3 and will require Flash Player 9. While it would certainly be possible to keep the rest of the series in Flash 7, ActionScript 3 is different enough from ActionScript 2 that I really don't want to have to worry about which version of Flash I am working on so all my Flash projects are going to be written in ActionScript 3 and therefore will require Flash Player 9. I don't think this is a big deal as most people can run Flash 9. The few of you who can't, well, I apologize but it is the logical path to take.

I suspect that future entries will cover a bunch of the migration issues and some of the nice features that Flash 9 has. I actually like Flash CS3, though still wish that the code editor was better. If Adobe were to drop the price of FlexBuilder when version 3 was released, I would really consider getting it and using it for my code editing while using Flash CS3 for all my animation work. At the current price level, however, I really can't justify the cost. I should also point out that FlexBuilder is different from Flex SDK (which is free).

Monday, June 18, 2007

Flash Bitmap automap

At the moment the amount of spare time I have is very low, and to make matters worse I am taking a drawing class. I am hoping that they will help me get my artwork up to a much better quality than it currently is. As with every other skill, the key is practice but knowing what you are doing wrong certainly helps.

I am still going to put an effort into getting my 10 hours of work on the site selected project, with any slippages of hours being rolled over to the next week's total. I did manage to finish a rough automap render but it only paints a test pattern as the map classes aren't developed yet because I decided that I wanted to make sure there would be something to post this Friday. This was done a bit different from the way I have normally handled such maps in Flash. Flash 9 has a Bitmap Data class which I am taking advantage of. Technically, this was introduced in Flash 8, but I am jumping from flash player 7 content to flash player 9.

The BitmapData class lets you use an image which is loaded with a separate loader class. I am not sure why you need a separate class that handles the loading of an external image, as it would make more sense to me to have this functionality part of the Bitmap or BitmapData class. Once copied into a BitmapData class, clips from the image can be easily copied to the bitmap used for the automap. This should be fairly fast as I believe the BitmspData class is able to use hardware acceleration, or at least native code for bitmap clipping.

At this point I have a test pattern being displayed, using the 16 tiles that the game uses. If I get around to finishing the map classes before Friday (assuming they can be done in less than 10 hours) I may have a proper map this friday, but if not I will at least be able to post the game running the test pattern.

Sunday, June 17, 2007

Fathers Day

Father's Day was today, and I had my father's day animation to show my dad. If you haven't seen this animation, you should probably visit Blazing Games and take a look. The animation was done entirely in ActionScript 3. Even thought the animation appears fairly complex, it was in fact not that difficult to create. While I am not going to open up the source code yet, I will explain how it works. Each fish controls it's own movement with a movement function that is called every frame. While a time based interval would be more accurate, for this animation I really didn't need accurate timing for the movement, but for an action game this can be an issue.

The fish movement logic is very simple. It consists of a delay before starting to move, and a target location that the fish is going to swim too. When the movement function is called, the delay countdown is checked, and if the delay is over, the fish is moved by a set amount along the x axis (horizontal position). The y axis (vertical position) is where things are interesting. The vertical movement is in a sine wave along the horizontal line that crosses through the particular target y coordinate. The amplitude of the wave is based on the distance from the target, so as the fish gets closer to the target, the smaller the vertical movement will be.

Once all the fish have reached their target location, they are given a new target with a short delay. As the delays are the same for all the fish, they will swim off in formation. Once they have all reached their off screen location, they are moved back to their beginning off screen location. You may be wondering how the fish initially swim out in random order if they are in proper formation. Quite simple. They are given a random delay amount so their start times will all be different.

Saturday, June 16, 2007

An interesting link

I wasn't going to post today, but an anonymous Blazing Games visitor emailed me a link to a news story that One of those Weeks fans might find interesting. The story appeared on Reuters. I would normally write out the link, but it is very long so instead will just link to it here. I'm not sure if I should consider this story funny or sad, but it is a reminder that wild animals are just that.

Thursday, June 14, 2007

Voting results

The poll results are in. 53% of the voters voted to have a Coffee Quest game as part of the site selected poll whenever a new game was to be selected. 26% of the voters wanted to have Coffee Quest games always being worked on. The remaining 21% of the voters did not seem to like Coffee Quest, or at least didn't feel it warranted special privileges. I suppose that the results are in line with what I was expecting. Another game that a lot of people like, though I am not entirely sure why, is One of those Weeks. The Blazing Games poll this week is deciding if the remaining 18 episodes (episode 28 is going to be released shortly) will be released on a monthly bases like they currently are or if the episodes will be part of the site selected game vote.

Tuesday, June 12, 2007

General purpose

While my tile class is not finished, it is finished enough for what Coffee Quest Revenge needs. To be perfectly honest, I have probably spent more time on the tile system then was needed. I could probably have gotten away without having a tile class and having a fairly simple map class (what I am working on this week, or at least will be working on Thursday through Saturday). I am writing a more elaborate class for both maps and tiles. The reason being is that these classes have uses with a large variety of games so having general purpose classes will allow me to use these classes with many additional games in the future. The obvious advantage is that once the work is done, the work does not have to be re-created for slightly different versions used in future games. While cut and paste coding can also be used to gain this advantage, it is probably better to have a proper set of classes. The key disadvantages to creating general purpose classes is the extra time required, the speed, and the overhead.

Obviously, if you are creating a class that is going to be used for a very specific thing, you only need to write the code necessary to do the particular thing that is needed. When you are creating a general purpose class, you have to take into account all sorts of uses for the class. This takes time to figure out and time to implement. Of course, nobody says that the whole class needs to be implemented, so only the functions that Coffee Quest Revenge needs have been implemented, with a todo list of additional functions that can be added when they are needed, so the time requirements are not as bad as they could have been.

Speed is another issue and is one reason may game developers, especially in the early days, would avoid using common libraries. Because you are doing things in a more general way, there is less code optimization and shortcuts that can be taken. This means that overall, the common libraries will run slower than something that was written for a specific purpose. In the old days, this could have a significant impact on a game. With the speed of today's computers, this is much less of an issue.

Finally, there is some overhead in getting the general purpose classes to work the way you need them to. In the case of Coffee Quest Revenge, the tileset used is pretty hard set so could have easily been hard coded into the game. Other CQFS engine games will not be so lucky and need to have much more flexible tile sets. This means that Coffee Quest Revenge needs to set up the tileset information to use the common classes even though this work could have been avoided if I would have wrote special purpose code for handling the map.

One final note. I have plans for Wednesday night so won't be getting any work on CQR done. This means that the second build will be delayed another week, though I will be putting in my ten hours on Thursday night, Friday night, and Saturday with hopes that I don't fall behind in my ten hour commitment again. This also means that I will not be posting tomorrow, but will try to post Thursday evening.

Monday, June 11, 2007

Airing out my thoughts

I was going to talk about how tiles work, but the final episode of the Sopranos pissed me off so much that I will talk about that instead. Just kidding. Though I am not going to talk about tiles today, it is because of Adobe, not HBO. There are two things released today that should be of interest to game developers. These are Apollo and Flex 3.

Apollo, which has now been renamed AIR (Adobe Integrated Runtime) is a way of developing internet content that can also be used off line. You can create applications that run on the desktop but are built using Flash (or Flex) HTML and Acrobat. For me this is a great move forward as I would be able to have games that are entirely playable online (for people who don't like downloading things) while having extended versions of the same game that the player can download. The nice thing is that the air program would have (with the user's permission) access to the file system so game saves would be possible. Writing a level editor would also be possible. More information about AIR can be found at http://labs.adobe.com/technologies/air/.

The other interesting thing that was released is the beta version of Flex 3. While I am sure that FlexBuilder3 will remain the overpriced tool that FlexBuilder2 is, The Flex3SDK will be open source. This effectively means that you will still be able to create Flash files for free, though you obviously will have a more difficult time doing so than people using the FlexBuilder3 or Flash CS3 tools would have. One of the key points is that it will be compatible with air. If you want to get into Flash development but don't have money then this is probably a really good option. The link for this is http://labs.adobe.com/technologies/flex/ .

Sunday, June 10, 2007

Great Games Experiment

In case any of you haven't heard, http://www.greatgamesexperiment.com/ is giving away a free game to anybody who registers before the 14 th so if you have not signed up with this site you may want to check it out. The games are from GarageGames which is a big supporter of Independent games. They have fairly low cost game engines available, which I had considered using, but I want to be able to release my games as open source which is somewhat problematic with their license.

The best way of describing the Great Games Experiment is as a myspace for gamers and game developers. Granted, the pages, unlike those on myspace, do not burn out your retinas. You are required to have an image that is used, which I didn't have on my laptop so I had to use a picture of myself. I should point out that I look much older than I am, so if you do find my account, don't be too disappointed.

Thursday, June 7, 2007

Magic Coffee Beans

The results from last week's Blazing Game poll are in. Roughly 75% of the voters wanted magic in the game but didn't feel it was needed in the 0.2 release of the game. Of the remaining voters, 75% of them thought that magic should be a must-have feature of the 0.2 release. This means that I will try to have magic in the 0.2 release, but it will not be a release-delaying factor, so if I am finding that implementing it is taking too long, it will be delayed for the 0.3 release.

The poll for this week should prove to be interesting. For quite a while I have been putting 10 hours a week towards the project of my visitors choosing. Whenever a Coffee Quest game is on the vote, the results are heavily favored towards the Coffee Quest game. Other projects only win due to vote accumulation over multiple votes. For that reason I am thinking that perhaps I should have a bigger focus on Coffee Quest. I would still finish all my other projects, but Coffee Quest games would alway be worked on for 10 hours a week.

Tuesday, June 5, 2007

Melee Update posted

I have finally gotten around to finishing the title screens for the 1.1 version of Modern Melee Combat. As I mentioned in an earlier post, this updated version of the game supports keyboard shortcuts, has much faster game play due to the re-worked animation subsystem, and it has a proper title screen. Now that the title screen is finished, I am able to post the new code to the repository. Of course, this is only the original arenas. A new set of arenas (and a separate title screen so you can tell which version you are playing) will be released this Friday. The difficulty has been ramped up quite a bit. I am sure that there will still be a number of people who complain that it is still too easy, but I am not a glutton for punishment.

Speaking of game difficulty, I keep hearing people insist that older video games are so much harder than the modern games. While I do remember that some games were hard, I didn't think that there was that huge of a difference and most of the difficulty claims were probably due to the fact that after playing games for years the player has simply gotten better at playing games. A few weeks ago I decided to try some of the more difficult retro games that were available on my Wii virtual console. My conclusion is that the older games are harder, but not because they are more difficult. They are harder because they do not have proper save systems so you end up playing the same sequence over and over again. This is probably a requirement of the game as without this false difficulty, players would quickly discover that the game they paid a lot of money for was over in only a couple of hours.

Monday, June 4, 2007

Engine Search

Coffee Quest fans will probably be disappointed when they read this entry, as I have very little progress to report on Revenge development. In fact most of the ten hours allocated for this project this week have not been used so I can't even tell you if a new build will be happening this week. Work this week is revolving around finally implementing a tile class (in AS3) and if there is enough time I will try to get a map class also finished with a very simple viewer so the result would be a map viewer. I honestly don't think that I will get all that done in the allocated time, which means there probably will not be an update as there will not be a second build until I get the map view functional. While I normally get most my hours in on Sunday, yesterday was spent looking at a variety of game engines which would be used to develop a commercial game when I am between contracts again.

A game engine is what you use for building a game. This is essentially what I am creating with my CQfs project that is being used for the creation of CQR, CQ5 and CQ6. The engine used for these games, due to the fact that it is being written for online Flash games, is much less capable than what is necessary for a commercial quality game. Once Flash has proper hardware 3D support and better resource management, it may be possible to expand CQfs into a much more powerful engine. Even with the FS project, I am planning on using a 3rd party software 3D library. The problem with software 3D is that it is so limiting. A commercial game that uses 3D hardware can throw huge numbers of polygons at the screen allowing for incredible looking images. In addition, hardware supports all sorts of effects and special per-pixel shaders that simply is not practical to do in software.

All of this fancy stuff comes at the cost of complexity. While I could certainly write my own game engine, it would be a multi-year task. Using an existing engine saves a huge amount of time and allows me to focus on making the game. The problem is that there are so many engines that choosing one is quite a challenge in itself. My lack of a budget is actually not that big of a factor, as many of the engines are low cost (for instance, the C4 engine is only $200) with a lot of them being Open Source (Crystal Space being the big one here). The best way of cutting down the options was to require Mac, Linux and Windows support which cut the field down to about fifty. I will go over my short list of entries in future posts.

Apple did get back to me, which was nice, but they basically didn't tell me anything. I don't know why the Smashing Pumpkins albums are no longer available as plus (DRM free) albums, but do know that they are trying to work out some issues. Not sure who has the issues but do hope that this gets resolved as I do like Smashing Pumpkins and don't want to have to remove them from my favorite bands list.

Saturday, June 2, 2007

The Battle has just Began

I have just finished adding some new features to Modern Melee Combat, which I will post to the ultimate retro project repository as soon as I finish the title screen artwork. The animation subsystem has been overhauled, so the game can be played significantly faster as you no longer will have to wait until the monster animation is finished before making your next move. This was the biggest complaint I have received for both Melee Combat and for Dungeon Romp. There are now keyboard shortcuts for all of the commands in the game. Finally, the game will have a title screen. The other complaint I have got about Melee Combat was that it was too easy. This is more of a configuration file issue than a programming issue, but I plan on creating a second configuration file that would have a much more challenging set of arenas in it. This will probably be released on the 8th.

Dungeon Romp fans will also be treated to an overhauled version. Work on this will not be started until I have put at least 10 hours into Coffee Quest Revenge. Once I have a version with the faster gameplay implemented, it will replace the existing version on the site. A more difficult dungeon is planned, though that will not be released until there is a free week in my release schedule. Depending on how quickly CQR development is, this could be this month, but may not be until July.

The last couple of posts I talked about DRM free music through iTunes. With DRM free music now available, I immediately purchased a copy of Smashing Pumpkins: Mellon Collie and the Infinite Sadness on May 30th. Last night (okay, technically early this morning before I went to bed) when I looked at the other Smashing Pumpkin titles available, I noticed that they were no longer available as iTunes Plus albums. This included the album that I purchased the other day. The copy I got was definitely DRM free 256 bit, which leads me to wonder what is going on? My fear is that some bands want to treat their paying customers like criminals. I wrote Apple to find out, but I doubt I will even get a reply from them. If I do find out that it was the band's choice to not allow DRM Free versions, I will simply have to quit supporting the band. In fact, I think from now on, the only bands that I will support are bands that have DRM Free music available.