Using BlueTooth in Windows Phone 8

I’ve been in a funk lately. To help me ‘freshen up’ I decided to learn something new and build a Windows Phone 8 application. I figured it would be awesome to build an OBD2 app that reads data from the ECU of a car via the common ELM327 Bluetooth interface. One of the hurdles I’ve ran into so far was actually connecting to this interface via the Bluetooth protocol. The documentation that explains this process proved to be lackluster (as is far too often the case.) Hopefully this little writeup will steer others in the right direction and fill in some of the holes the documentation misses.

Before reading further I suggest the reader take a look at the documentation mentioned above, as it gives us a pretty good starting point. It is the details that are missing. I’ll cover these below.

The documentation writes the connection-to-device code as:

<pre>// Note: You can only browse and connect to paired devices!
private async void AppToDevice()
{
   // Configure PeerFinder to search for all paired devices.
   PeerFinder.AlternateIdentities["Bluetooth:Paired"] = "";
   var pairedDevices = await PeerFinder.FindAllPeersAsync();

   if (pairedDevices.Count == 0)
   {
      Debug.WriteLine("No paired devices were found.");
   }
   else
   {
      // Select a paired device. In this example, just pick the first one.
      PeerInformation selectedDevice = pairedDevices[0];
      // Attempt a connection
      StreamSocket socket = new StreamSocket();
      // Make sure ID_CAP_NETWORKING is enabled in your WMAppManifest.xml, or the next 
      // line will throw an Access Denied exception.
      // In this example, the second parameter of the call to ConnectAsync() is the RFCOMM port number, and can range 
      // in value from 1 to 30.
      await socket.ConnectAsync(selectedDevice.HostName,"1");
      DoSomethingUseful(socket);
   }
}

I tried running this code to connect to the ELM327, but it didn't work. There are a couple of reasons this failed. One, the 'await socket.ConnectAsync(selecteDevice.HostName, "1")' is not valid for all devices. The "1" is a device-dependent number between 1 and 30 and represents the socket we must connect to in order to exchange information. You can only get this number from the device mgf. I didn't have the OBD2 spec, and I didn't want to try a bunch of random sockets though. I wanted something more programmatic and natural.

It turns out there is another method, though the documentation doesn't provide an example. This method involves asking Bluetooth for a particular type of device in range. Bluetooth will return this device and allow us to easily connect to it. The doc has this to say about this method:

PeerFinder.AlternateIdentities["Bluetooth:SDP"] = "<SDP service guid>";

Find devices using the Service discovery protocol (SDP) that are advertising a service with the given GUID. If any devices are found, the PeerInformation.ServiceName will be equal to the GUID you specified.

If you enumerate by "Bluetooth:Paired", the PeerInformation.ServiceName field will be empty.  It is only populated when you enumerate using "Bluetooth:SDP". In this case the value returned in PeerInformation.ServiceName is the GUID value you set.  For many devices, the Bluetooth port over which to communicate is hard coded, so you can use that directly in the ConnectAsync call, as shown in the preceding example. If the device is advertising a service, then you can enumerate using the paired option but call ConnectAsync with the GUID of the service you want to use.

This left much to be desired. I'm brand new to Bluetooth. What is all this service GUID stuff? What is SDP? I was eventually able to figure it out...after hours of wandering the net reading Wikipedia, forum posts, and EML327 documentation.

So here is the rundown. Bluetooth makes use of what is called the Service Discovery Protocol, or SDP. This protocol has the task of figuring out what services other Bluetooth devices support. For example, you could ask SDP to find all headset devices. SDP would go out to all the devices in its range and ask if it is a headset. It then returns a list of all headset devices in range. It accomplishes this using a set of magic numbers. For the unaware, a magic number is a constant number that is given some meaning. 098750928745 could mean, "Bob just ate my hot dog and stole my 1966 twin-turbo charged Chevy C20." In this case, "{00001108-0000-1000-8000-00805f9b34fb}" is the magic number for headset support. All headsets will advertise they are a headset by using this magic number.

 

Windows Phone 8 has the ability to search for these services using the SDP protocol:


PeerFinder.AlternateIdentities["Bluetooth:SDP"] = "<insert magic number here>";

var desiredServices = await PeerFinder.FindAllPeersAsync();

This causes the phone ask each device in range if it supports the service represented by the magic number. You can find all these hideous magic numbers (also called Service GUID's (Globally Unique Identifiers)) here: http://bluetooth-pentest.narod.ru/doc/assigned_numbers_-_service_discovery.html

 

With a bit of testing I was able to find out that the ELM327 exposes the serial port service, which has the GUID of "{00001101-0000-1000-8000-00805f9b34fb}". I can now connect and communicate with the ELM327 by using code like this:


PeerFinder.AlternateIdentities["Bluetooth:SDP"] = "{00001101-0000-1000-8000-00805f9b34fb}";
var foundServices = await PeerFinder.FindAllPeersAsync();

//For this example assume the only device returned is the ELM327

var selectedDevice = foundServices[0];

StreamSocket connectionSocket = new StreamSocket();
await connectionSocket.ConnectAsync(selectedDevice.HostName, selectedDevice.ServiceName);

 

WP8 fills out the ServiceName when we use the SDP protocol, which allows us to connect without worrying about the socket!

One Source, Many Projects : Visual Studio Project Management

Development has been slowing way down with the redesigned Didgery, so I decided to gradually shift focus back onto Mind, starting tonight. I thought it best to do a bit of build management legwork on the PixelBurst engine tonight to ensure smooth sailing in the future, when I came across a little problem, and, eventually, quite a nice solution. One of the most fundamental rules of high-level programming is to reuse code as much as possible. Most programmers don’t want the same code file existing in more than one place. It just an absolute maintenance nightmare, and introduces more bug opportunities than you could shake a stick at. But sometimes the problem is surprisingly and aggravatingly difficult to avoid.

For example, let’s say that you want to create a game engine, and you want that game engine to run on platforms A, B, & C. Clearly the ideal would be to have one Visual Studio project that maintains all three of the projects, but that turns out to not be so easy. What if, say, platform A requires assemblies that are not available in platform B? One solution would be to exclude any references from the Visual Studio project and instead manually link them through code. It might be a pain in the butt, but it’s possible. But what if platform C disallows dynamic library linking? The only solution now is to create three projects, one for A, one for B, and one for C. Now each can have the libraries that it needs, so no qualm there, but we have, in this necessary action, grievously violated the fundamental rule stated above. We have three copies of the same code now! What if you change the code of a file in one of the projects and forget to copy that change to the other projects? That would be a major headache, especially if the change was small and easily forgettable. Remember, the computer is absolutely literal, so one misplaced character could very literally cause an entire application to seize up and crash.

As is often in life, we have fixed one problem only to create another. So, how do we solve this? One solution is to place all our code in a folder and then link that code into each project. This keeps the code in one place, and allows the projects to just pull in the code from the common source. This should work well, assuming the engine code is generic enough not to rely on certain assemblies. If some code does rely on a particular assembly, that code could be sectioned off behind a compile constant so that it is built only by the correct project. Surprisingly, Visual Studio, as advanced as it may be, offers no easy solution to accomplish this code linking. I first assumed I could use the AddAsLink command to add all my files and folders, but I quickly discovered its one major flaw: items added or removed since the linking will not be reflected in the projects. This means I would have to manually link any new files added to the shared project to all the other projects. This was clearly not automated enough, so I started doing a bit of digging.

I finally discovered a solution with no negatives that I can yet discern. The solution involves manually editing the .csproj file for each project and adding in some hotshot xml that tells MSBuild to scan all the folders of the directory I give it and include the c sharp files.

Here is the snippet I ended up using:

<ItemGroup>
<Compile Include="..\PixelBurst_Shared\Engine_Shared\**\*.cs*" />
</ItemGroup>

This tells us to go up one directory (..), and then go down to the PixelBurst_Shared folder, and then to the Engine_Shared folder. It then says to look at all folders, subfolders, and files in this directory (**) and to include only the files with a .cs extension (*.cs*).

The great thing about this solution is that the project will immediately update if I add or remove code from the linked folder. One source, many projects!

Essence

I want to live in big open spaces,

Rather than deal with all life’s races.

I want to feel and to touch the Earth and the Wind,

Instead, Time I must dutifully bend.

The Earth, how, the circle it encloses,

Gives rise to pain and suffering and beautiful roses,

And though with sulfur does ones pain subside,

We must ask ourselves if the cycle must abide.

For within each exists multitudes more,

All to accumulate and to fester this sore.

And in the end we all will know,

Nothing matters but the glistening snow

Baron Straights

I travel through the Baron Straights

“Deceive all and make them all wait!”

Is the lingering sentence that roars through my ears

Still my eyes dwindle as the truth becomes clear.

For all the people spread abroad,

Sold their souls with that of a nod.

And they smile with joy as their life decease

And wither away with death’s last crease

The passage of time grins as they die

And turns around to breathe a doleful sigh

On all the newest generation and kin

Who wish only to be filled with gin.

That artful kind who deceives all others

But do they know they deceive their own mothers?

Their deceitfulness in the end will be purchased in the draught

And their existence too will result in naught

And as they fade and soon become dead

They will gaze on the thousands rising up in their stead

And try they might to warn the likenesses of themselves

The young will laugh and ignore their pleading wails

So the dead become the living in this cycle of spite

Everyone will lose, try as they might

 

Didgery is now for sale on IndieGameStand

The totally revamped Didgery  is now up for sale on IndieGameStand for $2.50.

 

*Pulls giant Megaphone from pocket*

Buy a copy for yourself, buy a copy for a friend! Holy Deities and Skullfaces!  Exploding Cards and Casual Fun! Zen and Heart-Pounding-Action! Didgery has it all folks!

*Megaphone mysteriously vanishes*

 

For the uninformed:

Didgery is a unique merger of card and puzzle that blends fun explosive action with thoughtful strategy. Sit back and relax in Zen Mode, or put your skills to the ultimate test by battling the forces of evil in Nightmare Mode. Change up the rules with Special Cards, uncover a fantastical back-story of biblical proportions, and immerse yourself in the relaxing zen-like atmosphere. Didgery is a fun, addictive, and fresh experience for both puzzle and card aficionados.

 

 

Didgery Redux

It took a bit longer than anticipated, but I finally have the Redux version of Didgery ready to go. It’s amazing what a month of work can do. The whole thing feels a tier better than it was before. Gameplay was streamlined, graphics were improved, visual design was tightened up, annoying aspects were removed (such as Auto-Help and the incessant beeping during Nightmare Mode), tutorials were vastly shortened while becoming more clear, and Zen mode was introduced. Furthermore, objects external to Didgery but key to its success were totally redone. Examples include the boxart, description, and trailer.

The only thing left to do is upload it to Desura and integrated it into their API’s (leaderboards, achievements, etc.) I emailed them last night and requested API access, but I imagine I won’t get a response until this weekend is over with.

 

On a sad bit of news, it appears that IndieCity may be closing. Blitz Game Studios, the parent company of IndieCity, went into voluntary liquidation. Because of this they are currently not accepting new games, and their future is uncertain. Furthermore, it appears as if Indievania  is functionally dead as well. It has been in a state of non-improvement ever since I signed up, which leads me to believe that the developers don’t have much faith in the service. They, too, are not accepting new developers. Admins have failed to respond to pressing issues on the forums for the past year. I will likely pull Didgery support from Indievania simply for the users sake. It is odd. When I tried (three years ago) to get Didgery on Desura, and failed, IndieCity and Indievania were there to accept my game. Now that Desura accepted Didgery it appears that I may have to pull support from these platforms due to them closing down.

I’m especially disappointed that IndieCity may be closing. I could tell that those guys really tried to make their service a success. They had good communication, a well developed and constantly updated website, and sweet backend services such as achievements and leaderboards. But yet they never seemed to catch on. If Twitter follow count is any indication, Indievania is actually more popular than IndieCity. IndieGameStand is 5x more popular, Desura 10x times more popular, Good Ol’ Games 60x  and Steam 820x. This brings to mind a curiosity. Why do some things catch on, and others fail, even if the service that is failing actually offers more than the one succeeding? I guess this question can apply to most creative endeavors. Why are some books read and others left gathering dust? Why are some great games commercial failures? Why do some painters make a fortune during their life, while others don’t make a fortune until right after they die, while others remain undiscovered forever?

The current gameplan is to update Didgery on IndieCity (if possible) followed by releasing it onto Desura and IndieGameStand. Then I plan to finish up Mind with Leo. Once Mind is finished I may return to Didgery and convert it to MonoGame, and then publish it on OUYA, Linux, Windows8, and various tablet devices. Fun stuff ahead!

Removing Barriers & Attempting Success

I find video logs fun to make and watch, so I decided to make one regarding the progress of The New Didgery. Progress has been going very well so far, and, if the trend continues, I should have a build ready to upload to Desura by the end of the week, as well as a new trailer and description :) I look forward to seeing if the improvements open the game to a wider audience.

Hello from Leo

To the Readers of Enigmatic Fish: hello.

 

I call myself Leonard Kirke, but that gets rather tiring, so just call me Leo.

 

You may be wondering (at least, if you haven’t read the recent posts on this blog) who the heck I am and why I’m writing this. To answer the first question, who the heck I am is a writer (admittedly not the most prolific kind) of various types of fiction, the occasional nonfiction essay, and an all-around man-about-town (assuming that walking mindlessly around my house every few hours constitutes walking about town).  Now, to answer your second question.

 

My very good and long-time friend Clinton, the man responsible for Lotus Games, has asked me to contribute to his blog for a while. Why, you ask? That’s because he first asked me to contribute to his latest project: a puzzle game called “Mind.” As he mentioned in a recent post, it is his hope that my contributions for the blog will make for an interesting peek into the process of game development from someone who, well…isn’t a game developer.

 

Clinton and I have known each other a long time, and the only other experience I have with game development, if you can call it that (and you really can’t) is, during the 7th grade, plotting a rather expansive and surrealistic fighting game. Our creative paths diverged slightly during and after that never-completed project. The primary difference is that while I purchased a couple of “For Dummies” programming books that I never got around to actually reading, Clinton began using good old RPG Toolkit and actually, ya know, making video games. I, on the other hand, stuck more with the surrealistic aspect of our unfinished fighting game idea, and spent the following years writing a lot of silly nonsense to make myself giggle.

 

As you might imagine, when Clinton asked me to actually help him create a video game, all these years later, I was a bit hesitant. I know nothing about video game development in any practical, applicable sense. Computers are still, to me, essentially magic boxes upon which miracles are constantly appearing. The only language I can write in is English; I have no idea what exactly “C” or “C++” are. Heck, even HTML is pretty much a mystery. I was the unfortunate type of person nerdy enough to be mistaken for a computer genius, and yet I’ve always been more clueless about such things than the people who would misguidedly ask me for advice.

 

Still, it’s been sort of a goal of mine during the past year to push myself at least a tiny little bit out of my comfort zone, especially creatively. And Clinton’s idea for a game was incredibly appealing to me: a series of puzzles which, in some way, mirror mental processes, those emotional and psychological experiences shared by most people, and maybe a few that are more unique. There is, I feel, great potential in this idea, especially as it might serve as some kind of comfort to those with emotional problem. I’ve had varying levels of anxiety (primarily social anxiety) for many years, and the thought of a puzzle game which could both reflect this experience and maybe offer some sort of hopeful, uplifting vision for myself and fellow anxiety-sufferers was very appealing to me. So, I agreed to help.

 

It was to my relief that Clinton assured me that I would, primarily, be handling the designs of the puzzles, while he would handle all the scary, confusing programming stuff. This did, and still does, intimidate me, though. I’m not a visual thinker; my thinking tends towards the abstract. I’ve never been very logical in the mechanical sense; I may be able to come up with creative ideas for thematic plot threads (or whatever it is us writery-types do) but solving puzzles has never been my strong suit. Needless to say, I found it hard to imagine actually designing a puzzle when I rarely can even solve them. Yet my initial experiments with the level editor Clinton created for Mind were fun. I may not have created the most puzzling of puzzles, but it didn’t seem quite as impossible a task once I actually gave it a try. Pushing out of one’s comfort zone was my goal, after all.

 

As I write this, Clinton has put Mind on hold temporarily to work on a revamped version of his previous game, “Didgery,” for the Desura platform, as recounted in his recent blog post. With our ideas for developing Mind somewhat frozen at the moment, I’ve taken a break from puzzle-designing to work on my own projects, including self-publishing my first short story, but I look forward to returning to Mind soon.

 

I’m not sure exactly what, when, or how often I’ll post here, but I think it will be interesting to record my thoughts as we work on Mind, and I hope you’ll find it at least entertaining, if not informative. If nothing else, I imagine it might prove interesting to read what happens when someone who is not a game developer attempts to develop a game. I’m certainly looking forward to finding out. I hope you’ll join Clinton and I as we embark on this little experiment in collaboration. It should be an interesting time.

 

Speaking of time, I think that’s about enough time writing for now, so I’ll say adieu until my next post.

 

- Leo

A Second Chance

Isn’t it loathsome how powerful a single negative experience can be?

They tend to stick in the head.

Well, for me at least.

For some reason I always assumed the larger population disliked Didgery. In the past few days I have discovered that not only is this assumption incorrect, but why such a hopeless belief developed in the first place.

A couple days ago I was editing the VideoLog/PodCast Leo and I filmed for our game Mind. There is a section in the video where I discuss Didgery, and how the game was lacking in certain ways that limited its audience. I decided it would be prudent to overlay some Didgery reviews over the video to help reinforce certain points. It was the process of doing this, and rereading the reviews with a clear mind (heavy development on a game over a year tends to create a layer of haze), that caused me to realize that the reviews were overwhelmingly positive. In fact, there is only one seriously negative review. Every single other review is either incredibly positive or expresses hope that the game can be improved with the addition of a casual mode.

That wasn’t quite how I remembered it.

Humans are, by nature, sensitive creatures. Observation shows that this sensitivity enters a heightened state, for some curious reason, when presented with a difference of belief. Political belief, religious belief, or even something as trivial and worthless as entertainment belief (the best sport team, PC vs. MAC, etc.), all generate great unrest within our spirit when challenged. Furthermore, it is natural for one to become deeply attached to something they had a hand in building. This is especially true for Indies who build entire worlds from start to finish, often spending years of their life doing so. Attacking the creation is attacking the creator. The human vice tightens its grip even further when mental strain and exhaustion are factored into the equation. Developing and releasing a game is a sort of high, if you will; everything feels larger than life, all emotions are heightened, including sensitivity. Through this distorted vision a single scathing review feels orders of magnitudes worse than it really is. It burrows into the mind and there sits, like a cancer.

Armless Octopus.

They are an Independent Video Game Review site with the tagline, ‘We Love Indie Games.’ Neil Soika, a reviewer that worked with them at the time, gave Didgery a very negative review. Rereading it now, the negativity just seems somewhat silly at parts. At the time though, it wasn’t silly. It was deeply damaging to my frail, post-release mindset.

Let’s go through the review shall we? I’ll point out the parts that I think are…ridiculous.

The first phrase that got me frowning was this:

“I mostly felt like I was playing some Bejeweled clone only with a slightly tweaked gameplay.”

Didgery is a chaining game, Bejeweled is match three game. There is a huge difference between these types of gameplays. The above statement effectively states that all puzzle chaining games are ripoffs of Bejeweled. Silly.

“As you clear cards you also gain Harmony, which is Didgery’s equivalent to points. Obviously, you get more Harmony for longer chains and completely clearing the board. You are also constantly losing Harmony, and you lose it at a faster rate as you advance to each stage. That’s right, you are bailing water for a high score – not my idea of fun.”

This isn’t actually how things work, but to Neil’s credit things aren’t very clear. If the above case were true high scores couldn’t exist, as the structure of the game ensures that the player always loses, which means their total harmony would always be 0.

“Every match I played progressed the same way: I started out fine, but after a number of rounds my score would start to slip and I struggled to get back to where I was. Once the sliding starts there is no stopping it, which drove me nuts because of how long it took. I would continue playing (only out of a sense of obligation) until I was completely out of Harmony and the game ended. This was infuriating because the better at scoring Harmony you are, the longer the eye gouging will last. This isn’t a situation like Tetris, where even if you max out the levels you still have a chance to make each move. Didgery literally will reach the point at which you can no longer keep up with your draining score and will die a slow death of a thousand cuts. All of this could be forgivable if there were any game variations like a continuous mode or even *gasp* a multiplayer.”

Indeed, what a gasp I had. Neil says it like multiplayer is the norm for single player puzzle games. I understand the need for a continuous mode, but a multiplayer? Really?

“I couldn’t stand the music and recommend that you turn it all the way down immediately.”

I find it somewhat puzzling that Neil would suggest others to turn off the music based on his personal taste. I don’t much care for the derogatory tone either. Every other review I have read stated that they quite enjoyed the music. That doesn’t mean that everyone will like it, but come on, let the player decide for themselves.

“When starting up Didgery, I was greeted by white fluffy clouds and the outstretched hand of some unseen deity. This is related to the vague creation storyline that is revealed as you play the game. The idea that a card game needs magic to interest players is a bit insulting to me and seems to gloss over the weaknesses of the game. I had such high hopes because I generally really like card games of all types, but this is definitely not recommended unless you enjoy acid baths.”

…I just…don’t understand. Saying a feature is insulting just… It’s like saying the fantasy-inspired backgrounds of Bejeweled 3 is insulting because the gameplay isn’t immersive enough. The storyline of Didgery doesn’t weaken the game, quite the opposite. Like the backgrounds of Bejeweled it gives the game an extra layer of depth impossible through the direct gameplay itself.

The review was critical, but not in a constructive way. You want to see a good, constructive review? Read this review from Do It Yourself Gamer. This is one of my favorite reviews, because, though Mike Rose (the reviewer) didn’t care much for the game, he clearly pointed out the good points and offered suggestions on how Didgery could be improved.

Now realizing that I could not take the Armless Octopus review seriously, and regaining a large bit of hope for Didgery, I decided to check out the IndieDB page to see how things were going. To my surprise two people had rated the game, one a 9 and the other a 10, giving me an average of a 9.5. I glanced over at IndieCity where I am currently selling the PC version, and was greeted with a 4.5/5 rating from 10 players. It was then that I realized it: people actually enjoy Didgery. The person who gave it a 9 on IndieDB also posted a comment asking if I have ever considered releasing onto Desura. I told him that I had contacted them a year and a half ago, but was turned down because ‘our players don’t like card games.’ He replied and said that I should try again, as Desura recently changed hands to Linden Labs. So with renewed vigor I sent Desura an email.

I woke up at about 2:30AM this morning. I don’t really know why, perhaps the air conditioner wasn’t working right or something. I checked the mail on my Windows 8 Phone and saw a reply from Desura sitting in my mailbox. I hesitated for a few seconds, trying to prepare myself for the potentially bad news. After fully preparing my heart to enter shattered status I read it. And then I read it again. And then again. It read: ‘We are happy to have your game on Desura.’ Wow… Didgery, on Desura!? Really?! This is big news for me. Desura is a much larger platform than IndieCity or Indievania. A step up from Desura is probably in the realm of GOG or Steam. Suddenly, the possibility of Didgery reaching its audience is possible. I couldn’t sleep after that (I have been awake for nearly 22 hours so far.) I immediately got on my computer and started writing a list of improvements Didgery needs to reach a wider audience.

Since Neil Soika from Armless Octopus offered little in the form of constructive criticism I instead turned my attention to the review from Do It Yourself Gamer. Mike Rose had issues both with the gameplay and the visual design of the cards. I intend to fix both. For the gameplay I am going to implement a new Zen Mode that does away with the whole curse thing, and I am going to completely redesign the cards to be more visually appealing and easily recognizable.

Beyond that there are a few things I have noticed over the years that really just don’t work. The first is the trailer. Multiple people have been disturbed/put-off by the ‘Girdle [or Gird] Your Loins’ statement. This is a common statement in the Holy Bible that means to “Prepare Yourself.” Apparently few read the King James Bible, and of those few only a handful appreciate its writing style, so nearly no one knew what I was trying to convey. The trailer is also long and drawn out. I was trying to prepare players for the atmosphere, but it didn’t seem to work all that well, as my sales were…dismal to say the least. In addition, I have read several complaints about how needlessly long the trailer is. So, that in mind, I plan to trim out all the fluff and get right to the point. I’ll leave the atmosphere to the game. My first priority with the trailer is to get people to play it, not to chase people away with images of Loincloths.

In addition, I would like to make the tutorial much less verbose. I currently use the tutorial as an introduction to the storyline in addition to teaching the player how to play Didgery, but I’m under the impression that doing so is not the best idea, simply due to the length it adds. In addition, after watching people such as TheIndieGamePromoter play the tutorial I am under the impression that the tutorial isn’t particularly effective. The whole thing really needs to be redone.

I vaguely considered hiring an artist from oDesk or Elance to redo all art assets. My artwork isn’t awful, but it is certainly not as good as what an experienced artist can produce. I will more likely hold off on this at the moment though, simply due to time and monetary constraints. I plan to release Didgery onto mobile platforms in the future however, so that may be a good time to consider this more heavily. I am, though, heavily considering getting a professional piece of boxart created in the next few hours/days. The current boxart is dull and uninteresting.

Current Boring Cover Art

 

 

 

 

 

 

 

 

 

 

 

 

I am also in the process of reworking Didgery’s game description. The previous description, like the trailer, attempted to form an atmosphere instead of explain what the game is about. I’m not going to make that mistake again.

Previous Description:

An evil curse has gnashed a great wound into the four sacred elements. You have been set in place by the ancients to tend to these elements and restore the equilibrium of the world. Succeed in your task, and peace will fill the Earth. Fail, and all will delve into an endless darkness. Girdle your loins and steady your hand, the game begins here.

Current Description (WIP):

Didgery is a unique puzzler that blends the addictive qualities of Bejeweled and Solitaire with the depth of Chess. Unlock story fragments, discover special cards, and immerse yourself in the atmosphere of the most epic card-puzzle combination of all time.

Does Didgery have the possibility for a second chance? With the right changes and a few good choices, I think so.

Things are moving pretty quick. I have already been asked to submit media assets, and I have been given an upload link where I can upload Didgery onto Desura. I have a feeling that sleep is not going to be much of an option this week.

I’m keeping my eyes forward. And open. All week. I think I need an eye-drop.

Elements of a Good Puzzle Game

I thought it would be a nice idea to supplement our progress on Mind with a video log every once in a while. Video, to me, feels more personal, and I feel we can reach a larger audience this way. This video is less about Mind directly, and more about the elements of a good puzzle game. Leo and I play several leading titles on Google Play and discuss what makes them attractive and successful as puzzle games, and how we can apply those core elements to the gameplay of Mind.