As visitors to Blazing Games already should have found out, the 2D only option won the vote. It was actually a very close user poll, and actually resulted in a different outcome than I had expected. What I had sort of hoped for was that the compromise of a step based 3D render and a 2D auto map that was free-scrolling would win out. What I had expected was the 3D option to win. What actually happened was the 2D option won out by a single vote. No, I am not making this up, even though we are talking about a Hollywood style vote result. Of course, such close races are common when there is under a score (20) worth of votes. Still, I do appreciate the tiny fraction of my visitors who do vote.
Doing a 2D map view of the game should be very quick, though I still have the larger task of finishing the tile and map classes before the viewing code can be implemented. As I am only going to have one type of monster in the initial release, I don't need the partially completed CQFS entity system, so the monster will be fairly quick to implement. The status bar has already been roughly implemented. This means that the 0.1 release might not be that far off. At 10 hours a week, though, I suspect the earliest that I could possibly have the release ready would be for June 22, though early July is probably the more realistic target.
The 0.2 release will be mostly the integration of the entity system, though other features may be added based on upcoming Blazing Games polls. Still, once I have the 0.1 version out, I can get some feedback on what the game needs so my plans might change.
As for anybody who cared about my post yesterday, I bought my first album on iTunes (Smashing Pumpkins -- Mellon Collie and the Infinite Sadness) so I am officially voting with my dollars when it comes to DRM free downloadable music. It actually worked out to only 89 cents Canadian a track (roughly 85 cents a track US) so buying entire DRM free albums on iTunes does make sense. Though eMusic is still significantly cheaper and a better solution if the bands you like are on independent labels.
Thursday, May 31, 2007
Wednesday, May 30, 2007
DRM Free
While this doesn't directly have anything to do with game development, Today Apple has officially started their DRM Free iTunes Plus service. I have never purchased anything from iTunes as I do not like restrictions on items that I have bought. Especially when the people who are stealing the item do not have those restrictions. My music is obtained by buying CDs and off of another legal music service called eMusic which has been DRM free for years. Of course, anybody who has used eMusic knows that it has only smaller labels, but the price is significantly less than iTunes. The downside to today's news is that not all the iTunes music is available on iTunes plus, so many of the big label bands that I would consider purchasing music from are not DRM free and in many cases are not good enough to warrant purchasing a whole CD, so they will get no money from me. Still, this is a really good start, and I will be purchasing some music from iTunes this week. Let's hope that this is the beginning of the end for the anti-consumer (pro piracy) DRM formats.
Tuesday, May 29, 2007
Weapons of Revenge
I have all the weapon icons finished for Coffee Quest Revenge. More accurately, I have the weapons that will appear in the 0.1 release of CQR ready. At the moment the weapons will consist of the same set of weapons as Coffee Quest 4. For those of you who can't remember CQ4, the weapons are the dagger, short sword, long sword, enchanted sword, magic sword, arrows, enchanted arrows, fire arrows, and energy arrows. While there will be spells in the game, these will be different from the ones in CQ4 and will require items in order to cast them. These will not be part of the 0.1 release of the game. There is still a huge amount of work to do (how much will depend on the results of the Blazing Games poll which is still underway) but the 10 hours allocated for this week have been used. I may put in some extra hours later this week, but I have some other stuff I want to work on first and don't know if I will be able to put extra hours into Revenge this week.
Sunday, May 27, 2007
Revenge of the Tween
Development on Coffee Quest Revenge has now officially started. While it will be a while before I have something that is remotely playable, I am going to be trying to post the latest build of the game every Friday so anybody who is interested in this game will be able to watch how the game evolves. As I need something to start with, I am working on the game's status bar. This bar holds your current health, shield status, armor status, weapon, usable item, quest items, and map. The health, shield, and armor status are animated condition indicators that will also have a bar and numeric indication of the value. The animations were created today and bits of the rest of the bar have been worked on so there will be something for sure this Friday.
The animation was done by taking advantage of Flash's shape tweening ability. While this is a really neat feature of Flash, it is also an extremely annoying to use feature. The big problem with shape tweening is how stupid it can be. For instance, I had a tween that removed a corner of the shield. While the bulk of the shield had the same start and end, the entire shield was involved in the animation. In order to fix this problem, you have to strategically place hint spots on the shape being tweened. These hints help the tweening process along by telling Flash which parts of the shape are suppose to end up where. While the process of adding hint spots is much better than earlier versions of Flash, it can still lead to a strange disappearing image problem. What I am talking about is a situation where the hint spot that was created causes the entire middle portion of the tween to disappear.
My solution to this was to try and keep all the hints in a clockwise order of definition. I would place the hints one at a time, and then make sure that the image was not disappearing. If the image did disappear, then I would move the position of the hint until I got the image back. Watching the animation segment between the addition of each hint helps you figure out where there are still problems. Still, the shape tweening is much faster than hand animating the entire transformation.
The animation was done by taking advantage of Flash's shape tweening ability. While this is a really neat feature of Flash, it is also an extremely annoying to use feature. The big problem with shape tweening is how stupid it can be. For instance, I had a tween that removed a corner of the shield. While the bulk of the shield had the same start and end, the entire shield was involved in the animation. In order to fix this problem, you have to strategically place hint spots on the shape being tweened. These hints help the tweening process along by telling Flash which parts of the shape are suppose to end up where. While the process of adding hint spots is much better than earlier versions of Flash, it can still lead to a strange disappearing image problem. What I am talking about is a situation where the hint spot that was created causes the entire middle portion of the tween to disappear.
My solution to this was to try and keep all the hints in a clockwise order of definition. I would place the hints one at a time, and then make sure that the image was not disappearing. If the image did disappear, then I would move the position of the hint until I got the image back. Watching the animation segment between the addition of each hint helps you figure out where there are still problems. Still, the shape tweening is much faster than hand animating the entire transformation.
Thursday, May 24, 2007
Revenge wins the vote
As I suspected, my action oriented version of Coffee Quest -- which is called Coffee Quest Revenge -- has won the vote. This is a fairly large project which is partially the reason that the vote was for the 0.1.0 version. This point may confuse some people not use to the various ways of indicating versions (and there are many different ways, not a single standardized way which makes the issue more confusing). The first number in a version is the major release. The 0 indicates that this is not the finished game. The second number is the minor version, which when not zero indicates a minor revision has been released. It is common, at least in the open source community, to have a zero release with the minor release being the number of the release. This means that the 1 means that this will be the first playable release of the game. The game will not be fully complete (because if it was, this would be a 1.0 release) but will be fully playable.
That being said, to speed up the development of the first release of CQR, I was thinking that I would do the game up in the 2D automap mode so the game would be a playable 2D top down view of the game. This would greatly speed up the first release because if I had to do the full 3D version it would take significantly longer to finish the first playable release. What I am eventually hoping to do is to take advantage of the PaperVision 3D engine, but don't want to use it in my projects until it is out of private beta. Another option for the 3D engine would be to write a ray casting engine. This would not be as fast as using papervision due to various factors that I don't want to get into today.
The third choice in the poll would to be a hybrid approach. The game would be rendered using the techniques in the various 3D One of those Weeks episodes, which means the 3D view would be step based. The movement on the automap, however, would be the actual free-scrolling movement. This would allow for the game to be played in a chunky 3D like view, but the game mechanics would be implementing the 360 degrees of movement that the final version of the 3D rendering would support. The advantage of this is that it wouldn't add too much time to the development while giving you some of the 3D eye candy.
Of course, the poll covering this issue is going to run the rest of this month on the Blazing Games website, so be sure to vote if you haven't already.
That being said, to speed up the development of the first release of CQR, I was thinking that I would do the game up in the 2D automap mode so the game would be a playable 2D top down view of the game. This would greatly speed up the first release because if I had to do the full 3D version it would take significantly longer to finish the first playable release. What I am eventually hoping to do is to take advantage of the PaperVision 3D engine, but don't want to use it in my projects until it is out of private beta. Another option for the 3D engine would be to write a ray casting engine. This would not be as fast as using papervision due to various factors that I don't want to get into today.
The third choice in the poll would to be a hybrid approach. The game would be rendered using the techniques in the various 3D One of those Weeks episodes, which means the 3D view would be step based. The movement on the automap, however, would be the actual free-scrolling movement. This would allow for the game to be played in a chunky 3D like view, but the game mechanics would be implementing the 360 degrees of movement that the final version of the 3D rendering would support. The advantage of this is that it wouldn't add too much time to the development while giving you some of the 3D eye candy.
Of course, the poll covering this issue is going to run the rest of this month on the Blazing Games website, so be sure to vote if you haven't already.
Wednesday, May 23, 2007
Changing Polls
As regular visitors to Blazing Games already know, I have been using polls as an attempt to get some feedback about what I should be doing with the site. I have also been playing around with the polls in attempt to let my visitors decided at least partially where the hours I devote to the site get placed. Quite a while ago I decided that I would put a block of 10 hours a week away for working on the game. I initially decided to break this up into 5 two hour chunks that would be voted on daily, but that really didn't work well as I kept having to shift gears. This was not very productive so the time I spent working on the winning project tended to be wasted getting back into the flow of the project. I then shifted to a weekly winner that would get all ten hours. This sort of worked, except that some of the less popular games would eventually win, and I would get a bunch of work done and get excited about the project only for it to be put on the back burner. While this wasn't quite as bad as the daily blocks, it was still demoralizing. My solution was to have one visitor selected game worked on until it was finished (or at least finished to a logical milestone). So far this has worked great. So great, in fact, that I am going to keep doing this. I am, however, going to change the polls.
The game that is likely going to be chosen as the replacement project, unless there are an awful lot of votes for the second place game, is going to take a good month or so to finish. It does not make sense to have the replacement game voted on for a month before there is any winner, so instead I will be having feedback about certain aspects of the game being worked on. When the game is almost ready to post, I will have a poll for the next game. The results from prior game polls will still be cumulative.
The game that is likely going to be chosen as the replacement project, unless there are an awful lot of votes for the second place game, is going to take a good month or so to finish. It does not make sense to have the replacement game voted on for a month before there is any winner, so instead I will be having feedback about certain aspects of the game being worked on. When the game is almost ready to post, I will have a poll for the next game. The results from prior game polls will still be cumulative.
Tuesday, May 22, 2007
Dungeon Romp Ready
After a nice long weekend, I am going to start the week with a fairly short post. I have posted the source code for the version of Modern Dungeon Romp that will be appearing later this week. This is in source code form, so anybody who wants to see the game early will have to compile it themselves. I am thinking that I will start making more details about the progress of the site selected project as it is being developed. This will have the added benefit of giving people who are interested in the project being worked on a heads up on how it works. I am considering having a weekly build posted to some test area of the site, which I sort of did with the development of Coffee Quest GL. This would give people a chance to better see how a game that I am working on actually evolves.
Friday, May 18, 2007
Mapping a bug
Good news for those of you who are waiting for Modern Dungeon Romp. I have found the bug that was causing the game to stall. Now, those of you who don't care about technical explanations can stop reading with the knowledge that next week's release will be Modern Dungeon Romp. Anybody still reading? Didn't think so, but I will continue with this post for my own records.
The big change that I made was to hide the map then as the player explored the dungeon, the map would be revealed. This was something that I had originally planned for the classic version of the game, but decided not to do this as the game took quite a long time to play even with the entire map revealed. My plan was to just have a bit within the map tile information to be set if a tile was known. As the player moves through the dungeon, the flags for all the tiles around the player get set. As this is actually stored in the tile information, the actual tile value is not the number that is stored in the map array but a masked version of that tile. This functionality existed even in the classic version but the setting of the flag was simply not implemented.
This change should not have had anything to do with the stall, but it did. While the official getTile function properly masked the bits so only the tile value was returned, the function that spawns new monsters did not use the getTile function but accessed the map data directly. This function randomly looked for an empty tile to place the monster into. When a player had seen a tile, it was no longer empty, as the seen flag changed the value from 0 to 64, even though after applying the tile mask the value would be 0. The solution was simply to have the spawn function use the getTile function instead of accessing the map data directly. This is slightly slower, but as speed is not an issue (which is a good thing as the techniques I used for items and monsters are very inefficient) it is a simple way of making sure the data I am looking for is correct.
So what was causing the game to stall was the monster spawning trying to spawn a monster but not being able to randomly select a tile that was empty because it didn't consider locations that had been seen by the player as empty. If the map was fully explored, which is usually the case when I am playing a game, then the game would go into an infinite loop as it searched for a empty tile.
The big change that I made was to hide the map then as the player explored the dungeon, the map would be revealed. This was something that I had originally planned for the classic version of the game, but decided not to do this as the game took quite a long time to play even with the entire map revealed. My plan was to just have a bit within the map tile information to be set if a tile was known. As the player moves through the dungeon, the flags for all the tiles around the player get set. As this is actually stored in the tile information, the actual tile value is not the number that is stored in the map array but a masked version of that tile. This functionality existed even in the classic version but the setting of the flag was simply not implemented.
This change should not have had anything to do with the stall, but it did. While the official getTile function properly masked the bits so only the tile value was returned, the function that spawns new monsters did not use the getTile function but accessed the map data directly. This function randomly looked for an empty tile to place the monster into. When a player had seen a tile, it was no longer empty, as the seen flag changed the value from 0 to 64, even though after applying the tile mask the value would be 0. The solution was simply to have the spawn function use the getTile function instead of accessing the map data directly. This is slightly slower, but as speed is not an issue (which is a good thing as the techniques I used for items and monsters are very inefficient) it is a simple way of making sure the data I am looking for is correct.
So what was causing the game to stall was the monster spawning trying to spawn a monster but not being able to randomly select a tile that was empty because it didn't consider locations that had been seen by the player as empty. If the map was fully explored, which is usually the case when I am playing a game, then the game would go into an infinite loop as it searched for a empty tile.
Thursday, May 17, 2007
One of those Bugs
My original plans for this week was to release Modern Dungeon Romp. After finishing the feature list I talked about last week, I started playing the game with the goal of making sure I could play through the entire game. I figured this would be a fairly simple final test as I have played through the game a few times before I made my list of changes. Still, when you are making a lot of changes, you can break things. Something was definitely broken. I worked my way down a few levels when the game stalled. I am not sure why but suspect it is a side effect of the changes. My first goal is to re-create the stall so I can figure out where the problem is occurring. I'll blog when I have more information on this.
Something had to be posted, and while my making of episode 14 has yet to be posted, looking at the calendar revealed that if I posted chapter 14 this week then I would have to post One of those Weeks Episode 27 next week, even if I found the bug. I don't want to delay visitor's choices unnecessarily, so in order to make sure that I delivered episode 27 this month (and episode 28 next month) I released the episode today. If the bug is fixed then next week will be Modern Dungeon Romp otherwise Chapter 14 will be released.
Something had to be posted, and while my making of episode 14 has yet to be posted, looking at the calendar revealed that if I posted chapter 14 this week then I would have to post One of those Weeks Episode 27 next week, even if I found the bug. I don't want to delay visitor's choices unnecessarily, so in order to make sure that I delivered episode 27 this month (and episode 28 next month) I released the episode today. If the bug is fixed then next week will be Modern Dungeon Romp otherwise Chapter 14 will be released.
Tuesday, May 15, 2007
The 40th birthday of video games?
May 15 th 1967 the first television-based video game was played between Ralph Baer and Bill Harrison. 1up.com decided to call this the 40 th birthday of the video game and wrote a multi-paged article on the topic. Of course anybody who has researched the history of video games know already that in February of 1962 SpaceWar was running on a PDP 11. For those of you who don't know, SpaceWar was the game that inspired Nolan Bushnell to form Atari, and Atari was the company that managed to get video games into popular culture. That being said, SpaceWars (and Tennis for Two which was released in 1958) didn't use Televisions for their display, but then again, neither did a lot of the arcade games I played as a kid so I am not sure why there is such a big deal being made by that minor point.
Ralph Baer had the idea of video games on the television back in 1951 when he was working on a television for Loral Electronics. Based on interviews I have seen with him, the idea came from the testing of the television prototypes where blocks were generated on the display. The company wasn't interested in the idea (because they were already behind schedule) so he put the idea away. Years later he remembered the idea and on September 1 st,1966 he filed a patent disclosure document for the idea.
My interest in computers and programming came as a result of seeing video games when I was a little kid, with Asteroids and Space Invaders being the first video games I ever saw. When I finally got a computer, I tried creating games. Back then there were magazines that had games that you could type in. I also found a couple of books that contained text based games and was one of the inspirations for my Ultimate Retro Project a decade or so later.
Ralph Baer had the idea of video games on the television back in 1951 when he was working on a television for Loral Electronics. Based on interviews I have seen with him, the idea came from the testing of the television prototypes where blocks were generated on the display. The company wasn't interested in the idea (because they were already behind schedule) so he put the idea away. Years later he remembered the idea and on September 1 st,1966 he filed a patent disclosure document for the idea.
My interest in computers and programming came as a result of seeing video games when I was a little kid, with Asteroids and Space Invaders being the first video games I ever saw. When I finally got a computer, I tried creating games. Back then there were magazines that had games that you could type in. I also found a couple of books that contained text based games and was one of the inspirations for my Ultimate Retro Project a decade or so later.
Monday, May 14, 2007
Microsoft FUD Attack
The big news today is Microsoft's attacks on Open Source Software. Microsoft is claiming that various Linux open source software infringes on their patents. Of course, they are not saying what particular patents that are being infringed upon. The reason for not pointing out the violations are multi-fold with the reasons all being related to the simple fact that Microsoft wants to spread as much FUD as possible because GPL 3 is going to totally ruin their plans for subverting open source. You see, GPL 3 has much better patent language which would make any attempt to use patents against GPL 3 non-practical as it makes deals such as the Novel deal impossible so Microsoft can't play the extortion game.
While I personally don't like the idea of patents on software, for the simple fact that software is just the application of mathematics to a particular problem, I don't have much say in the matter. Personally, as it is possible that I could infringe on a patent while creating my own software without any references whatsoever to the patent being infringed, I think the system is fundamentally flawed. The fact of the mater is that in the US, there are software patents. The key question is are Microsoft's claims valid?
I suspect that the predominant reason that Microsoft does not want to specify where the infringements are, besides to help spread FUD, is that a significant number of the patents are obvious in nature (and it is now possible to get patents that are obvious thrown out). Other patents probably have a lot of prior art that Microsoft did not disclose. Finally, the one or two patents that are "legitimate" are probably easy to work around so if they were revealed the infringement would be patched within minutes of disclosure.
On the bright side, the fact that Microsoft is trying to spread so much FUD must mean that they realize that the open source solutions are superior to their offerings (which I am forced to use due to the fact that most of my paying work is for their OS) and they realize that if there is not enough FUD to keep people using Windows, users will trickle away and without their OS/Office monopoly they will go bankrupt as from a historical perspective their monopoly was not a result of quality but of the tie-in with IBM. Had IBM not foolishly babied Microsoft along and Microsoft had to win market share on the merits of their software, they would probably have failed miserably. Mind you, they may have still fluked a monopoly as the best products don't always win. If they did, I would be typing this on the market leading Commodore Amiga computer and the awful x86 architecture would have been put to pasture long ago instead of being entrenched to the point that not even Intel can get rid of it (like they have been trying).
While I personally don't like the idea of patents on software, for the simple fact that software is just the application of mathematics to a particular problem, I don't have much say in the matter. Personally, as it is possible that I could infringe on a patent while creating my own software without any references whatsoever to the patent being infringed, I think the system is fundamentally flawed. The fact of the mater is that in the US, there are software patents. The key question is are Microsoft's claims valid?
I suspect that the predominant reason that Microsoft does not want to specify where the infringements are, besides to help spread FUD, is that a significant number of the patents are obvious in nature (and it is now possible to get patents that are obvious thrown out). Other patents probably have a lot of prior art that Microsoft did not disclose. Finally, the one or two patents that are "legitimate" are probably easy to work around so if they were revealed the infringement would be patched within minutes of disclosure.
On the bright side, the fact that Microsoft is trying to spread so much FUD must mean that they realize that the open source solutions are superior to their offerings (which I am forced to use due to the fact that most of my paying work is for their OS) and they realize that if there is not enough FUD to keep people using Windows, users will trickle away and without their OS/Office monopoly they will go bankrupt as from a historical perspective their monopoly was not a result of quality but of the tie-in with IBM. Had IBM not foolishly babied Microsoft along and Microsoft had to win market share on the merits of their software, they would probably have failed miserably. Mind you, they may have still fluked a monopoly as the best products don't always win. If they did, I would be typing this on the market leading Commodore Amiga computer and the awful x86 architecture would have been put to pasture long ago instead of being entrenched to the point that not even Intel can get rid of it (like they have been trying).
Friday, May 11, 2007
Flash CS3
Yesterday I posted my Mother's Day animation that I created for my mother on BlazingGames.com. This was kind of a milestone, as this was the first ever Flash 9 file that I released on my web site. By Flash 9, I mean that it requires the Flash Player 9 plug-in to view the animation. To create content for Flash player 9, however, there are a number of options available. The official channel is through Adobe, in which you have three choices available to you: the Flex 2 SDK, the FlexBuilder tool, or Flash CS3. The Flex 2 SDK is free (and is going to be released as open source), though is just libraries and command line compiler. The FlexBuilder program is Eclipse with a plug-in GUI. Flash CS3 is the traditional Flash animation program that comes with the various Adobe Creative Suite 3 collections. As I own CS3 Web Premium, I have Flash CS3 and used that for the creation of the animation, even though the animation was created entirely in ActionScript 3. Now is an appropriate time to go over my review of Flash CS3.
Flash CS3 has been reviewed a number of times, yet all of the reviews I have seen seem to miss the biggest reason for getting Flash CS3 which is ActionScript 3 (AS3). What is AS3? ActionScript is the scripting language that is used in flash. AS1 appeared with the release of Flash 5. Object Oriented extensions were "added" to the language with ActionScript 2 that appeared in Flash 7. The third version of ActionScript is a much larger leap over AS2 as it is actually compiled and the Flash Player uses a JIT engine to run the compiled code. This results in significantly faster code execution. The display engine was also drastically overhauled and is now much more flexible to work with. I will cover the display engine in future entries.
Writing AS3 code for me is a huge deal, though sadly the built in editor is still lacking. I suppose Adobe figures that programmers will migrate to FlexBuilder while artists and animators will stick with Flash. As code, including the code for the main timeline, can be assigned to external text files, this division of labor may make some sense. The problem is that there are people like me, who are somewhere between the two, who want the animation and drawing abilities of Flash yet want to write a lot of code so would like the code editing abilities of FlexBuilder, especially code completion. That said, the editor has improved a bit. The big improvement being collapsible code blocks and better debugging. In fact one of the neat things about CS3 is the fact that when the compiler catches an error, it will let you click on the error message and take you right to the problematic line. I, of course, intentionally left some typos in my code to test this feature out.
There are many other reasons to consider upgrading. The Photoshop like user interface, which I initially didn't care much for but am getting use to it now. The cool convert animation into ActionScript 3 code feature. Excellent support for importing Photoshop psd files, which will come in handy if Mary ever decides to do some artwork for Blazing Games. Better video exporting capability. Finally, integration with Adobe Bridge. If you have an earlier version of Flash, I think it is well worth the upgrade just for the ActionScript 3 support.
Flash CS3 has been reviewed a number of times, yet all of the reviews I have seen seem to miss the biggest reason for getting Flash CS3 which is ActionScript 3 (AS3). What is AS3? ActionScript is the scripting language that is used in flash. AS1 appeared with the release of Flash 5. Object Oriented extensions were "added" to the language with ActionScript 2 that appeared in Flash 7. The third version of ActionScript is a much larger leap over AS2 as it is actually compiled and the Flash Player uses a JIT engine to run the compiled code. This results in significantly faster code execution. The display engine was also drastically overhauled and is now much more flexible to work with. I will cover the display engine in future entries.
Writing AS3 code for me is a huge deal, though sadly the built in editor is still lacking. I suppose Adobe figures that programmers will migrate to FlexBuilder while artists and animators will stick with Flash. As code, including the code for the main timeline, can be assigned to external text files, this division of labor may make some sense. The problem is that there are people like me, who are somewhere between the two, who want the animation and drawing abilities of Flash yet want to write a lot of code so would like the code editing abilities of FlexBuilder, especially code completion. That said, the editor has improved a bit. The big improvement being collapsible code blocks and better debugging. In fact one of the neat things about CS3 is the fact that when the compiler catches an error, it will let you click on the error message and take you right to the problematic line. I, of course, intentionally left some typos in my code to test this feature out.
There are many other reasons to consider upgrading. The Photoshop like user interface, which I initially didn't care much for but am getting use to it now. The cool convert animation into ActionScript 3 code feature. Excellent support for importing Photoshop psd files, which will come in handy if Mary ever decides to do some artwork for Blazing Games. Better video exporting capability. Finally, integration with Adobe Bridge. If you have an earlier version of Flash, I think it is well worth the upgrade just for the ActionScript 3 support.
Wednesday, May 9, 2007
Modern Dungeon Romp functional code posted to repository
A fully functional version of Modern Dungeon Romp has been posted to the repository. If you want to play this early release you will have to compile the program yourself, as it will not be released on Blazing Games this week. Tomorrow's release is actually going to be a Mother's Day animation that I put together. The Mother's day animation that is going to be released did not take up any of the twenty hours that I allocate to Blazing Games. The Dungeon Romp game will have some additional features and there is a bug that I discovered. The changes I will be making will be the addition of a title screen, the reduction of the dungeon size so that the top and bottom of the dungeon will no longer be cut off, the map will be hidden, the graphics will be adjusted, and the new game bug will be fixed.
The title screen, while not that necessary, is a nice finishing touch. It also makes death in the game more interesting, as when you die, the title screen will come up where you will be able to choose from new game, or continue from marker. The title screen class already exists so this will actually be a fairly minor change.
The change in the dungeon size will also be a minor change. Right now the 16x16 dungeon size is just one tile too tall for the resolution used. The new version will use 16x15 floors, so the entire dungeon will fit on the screen. An alternative would be to use slightly smaller (30x30 instead of 32x32) icons, but I prefer having my icons 32x32.
The new hidden map feature will hide the areas of the map you have not explored. This will add an additional exploration aspect to the game. This will also mean that you will not be able to plan your route to the items and exits, and avoiding monsters will be more difficult.
The graphics will be touched up so that the monsters no longer blend into the floor. I am also going to try to make the background look more like a series of caves. This has the added benefit that it will make the game look distinctly different from Modern Melee Combat.
Finally, I will be fixing a bug. Right now, if you finish the game (or die and decide to start a new game) the new game starts you with all the spells that you have memorized. This bug fix will clear out the spell list when you restart the game. While this bug fix will also fix this problem with the classic version, I probably will not bother to re-post the fixed version of the classic version of the game unless someone actually complains to me about it.
The title screen, while not that necessary, is a nice finishing touch. It also makes death in the game more interesting, as when you die, the title screen will come up where you will be able to choose from new game, or continue from marker. The title screen class already exists so this will actually be a fairly minor change.
The change in the dungeon size will also be a minor change. Right now the 16x16 dungeon size is just one tile too tall for the resolution used. The new version will use 16x15 floors, so the entire dungeon will fit on the screen. An alternative would be to use slightly smaller (30x30 instead of 32x32) icons, but I prefer having my icons 32x32.
The new hidden map feature will hide the areas of the map you have not explored. This will add an additional exploration aspect to the game. This will also mean that you will not be able to plan your route to the items and exits, and avoiding monsters will be more difficult.
The graphics will be touched up so that the monsters no longer blend into the floor. I am also going to try to make the background look more like a series of caves. This has the added benefit that it will make the game look distinctly different from Modern Melee Combat.
Finally, I will be fixing a bug. Right now, if you finish the game (or die and decide to start a new game) the new game starts you with all the spells that you have memorized. This bug fix will clear out the spell list when you restart the game. While this bug fix will also fix this problem with the classic version, I probably will not bother to re-post the fixed version of the classic version of the game unless someone actually complains to me about it.
Tuesday, May 8, 2007
Java Strikes Back
The Java One conference started today. The big announcement today was the JavaFX platform. This is a set of libraries and a scripting language that will make it much easier to create Rich Internet Applications. While Java is fairly solid for server side work, Java applets have been pretty much put on the back-burner. While it has always been possible to do everything that you can do in Flash using Java, the amount of work required to accomplish the animation effects that could be done in minutes with Flash were quite high. As a result, client side Java has dwindled away. JavaFX is an attempt to reverse this trend and make Java the format for the Internet. This is open source and the alpha can be downloaded from openjfx.dev.java.net if you are interested.
As many people already know, I have been slowly transitioning over from Java to Flash so I found this news really interesting. What does this mean to Blazing Games? In the short term I will continue my work on the existing group of projects that I have announced. When I start new projects in the future, however, JavaFX may be the route I choose. That being said, it is also possible that a future project may be done in Silverlight, but anybody who knows me knows that this is a much lower probability unless cash is involved.
I am actually trying not to start on any new projects for the Blazing Games site until all the existing unfinished projects are finished. Paid work is a separate matter, so if you want to hire me to work on a project for you, let me know. At the moment the Blazing Games projects includes One of those Weeks, Coffee Quest before 4, Coffee Quest 5-6, Coffee Quest Revenge, The Dozen Days Pentalogy (which will include the sequel to Fleet), and the Ultimate Retro Project. I am probably missing a game or two in that list but as you have already figured out it will be a while before I start any new projects for the Blazing Games site.
As many people already know, I have been slowly transitioning over from Java to Flash so I found this news really interesting. What does this mean to Blazing Games? In the short term I will continue my work on the existing group of projects that I have announced. When I start new projects in the future, however, JavaFX may be the route I choose. That being said, it is also possible that a future project may be done in Silverlight, but anybody who knows me knows that this is a much lower probability unless cash is involved.
I am actually trying not to start on any new projects for the Blazing Games site until all the existing unfinished projects are finished. Paid work is a separate matter, so if you want to hire me to work on a project for you, let me know. At the moment the Blazing Games projects includes One of those Weeks, Coffee Quest before 4, Coffee Quest 5-6, Coffee Quest Revenge, The Dozen Days Pentalogy (which will include the sequel to Fleet), and the Ultimate Retro Project. I am probably missing a game or two in that list but as you have already figured out it will be a while before I start any new projects for the Blazing Games site.
Monday, May 7, 2007
Double Dungeon Review
A while ago I purchased this game from the Nintendo On-line Store as it is the only non-twitch role-playing that was available at the time. At the time of this writing, this is still the case. When you consider the huge number of turn-based RPGs that have been released for the older consoles that the Wii Store supports, there is no reason this should be the case. I am hoping that this will not be the case for much longer as Double Dungeons is not what I would call a great RPG. It is a very tie consuming game, however, but you can get much better role-playing games for free, so I am not sure it is worth 600 points.
The game is a 3D dungeon exploration game. The goal of the game is to find the key to the boss and then beat up the boss. To prevent you from achieving this goal are a variety of stationary monsters that block your path. When you defeat these monsters you get gold. Gold can be used in inns to recover your health or in stores to upgrade your equipment. Some of the monsters re-spawn so if you are backtracking you may need to re-fight the monsters. Combat is fairly simple as the only thing you can do is attack with your current weapon or use one of the eight items that you are carrying.
One of the nice things about this game is the fact that there are 22 different maps, with 21 of the maps being playable in any order you desire. To get to the final map you must enter a 21 symbol code that is discovered one letter at a time by finishing the other 21 maps. The maps are broken into difficulty levels, with the more difficult maps being larger than the easier maps. In fact, the later maps are huge! With there being no auto mapping feature, this means that you have to map by hand. Sadly, there are no coordinate information and the larger maps will not fit on a single sheet of graph paper. If you have an older laptop, you can do what I did and make your map using a tile map editing program such as Coffee Quest Construction Set.
The game is called Double Dungeon for a reason. The reason is that you have the option of playing the game with another person. It is a split screen with each player controlling their own character. Players start at different locations and it is very easy to get lost so cooperative play doesn't really happen. Besides, its hard to convince someone into playing the game with you.
Overall, unless you are desperate to play a turn based role-plying game on your Wii, I would not recommend purchasing this game. I suspect that the wait for a good non-twitch RPG will be over relatively soon. If I am lucky, in a week or two!
The game is a 3D dungeon exploration game. The goal of the game is to find the key to the boss and then beat up the boss. To prevent you from achieving this goal are a variety of stationary monsters that block your path. When you defeat these monsters you get gold. Gold can be used in inns to recover your health or in stores to upgrade your equipment. Some of the monsters re-spawn so if you are backtracking you may need to re-fight the monsters. Combat is fairly simple as the only thing you can do is attack with your current weapon or use one of the eight items that you are carrying.
One of the nice things about this game is the fact that there are 22 different maps, with 21 of the maps being playable in any order you desire. To get to the final map you must enter a 21 symbol code that is discovered one letter at a time by finishing the other 21 maps. The maps are broken into difficulty levels, with the more difficult maps being larger than the easier maps. In fact, the later maps are huge! With there being no auto mapping feature, this means that you have to map by hand. Sadly, there are no coordinate information and the larger maps will not fit on a single sheet of graph paper. If you have an older laptop, you can do what I did and make your map using a tile map editing program such as Coffee Quest Construction Set.
The game is called Double Dungeon for a reason. The reason is that you have the option of playing the game with another person. It is a split screen with each player controlling their own character. Players start at different locations and it is very easy to get lost so cooperative play doesn't really happen. Besides, its hard to convince someone into playing the game with you.
Overall, unless you are desperate to play a turn based role-plying game on your Wii, I would not recommend purchasing this game. I suspect that the wait for a good non-twitch RPG will be over relatively soon. If I am lucky, in a week or two!
Friday, May 4, 2007
Can a number be illegal?
Lets pick a number at random. Lets say 13,256,278,887,989,457,651,018,865,901,401,704,642. It is a nice number, but other than being a very large number there is nothing significant about it. Had I chosen a slightly smaller number I would suddenly have to worry about being sued for using that number. Why is that the case? You see, a certain company is using the slightly smaller number as an encryption key to protect certain commercial products. When this number got released to the public, this company started sending out DMCA takedown notices to various sites and blogs that published this number. While I am not a lawyer, my understanding of the law is that it is not possible to copyright or trademark a number. It is not like that number is useful for anything anyway. While it is true that if someone knew what that number was for, and had software for decrypting the encoded files, they could plug in this number to do this. That said, the number by itself is just a number. What does this have to do with game development? Well, it leads right into something that has been pissing me off lately. Copy protection.
As a person who has created a lot of intellectual property, I understand the need to protect that property from theft. At the same time, I am also a consumer and as such I am aware of how annoying it is to find out that you can't use the item you just purchased the way you want to use it. Sadly, far too often copy protection does prevent legitimate user from using the software they way they want. As regular readers know, I just purchased an upgrade to CS3. While the upgrade price was significantly cheaper than the full price, it was still very expensive to me. This software has some copy protection built into it. You are required to go online to activate the software. Not all of my computers are connected to the internet, so having to connect my main work machine to the internet potentially exposing the computer to nasty stuff is annoying, though less annoying than having to phone in and enter a 50 digit activation code. Another problem I have with this is that it ties the software that I legally purchased to a single machine. Yes, you can deactivate the software and then install it on a different machine, but what happens if your hard drive crashes, or some other disaster befalls your computer? You, the person who legally purchased the software, have to jump through hoops to get the software you paid for to work on your replacement machine.
Meanwhile, the pirates have written a patch for CS3 so anybody who wants to steal this software can simply grab the patch and not have to worry about the copy protection at all. Other than finding a copy of the pirated version of the software, which if they are a dedicated pirate they didn't even have to look for, they have no hoops which they have to leap through. So what is effectively happening is that I, the legitimate customer, am treated like a criminal while the real criminals get the user experience that as a paying customer I should have! Sure, but how often is a hard drive going to crash? Actually, all hard drives that currently exist, especially the flash based ones, will eventually die so the odds are 100%. The worst part is that the copy protection on my development tools is fairly mild compared to DVDs and most downloadable music.
I use to buy a lot of DVDs, but now that I have less and less time to watch movies, this has dropped right off so now I only purchase a few movies a year. These are copy protected which is annoying as DVDs are very easy to damage. There is software that can remove this copy protection and allow me to make back up copies of the DVDs that I have legally purchased, but I am not sure how legal this software is in Canada (I know my American friends can't use this software). If backups were the only issue, it would be just a major frustration, but far too often the situation is much worse. You see, at the start of the DVDs is a copyright notice telling you not to steal this material. Strange thing to have considering I JUST LEGALLY PURCHASED THE DVD SO WHY WOULD I NEED TO STEAL IT? You can not skip over this warning. Next comes commercials for other movies and DVDs. If you are lucky, they will let you skip over these. This leads to a bunch of questions. Did I not just pay a lot of money for this DVD? Was the price more money than I would pay for a commercial free movie channel? Did I not pay more for this DVD than for other budget DVDs that have no commercials at all? What possible justification is there for forcing me to watch commercials? Guess what? The pirated versions don't have the commercials or the warnings, just the movie that I payed for. Again I as a legitimate customer get the shaft while the pirates get what I am suppose to be paying for.
Downloadable music of course has the DRM issues tied to it. This means that you can only play the music that you purchased on a few devices. Worse yet, not all devices work with the DRM format. As there is more than one format for DRM music (Fairplay, Plays for sure, and whatever the Zune format is called) with the mp3 players only supporting at most 1 of the formats. Thankfully, in a few weeks EMI music will be available DRM free from Apple's iTunes music store. Let us hope that this will be the beginning of the end for annoying copy protection. After all, copy protection does NOT stop pirates, it only harms the people who are actually paying for the content.
As a person who has created a lot of intellectual property, I understand the need to protect that property from theft. At the same time, I am also a consumer and as such I am aware of how annoying it is to find out that you can't use the item you just purchased the way you want to use it. Sadly, far too often copy protection does prevent legitimate user from using the software they way they want. As regular readers know, I just purchased an upgrade to CS3. While the upgrade price was significantly cheaper than the full price, it was still very expensive to me. This software has some copy protection built into it. You are required to go online to activate the software. Not all of my computers are connected to the internet, so having to connect my main work machine to the internet potentially exposing the computer to nasty stuff is annoying, though less annoying than having to phone in and enter a 50 digit activation code. Another problem I have with this is that it ties the software that I legally purchased to a single machine. Yes, you can deactivate the software and then install it on a different machine, but what happens if your hard drive crashes, or some other disaster befalls your computer? You, the person who legally purchased the software, have to jump through hoops to get the software you paid for to work on your replacement machine.
Meanwhile, the pirates have written a patch for CS3 so anybody who wants to steal this software can simply grab the patch and not have to worry about the copy protection at all. Other than finding a copy of the pirated version of the software, which if they are a dedicated pirate they didn't even have to look for, they have no hoops which they have to leap through. So what is effectively happening is that I, the legitimate customer, am treated like a criminal while the real criminals get the user experience that as a paying customer I should have! Sure, but how often is a hard drive going to crash? Actually, all hard drives that currently exist, especially the flash based ones, will eventually die so the odds are 100%. The worst part is that the copy protection on my development tools is fairly mild compared to DVDs and most downloadable music.
I use to buy a lot of DVDs, but now that I have less and less time to watch movies, this has dropped right off so now I only purchase a few movies a year. These are copy protected which is annoying as DVDs are very easy to damage. There is software that can remove this copy protection and allow me to make back up copies of the DVDs that I have legally purchased, but I am not sure how legal this software is in Canada (I know my American friends can't use this software). If backups were the only issue, it would be just a major frustration, but far too often the situation is much worse. You see, at the start of the DVDs is a copyright notice telling you not to steal this material. Strange thing to have considering I JUST LEGALLY PURCHASED THE DVD SO WHY WOULD I NEED TO STEAL IT? You can not skip over this warning. Next comes commercials for other movies and DVDs. If you are lucky, they will let you skip over these. This leads to a bunch of questions. Did I not just pay a lot of money for this DVD? Was the price more money than I would pay for a commercial free movie channel? Did I not pay more for this DVD than for other budget DVDs that have no commercials at all? What possible justification is there for forcing me to watch commercials? Guess what? The pirated versions don't have the commercials or the warnings, just the movie that I payed for. Again I as a legitimate customer get the shaft while the pirates get what I am suppose to be paying for.
Downloadable music of course has the DRM issues tied to it. This means that you can only play the music that you purchased on a few devices. Worse yet, not all devices work with the DRM format. As there is more than one format for DRM music (Fairplay, Plays for sure, and whatever the Zune format is called) with the mp3 players only supporting at most 1 of the formats. Thankfully, in a few weeks EMI music will be available DRM free from Apple's iTunes music store. Let us hope that this will be the beginning of the end for annoying copy protection. After all, copy protection does NOT stop pirates, it only harms the people who are actually paying for the content.
Tuesday, May 1, 2007
Making One of those Weeks episode 14, part 3
More of Melee Combat has been posted. I have uncovered a few minor bugs, but nothing major yet so the chance of release this week is really good still. This means that the few people who follow this blog will be getting the next chapter of Making One of those Weeks at least a week early. Lets finish off the chapter.
Rendering a forest is the same as rendering other three-dimensional views, except the walls are trees. This actually makes the rendering easier. The trees I use are symmetrical. This means that unlike a wall, all the different views (left, right and center) of the tree are the same image. This makes a three dimensional forest very easy to draw.
To help with the variety of the forest, I tried to have three slightly different kinds of trees. The first tree is the normal tree. The other two are a taller version and a fatter version. While some people may have noticed the different trees, most people didn't notice any difference. In other words, a better approach at getting variety in the trees would have been to use three distinctly different looking trees.
One thing that I never even considered doing would be to grow the trees algorithmically. This is largely because the short amount of time that I have allocated to the creation of these episodes. Randomly generated trees could easily be seeded based on their location within the map, so every time the level is played, the trees would look the same. The quality of the trees could also be based on how fast the computer is, so faster computers could have more tree generation iterations, though I have never actually written an algorithm to generate a conifer (though I have written generators for deciduous trees and ferns) but I have seen such generators.
Because the renderer is the same one used in the earlier game, just with a different tile set for the "walls", there is no real need to go into the code of the game. The only real difference is that I added an additional depth level allowing the player to see deeper into the forest.
Rendering a forest is the same as rendering other three-dimensional views, except the walls are trees. This actually makes the rendering easier. The trees I use are symmetrical. This means that unlike a wall, all the different views (left, right and center) of the tree are the same image. This makes a three dimensional forest very easy to draw.
To help with the variety of the forest, I tried to have three slightly different kinds of trees. The first tree is the normal tree. The other two are a taller version and a fatter version. While some people may have noticed the different trees, most people didn't notice any difference. In other words, a better approach at getting variety in the trees would have been to use three distinctly different looking trees.
One thing that I never even considered doing would be to grow the trees algorithmically. This is largely because the short amount of time that I have allocated to the creation of these episodes. Randomly generated trees could easily be seeded based on their location within the map, so every time the level is played, the trees would look the same. The quality of the trees could also be based on how fast the computer is, so faster computers could have more tree generation iterations, though I have never actually written an algorithm to generate a conifer (though I have written generators for deciduous trees and ferns) but I have seen such generators.
Because the renderer is the same one used in the earlier game, just with a different tile set for the "walls", there is no real need to go into the code of the game. The only real difference is that I added an additional depth level allowing the player to see deeper into the forest.
Subscribe to:
Posts (Atom)