Let’s have a merge party – Safe Git Merging

As an indie developer I spend a lot of my time working on my own, however as a contract developer I work in teams of many other developers. Most of the time when I’m contracted I am brought into project in a frantic state of playing the little dutch boy. As a result merges go haywire and sometimes we don’t pay enough attention and undo a fix due to a git conflict.

Here’s the workflow I use, and I try to encourage others as well, it keeps things safe.

First if you’re doing a quick fix, generally the remote branch you started from hasn’t changed. But if it’s a several day fix, you may find that your remote branch you started on has had updates. You want those, and if you’re really paying attention would have merged those as you went along.

My workflow on a team are these processes.
1) Create a version branch that you’re working on.
2) Everyone branch off that version when applying fixes / features to the next version
*3) When a fix is done, do a pull request (code review, if not using Bitbucket / gitHub)
4) When approved, merge back into the develop version, and delete the fix branch.
5) other developers should then update their working branches to make sure they pull in the changes made, as their commits will happen on later.

Here’s a crude example:

Here we are with our 3 branches
Screen Shot 2014-08-22 at 10.59.15 am

In this case you can see that everyone started from develop/1.0.0.
We then created 3 branches off that. Branch 1 bugfix_ticket_355 was committed first as it’s a step ahead. Let’s say 355 was then merged to develop

Screen Shot 2014-08-22 at 11.01.36 am

Now you can see develop is a step ahead of our other tickets. Well since those haven’t committed yet we may have some conflicts. We never want to push conflicts, so here is where my workflow kicks in.

2 Scenarios: Developer A has the feature 353 ticket. Developer B has the 345 bugfix
Developer A, knowing he just had a remote merge as he did the pull request, then updates his local branch with the changes.
DA -> Git fetch
DA -> git merge origin/develop/1.0.0

Developer B does not update, as he was in the toilet.

Now look at the repo:
Screen Shot 2014-08-22 at 11.05.08 am

Developer A is up to date, Developer B is not.

Seasons change, time passes. Developer B is ready to push.

So before pushing to the remote this is what Dev B should do:

— Safe Merge —
>git fetch origin
>git checkout -b remote_merge //branch off the bugfix working branch, in case something goes wrong your original branch is intact
>git merge origin/develop/1.0.0
>!–conflicts–! – Grab another dev to review with
>resolve conflicts >git mergetool< >git commit -m “resolved conflicts with remote”
>git checkout bugfix… branch //return to the actual working branch
>git merge remote_merge
//Safely merges as you already resolved all conflicts, now safe to push up
>git branch -D remote_merge //delete the local merge branch as it’s not needed anymore
>git push origin
–Code review, rinse repeat

This becomes second nature after a while, but I just thought I’d document it here. It may sound like gobbly goo, or too much work for something ‘simple’, but just wait till a bad merge comments out a feature that takes your app down for a couple weeks of investigations just to find out you did a bad merge.

Rules to live by:
When working on team, all conflicts resolved in tandem.
Pull requests work, do them.
Never push up a branch without testing the merge locally. Leave your remotes clean.

Books, Tutorials, etc

We’ve been approached by a couple publishers lately, looking for authors of game programming books. I was very interested at first, but after talking with the publishers it did become a bit daunting, it’s a bit of a black box. You don’t know what you’ll get paid, the contracts are restrictive, the deadlines are tight, and you have no idea if / how they’ll promote the book. I asked all these questions, and when they stated they couldn’t answer them directly (especially when I asked how much a similar book they published last year fared); I couldn’t commit at that time.

The book I was looking at doing would have been 450-500 pages long, for a first time author, that’s massive! The schedule was 9 months of work, with nothing up front (the amount of an ‘advance’ was laughable); so assume nothing up front. And I couldn’t get any type of sales figures as to what comparable books did, which tells me they didn’t do great. I took it one step further and talked to other authors, from that publisher and others. I heard contrasting stories, but all stated that the numbers were no where I needed them to be for 9 months of dedicated work.

At the end of it, I was really excited about writing the book, it’s something i’ve wanted to do for a while. I told the publishers that for the moment I can’t justify it, however I looked into alternatives. I think what I may propose doing, is breaking the book into small bite sized chunks and write one at a time; then release those digitally. That way I can see how the first volume is received and then use that to make decisions for future volumes.

So watch this space… I’ll have more soon-(isn).

Year In Review 2013

Sorry this is a bit belated, just been catching up on some things. So wow what a big year 2013 was. Across the board busy and crazy, some good some bad, some ugly.

First of all I shipped more apps on more platforms than ever last year, let’s recap.

Apps this year
[table]
Date,Title,Client,Description,Platforms
Feb, Big Shot Basketball, Carnival Labs (Coke/NCAA/Buffalo Wild Wings), Augmented reality game developed in Unity3D using Vuforia. Was for an in store promotion during March Madness college football, iOS|Android|Web (Flash)
Mar, Mojo Solitaire Collection, In House, A collection of solitaire games, with a play and reward coin based system to unlock new features and games. Developed using Cocos2d., iOS|OSX
Mar, Emirates Team NZ America’s Cup, Animation Research (America’s Cup), Customized version of the Emmy nominated America’s Cup app for iOS and Android for Emirates Team NZ, iOS|Android
Apr, Beat Block, In House, A rhythm based timing game, you memorize the beat and play it back as close as you can to the tempo. Insanely hard later on, super fun to make. It was made in 1 week, and is probably the least downloaded of our games. I hope to make a level generator later for it. Built with Cocos2d, iOS
Jun, Mojo Video Poker 3D, A port of Mojo Video Poker to Unity3D to reach more platforms. This was our first (and maybe last) entry into windows markets., Android|Windows 8|Windows 8 Phone
Jul, Big Kick Football, Carnival Labs (Coke/ESPN/Home Depot/Buffalo Wild Wings/etc), Augmented reality game follow up to Big Kick. This game was developed almost exclusively by me in under 3 months with some support in the last two weeks to get it across the board. Three platforms and lots of social media integration., iOS|Android|Web (Unity Player)
Sep, Mojo Mahjong 3D, In House, A 3D based version of Mahjong Solitaire. Featured different tile sets and a set of special day event puzzles (holidays). A pretty popular game, iOS|Android|OSX
Various, All Apps, In House, Tons and tons of updates for all our apps., All
[/table]

So as you can see a very busy year! I worked on some great projects, released some cool new things for us, and made some great new friends through some talks I gave. I also left out a couple other contract jobs and apps I worked on as they were more hired gun things I did, versus apps I owned.

We had some trials and tribulations, from shipping apps and then clients refusing to pay in full. (They did in the end). Delayed payments, project pressures from too many chiefs and one worker bee (me the worker bee). But all in all good stuff.

Carnival Labs went on to secure a couple million dollars in funding, and in the press release I see that they mentioned on the front page the apps I had worked on (Big Shot, and a Dreamworks app I worked on in 2012). So that was satisfying to see my work help project another company.

Animation Research went on to be nominated for a sports emmy, (will update this post if they win!). Amazing to have worked with them, great people super proud of them and the work I did with them.

Our apps, was some of the most productive I’ve done. I actually have another app that is 95% done, that was ready in December, but I have it on the back burner, while I take care of some full time jobs and other things. But hope to release that soon, a new word puzzle collection style game.

This also includes the 60 new prototypes that were made and are sitting in my code base, I hope to get to!

2014 brings Hardware, lasers, and other crazy things.

The gamer a console generation left behind

Today is my birthday, so I’m a little bit reflective. I usually get myself a new toy, which is something game related, this year I passed and am taking my boy out for a donut and a hair cut instead. Mainly because I’m in fear that I just don’t fit into the modern gaming area anymore, not because of my age, but because of my gaming habits / style. I feel like I’m the gamer this generation has left behind, it’s unfortunate too, because I’m a good audience, disposable income, family so I’ll buy a variety of games, and I don’t have a set genre, so I buy just about anything that looks good (aside from war fps games, those are unbearable).

In 1987 after endless pleading and begging for my 10th birthday I got a NES (Nintendo Entertainment System), this was one of the crowning moments in my childhood. Prior to that I had my Apple II which had some basic games, we even had a book that taught me to do some basic programming to make my own games, mind you I was 10 at the time. I had a lot of fun with that, but seeing Mario for the first time, and controlled by a little square pad was amazing. It beat pong, it beat my atari 2600, anything I’ve ever seen. The graphics and animation were so fluid, I was simply mesmerized. There was one problem however; I was a terrible student. So getting rewards was a bit hard. But I remembered I tried and tried to do well just so I could get my hands on it, and even though my grades were still ‘marginal’, my dad I think caved in because he too liked the technology. So I got it, I don’t think I opened anything else, I just took it down stairs with my dad and we plugged it in. And the 8 bit graphics filled my eyes with wonder.

Mario is a game where you go from left to right and jump. I think pros can beat the game in under 30 minutes, but for me I remember endless hours sitting up at night playing mario, going left to right jumping over things. It wasn’t complicated, and I know for sure no game would hold my attention like that ever again, but it was amazing. And that was me, the gamer defined. I liked to come home, before everyone else, turn on mario and play until someone else entered the house. Then I turned it off, and did what else I had to do. NES was my little escape, my time away from everyone else.

Even growing up I didn’t care much for playing with friends over, I wanted to play outside with others. If we played together it had to be a 2 player co-op game, nothing bored me more than watching others play a single player game, literally nothing is more boring. If you like to read books, would you want to sit and watch someone read a book? Looking at this insane phenomenon of people watching gameplay videos, then the answer may be yes.

I few years later the SNES came out, but I would not get it. In fact the NES was the only console I would ever receive from my parents; rightfully so, my grades never improved. My friend got his hands on a SNES and I would go over and play that for hours with him, as that was driven towards multiplayer games. We had Street Fighter, which we spent endless quarters in the arcades, now saving our money to bash each other trying to improve our game. This was the core of multiplayer for me, sitting with a friend on the couch playing a game together. And when we got bored, it was easy to just say ‘ok something else’, and we’d go outside and do what not. Even as much as I loved video games, I hated playing them around people who don’t play them. So if parents were in the house, or guests were over, I wouldn’t turn it on. I don’t like being spectated while in my ‘zone’, gaming is / has been a personal thing for me. It’s an escape from other business in our world, not something I do to bring me together more (unless I’m playing street fighter with a friend).

The years passed and I wouldn’t see another console in my hands until 1996, when I started to make some decent money during highschool and got my hands on a Nintendo 64. Mario 64, blew me and the rest of the world away, what an amazing game. The 3D graphics and seamless motion was epic. My game libraries have always been small, I think I owned less than 10 NES games over the 8 years I had that console. N64 I had a handful as well, but some great ones, including Turok, and Golden Eye – (the defacto 4 player in a room game). Golden Eye was the first time me and multiple friends would get in a room and play a game together, we were playing against each other simultaneously, it was gaming generation defining.

As I got into College and had more disposable income, I started my game collection, I grabbed every major console I could get a hold of, at the end of the day my library consists of (to date):
Atari 2600, Atari 7800, NES, N64, Nintendo Gameboy Color, Sega Genesis (Standard, Nomad, 32x), Nintendo Gameboy Advance (Standard, SP, micro), Sega Saturn, Sony Playstation, Sega Dreamcast, Sony PS2, Nintendo Wii, XBox, Xbox 360, Nintendo DS, Nintendo 3DS (XL), 10 iOS devices, 3 Android devices, 1 windows phone device, 5 computers, countless emulators.

All in all my purchased game library consists of over 200 350 games across all those platforms. Mind you I don’t really play that much, it’s just more of a collection thing these days. I spend my time making games, not playing them anymore. But when something great comes out I’ll play it through, then it goes in the case and sits.

I’ll jump forward a bit, to my point, why do I feel left out? Well I’m not a fan of watching people play as I said above, gaming is a personal thing that I only share with my close friends. It’s not something I’ll do with an acquaintance or stranger, there’s no connection there. I’d rather game by myself versus with someone I don’t have a connection with. So this XBox Live etc, stuff was fine for me to get my games, but now It’s only on there because I forget to cancel it every year. I intentionally avoid online / multiplayer games as I don’t ever want to wear a headset and look like a douche when people are over at my house. I think we’ve all been there, walked to a friends house to see a roommate, partner, friend, etc just sitting on the couch with a headset oblivious to the world around them. It’s obnoxious, and they look like a fool.

So this new generation of console gaming (focussing on PS4 / Xbone) really don’t excite me. They are focusing on social media more than gaming, all they did was pump up the graphics, with no new interactions. Look what the wii did, that was amazing, we all thought motion control would take over, and it would have if anyone dared to innovate with it, but no one did. And I know it’s been said to death, but the lack of backwards compatibility is a real kick in the balls, as all the new games are cross platform anyway, so you just get better graphics, so why not play our existing games? Had they done that I would have picked up a new console as my 4th Xbox 360 is on it’s dying breath, and I’d like to play my 100+ games if I want to. — Now I understand the technical issues, I’m a developer, I know it’s ‘hard to do’, but it’s not impossible, it’s a decision they made to not do it. Nothing is impossible, just hard, MS and Sony went the ‘easy’ way and cut it off. Also the step from Xbox -> 360 was huge, HD graphics, Surround Sound, Media / DVD, Streaming Video, Music, Online Store, Web, wow. The XBone has… well all those same features. So what really is different? ‘It’s just a bit bigger and better, but totally incompatible with your 8 year old catalog’. If it (or Ps4) genuinely did something new then it’d be worth it, but it’s like buying a newer model car in which everything is incompatible with your previous car fittings, (seat covers, wheels, lights, etc), but only boasts a bit more power and it’s prettier, but they’re both big and pretty, just this is ‘newer’. I drive a car made in 1990, my first car was made in 1968, so ‘newer’ isn’t really my thing as a reason to buy something.

So with the shift from gaming to being a personal experience, to being something we are meant to video share, twext, social share, voice chat, online group gang meetups, etc, all I can say is ‘meh, no thanks, it’s not for me.’.

So where does this leave me? I think the Wii U is the only fit for me for a console, until Apple finds a way to get gaming into our living rooms (AppleTV I’m looking at you), I’ll hold off a bit as I have some games to finish programming first. But Wii U can play my Wii games, has some amazing single player games, (Mario, Bayonetta 2, pikmin) and some great multiplayer experiences, which is proper multiplayer, where me and a friend sit on the couch and play together.

Sony, Microsoft it’s a shame you dismiss me as a gamer. I have grown up with games, have a nice spending power, and like to collect things. But you haven’t given me any interest in your consoles. The strange online requirements, the in your face advertising, micro transactions, social media, not for me. Just for your sake I hope the economy picks up and the 13-18 year olds you do target can get jobs to buy your equipment. Because as a parent I’m distancing my children from your products, as they are less and less family friendly. Nintendo is still the safe bet, and in hindsight my best memories gaming are with them, (and sega) I really wonder why I left them for so long… I think it was the splash graphics and explosions, which I’m all too tired of, I just want something fun.

This post is probably way all over the place, and not a great read, but it’s here for my own record. As always comments are off, as I get 1 valid comment for every 800 spams, and I don’t want to filter through that many ads. If you really want to reach out ping me on twitter, (the only social media I can tolerate currently).

Nintendo carved the path for every innovation in video game history, people tend to forget that, because they don’t go over powered, and try to keep it simple, which in the end is what I want.

T

Mojo Video Poker is now on Windows 8 platforms

Mojo Video Poker, our top rated iOS / Mac app is now available on more platforms. We recently released it on android, and today we released it for Windows 8 and Windows 8 phone. Mojo Video Poker for Windows brings the core gameplay from the original game with some graphical enhancements. We are planning on growing the new release on all platforms.

Mojo Video Poker for Windows Platforms, features classic vegas style 5 card draw video poker. You are dealt 5 cards from a deck, you select the best ones (or none) to make a winning hand then draw between 0-5 cards (depending on what you held), to win. Like all versions of Mojo Video Poker, the poker is free, the credits are there for scoring, and if you run out you’ll be allotted more. There are no in-app purchases for credits. The basic game is free, (*Ad supported where available). We will introduce more features and games as the game grows. If the game proves to be as popular on other platforms as it is on iOS/MAC we will be excited to do some new features and games in the very near future!

Download for your platform here:

Windows:

windows_phone

Android:

button-get-it-on-google-play

amazon_icon

Mahjong 3D and Mojo Video Poker for Android

We finally gave some love to Android over the last two weeks. We published our new Mahjong 3D game on the Android market last week, and today released our first version of Mojo Video Poker for Android. Mojo Video Poker was our first iOS app, and it’s our most successful Mac app, now Android users can play the game as well!

Mojo Mahjong 3D

  • Full 3D graphics
  • Move and Manipulate the board for a better view
  • Includes 5 unique layouts
  • Shuffle the dice, get hints, and clear the board to win
  • Two finger drag to move the board around
  • New layouts and designs coming soon!
  • Free


Get it on Google Play

amazon_icon

Mojo Video Poker

  • Completely redesigned and programmed form scratch
  • Same great gameplay as the original on iOS / Mac that made it the top rated video poker game
  • 5 Unique payouts
  • New game modes coming soon
  • Free


Get it on Google Play

Windows 8 developer program feedback from Microsoft, not much help…

Well I got a response from a person, but since it’s such a generic response it may just be a robot named Barry. But this is the response Microsoft sent from my previous email.

Here’s a link to the original article you can read the email I sent them.
Email to Microsoft about Windows 8 Development

Thank you for reaching out to us in regards to clarification involving a Windows store developer subscription. This link http://msdn.microsoft.com/en-US/windows/apps/br211386 details everything you need to get started and what we offer along with the subscription and what is free. Everything you need to be able to develop an app using our SDK is given to you including Visual Studio express. If there are other tools that we do not offer that you would like to use in the development of your app, you are required to purchase those. Please let me know if I can help you in any other way or provide any further information.

I commend them for insulting my intelligence and not reading my email, as I had been pretty thorough in my questions, which should have led them to understand I can find the microsoft.com web site, which is more or less that link he gave me. It actually isn’t a link to any usefull information, just the entry point to the developer site. #thanks Barry.

I followed up with a response, as that didn’t really answer my question, maybe being more clear will give me a better answer.

Hi Barry,

Can you please clarify that I can publish to the Windows 8 store with the express version of the software? I read that pro was required, and I don’t see any confirming information. I also presume that I still require a version of Windows 8 to develop for Windows 8? As in my existing windows version (not-8) wouldn’t suffice.

I’m just trying to see if the fees are Sub $100.00, Sub $1000.00, or more.

My current config is :
Windows XP VS-2010

My hardware is all Apple machines. So from your expertise what would I need to begin developing for Windows 8 Mobile and desktop, and what would the full cost of that be. Assuming I am to publish on both stores.

So here’s hoping that they’ll actually address this, as once again as a developer I’m not terribly impressed. To be honest I’ve given up on them already, but for the sake of trying to get some information for future developers I’ll keep asking the questions as long as they answer them.

Augmented Reality, Video Poker, Dinosaurs, and Word Puzzles

It’s been ages since I’ve updated the blog. Mainly because we’ve been so busy! In the last few months we’ve picked up our first new member of the team in ages. He’s helping us with some client work right now, we’re doing a followup to an Augmented Reality game we did for a couple brands in the USA. This followup was launched due to the success of the first campaign, and thankfully we were asked to carry out the work again! Augmented reality is becoming a daily part of our business, we do it for clients, and also have some projects we’re working on internally for education using Augmented Reality. We are hoping that we can get some support from NZ government to help us carry out an edutainment product for children.

Mojo Video poker had an update in May, this released a whole new game ‘Chase the Multiplier’ which is the most addicting video poker game to date! It’s extremely fun, and we still don’t charge for coins so what you pay is what you get, if you run out the game simply gives you more without additional purchases. Please check out Mojo Video Poker for your platform and let us know what you think!

Retro Art Studio has been doing great and we have a HUGE new version coming out, but it’s so big it’ll take some time for us to finish it. The key thing is some new ‘advanced’ drawing tools people have asked for, as well as the most often requested feature, a gallery. But this is a lot of work so please be patient!

In the pipe we have a set of word puzzle games coming soon, tentatively called Mojo Word Puzzle Games, we love word games and this is a collection of our favorites from the Sunday newspaper. Included is Word Search, Anagrams, and Word Jumble. There will be some fun twists and challenges as well, we hope to have this finalized through testing early August.

The biggest project we have coming up is a 13 year old one that I’ve had with me for a while. It was to be my 2nd game, and it never came to fruition. I spoke at a game conference in Auckland, NZ last month and feeding off the energy I spoke about the idea and had enough enthusiasm from people to pursue it. We’ve teamed up with an amazing artist who is breathing amazing life into the project, and it involved dinosaurs. We will be making a huge announcement on this project soon.

Lastly I’m tutoring a student from Auckland to make her first mobile video game. So far it’s coming along great, and as it comes playable I’ll have her share some info about it on this site to show everyone what New Zealand students are making these days.

Mojo Solitaire Collection for iOS / OSX Released

Our first release of our new Solitaire collection is now live in the App Store for OSX and iOS. This is a set of games that I had a lot of fun making. I love card games, it’s probably the best way to pass time in short and long sessions. Mojo Solitaire Collections aims to be a complete collection of different solitaire games all within a single app.

The initial release includes:

  • Klondike Solitaire
  • Spider Solitaire
  • Mahjong Solitaire

Each game has it’s own set of unique rules and game play. Mahjong is a tile based game where you match the like pairs to clear the table.

Mojo Coins
Mojo Coins are introduced in this game, they are our own virtual currency. While playing the games you’ll unlock the mojo coins, each coin gets added to your total. These coins can later be used to unlock new features in the game, (New Backgrounds, new games, themes, etc).

If you love solitaire checkout the game and give it a try. If you have any feedback or ideas for new games feel free to send us a support request!

Download for free on iOS:
Mojo Solitaire Collection - Six Foot Three Foot

Purchase for OSX:
Mojo Solitaire Collection - Six Foot Three Foot

Happy Belated 2013

I am taking a short breather to give an update of what’s been going on and what I’m working on.

Since August 2012 I have been juggling contracts for other companies, so most of the Six Foot Three Foot games have been put on hold. March 10th I finished, and have been working full speed on all the Six Foot Three Foot work. I have shipped off a new game for OSX to Apple, pending review. It’s called ‘Mojo Solitaire Collection’ it’s a collection of, you guessed it, solitaire games. It currently features Klondike, Spider, and Mahjong (tile game). There’s a fun feature in there where you can earn coins by winning games, and use those to unlock new features, such as backgrounds, etc. New games will be rolled out as I plan to grow the title quite a bit in the coming months.

Also a new update for Mojo Video Poker for Mac is out, which adds 25% more poker! A whole new game is added, and several fixes. The new game is the most addictively fun video poker game I’ve had the pleasure to program. I hope everyone loves the update as well.

Retro Art Studio got a big bug fix release out for iOS as well as a separate release for Android. I have a new art program going into the paid iOS version shortly, which help you relive even more childhood art projects! More on that coming soon…

The biggest project I’m working on at the moment is a Multiplayer mode for Word Jumblerama Blitz for iOS. This is a big task, and it’s coming along well. I really hope to finish the new interface (the multiplayer is done), and get the release out to Apple this week, before Easter break.

Mojo Solitaire will be ported to iOS shortly, as well as the Mojo Video Poker update will be included in Mojo Video Poker HD shortly as well. On top of that, I have 5 other games in progress. Some may bundle together, but one of them is a labor of love (it was my very first mobile game in 2003, that I’m bringing back to iOS for the first time), so a very busy time! But I’m always open / ready for more work, if you have an idea and are looking for someone to help out, feel free to contact me.

You can also take a look at the apps I developed for clients over the last several months, and you’ll understand why I didn’t have much time to do my own games for a while! (One app was for 3 platforms in 6 weeks, using augmented reality). You can read about them here on the ‘Our work’ page.

If you play my games and enjoy them, please take a moment to rate them, it helps me a lot.