Category Archives: Game Development

How to install a previous version of a package with Homebrew

homebrew-256x256

Homebrew is an awesome package manager.  For their home page see https://brew.sh/.  However they did some refactoring in April 2017, and a lot of the information online on how to go back to a previous version of a package no longer works.

In my particular case I needed emscripten 1.36.5, and brew was giving me 1.37.10.  Replace emscripten in the Terminal commands below with your particular package.

  • brew tap homebrew/core –full
  • cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
  • brew log –oneline emscripten

You will see git hash on the left column, and the bunch of versions on the right column. example below.  Take note of the git hash that corresponds to the package version you want. In my case I want 1.36.5, so I choose d876a63 .

555a07d emscripten: update 1.37.10 bottle.
b590498 emscripten 1.37.10
53f53f6 emscripten: update 1.37.1 bottle.
bbd3cc2 emscripten 1.37.1
d2b06b4 emscripten: fix caveats
53507df emscripten: update 1.37.0 bottle.
8a660ec emscripten 1.37.0
d905802 emscripten: update 1.36.14 bottle.
e73e793 emscripten 1.36.14
0ea5a49 emscripten: fix HEAD build (#6475)
5229d2d emscripten: update 1.36.13 bottle.
5dee768 emscripten 1.36.13
7a4dabf Use hash rockets again. (#5177)
3036601 Use Ruby 1.9+ symbol hash keys in all formulae. (#4942)
d876a63 emscripten: update 1.36.5 bottle.
1bea73c emscripten: update 1.36.5 bottle.
dc4a4ce emscripten 1.36.5
72a78d4 emscripten: update 1.36.4 bottle.
a94599d emscripten 1.36.4
3194b7f emscripten: update 1.36.3 bottle.

  • git checkout d876a63
  • export HOMEBREW_NO_AUTO_UPDATE=1
  • brew install emscripten

You should check the terminal output that the old version that you want is now being installed

  • unset HOMEBREW_NO_AUTO_UPDATE
  • brew pin emscripten
  • git checkout master

At this point emscripten is now pinned to 1.36.5 and won’t get upgraded accidentally.

2017-04-18_0919

This book unity game optimization book is currently being offered for free for 6 hours.  While pieces of it can be found online,  it brings all that information together in a cohesive whole.  It covers not just code optimization, but art, audio and physics optimization too.  Get it while it’s free!

Genies & Gems Released!

Screen Shot 2016-01-22 at 9.48.50 AM

The newest game we’ve been working on has been released!  We’ve gotten Google Play and Apple App store featuring too.  It’s been great working with such an amazing SGN team!  It’s free, so please check it out and let me know what you think.

Google Play: https://play.google.com/store/apps/details?id=com.sgn.geniesandgems.gp&hl=en

Apple App Store: https://appsto.re/us/nADI9.i

Facebook: https://apps.facebook.com/geniesandgems/?fb_source=search

Book of Life Sugar Smash Released!

The latest game I’ve been working on has been released for iOS.  Get it for FREE at https://itunes.apple.com/us/app/book-of-life-sugar-smash/id916281743?mt=8.   Please rate it and leave a review too.   I’m pretty proud of the quality of the game given the short amount of time we had to make it.   The android version is coming soon.

Auto Installing Git Hooks

Git hooks are fantastic! With a pre-commit git hook, you can run unit tests, check coding standard compliance, or anything else you want BEFORE the code is committed into the repository. The problem is that the hook needs to be manually installed on each user’s local machine. Fortunately for Unity projects, we have access to an event that lets us install it automatically. The code below does the trick.

Unity Tab To Space

Yes, I realize you can easily do this on the terminal to change all the tabs in a file to spaces. But sometimes you just don’t want to leave the Unity window.   To use this just select one or more files in the Project window, then click on the menu,  Assets->TabToSpace.

Git repo at https://github.com/redmondurbino/TabToSpace.

 

Inherited Static Members

For my first blog post, lets start with a programming tidbit.  For folks who know C# / C++, what do you think will be the output when the Start() method is called?

Get the answer