Dice Calculator – v1.5

I’ve just posted an update to the Dice Calculator to include many updates and features requested by my early adopters.

Dice Calculator Main Page

 

New Features to v1.5:

  • Stored Formulas now allow for a description and a type for better organization
  • Better panel support for portrait and landscape modes
  • Resizable window for the Windows Desktop version
  • When rolling from a stored formula, the name of the formula is presented in the results
  • Added a detailed roll history, along with calculations and name of formula rolled
  • Added an about dialog that gives a quick overview and a link to the website for full documentation and privacy statements
  • Added a lightweight virtual table so you can share your rolls with friends

Features added to v1.2:

  • Settings dialog to control the volume of the keyboard clicks
  • Support for (H)ighest and (L)owest dice (e.g. 2d20H will roll two twenty sided dice and keep the highest one, 4d6H3 will roll four, six-sided dice and keep the highest 3
  • Splash screen was update to match the theme of the application better.
  • Added Fudge Dice support (e.g. 4dF)

Here are some example formulas to try out.  The best example is to just enter these on the calculator and you will see the breakdown of results in the roll history window.

Example Formulas (Basic):

  • d20 – roll a twenty-sided die.  Result will be between 1 and 20.
  • d8 – roll an eight-sided die.  Result will be between 1 and 8
  • 2d6 – roll two, six-sided dice and add them together.  The result will be between 2 and 12.
  • d20+11 – roll a twenty-sided die and add 11 to the results.

Example Formulas (Advanced):

  • 2d20H – roll two, twenty-sided dice and keep the highest.  If the rolls were 10 and 13, the result would be 13.
  • 2d20L – roll two, twenty-sided dice and keep the lowest.  If the rolls were 10 and 13, the result would be 10.
  • 4d6k3 – roll four, six-sided dice and keep the highest 3. If the rolls were 1, 3, 4, 4, the result would be 11.
  • 4d6H3 – same as 4d6k3.
  • (6d6+3)/2 – roll six, six-sided dice, add three, then divide the final result by 2.
  • d6d10 – roll a six sided die, and then, based on the result, roll that many 10 sided dice.

Rolling at the table with friends (requires network connectivity)

One of the new features is the virtual dice table.  You can connect from the bottom of the Roll History panel by pressing the ‘Connect’ button.

Dice Calculator Table Connection

This area is still under development, so the workflow is a little awkward, so please bear with me.

When the button is first pressed, it will attempt to join a lobby.  If successful, you should see the status message at the bottom change to ‘JoinedLobby’ and inside the roll history it should state that you are in the lobby.  The Connect button will change to ‘Join Table’.

In the Lobby

 

From here, pressing ‘Join Table’ will display the connection settings dialog to allow you to enter a table name and a player name.  The defaults are ‘General’ for the table name and ‘Unknown’ for the player name.

Connection Settings Dialog

You can leave the defaults, or specify your own values.  The important thing to note is the following:

  • The Table Name needs to be the same name used by the people / devices you plan on connecting.
  • The User Name is up to you, and multiple people can share the same name.
  • There is no password or other privacy options. If you use a common table name, others may just happen to pick the same name and drop in.

Once connected, your rolls will be shared with the table.  If you used stored formulas, then the names of the formulas and the dice rolls will also be broadcast to the players at the table.  I plan on expanding this concept greatly with a new application in the future, but wanted the Dice Calculator to be capable of participating at a virtual table.

Sharing Profiles

One of the new features is the ability to share a profile.  This is done by connecting two or more people / devices to the same virtual table and then bringing up the Profile Selection dialog and pressing the ‘Share’ icon on the left.

Choose Profile screen

This will transfer the profile to everyone at the table and add it to their list of profiles.  I personally use this all the time to move my stored formulas between my desktop and my phone or tablet to save time!

WARNING: There is no confirmation when you receive the profile.  Also, it will overwrite the profile if one already exists with the same name.  Use with caution.

Releasing to the Market

I’ve release this to the Google Play, Windows Phone and Windows Store.  The latter two are pending approval for publishing.  I’ve also added a link to the desktop version on my site http://dungeonz.com

Let me know what you think!

 

 

Next Steps for the Dice Calculator

Publishing

The last week has been a busy week.  Since publishing the Dice Calculator to the Windows Phone Store and the Google Play Store, I’m up to about 70 installs.  While that may not amaze most folks, I’m excited it’s starting to pick up.

Feedback

My friends were the first to download my app.  Needless to say, since it was my first app published, I was a little excited.  Within a few hours of them picking it up, I was already getting feedback.

  • The volume of the clicks is too loud
  • How do I roll two twenty-sided dice and get the highest or lowest
  • If I enter only a decimal and press the equal key, the app crashes
  • How do I roll fudge dice

Making Changes based on Feedback

Awesome.  Loved it.  Real people, real feedback.  The next morning I awoke early and pounded out the fixes!

  • Added a settings dialog where you could set the volume for the application
  • Added support for H-high and L-low dice (e.g. 2D20H and 2d20L)
  • Fixed the bug with the error handling in the parser
  • Added support for a die type of ‘F’ for Fudge (fudge dice have two +’s, two -‘s and two blank sides)

While I was at it, I wanted to add some analytics to the application so I could understand how others around the world would be using the application. If anyone is curious, I went with Google Analytics.

Republish

With all of that done, I republished the updated version to both stores.  It is certainly faster subsequent times.  Well, except in the case of the Windows Phone Store.  The first couple of updates, it usually only took about two hours.  After adding the analytics, it took more than a day.

Next Steps – Windows Store Version / Tablet Version

Now I wanted to put the application on the Windows Store.  This turned out to be a little more challenging.  First, there is a lot more real estate on the screen.  On the phone, I need to keep things large and accessible to touch.  On the tablet, I can afford to utilize more space for my application and add some new features.  Here’s the abbreviated list of features I wanted to add.

  • Revise the visual layout to take advantage of the additional real estate
  • Add support for a dice roll history
  • Add support to connect with friends at a virtual table and share dice rolls

This was a little more ambitious than simply porting the application directly.  It took me several days of coding to get the layout updated, add the history and the virtual table work.  Here’s a screenshot of where I landed.

Image

The application has a better flow to it now, and in my early testing with a couple of friends, it was well received and generated a lot of interest in possible future features.

At this time, I’ve submitted it to the Windows Store.  It can take a few days to get out there.  In the meantime, I’ll start updating my main website.  I’ll save those details for the next post

 

Dice Calculator

For my first application to publish across platforms, I wanted to write a dice calculator.  Basically, it is an algebraic calculator that supports dice notation.  I wanted the application to be complete free.  This includes no in-app purchases, no ads and no up-front costs.  Initially, I wanted to target Windows Phone and Android Phones.  I have the desire to target iPhones, but I don’t own one, so I wouldn’t have a means of testing it.

Links to download:

Here’s a screenshot of the first release

Starting screen for the dice calculator

Starting screen for the dice calculator

Pretty basic, huh.  Here’s a quick rundown with some examples on how it works.

0-9, ( ), / x + and – and = work pretty much how you would expect

the ‘d’ key is used to indicate ‘dice’.  For example: D6 equals a six-sided die.  D20 equals a twenty-sided die.

You can put a number before the ‘D’ to indicate how many dice to roll.  So, 3D6 means to roll three, six-sided dice and to add their results.  If you type that into the calculator and hit the ‘=’ button, you will see the formula in the top window, the total in the window just under it, and a breakdown of your rolls in window at the bottom of the application.

This screenshot shows a sample roll

A sample roll

The ‘K’ key means to ‘Keep’ the highest rolled specified number of dice.

The above example show us rolling four, six-sided dice and keeping the highest three dice.  The window at the bottom shows the breakdown.

On the left-hand side, some quick keys are provided for common types of dice, usually used in role-playing games such as Pathfinder and Dungeons & Dragons.

Once a ‘roll’ has occurred by pressing the ‘=’ button, it will change to the ‘Roll Again’ button so you can quickly re-roll the same formula without having to type it in again and again.

The M+ / MR buttons mean to ‘Add to memory’ and to ‘Read from Memory’.

Adding a formula to memory

Adding a formula to memory

The above screenshot shows adding a formula to memory.  You can give it a name so it can be recalled easily.

For many role-playing games, one might have different characters with different skills, bonuses, etc…  I added the ability to remember formulas into different profiles.

Memorized formulas under a specific profile

Memorized formulas under a specific profile

Profile selection screen

Profile selection screen

 

That’s about it for the functionality.  Small, clean and with a singular focus.  If you have suggestions or comments, please let me know.