Show Notes
02:47 - Martin Grider Introduction
09:29 - Interaction Design and Mechanics
- Make it Playable, Then Add “Juice”
12:25 - Designing for Mobile vs Board Games
- Touch Interaction
14:30 - Converting Board Games to Mobile
- Getting the Company on Board
- Michael Mindes
- For The Win Kickstarter
- Carcassonne
- Ascension
17:09 - Copyright Infringement (Cloning)
20:54 - Protecting Your Ideas and Partnering with Publishers
23:19 - Getting Help as an Indie Game Dev
- Marketers, App Store SEOs, etc.
27:02 - App Shopper
28:24 - Technical Aspects of Game Development
34:31 - Physics
36:12 - The International Game Developer's Association (IGDA)
39:47 - Catchup
Picks
Hunter Loftis: We Will All Be Game Programmers (Pete)
Indie Game: The Movie (Pete)
Eurogames (Pete)
The Changelog #151: Rust with Steve Klabnik and Yehuda Katz (Pete)
A Swift Guide to Rust (Andrew)
Arduino Esplora (Andrew)
Analogue Nt (Andrew)
L3D (Martin)
Game Developers Conference (Martin)
GameLoading (Martin)
Top Hat (Martin)
CumulusPRO Commercial Grade Anti-Fatigue Comfort Mat Area Mat (Jaim)
Indie Game: The Movie (Pete)
Eurogames (Pete)
The Changelog #151: Rust with Steve Klabnik and Yehuda Katz (Pete)
A Swift Guide to Rust (Andrew)
Arduino Esplora (Andrew)
Analogue Nt (Andrew)
L3D (Martin)
Game Developers Conference (Martin)
GameLoading (Martin)
Top Hat (Martin)
CumulusPRO Commercial Grade Anti-Fatigue Comfort Mat Area Mat (Jaim)
iPhreaks T-Shirts are available via Teespring! Visit teespring.com/iphreaks to reserve yours by Wednesday, May 6th!
T-shirt styles include: unisex up to 3x, ladies', hoodies, and long sleeve tees. Teespring also offers international shipping so that all of our listeners have a chance to buy!
Transcript
PETE:
Is there any odds on what the new name would be?
ANDREW:
I don’t think I’ve heard anyone speculate.
PETE:
There isn’t like leaks in the level?
ANDREW:
[Chuckles] I mean it’s pretty easy to think of California place names.
PETE:
I’m going for Carmel.
ANDREW:
I’m going for Big Sur.
PETE:
Ooh ooh! Big Sur is a good one. [Chuckles] Mammoth?
ANDREW:
Mammoth would be really good. Yeah.
MARTIN:
I think they’re going to change the scheme again. It’ll be dog names now. [Chuckles] Fido. [Chuckles]
PETE:
Rover?
JAIM:
Poodle. [Chuckles]
ANDREW:
Doberman.
[This episode is sponsored by Hired.com. Every week on Hired, they run an auction where over a thousand tech companies in San Francisco, New York, and L.A. bid on iOS developers, providing them with salary and equity upfront. The average iOS developer gets an average of 5-15 introductory offers and an average salary offer of $130,000/year. Users can either accept an offer and go right into interviewing with a company or deny them without any continuing obligations. It’s totally free for users, and when you're hired they also give you a $2,000 signing bonus as a thank you for using them. But if you use the iPhreaks link, you’ll get a $4,000 bonus instead. Finally, if you're not looking for a job but know someone who is, you can refer them on Hired and get a $1,337 bonus as thanks after the job. Go sign up at Hired.com/iphreaks]
[This episode is sponsored by DevMountain. DevMountain is a coding school with the best, world-class learning experience you can find. DevMountain is a 12-week full-time development course. With only 25 spots available, each cohort fills quickly. As a student, you’ll be assigned an individual mentor to help answer questions when you get stuck and make sure you are getting most out of the class. Tuition includes 24-hour access to campus and free housing for our out-of-state applicants. In only 12 weeks, you’ll have your own app in the App store. Learn to code, it’s time! Go to devmountain.com/iphreaks. Listeners to the Freelancers Show will get a special $250 off when they use the coupon code IPHREAKS at checkout.]
JAIM:
Hey everybody. Welcome to episode 103 of the iPhreaks Show. Today on our panel we have Pete Hodgson.
PETE:
Hello from Hollywood.
JAIM:
Andrew Madsen
ANDREW:
Hello from Salt Lake City.
JAIM:
And our guest today is another Minneapolis resident Martin Grider.
MARTIN:
Oh now, where do I say hello from? [Chuckles]
ANDREW:
Hello from Minneapolis.
JAIM:
Hello from Minneapolis or wherever. I just usually say something inane [chuckles] but we
[crosstalk].
MARTIN:
I'm actually in the University of Minnesota campus right now.
PETE:
Go University of Minnesota sports ball team!
JAIM:
Sports balls [chuckles]. I hate baseball at this point of the year.
PETE:
Go lately affiliated sports team!
MARTIN:
Go for hockey’s done. Everyone leaves. That's how it goes.
JAIM:
Martin, we brought you on the show to talk about game development.
MARTIN:
Excellent, a subject near and dear to my heart.
JAIM:
There you go. Can you tell us a little bit about yourself – what you've been doing?
MARTIN:
Yeah. I'm a freelance iOS developer. I've been on iOS native developer for about 6 years now. My first app was a game. I just developed it in my spare time. I had a game idea that I had on the back burner for a long time. And I thought, “It will really be a good fit for this iPhone thing that I've been playing with for a year and love.”
The SDK was announced and stuff. I started downloading tools and playing around with them. I think it was about three months from start to having something in a store. I think it came out in February 2010 if I remember right. That was called ActionChess. It's like a pretty simple puzzle game with chess pieces that move like chess pieces and come up the board like Tetris. So it's a cross between chess and Tetris. [Chuckles]
Anyway, then I've been doing freelance development for about two and a half years just for different clients. I worked for a company called Recursive Awesome locally at Twin Cities and got to do a bunch of different apps for Best Buy. I worked on the BuzzFeed app for a little bit – a bunch of bigger – there’s Anderson construction. No, it's Anderson something. Oh, shoot. I can't remember but a bunch of different clients.
JAIM:
Windows? [Chuckles] Anderson Windows?
MARTIN:
I think its Anderson Peterson or something like that?
JAIM:
Ok, that’s something else.
MARTIN:
Yeah. It's totally different. [Chuckles]
Anyway, but I've always been interested in game development. I had been going to our local chapter of the IGDA even before I started doing iPhone stuff - just hobnobbing there. I had one game that I built before I got into iPhones stuff - in Flash. It was the one and only project that I ever did in flash. [Chuckles] You can still play it online at go-tetris.com. It's another board game hybrid with puzzle game.
If you look at all the games I've done, you'll sense the theme. I'm really into board games especially abstract strategy games and puzzle games like Tetris. I tend to have a lot of ideas that combine one or more of those. I try and balance my time now between producing my own games and building client projects that pay the bills. [Chuckles]
ANDREW:
I'm looking at one of your games called For the Win and [crosstalk] looks like this is also available as a physical game?
MARTIN:
Yup. That was actually done for a publisher. The client was Tasty Minstrel Games. They have a bunch of games like physical games that they've made. They wanted to tip their toes in the water and do a small game for iOS. It ended up being a bare project and I think anybody thought it was going to be – just because a game is small physically, [chuckles] does not mean it's an easy one to convert or to produce. That was a big challenge on that project but then it came up. That was my first freelance project. I had lined that up, and I said “Ok. I'm going to quit my day job, and hopefully I can make it work from here.”
PETE:
When you say physical game, do you mean a board game or do you mean run-around-in-the world type of physical game?
MARTIN:
No, it's a board game.
PETE:
Okay.
MARTIN:
That one in particular is a tiling game that would – the box is very small because it just contains these little ceramic tiles and there's not that many of them. I think every player has 8 or 10? I can't remember.
PETE:
You said something there around it being, “Just because it's a simple idea, it's not simple to build” or something like that - what was it that made it tricky to execute?
MARTIN:
Well, I think, partly, it was that I have never done them before so [chuckles] it's a complex application, right? There's a challenge too around AI so any board game [crosstalk] where you can play against the computer, you're going to have to write some AI for it. I was lucky to work with someone on that project so I didn't have to write the AI myself.
things:
You can place the tile but it can't be next to any of your tiles. You can move a tile just one square. You can flip the tile and perform its associated actions. Each of these five different types has a different associated action. All of those, of course, have to be programmed in and the AI has to choose between all of these myriad of possibilities. The problem phase is very large.
that:
This is a small game that fits on a table and it seems like “Oh, all you're doing is sliding these tiles around and maybe flipping them. The number of interactions is fairly small.” But actually, most board games, even fairly complex big box games that have a lot of different stuff going on, the interactions are still going to be pretty small. Ultimately, you are talking about the same gestures that most apps have to deal with – your drags, your taps- that kind of thing. I think my point was really meant to be that: “Just because a game is small doesn't mean its interactions are fewer than a game that is larger.” That makes sense?
PETE:
Yeah, yeah. That does make a lot of sense. It’s funny, I never really – It only just occurred to me and this is going to sound really stupid. It just occurred to me that building games, the interactions are just a lot rich. The logic might be super simple but the amount of polishing and the amount of interactions is probably – the bar is higher than if you are building a To Do app or building a line of business functional type app.
MARTIN:
I definitely think that's true. [Chuckles] It's definitely one of the bigger challenges of game development. I think we call it – there’s a term - “juiciness”. [Chuckles] Juiciness is the amount of gloss that you've added on top of whatever it is that makes it more fun to play, more fun to look at and more fun to interact with.
PETE:
This is a tangent to interaction design, I suppose, but do you tend to focus – when you're building up one of these games, would you tend to start off by laying out the mechanics of the game and get it to work but with zero juice and then polish and add juice top of that? Or do you tend to Which way do you slice that juice? You get one screen or one type of interaction super-polished before you finish off the game? Or do you focus on mechanics first? Do you have found anything on what's better or worse?
MARTIN:
The first thing is exactly what I tend to do. [Chuckles] I think that's part of being an Agile software developer. You want it to work first and then you're going to iterate and build different pieces on top it or add the “juice” as it were on top. I think that speaks to what I'm interested in about games as well because I'm not a designer - like a graphic designer. I'm very much a programmer.
The games that I'm interested in, I tend to be more interested in them for their game design, for their – the way they make me think in a different way as opposed to the way they're fun or they look or what they do that's different which a lot of designers actually do start from that point coming from a different perspective. For me, it's all about the game design -- the interestingness of the game itself. I want to make it playable right away. Then, I'll add the stuff on top of it that I think is necessary to sell a game which should not be underestimated. [Chuckles]
PETE:
I can imagine as well that the – depending on the type of game – but the game mechanics like the playability is also a something where you end up, just like with UI, you might iterate on that a bunch of times and post off in front of users and get their feedback. I can imagine the game like the mechanics of “What makes this game fun is something that you have to just experiment on people's brains and see what”.
MARTIN:
Absolutely! It's probably even more difficult I think than – I shouldn’t say that. I think it is just as difficult as good UI design. It's a very difficult problem - making a game fun. I was in a panel with a guy Chip Peterson - I was watching a panel by a guy named Chip Peterson who is 25 years in AAA game development experience. I think the panel was called “What's game development really like?” or something like that.
His first slide said “It's difficult to complete a game. It's even more difficult to complete a game that's fun and then it's even more difficult than that to make money off of a game that you made.” [Chuckles] Those are the hierarchy of how difficult things are. It starts off just trying to make a game. That's actually pretty hard.
ANDREW:
Martin, had you done any game development before iOS? I think he did mention Flash.
MARTIN:
I did mention one. Yes, the Flash game that I developed was the first game I've done. All my games have been very small in scale and with one or two exceptions solely developed by me. That's pretty typical, I think. Even indie games - I'm putting air quotes around that - are typically a smaller team rather than just an individual. I didn’t realize that like going into it [chuckles].
But I guess, For the Win, for example, there was a team. There was a graphic designer on that project. I said there was an AI developer. Even though I did all the iOS stuff, I can't take sole credit for that app. [Chuckles]
ANDREW:
The thing I was going to lead into and ask about is speaking about game design particularly - but also game mechanics design - but also some of the other stuff that you're just mentioning maybe more high level juiciness stuff. How does that maybe differ when you're designing a mobile game versus console video game - I think it's especially interesting because you've done this board game conversion? How do you maybe have to modify things to work on a phone versus a board game? I see those as very different experiences.
MARTIN:
Yeah, I agree. I actually did a whole talk on mobile board game conversion at the Big DM Developers Conference in San Francisco last year. I think, the take away is, if there was – well, I don't know if this is true- but one of the things that I talk about a lot is just how the experience of mobile is actually closer to the experience of a physical board game than most of the other digital gaming experiences found in a standard computer or on a console, for instance, where you got a controller. Just because in mobile you're interface is generally touching something or dragging something around. You're moving something in the screen. It's the touch interaction. It lends itself very well to mobile board game conversion, I think.
The other point I was going to make, that wasn’t in so much in response to you but it's just something else that have been said, is that game design that we’ve discussed being very difficult. The act of coming up with an interesting game or fun game, you can side-step that by taking an existing game like a physical board game and converting that. You sort of got – it’s going to be as fun, hopefully, as the other game already was. To somebody who has already done all that work of figuring out “Oh, what makes this game fun for you.” [Chuckles] It's just a nice way of just doing the easy part, which is the actual application, right?
ANDREW:
I like that idea. I'm curious to know how you ended up in a position to do – well For the Win in particular. How did you make the connection with the company that published a physical game and get this gig?
MARTIN:
Yeah.
ANDREW:
Did they come looking for you or was it a game you like or what?
MARTIN:
I had been bugging - there's a guy Michael who runs the company -Michael Minendes - and I had been bugging him about doing a conversion of a game that I really like that they've published- not that I didn’t like that game. That game hadn't been out yet so I actually worked on it before. It was released physically – It had been a Kickstarter that was successful.
They also have - they have another game in their catalogue that is one of a - once it sort of made them a name. And I'm really spacing the name [chuckles] of the game right now but it's a deckbuilding game. It has kind of a Sci-Fi theme. Anyway, I have been bugging Michael about working on that and try to port that. He knew about me and I think I even maybe pitched him just a license deal where I would - there's a bunch of different ways that these things get produced and one of them is just a video game company will come along and license the product. I think I pitched him that and he decided he wanted to do it in-house.
He put together a team - I still freelance but - he brought together the team. I can't remember if he put out a call for developers or if he just contacted me directly because I've already been talking to him. That's how it came about. For a long time, I was really wanting to do these conversions. I think the Carcassone app was the first one in the app store and there were a few more others that started trickling in. I think by the time that I was really wanting to do it Ascension was in there too which is another great fabulous conversion. That have been something that I really just wanted to do was work on these board game conversions. I've been talking to different publishers trying to get my foot in the door already.
PETE:
What happens if you cheat - or not cheat but I guess if someone says “I really like Settlers of Catan whatever, I'm just going to make a game and call it Settlers of Flatan” [chuckles]. What happens? Does Apple even - I'm guessing Apple doesn't go and check to see if you have copyright. But does someone actually get it yanked out of the store?
MARTIN:
The bigger companies like Mayfair on Settlers of Catan – they will definitely pull that down. There's the digital millennium copyright act or whatever. They can send the take down notice. I think they send it to Apple. They don't send it to the XYZ company. Mayfair is a very large company and they can afford to do that. They probably have some lawyers. Whereas, most board games are actually produced by smaller companies. Tasty Minstrel, for example, I’m sure does not have a lawyer on staff. They probably have somebody that they contact for counsel. It would be more expensive for them to go after a little somebody.
On the other hand, they probably don't have any – well, I shouldn't say that. It's unlikely that they have games that are as popular as Settlers of Catan, right? That somebody is going to write a clone. Cloning in general is a really big problem in game development, especially with simpler puzzle games that I'm a big fan of.
I don't know if you guys have already talked about Threes on the podcast but that was a big deal. The 2048 came out, I think it was within weeks – a week or two weeks after Threes was released. Somebody had built 2048 just in JavaScript. Then it was maybe another week before it was in the App Store.
ANDREW:
Yeah. It made me sad because I saw my brother playing 2048 and I've tried to tell him, “Oh well, you should try the original game.” He pretty much didn't even believe me that Threes was the real thing because 2048 was so popular with all his friends. He's in high school.
MARTIN:
Yeah.
ANDREW:
[chuckles] Anyway. It made me feel bad but I thought Threes was an excellent game.
MARTIN:
Yeah. I think most people who try Threes after 2048 agreed that it's a little bit more – there's something more to it. It's just more challenging. It's a better-designed game. It is a sad state of affairs where that thing can happen.
There was another really famous cloning issue with Triple Town. My understanding of the story – I might be slightly off here – a developer contracted with a publisher to build this game. I think the developer had come up with the game. I'm not 100% sure. They retained the rights even after the publisher cancelled the project. They were able to finish it off and published it. But within weeks of it being published in the App Store, the publisher have actually done another version of the same game and put it out there. I think it was called Yeti Town. It was not just [chuckles] the same name or the same game underneath but it stole a lot of the interaction and mechanics to name. That was a big deal for a while.
I remember reading somewhere that there's 500 games a day released in the App Store. That was the average last year. You go and you look through them. You can find feeds and look through all the games that have come out - the new games. The vast majority are games that haven't done – they're not doing anything new. A lot of them are slots games. A lot of them are card games and there are 50 versions of that same card game. It's definitely a problem I think in the App Store.
JAIM:
If you're a fledgling indie developer and you want to create partnerships with publishers, things like that and you've got ideas for games, how do you protect what ideas you have? What are people doing?
MARTIN:
That's a good question. I'm not sure if there is a definite tried and true way. [Chuckles] I think being first to market is a big deal so I wouldn't recommend if your game – especially if it’s a simple idea – I wouldn't recommend it you go telling everybody about it. I think you should make it and put it in the App Store and hope for the best.
It’s very difficult to partner with a publisher, especially in mobile. And there's arguably beneficial as well. In the early days, it’s hard to say – I just mean five years ago right? – There were more publishers that had more clear value. They provided clear value to the developers just in that days had already been hanging around often. Because in traditional game development and in console game development, that publisher motto was a standard for a very long time. It's actually only with the latest iterations of the consoles – like the latest generations of consoles – that developers can go directly to the console and get their games even on those systems. It used to be you had to have a publisher to even to talk to the console manufacturer.
I guess my point is that the publishers at that point had an established base and they were the ones that knew who to market to. They had industry contacts. Early on, the games that went with publishers early on in the App Store - games that went with publishers tended to do a lot better. Now, we're seeing a situation where it's returning to that. I think they ran away from that for a long time. It had no bearing whatsoever for a while.
I think now we're back in the situation where marketing outside of the App Store itself really does have a big influence on whether a game is successful. Most publishers that have other media outlets that can get your game in front of eyeballs through other means other than directly in the App Store, they're going to have advantage or they can give you an advantage, rather. I'm not sure if that answered any of your questions. [Chuckles]
JAIM:
It definitely did. If publishers are less useful to the indie developer now, are there people that have taken their place – other ways you can go to help get your word out or get help with things that you may not be that good with?
MARTIN:
Yeah. Actually, I think I was arguing that they have come back into being useful or prominent. I think that developers - independent developers - realize that they can't do everything; that it’s very difficult to do everything themselves. That niche of being the marketer is back to being valued again. If anyone who is an App Store developer who has taps in the store is probably getting –. I
don't know. It used to be a lot more. Now, probably once or twice a month, like a completely unsolicited messages from these people who want to market your app.
Some of them call themselves publishers but some of them call themselves marketers or App Store marketing specialist, App Store SEO. It was all kinds of different labels but there is definitely a niche there. I think those people wouldn't exist but I look at them as one of the scourges of app development. [Chuckles] They're trying to be the middle man or be somehow leeching out of your success, right?
PETE:
Okay. It's kind of funny. I’m working with a client in Hollywood at the moment and it really is like Hollywood. Everyone in their spare time is an actor or movie producer. My Uber driver the other day was a movie producer. [Chuckles] I got chugged to him about how the movie industry works. He described it pretty similarly. All of these middlemen involved - some of them are providing a lot of value but most of them are absolute shyster rip-off merchants. He was saying that, “It's frustrating because you need – sometimes you need them to be there and the ones that are really good are really good in providing all the value but there is no way of knowing which ones are good and which ones are just going to take you for a ride.” It sounds like similar things in different industries.
JAIM:
Just like software consultants.
PETE:
Hey. [Chuckles]
MARTIN:
Some are really good. Some will take all of your money. [Chuckles]
PETE:
It is funny I didn't make that leap myself. How do you know about that says about me? [Chuckles]
JAIM:
Some provide the long con where you scheme a little bit to think they're putting good money but –. [Chuckles]
MARTIN:
I think the real comparison is recruiters, right? [Chuckles] [Crosstalk] Similar to the App Store marketers, recruiters flood my inbox constantly. I think some of them probably do have jobs that – how would I know? [Chuckles] You have to respond to all of them.
PETE:
Of course my immediate reaction to hearing this was wondering whether you could build an app for that. I was trying figure out if you could make like a yelp for movie producers?
MARTIN:
Oh, nice!
PETE:
Yeah. My Uber driver/movie producer buddy did not think that I would be successful proposition. Maybe there's one already out there or maybe, whoever is listening who decides to build that, I’d like a 1% cut – a 5% actually. I’d go for a 5% cut for profits. Gross. Gross. No. [Chuckles]
JAIM:
We do have the legal language in the iPhreaks [crosstalk]. [Chuckles]
PETE:
[Crosstalk] You say it very, very quickly at the beginning. [Chuckles]
JAIM:
[Inaudible] Subliminal, you know.
MARTIN:
It's funny because that niche within the App Store marketing world, there's probably like 50 apps for that right? [Chuckles] I think very few of them have any real success but I think I downloaded – there was a period there where I was downloading app discovery apps all the time. I don't know if you guys have played around with any of those. But the first one and the only one that I still use is App Shopper. Do any of you use that?
ANDREW:
Yeah, I have used it – particularly the website. I know they also have an iOS app.
MARTIN:
I mostly just use it to keep track of things that I want to buy. They have a “wish list” functionality and I just put it on there. It will actually automatically email you if anything on your wish list goes down in price. It’s one of those like, “Oh, It's going on sale” and it will tell me about it. Not that I buy a lot of apps [chuckles] and the ones that I'm “Ehh”. It's especially the AAA-like big developer. They don't need my money. I feel like I'm not going to pay $10 for this one I know it's going to go on sale in two weeks.
ANDREW:
Yeah, I sometimes feel that I'd rather give the small developers their full price when things that are not on sale. But if it's Angry Birds or something, I don't really care. They know full well what they're doing by putting the game on sale.
Switching gears just a little bit, I wanted to ask you about some of the technical parts of game development. I haven't really actually done any game development - although that's not a 100% true – because when I very, very first started iOS development - when the iPhone SDK Beta was out - the first thing I started trying to make was a game and I didn't know anything about game development but I was a Mac developer so I knew something about how the frameworks work.
I just started – I had UIViews that were on-screen and I was moving those around with my own layout and animation code. I didn't really go anywhere. [Chuckles] I didn't know what I was doing and it turned into a mess. That's the sum total of my game development experience but I want hear about what you used to do in game development. I know there’s like SpriteKit and Cocos2D and a number of those things out there.
MARTIN:
Yup. I played around with lots of those. We actually have the maintainer of Cocos2D as local and he's a good friend of mine – Scott Lembcke. He also wrote Chipmunk physics. I think I did a talk at one point about Cocos2D. Most of the playing around with it that I've done was for that talk. I wrote Tetris in it. [Chuckles] That's my “hello world” whenever I'm learning a new platform. I think there's something we said for just native development in UIKit.
I mentioned earlier - although I think we weren’t on the podcast yet - that I have a framework that I tend to use for simple games especially for board games and grid-based games in general. That’s just a couple of classes really. It's very simple that I threw up on Github called generic game model. [Chuckles] It’s pretty unoriginal sounding. All it does for you is set up your multi-dimensional arrays and allow you to set their state. I tend to use just enums, just very simple enums for state. Then, in the game, I can – the display is separate so it's got a UIView that looks at this model and says, “Oh, how many -- what's our grid type? First of all, are we hexagonal grid or are we just a square grid? What are we drawing?” Then, you subclass it to tell it how to draw each state. It just speeds up - I can do prototype of a simple game in 5 or 10 hours; whereas if I was writing all that stuff [inaudible] it would be another 5 hours on top of that. It's not saving a lot - but I've used that for most of my just simple board games especially. Again, that's all UIKit so there’s no fancy animation there.
When you get into real game development - which really just means real-time animation - usually, you're talking about OpenGLView. That's what Cocos2D does and that's what SpriteKit does. They're just essentially presenting a window that is an OpenGLView. Then they make it easy to draw sprites onto that window and you can update the sprite. Almost all the time, there's a timer or what they call a game loop. That loop is going to run every 30 times a second or 60 times a second and you're going to move those sprites around every second or every time that tick happens.
I know about that architecture and that world but it's different from traditional iOS development you had. It's very event-driven. Usually, it’s a gesture that's kicking off some animation or something is happening as a result of an event rather than the other way where you’re updating every second or 60 times a second or whatever.
For me, like it always been, it feels backwards to work in that [chuckles] – the game loop world. But I don't know. I don't know if that helps anything. Obviously, you can do full top game architecture. Obviously, there's Unity and Unreal and other 3D engines but Unity is used a lot for 2D as well that you can go to. You're not even in the world of iOS. You're not using Objective-C anymore. I played around with Unity a bit and one of the other architectures for games that comes up a lot is this component architecture where each thing keeps track of its own state I guess. It’s one way of thinking about it. Unity is a component or architecture. Essentially, each component has its own game loop or gets a callback from the main game loop to say “Oh, do you want to update now?”
ANDREW:
If you're using a UIKit for all your stuff, it sounds to me like setting up the game loop and all of that is just up to you? It's not. UIKit does not provide that right?
MARTIN:
Right. And an NSTimer, right? [Crosstalk] For ActionChess, actually, I did have NSTimer in there but all its doing is moving this whole grid upwards slightly every tick or – not actually every tick but every something – every slice of time which I think it depends on the level as to how often that happens. Most of my games don't have a real-time component. They're not the thing where you – there's a whole category of games in the App store that are dexterity games where you’re trying to avoid things or you’re trying to move around things or Canabalts where you're an endless runner.
That's the whole genre of games now that all came out of that one game.
I don't tend to do a lot of that. I tend to focus on games where there's something in front of you and you're trying to solve a problem or you're trying to solve the puzzle - maybe iteratively, if that makes any sense. Board games are a good example where there's nothing really moving during the time that you're thinking about your turn. You're just looking at the game state and trying to figure out, “What's the best move for me to make right now?”
ANDREW:
My next question is going to be how you deal with physics? I know that physics engines are a big part of a lot of game engines. I guess UIKit has UIDynamics now but I don't think that's really intended to be used for game physics. But it sounds like the games you mostly work on don't really need a physics engine or at least nothing too serious.
MARTIN:
Yeah. The UIKit Dynamics stuff is about as much as I need really [chuckles] because I'm not making those physics games. I have played around with a bunch of different physics engines and it get a feel of how they work but I guess I can't taste too much other than that - going into that world where you've got a real-time game or there's stuff happening all the time without interaction is adding a layer on top of whatever game it is that you're making abstractly.
Adding physics to that is like adding another layer. Then adding 3D, if you go that route, is adding 10 times. [Chuckles] It’s kind of how it works. I probably wouldn't – well, it depends on what kind of game you're making but if you're making a physics game or maybe you're balancing stuff or something like that, of course you're going to add physics engine right away. But for a lot of games, you could probably layer the physics on top in a polished stage. When you’re saying, “Now, I really want things to react to each other in a more interesting way. Let's add some physics engine onto that.” You can model the different things that are going to – when they collide, what would happen?
What if they bounce or whatever?
JAIM:
A while back you mentioned the IGDA for people that want to get involved with gamer community in their area. Can you tell us a little bit about that?
MARTIN:
Yeah. The International Game Developer Association is the IGDA. It's the biggest organization dedicated to helping with game development and game developer issues specifically. Now that they have chapters almost everywhere throughout the US and I'm not so much sure about the rest of the world. I know that there's a lot in Europe but it definitely depends on where you are. Our local chapter is not even an official subchapter of the parent organization. I think that the parent organization is very loose about requiring their subchapters to be members or to pay dues and that kind of thing.
For instance, we have a really big active chapter. We have two or three meetings a month. Our biggest meeting has two presenters every month. Usually there's a 15-minute shorter presentation and then a longer 45-minute to an hour and a half presentation. There is anywhere between 80 to 100 people at that meeting. We also have a VR spin-off meeting that's probably half that number of people solely dedicated to VR and also other weird hardware stuff – game related of course. Then we also have an event where we get together and meet in a bar and just play video games and actually some quite a bit of board games as well that are mostly made locally. Every once in a while, we’ll have a screen that's just dedicated to [inaudible] or something that somebody wants to play. But generally it’s multiplayer single-screen games and generally they are made locally.
If the parent organization is actually one of those that has a – I forgot the exact status – but it's like
a 5 on 3 something that allows them to lobby congress. They do things like – when some senator speaks up against video games; they are the ones saying, “Hey! Wait! Wait a second. Video game is actually good for you and I will study to prove it.” [Chuckles]
ANDREW:
That's interesting. I knew there was a chapter of the IGDA here in Salt Lake City. I have a very loose acquaintance with the guy who runs that but I didn't really know that much about it. It sounds like you’ve got some really great stuff going on, at least in Minneapolis.
MARTIN:
Yeah. It's very regional. I think the parent organization is based out of Seattle, I believe? They have a really big local scene that's more around - I guess the parent organization. There are people that worked on the parent organization all over but each region has varies quite a bit as to how much they're involved in the parent organization and also what they're doing. It's totally up to the individual chapter on how active it is.
Another thing that the parent organization does is provide health insurance for freelancers and some of that more “business-y” stuff. If you're a game development studio, you might have more interest in IGDA for all the stuff that they provide to you.
JAIM:
That's very cool.
MARTIN:
It's the lead organization.
JAIM:
Help the people. Help the little – little people out run their businesses when they want to be developing or working on their games. Martin, anything else you want to add before we get to the picks?
MARTIN:
I don't know. [Chuckles] I should plug my games probably, right?
JAIM:
There you go.
ANDREW:
Definitely.
[chuckles]
MARTIN:
I'll just plug the one – the last one that I put in the App Store. It came out on August. We actually had a pretty good reception on it. We had a 5-star review at Pocket Tactics and a four and a half star review at Touch Arcade. Some really good reviews - it was not featured so [chuckles] I'm not a millionaire or even like a thousandaire, really. [Chuckles] I made some money.
It's called Catchup. It's a two-player abstract strategy game – a very simple hexagon based game with five rules so very easy to pick up. You can play multiplayer over Game Center. It has some games and a leader board and achievements. Probably the most challenging thing I did was that it's localized in seven different languages. [Chuckles] It's also completely skinnable so you know how you like it. You can change the color scheme at will from the menu as well and it'll change all the colors in the game.
JAIM:
Catchup is a cool game. You game a demo of that last year some time right when it came out and I downloaded it and played it for a bit. It's fun. I'm not a huge gamer but I enjoyed it.
MARTIN:
Thanks.
JAIM:
Before we get to the picks, I want to mention that we are printing up some T-shirts – iPhreaks Tshirts. If you want to be like those stylish people on the podcast, you can order one. You can get them at teespring.org/iphreaks and they're available for 2 weeks – thirteen days – from when this episode was released. Hop on it and you can look like stylish people in this podcast.
ANDREW:
Minor correction. It's teespring.com/iphreaks.
JAIM:
There we go. teespring.com.
ANDREW:
We will have a link on the show notes. I'm really excited about this. I don't know why but I'm very excited that we get our own iPhreaks T-shirts. They're available in Unisex, long sleeve, hoodies and women's tees. So, there's styles for everybody.
JAIM:
Very nice!
MARTIN:
Do all of your guests get one? [Chuckles]
ANDREW:
Yup, for $20. [Chuckles]
MARTIN:
For appearance and $20, you can get your own T-shirts. [Chuckles]
ANDREW:
I'm paying $20 for mine.
JAIM:
It is true. I'll be getting one and I'll be paying $20.
ANDREW:
I like these tentacles actually. That's pretty cool. [Chuckles]
JAIM:
Picks, Pete. We have time for the fastest picks in history.
PETE:
My first pick is related to the topic. It was a really fun talk that I got to witness in person at a JavaScript conference but ignore the fact that it is a JavaScript conference. This guy that works at Heroku and he was talking about – he does game development of the side – and he was talking about how you could apply some of the patents and the philosophy of game development to your regular development like non-game development. I'm mainly picking it because it was just a really fun talk. It was just super-fun engaging funny talk but there's also some really good nuggets of wisdom hidden in there around functional programming and game loops. It was a really fun talk so that's my first pick.
Game:
The Movie which is a fun movie -- if you haven’t watched it about indie game development. It was interesting for me because I'm not coming from that world so it was cool.
My third pick is a writer on EuroGames – these kinds of European board games like Settlers of Catan. There's this guy called Martin Fowler put together which is like a review of a bunch of different types of board games – how long they generally take to play, how complicated they are. It's fun if you're getting into that world and you don't know the difference between your ticket to ride and your Carcassonne.
And then my last pick on related to all the stuff that we're talking about is the language Rust. I just listen to a really good podcast interview with two folks involved in Rust on The Changelog which is also a really good podcast in general to listen to. If you're a fan of podcast, which you obviously are, because you're listening to one right now. It was a really good episode on Rust the language. Rust is a really interesting language in general and they did a really good job about explaining why Rust is interesting. If you're into Swift or if you're into learning about new languages that will expand your brain a little bit, then I would recommend checking out that podcast to get a taste for why Rust is cool.
Done.
JAIM:
Excellent. Andrew, what are your picks?
ANDREW:
I had two picks. Now I have three because Pete's last pick reminded me of something that I was reading yesterday. I think that was interesting It’s somebody who – the first thing that I thought was funny and I don't mean this in a mean way – he said he was an expert Swift developer or something like that. I thought, if anyone who is really an expert Swift developer except for a few people in Apple? Anyway, this guy is an experienced Swift developer that has recently started using Rust for something; and he's written a big post about how – about Rust from a perspective of a Swift developer which is interesting. I like these sorts of things because it's easier for me to understand a new language when I can see it, compare them; contrast them with the language I'm really familiar with. That's my first pick.
My second pick is the Arduino Esplora board. Chuck tweeted a couple of days ago asking about people's favorite Arduino boards. I thought I had already picked this on the show but I guess I hadn't. This is just an Arduino board that has a ton of sensors and input/output devices all in one board. You don't have to buy a bunch of shields. You can buy this board and do a bunch of stuff just out of the box. One of the things that it can do is act like a game controller. It's actually shaped pretty much like a game controller with a joy stick on the left and 4 buttons on the right. You can even hook a screen up to it so you could write games that run entirely on Arduino and play them like it's a controller. That's pretty cool.
And my last pick is another video game-related thing that I just ran across randomly yesterday called the Analogue NT. This is NES/Famicom - I don't know what you call it - recreation. It’s hardware and it will play NES and Famicom games. It's all the original circuitries so they're using the same CPU as the NES actually used. It has cartridge slots and connectors for regular controllers but it’s all modern and a hook up to your modern TV and it's really nice looking. I just was very impressed with the polished job they seem to have done. I don't think it’s actually shipping yet but you can pre-order it. It's $500 so you would have to be pretty serious about it. But it seemed really cool.
Those are my picks.
JAIM:
Martin, what are your picks?
MARTIN:
That Esplora board sounds really cool.
[chuckles]
I wasn't going to say anything about this but now I got to because you mentioned the Arduino. I've been playing around with this thing called an L3D which is an LED array. It's 8x8x8 LEDs. It's a volumetric display and it runs on a Spark core so it's an Arduino-like, if you hadn't played with Spark before. I made a game for it for the Global Game Jam this year that I call Match-L3D. Its' a Match 3 game but in this cool lit-up LED world; so you have an L3D – that's a pick.
Game:
The Movie, I have to plug this other movie called GameLoading. Did I saw?– I actually saw it at PAX East. That was just after the Big Game Developers Conference this year. This was the first year. I hadn't gone to that in a while. I guess Game Developers Conference too. Actually that's a whole another thing. Game Developers Conference is awesome. If you're wanting to see what game development is like and get a peek into the entire industry, the Game Developers Conference is the place to go. It's the WWDC of game development. Game Developers Conference. GameLoading. It's basically very similar to Indie Game: The Movie but about a few more developers in general. It doesn’t - one of the criticisms of Indie Game: The Movie has been that it followed these very successful stories - case studies. There are 4 developers that it follows in there. They're all super-successful by the end. That's not the typical game development trajectory; and I think GameLoading does a better job of portraying the industry.
And then I was going to plug Top Hat as well which I've been using. It just goes in your status bar except that it's on a mac. What is that called? [Chuckles] – the Apple bar, the Menu bar I guess [crosstalk]. It just downloads your stats from the previous day and shows them to you from iTunes connect. It's pretty sweet.
I think that's it.
JAIM:
Okay. I’m going to have the most anti-climactic pick in history. We have a bunch of cool picks: Rust, electronics, games. I'm going to talk about something that we stand on. I bought a standing desk a couple of weeks ago and realized pretty quickly that I probably want an anti-fatigue mat to stand on so I picked up the CumulusPRO mat and I liked it quite a bit. I'm very comfortable. It's almost like I'm standing on a cloud. It's very nice and I got the fairy dust so I go up and down quite a bit during the day – I get tired of standing – I go up and down. I had to add an anti-stick at the bottom so it doesn't move and you don't slip on your head. I don't need that as much and actually put some cardboard from the box underneath that. Protip: if you actually want to move it out of the way frequently. CumulusPRO Anti-Fatigue Comfort Mat. I'm pretty happy with it.
That's my pick as anti-climactic as it is. That's our show. Buy a T-shirt and we'll see you next week.
[This episode is sponsored by MadGlory. You've been building software for a long time and sometimes it gets a little overwhelming. Work piles up, hiring sucks and it's hard to get projects out the door. Check out MadGlory. They're a small shop with experience shipping big products. They're smart, dedicated, will augment your team and work as hard as you do. Find them online at MadGlory.com or on Twitter @MadGlory.]
[Hosting and bandwidth provided by the Blue Box Group. Check them out at BlueBox.net.]
[Bandwidth for this segment is provided by CacheFly, the world’s fastest CDN. Deliver your content fast with CacheFly. Visit cachefly.com to learn more]
[Would you like to join a conversation with the iPhreaks and their guests? Want to support the show? We have a forum that allows you to join the conversation and support the show at the same time. You can sign up at iphreaksshow.com/forum]
102 iPS Game Development with Martin Grider
0:00
Playback Speed: