Thursday, October 30, 2008

Halloween game posted

Regular readers of this blog already know that the Halloween game for this year is Ultimate Retro Project episode 57: Classic Text Adventure. I don't know why, but to me a text adventure with a horror theme seems perfect for this time of year. While the Modern version that will have graphics would probably be preferred by most readers, that requires a fair bit of artwork. Mary Caton has volunteered to do some of that artwork so I am hoping to have the modern version of this game finished by the end of the year. If this does happen, and I finish One of those Weeks as I plan to, then this would mark the end of two of my bigger projects.

Next month is going to have a very interesting poll, which I will run from November 7th to November 30th. It will have four questions that will be used to aid me in my decision of what to do with the site in 2009. Note that the purpose of the poll is to get feedback and even if the majority feel a certain way I will make the final decision. To be honest, if everybody voted that I should cancel Coffee Quest then despite my fondness for that series I would probably listen to the results. Yes, the future of Coffee Quest is in fact on of the questions.

Sunday, October 26, 2008

Classic Text Adventure Release Candidate in repository

Well, I managed to finish my horror themed text adventure today and have posted the files to the repository so those of you who can't wait five days and know how to compile java can download and play episode 57 of the Ultimate Retro Project early (in the unlikely event that any exist). The development of this game was quite quick due to the fact that the two main parts of the engine, the room management and the parser, had already been written (at least partially) for other games in the ultimate retro series. Still, when adventures are concerned, the parser is very important. I opted for a simple two word parser which was used by a lot of adventure games.

A two word parser is actually one of the easier things to implement. This is because the format is very straight forward. You have a verb followed by a noun. Both the verbs and the nouns can be grouped into a list and you can then simply look up the command on the list and turn the command into a number representing the action and a number representing the object that the action is being applied to. My parser is slightly more sophisticated then this.

At the heart of my parser is the command class which holds a number that represents the verb and a number that represents the noun. The word, however, is not a single word for each command but a list of words that represent that command. The list of words are stored in a Word class that also holds other info about the word that I do not take full advantage of. A sentence class, which consists of a word class for the verb and a list of words that can be used for the noun (after all, some commands may have different nouns that can be used such as in the case of the move command) forms the basis of the command architecture. Finally, the parser class consists of a list of sentences that the game can understand.

After the parser command has processed the input string, you are left with a command. The ID of the verb is used to determine what to do and the ID of the noun is used to additionally quantify the action being performed.

While I was hoping to have a generic adventure creation engine by the end of this episode, puzzles tend to require a lot of condition processing. I was not about to spend far too much time writing a simple scripting language that could handle the condition processing so the final code is a bit too integrated with the data files than I would like. I think the time for text adventures is over and I have far better projects to work on so a general purpose text adventure game engine will not be coming from me any time soon, though there are already a number of them that already exist.

Thursday, October 23, 2008

Episode 44 and the weekend.

Episode 44 of One of those Weeks has been posted on Blazing Games. This episode does require knowledge from episode 43 but should be easy enough to solve. If I get a bunch of emails asking me for the solution then I will know that the puzzle is harder than I think, but I really don't think anybody will have that much problems with it.

This weekend I am going to be attempting to finish my Halloween game so expect an update entry Sunday or Monday. I am hoping that I will be writing to say the release candidate has been posted to the repository, but could very well be admitting that I have to go with my backup plan.

Thursday, October 16, 2008

Modern hotdog stand released

Today the Modern version of Hotdog Stand was released. While I may have a strategy guide for the game in the future, today I am just going to talk about the underlying simulation. Granted, understanding how the simulation works will probably give you all the information that a proper strategy guide would so if you want to finish the game without looking at a strategy guide then you may also wish to stop reading the rest of this article until after you have completed the game.

The heart of the hotdog stand simulation is the customer. After all, it is customers who purchase the hotdogs that are being sold in the game. The number of customers generated depends on a number of factors. First, there is the location that the player has chosen. This determines how many people will be there. Of course, different numbers of people will be present based on the time of day so that is factored into the chance that a customer will appear. If there is advertising for that day, an additional percentage of customers will be added to this base amount. All of this is added together and forms the chance per six seconds that a customer will appear.

When a customer does appear, the customer takes a look at the store. Based on the sign that is being used, the customer makes a first impression decision as to if they wish to consider purchasing something from the stand. If they are going to buy something, the customer then randomly selects which food combo they wish and what their price range is. If the food combo is under the price range then they will attempt to buy the item. If there is enough ingredients to make the requested meal then a purchase is achieved. If not, then the customer will divide the impression of the hotdog stand in half and make another attempt at analyzing the stand. This keeps up until the customer is not interested in the stand, in which case the reason given for not buying something (costs too much or not available) will be the result.

Sunday, October 12, 2008

An annoying Flash issue

While I am doing a lot of Flex development, I plan on still using Flash for the creation of animations. More importantly, my One of those Weeks series is being developed in Flash. There are only a few episodes left so there really is no point in moving that series to Flex. Flash and Flex are very similar, which is not surprising as they both produce code that is run in the Flash Player. Flex, however, is entirely driven by text files. While FlexBuilder has a graphical editor that helps you layout stuff, all the GUI work ends up being turned into an MXML file which is a text file. Graphics and other assets are separate files and can come from any tool. Flash, on the other hand, uses a binary format which embeds all the graphics. ActionScript code can be separate text files, which is what I have been doing.

When I was finishing up One of those Weeks episode 44, I came across a rather interesting bug. This was not really a bug in my code, but more of a quirk in the way that Flash handles animation. I had come across this quirk before so it didn't take me long to figure out what was going on. You see, when the player has solved the episode, there is a brief animation sequence that starts by zooming in on the background. Unfortunately, the background in this episode is scrollable by the user so the position of the background movie clip is changed by code. Flash, for some reason, does not handle hard-coded animations with symbols if that symbols location has been changed by ActionScript. The results were rather interesting, but not the ending sequence that I wanted.

Sadly, the only solutions were to use a different symbol for the animation or to do the animated sequence using ActionScript. If I was using Flex, the later approach probably would have been my approach from the outset. In Flash, though, it is easier to just create another symbol of the background and use that for the animated sequence. Actually, if I was doing this in Flex, I would have probably created a Flash .swf file that held all the assets and the end animation sequence would have just happened to be one of the assets as while Flex is much nicer for coding, Flash is way better at animation.

Thursday, October 9, 2008

Thanksgiving

Chapter 26 of Making of One of those Weeks has been released. This chapter is a good example of how lack of time can change the direction of a game. This is also part of the reason why I am experimenting with other approaches to getting content for the site. My Game in a Day series (Dozen days of) seems to sort of work as one Saturday a month is not that huge of a sacrifice and the pressure of trying to get a fully functional game created in a single day is somewhat invigorating. I have yet to start on November's dice game and will not be able to do so as this weekend is a long weekend in Canada as it is our Thanksgiving weekend. This thanksgiving is more special than usual for reasons that I can't currently discuss. That being said, I am writing a rather lengthy article that does go over the events of the last couple of months. Hopefully I will get permission to post that article, but if not at least I will have it for my own reference.

The poll results were rather different from what I expected. My guess as to the results of the poll would have been Card being the winner followed by Tile, Board, and closing out with Word. I suppose that technically I got the middle two correct. The fact that there was an interest in the Dozen Days of Words series for next year was a surprise, but I will listen to my visitors and have that as the Dozen Days series for 2009!

For those of you who are wondering, I was personally hoping that Dozen Days of Tiles would be the winner. There are a lot of really interesting games that use tiles. I consider Dominoes to be a tile game and that alone gives me a large number of games. Still, that will have to hold out until 2010 or 2011 depending on the polls (if I have them) next year around this time.

Sunday, October 5, 2008

Details on October

Modern Hotdog Stand has been posted to the repository. While there are additional features I would love to add to the game, my current schedule does not realistically allow me to do so. If the game is popular enough, I could always revisit it and add the features I desire but I suspect that will not be the case. The next task in the Ultimate Retro Project is the text adventure game. This would actually be ideal for Halloween as it does have a horror theme to it. Still, I do not know for sure if I will be able to finish this on time, so have an alternative planned out in case I am unable to meet the end of month deadline.

Speaking of October's schedule, I should probably go over my plans. Of course, Dozen Days of Dice episode 10 has already been released. One of the Saturday's in October will probably be spent working on episode 11 so I have it ready for November. I am going to try to keep the Dozen Days series monthly from now on which is why I am having the poll this month. I want to know which series will be following the dice series in case I have a string of free Saturday's and can get ahead in series development. Yes, I know that pig's can't fly but stranger things have happened.

Making of One of those Weeks is an eBook that only a few people read. I assume that most the people who read this blog also read the eBook but really have no way of knowing for sure. Still, Chapter 26 is ready to be released so I don't have to worry too much about it. I think this chapter of the book clearly explains the decision making process that I go through when I don't have enough time to focus on games for the Blazing Games site.

Modern Hotdog Stand was actually not finished before the month started. It was actually finished today, which should be obvious from the first paragraph of this entry. People who know how to compile Java and want to play the game early can grab it from the repository. The best I have been able to do is to finish the game in 7 days. I will be writing an article on how my simulation works which I hope to release shortly after the modern version has been officially released.

One of those Weeks episode 44 is in a functional but not finished state so I am going to have to finish it up before it is released. The neat thing about this episode is that it is simply the application of information the player obtained by playing the previous episode. I am hoping that the clues are sufficient, but because I know the answers I can't properly judge the difficulty. This is a problem that all puzzle designers have to face with the only real way of knowing the true difficulty of a puzzle is to expose it to a large number of people.

The final game of the month has not yet been determined. I probably should have placed some type of placeholder message on the schedule, and will probably do so next time I update the site. As I said above, I am hoping to have time to finish the classic Text Adventure which does have a horror story. My alternative plan is to do alternative layouts for Monster Hunt.

Thursday, October 2, 2008

Hello October

It is the start of a new month so the new schedule (and Dozen Days of Dice episode 10:General) has been posted. At least most of the schedule. There are five Fridays in October and only four are listed. The Halloween release has not been determined yet, but there will almost certainly be something for Halloween. Normally I would cover my schedule in more detail in this first post of the month, but I am really tired today so will hold off on my discussion until this weekend. I will, however, remind readers that the poll on the site is only for the first week of the month.