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.

 

 

 

 

Getting the right font

Thinking over the design of my game, I often try to find visual aesthetics such as icons and fonts to help express the atmosphere I’m looking for.  For this article, I’m going to spend a bit describing some of the key points I look for when identifying fonts to be used in a game.

There are a lot of fonts out there.  Even on a basic machine with limited amounts of productivity software installed, a font dropdown can contain over a hundred fonts.  For some people, this can extend into the thousands.  There are many sites and shareware sources where you can get fonts either for free, or in bulk for very little money.  To the average person, this is about as much as they know regarding fonts.

For the more professionally minded, such as a publishing firm, they often tap into the professional font market.  On these sites, fonts can range from tens of dollars to hundreds of dollars.  This bewilders the average person since they can often find a large source of free fonts.  Why would a font cost more than a major piece of software?  That doesn’t make sense.  Or, does it…

Fonts are like artwork.  There is a wide degree of quality when it comes to fonts.  The higher the quality, or the more exclusive you want the font, the more expensive it gets.  While it might seem relatively easy to design a font, there are a lot of considerations that go into the design of a font.  This includes the general design, how well it scales from very small to very large, and how it looks at different weights (light, normal, bold, extra bold), or when italicized.

For most free fonts, there is a single font.  Let’s take something like Arial which comes with just about every Windows computer.  Arial is actually a very high quality font that was professionally designed.  It scales well (4pt to 144pt), it looks good with bold and italic, and it supports a massive number of characters (10,000+) to support international languages, math, symbols, etc…  Now, if you were to look at many free fonts, they are often designed for a narrow size range, bold and italic are done via software, so there is no guarantee they will look as the author intended, or even good at all, and the number of characters is often limited, usually less than five hundred.

If the latter meets your needs, then by all means go for it.  Free is always good when it meets your needs.  There are many sites that will help you find free fonts and sample your text at different sizes.  Here’s a few links you can try.

Likely, you will find something you like that represents the character or atmosphere you’re looking for.

Now, if you are looking for something a little more robust or unique, you will have to look at the sites where you purchase fonts.  On these sites, fonts come with licensing terms on where they can be used, or how they can be distributed.  Pay close attention to these terms of use.  Using them outside of those terms can result in legal action.  That said, many of the fonts are priced quite reasonably given the quality and uniqueness.  Here’s a couple of sites I’ve used.

These two sites share many fonts in common, so often I browse both.  One of the things I like is the fact that the fonts on these sites are tagged for easy searching.  This often helps me narrow down to a particular style that I’m looking for.  For my logo name of DungeonZ, I wanted something with a generic, semi-exotic, fantasy feel.  In my find, this is a serif font that doesn’t feel too old school, but conveys a sense of higher fantasy.

While browsing the fonts, I often do a few things.  Many sites will default to showing you the font in the font name, or a common phrase, or basic alphabet.  These are all good for getting a quick idea.  Once I narrow down my list some, I often enter some custom text to see how my phrase or logo name might appear.  Additionally, many sites allow you to adjust the size of the font.  I adjust the size to something relatively small, and again to something pretty large.  At a small size, many of the great details can either be lost or muddied.  Very large, any flaws start to show up, especially in some free fonts where the attention to detail was not put into the design.

Okay.  Now onto a few terms that might help you narrow down your search.  These terms are common when describing fonts and can help you narrow your search down.

  • Serif – a serif font is a small line attached to the end of a stroke in a letter or symbol.  Times New Roman is a good example of a serif font.
  • Sans-Serif – is a font that does not have the small projecting features called ‘serifs’ at the end of strokes.  Arial is a good example.
  • Small Caps – is where the lower case letters have the same shape as the upper case letters, just smaller. Orator Std is a good example
  • Monospaced font (fixed-pitch, fixed-width) is where each character in the font occupies the same width.  Consolas is a good example.
  • Proportional font (variable-pitch, variable-width) is where each character can be a different width. Arial and Times New Roman are examples.
  • Symbol Font – this is where common letters of the English alphabet are replaced with graphical symbols.  Wingdings is a good example

There are many more subtle details when it comes to fonts, but the above is a good list of terms to help find fonts on the sites I listed.  If you would like a more comprehensive description of fonts, let me know.  http://wikipedia.org has a good description of the above terms with examples of fonts and differences.

I plan on spending today narrowing down my selection to a few fonts that I think work well together.  I’ll report back my final selections and why I choose them.

 

How to continue development while you’re sick

Just my luck…  I decide to startup a new project.  I get excited and get everything in order, standing up a new blog, figuring out how to publish to YouTube, verifying my resources, etc… and blam… The Flu hits…

I often think how convenient it would be to have time off from my normal job to jump-start a project.  Unfortunately, being sick with the flu isn’t conducive to a clear head and thought process with the fever, medication and general tiredness.  So, I tried to find a few things I could do to at least keep things moving forward, albeit at a slower pace.

First things first…  Take care of yourself.  Getting better is priority #1.  If I don’t get better, I don’t get back to writing code, designing the game, drawing models, etc…  So, I made sure that I took my meds, got plenty of rest and kept hydrated.

Enough with all that.  So, what did I do.

Videos

I decided to focus on things to continue my education in the space.  It used to be, when I was sick, I would stay home, bundled on the couch and watch daytime TV.  That alone often made me want to go back to work more quickly.  These days, I’ve replaced the daytime TV with watching YouTube videos.  Since I just started a new project, why not take the time to observe other videos on Unity game development, 3DSMax tutorials and continue looking for additional resource sites for the game.

So, here’s a small list of the videos and sites I found while I’ve been sick this last week.  Please keep in mind, that while the list is not extensive, it was enough to keep my interest up, and my knowledge growing.

3DSMax Learning Pagehttp://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/ENU/123112/files/3dsmax-learning-path-html.html

This site has links to a whole bunch of videos for 3DStudio Max.  In my case, I watched the first four sets of videos to refresh some of my knowledge with 3DSMax.  I’ve been a very long-time user of 3DS (since v1 of 3DS, before Max), but it has been several years since I’ve used it seriously.  These videos were really good.  There were many familiar concepts, and many, many new items that have been added to the program over the years, and seeing the new tools and capabilities really has me excited.

Unity Cookiehttp://cgcookie.com/unity/

I don’t remember how I stumbled on this site (probably following YouTube videos), but there are some good posts in here on setting up and importing from modelling packages, as well as many other Unity tutorials.  I’ve only watched a few videos, and while they are good, I found some of them to be a little more long winded than I would like.  I do prefer that over lack of explanation though.

In particular, here’s the link to modeling scale factor – http://cgcookie.com/unity/2013/11/05/unity-cookie-quick-tip-modeling-scale-factor/

and another for writing shaders – https://www.youtube.com/watch?v=-q2GxmLOIcw

Game Design

One of the good things about laying around is you have plenty of time to think.  So, I decided to put that time towards the game concept and design, including concepts like the audience, what was my goal / intention with the game, etc…  This proved to be a good way to pencil down an outline, but not too much more.  I had dreams of start-up screens, animations, and model designs.  This is good.  Because I know I had a fever though, I only took notes.  When I’m feeling better over the next day or so, I’ll convert those notes into the beginning of a game proposal that I can present in one of my next posts.

Anyways… back to bed.  I’m starting to feel better, but that doesn’t mean I’m feeling good yet.  Thanks for your patience.

 

Recording my computer desktop

This morning started out easy enough…  Find a way to post a YouTube video of my computer desktop.  Sounds easy enough, and I suspect for many of you it probably is.  While I have my Facebook, Twitter, FourSquare, Yelp, etc… accounts, one of the few I’ve never had is a YouTube account where I posted anything!  I know… Shocking… What planet have I been on all of these years.  I have friends that have posted, my daughter has posted…  but, I’ve never posted.  So, I began my little trek by doing a web search…

First of all, many of the initial results I got were how to record successful YouTube videos.  You know.  Make a plan, have a good microphone, have an interesting topic, etc…  Three pages into the results, and all I could read was how to be successful in front of the camera.  Good advice, yes… Just not what I was looking for.  I wanted something more education or business-like for recording my computer desktop.

Narrowing the search down, I did come across a few solutions.  In particular, out of ten or so pieces of software I found, I decided to narrow my focus down to just two.

CamStudio – (http://camstudio.org)

This tool is free!  Okay.  That’s a good starting point.  I visited their site, watched a couple of videos, read their FAQ, etc…  For a little more context, the computer that I would like to record on is running Windows 8.1 at 1920×1080 (1080p) with a dual monitor.  The software seemed to be what I was looking for, but there were many complaints about the installation software installing unnecessary additional software (bad!).

One of the ways I check to see what I might be missing with a free package is by comparing it to an expensive package.  In this case, I decided to look into Camtasia.

Camtasia – (http://www.techsmith.com/camtasia.html)

Price is ~$299.  Not too bad, but before I ever spend that kind of money, it needs to offer me something exceptional beyond what CamStudio can offer.  Now, I do enjoy their little tutorial videos which did  a great job of describing the package and its capabilities.  These were all good.  Additionally, Camtasia offers the ability to edit the video afterwards which CamStudio does not.  So, if I didn’t already have a subscription to Adobe Create Cloud, I would have probably needed to end up here.  Additionally, it is obvious this product is seeing more developer love.

All in all, it turn out that CamStudio would be my starting place.  If I find myself hitting a feature barrier, then I might entertain jumping to something like Camtasia, but for now, I thought I would see what the workflow looks like.

First things first.  I need to try a sample recording to see how well this thing really works.  Here’s the basic steps I followed…

1. Download the CamStudio software from http://camstudio.org (version 2.7.2 dated October 19th, 2013)

2. Install the software.  NOTE: I ‘declined’ to install all of the additional software, yet a couple of things were still installed.  Big negative for me, but I was able to go to the Control Panel under Add/Remove programs and uninstall the extra software.

3. Watch a tutorial video – https://www.youtube.com/watch?v=jVnBnvXJw00 (I searched for CamStudio Tutorial 2013, there are many of them)

4. I decided to go with the XVid Codec. – http://www.digital-digest.com/software/download.php?sid=1052&ssid=0&did=14

5. There were a few other options I needed to change to get things going.

  • Under the ‘Region’ menu, I choose ‘Select Screen’.  I plan on doing full screen capture.  I use a dual monitor, so I wanted to pick the screen beforehand.
  • Under ‘Options’, I choose to ‘Record Audio from Microphone’.
  • Under ‘Video Options’, I set the Compressor to ‘Xvid MPEG-4 Codec’ and have left the other options as-is for now

6. Now I went ahead and did a sample recording of me browsing the web

When it finished, it tried to play back the video.  The window was completely black, and so I thought it didn’t work.  It also prompted me to save the .avi file.  I saved it as ‘test.avi’.  If I double-clicked that file, it played back just fine.  Phew.

7. I turned off the playback [Options] | [Program Options] | [Play AVI file when recording stops] | [Do not play AVI file]

I’ll just manually watch them afterwards using the Windows Media Player or one of my other viewers.

Posting the Video on YouTube

You can go to http://www.youtube.com/yt/creators/ and create an account for yourself.  There are some pretty good tutorials and the interface is pretty easy.  I was able to drag my video file from my computer into the browser, it uploaded, and I was able to post it successfully (https://www.youtube.com/watch?v=cL9IyIX6kh4).  It’s lame and there is no audio, but it worked great as a proof of concept.

Now to go make something useful…

If you have any other suggestions, or if you would like a better explanation on anything I described above, drop me a comment!

 

Developer Accounts

If you plan on publishing your project, you will likely need a developer account.  Many of these require that you have a mail account associated with their authentication method.  Here’s a few pointers on where I’ve gone to sign-up.

Android Developer – Google Play (https://play.google.com/apps/publish/)

Windows Development – Windows Store (https://appdev.microsoft.com/StorePortals/en-us/Home/Index)

Windows Azure – Cloud Computing / Storage (http://azure.microsoft.com/en-us/)

Network Solutions – Domain Registration (http://networksolutions.com)

YouTube – Videos, Demonstrations and Tutorials (http://www.youtube.com/yt/creators/)

WordPress – Blogs (http://wordpress.com)

 

You may know of others.  This is the list of ones I’ve recently frequented.

Tools of the Trade

Before I get started, I’m going to go through a few of the tools I may use during this project. While most of these are tools that cost money, almost everyone of them has a free alternative. I’m fortunate enough to be able to afford these tools, but there are many who are less fortunate, so where I can, I’ll suggest an alternate tool to complete a job.

Tools I have or plan to use:

Unity 3D Links – 3D Game Engine / Toolkit

Unity3D – http://unity3d.com

There is both a free version and a PRO version. While many, many things can be done with the free version, the PRO version includes some advanced graphics options, and the ability to use some more advanced features across platforms (i.e. networking on Android)

World Machine – World building Software

Home Page: http://www.world-machine.com/

There is a free version that is limited in size, and a full version where the height-map is not limited.

BMFont – Bitmap Font Generation Software

Download: http://www.angelcode.com/products/bmfont/

BMFont importing into NGUI: http://www.youtube.com/watch?feature=player_embedded&v=ni7TfMPWq5M

Great tool, and best of all it’s free.

NGUI – GUI add-on for Unity3D

Homepage: http://www.tasharen.com/?page_id=140

Download: Unity App Store http://u3d.as/content/tasharen-entertainment/ngui-next-gen-ui/2vh

There is a free version to try things out, and supposedly Unity 4.5 (or 4.6) will have much of this built in. Current verison I’m using is Unity3D version 4.3.4

Microsoft Azure – Cloud Storage and Services

Homepage: https://manage.windowsazure.com

Azure SDK: https://www.windowsazure.com/en-us/develop/net/

Almost free to use, and I’m not sure I’ll use it fulltime. I’ve used it in the past for hosting my websites so I don’t have to keep a server running at home. This service is always getting cheaper…

VisualStudio.com – TFS or GIT Source Control / Project Tracking

Homepage: http://www.visualstudio.com

Free for most people and groups of developers less than five.

3D Studio Max 2014 – Autodesk 3D Modelling Software

Homepage: http://www.autodesk.com/products/autodesk-3ds-max/overview

Expensive… Blender is probably one of your best alternatives. I’ve just been using this package for a while, and I’m familiar with it. With Unity, many of the models can also be acquired through the asset store for not too much money depending on what you’re going for.

Adobe Photoshop / Illustrator – Image editing and creation software

Homepage: http://www.adobe.com/products/photoshop.html?sdid=JTGIQ

There are many alternatives. For me, I consider these the best in their class and continue to use them for game development as well as photography, etc…

Notepad2

Homepage: http://www.flos-freeware.ch/notepad2.html

Free. Great alternative to NotePad. Makes a great basic text editor.

UnityVS

Homepage: http://unityvs.com

I only recently acquired this one. It is not necessary, but it does make the transition between Unity and Visual Studio a bit better. If you’re using the built-in Mono development environment for Unity, you won’t need this.

 

I hope this helps. If you have any questions, please leave a comment and I’ll try to answer it.

Getting Started…

I’m always full of ideas and a passion for excellence.  My wife convinced me to write down my journey so as to share it with everyone else.

At first I paused…  I’m really not very good and repetitive things, things that keep me to a schedule, etc…  After several months, I usually lose interest, find something else shiny, or just plain get bored.

That said, as I get older I’m finding it easier to just keep things cool and calm and consistent.  Finding my rhythm in life I guess.

Quick background.  I’ve been working in the computer industry for almost 35 years (hurts to write that).  I’ve developed a multitude of products, ranging from imaging software for small businesses, to multi-billion dollar software for some of the industry giants.

You’d think after all of that, I wouldn’t want to continue programming…  Quite the contrary.  I find programming to be exciting and challenging.  I’m always looking for ways to push my knowledge, explore a new algorithm, or just make something fun.

That’s where this comes in.  I’ve  been taking a break for the last year playing other games instead of programming.  I want to use this opportunity to get back into the thick of things and get the creative juices flowing again.

Almost everywhere in the industry, people are talking cross-platform.  So, I thought I would give it a go outside of work and see where things led me.

Welcome to my journey…