Wednesday, October 8, 2014

Dev Update #6 New Builds! (And Flying Voxel Pigs)

Go to the link below and download the executable for your desktop operating system.  There are builds for Linux, Windows, and Mac OSX

This is the first build with the bug fix that makes it work with  I also added Jennifer Phillips' Voxelated pigs, from the concept art competition, to the login screen.


-You can login with either username or api.  Click the buttons on the login screen to switch between them.
-You can add habits,dailies, todos, and rewards.
-You can view and check tasks and checklist items.
-Checklist items appear as other tasks except with numbers in front of them (1,1) for example.
-There is no edit functionality, or reorder.
-Todos that have been done still display.

-I haven't added pets.
-Only your costume currently displays.  If you're not using a costume your character won't display.
-Adding sprites is a very manual process.  If the sprite/gear you're using was added after the date that I added the sprites, it cannot display.

Monday, September 22, 2014

Dev Update #5 Now Open Source on Github

Now on github.  Fork and have fun.  Please free to post an issue on github if you have any questions.

Wednesday, September 3, 2014

Dev Update #4 First of the Month

I planned to update on the first of every month and I'm late this month. My apologies.

UnityHTTP is working, and I'm working towards an open source release.  If all goes as planned, I should be able to release on github within the week.  Possibly Sunday. Sunday is usually my dev day.

Wednesday, August 20, 2014

Dev Update #3 - It works again!!!

Good news!  The release that contained my bug fix came out on the 12th.  I could have updated then, but I waited until now to post about it.  With this bug fix, the Habit Engine finally works with again.

I've been trying to update at roughly the same time every month, but I kind of dropped the ball this time.  I'll probably start updating at the beginning of the month, just to make it easier to check.

Since the last update, I have been trying to get unityhttp to work.  Uniweb works great, and it's a steal at $25, but if I'm going to open source Habit Engine, I can't expect everyone to buy it.  In fact, if I decide to use a gpl license, which I am leaning towards, I think that sort of breaks the license.  For that reason I have posted a simple test project at in order to test unityhttp.

If you are a programmer, interested in helping, you can clone this repo, and then clone unityhttp into the assets folder, and help me find out what the problem is.

In other good news, Unity 2.6 open beta is out!  This contains the new GUI elements, which means that my workload went from a few things to a hundred.  I'm not ready :/

Stay tuned for more info, and if you're interested in helping in this endeavor, please don't be shy about messaging me.

Tuesday, July 15, 2014

Dev Update #2: And we're still waiting; Waiting on the code to change

Update X509Certificate.cs is my commit to Unity's Mono, that fixes the SSL bug I mentioned in the last post.  It was finally merged 4 days ago, and it's only a matter of time before the release that features the bug fix.

I'm not sure when it will come.  I get excited, and then subsequently disappointed after every minor release.  If I was feeling adventurous, I could probably compile the code myself, but I'm just not sure it's worth the effort.  I mean, I could spend hours getting the code to compile just to find that it won't work, and I still have to wait.  I just don't have that kind of time to waste.

Once the bug fix finally drops, there will probably still be a relatively long wait for Unity 4.6, which contains the new Unity GUI.  In that time, I plan on using the Habit Engine myself with my account, and then progressively adding the features that I find most useful.  I will probably stick with the current gui code, even though performance may suffer as I add more gui elements;  then I will rewrite the gui after 4.6.

Code Updates:
I recently added HabitRPG sprites.  It still need some polishing up, but it's otherwise fully implemented.  Ignore the lack of data;  I turned that off while working on the GUI.

Friday, June 13, 2014

Development update #1

I decided to rename the project from "Habit Media Engine" to just "Habit Engine".

Development has had its ups and downs.  

First, the good news:

1.On the near horizon, the next release of Unity includes a new GUI system, which I should be able to leverage to really improve the UI.
2. Entry on Enter is working.
3. Task colors partially work.
4. Checklists work, though adding and editing them has not be implemented, and their ui could use some work(see #1).
5.  I tested builds for Android and Iphone using "Good ol' Sockets" and they both worked, though the UI would need to be changed for mobile(see #1) and the performance needs to be improved.
6.  I added a 3d character with animations that trigger during certain events.  When a positive habit is clicked, or a daily or todo is checked, the character smiles.  When a negative habit is clicked, or a daily or todo is unchecked, the character frowns.  When you reach a new level, the character jumps.(For more information, see the end of this post)

Next, the bad news:

Currently, there is a bug in Unity's mono ssl runtime that prevents  Habit Engine from communicating with the HabitRPG server.  HabitRPG's certification used a different algorithm until they updated it.  The bug does not exist in Unity 5, but Unity 5 probably won't be released until sometime in 2015.  I'm currently not sure what to do to resolve this in the meantime.  I've created a bug report, and even a pull request, and I'm not sure if there is much else I can do.  This bug is the only thing that prevents me from making a second release.  It also breaks the first release.

More on Character Animations

I spent a lot of time working on importing 3d animations into Unity.  I used a character I had previously made called "Piggly", because I thought that would make the process much simpler and quicker.  Piggly is not a biped.  He's more like a blob with eyes, ears, nose, and mouth.  Supposedly, bipeds are much easier to work with in Unity.

 I created him at a Skills USA National competition, for a short film.
Bad Piggies Director's Cut from Stewart Martin on Vimeo.

I imported Piggly, with a morpher(3dsMax equivalent of blend shapes) and a stretch deformer from 3dsMax.  I then found out that Unity doesn't support deformers.  Additionally something about the morpher was causing the skin to be affected by light differently.

So, I abandoned 3dsMax, imported my meshes into a single Maya scene, made new textures, and tried again.  All of the blendshapes and the main character shape in Maya were simple low poly with a quick smooth applied.  Turbosmooth  with a morpher, from 3dsMax, imports properly into Unity(except for the problem above) but quick smooth from Maya does not.  In Maya, you can use a smooth mesh on the main shape, and it will properly apply the vertex changes to all of the blend shapes, but in Unity, this causes terrible distortions in the skin.

Because of this,  in Maya, I had to apply a smooth mesh, and then remake the blend shapes from scratch using the higher poly meshes.  I did this quickly, and the results were not as good as the previous blend shapes.

After doing a little research, I read that the best way to do squash and stretch on a character in Maya, for use in Unity, was to create a squash and stretch rig like the one outlined in the tutorial here.  So, I spent hours following the first 6 tutorials, and then followed them a second time, applying those steps to my own character.  After creating a jump animation and importing it into Unity, there was a(nother) terrible distortion in the skin, because Unity doesn't support scale compensation.

At this point, I had spent many hours, and the majority of that time was spent trying to import a simple squash and stretch into Unity.  It was then that I realized that, all along, I could have just animated the scaling by hand, and baked the animation.  The scaling is not mathematically accurate for squash and stretch, but it does the job.

After that, I worked on triggering the animations in Unity.  Eventually I was successful using the "legacy" rig type.  I posted an explanation of the process to Unity Answers here.  However, when I first finished the animation didn't work.  It wasn't until I realized I needed to assign my script, that was calling the animations, to the object that owned the animations that it finally worked.

I live streamed some of this process on twitch.  I made a highlight video of the moment I figured it out.  The epiphany happens at 1:15.  I still had to fix a few bugs, but I got it all working.  The pig finally jumps at 4:19.

I would like to create new animations involving bipeds, but I haven't found or created a biped that I want to use.  I'm working on that.

Bonus picture:  I imported the maya piggly rig into 3dsMax, and it looks funny.
Dat Chin Tho

Friday, March 7, 2014

Habit Desktop Pre Alpha 001

This is the initial release of the Desktop version of Habit Media Engine, a HabitRPG client.

Habit Media Engine is created using the Unity game engine.  By using Unity, Habit Media Engine  can be built for OSX, Windows, Linux, Android, IOS, Windows Phone, Blackberry and Web with only very minor modifications in the code base.  Mobile and web clients be released at a later date.


PreAlpha 001 Linux Download(Broken)

PreAlpha 001 OSX Download(Broken)

PreAlpha 001 Windows Download(Broken)

What Does and Does Not Work

Habit Media Engine is currently missing a lot of functionality.  I have very little formal training in computer programming and none in C#.  

What does work:

UID and Username login.
Health and XP display.
Adding tasks
Checking and "plussing"/"minusing" tasks
Custom Rewards

What doesn't work:

Data entry when "enter" is pressed.  The button will have to be clicked.
Scrolling only works with the mouse wheel, and the scroll bar texture doesn't look the way it's supposed to.
Lots of functionality still needs to be added.  See roadmap below.

Bug Reporting

You can report bugs at the github here:


Disclaimer:  There is no timeline for these features.

Short term

Input on Enter key
Proper looking and functioning scroll bar
Properly functioning task colors
Task Reorder
Offline functionality
HabitRPG sprites
Gear and potion buying

Medium Term

A fully functional HabitRPG client for all desktop and mobile target platforms.

Long Term

A modular system for new 3d, 2d, text, and video content to be created and added by content developers.

Third Party Software

Why I'm Creating This

All of my life, I have had goals and ambitions that I could never find the motivation or discipline to accomplish, and I know I'm not the only one.  I believe that HabitRPG has great potential as a tool for behavior modification, to help people like me accomplish their ambitions, and I am creating this client as an improvement to that system.

I believe that the meaning of human life is to contribute to the longevity of mankind, with the ultimate goal being the eternal physical existence of our descendants.  If that seems strange, consider this:  Any good parent can tell you that their goal is a better life for their children.  Multiply that by an untold generations of parents and untold generations of children.  Choices made today can affect lives that will come many generations from now.  Let's call it "Human Continuity".

What does Habit Media Engine have to do with Human Continuity?  Eternal Human Continuity is the ultimate goal, and Habit Media Engine(and HabitRPG) is a tool to help accomplish goals.

Who I am

My name is Stewart J. Martin, and I am the sole creator of Habit Media Engine(I did receive some help from my brother, Nathan Martin).  I created my first video game in Qbasic at the age of 16 or 17, a very easy, very basic maze game.  I then took a visual basic class for an electronic technology course.  After that I quit electronic technology and programming and started doing CADD and 3d Modeling and Animation.  I recently graduated from UAFS with a Bachelor's Degree in Animation Technology.  I'm currently looking for work.  Send serious inquiries to stewartjmartin (at) gmail (dot) com.  You can see a youtube playlist of some of my earlier work here.

Edits to this post:
3/13/2014.  Added Third party info.
9/23/2014   These binaries won't work anymore. I'll post some new ones soon.