

A call to arms: Why every kid (and kid at heart) should write an iPhone game - DesaiAshu
http://blog.makegameswith.us/post/33263097029/call-to-arms

======
krichman
No, not iPhone games. We should be encouraging kids to program for ecosystems
that are free to enter, and that don't censor apps for disagreeing with their
delicate sensibilities.

~~~
ekianjo
Yeah, like the Raspeberry Pi. You can program with what you want and play it
on a big screen in 1080p. And it's cheap, small and hackable. Way better than
tinkering with an iPhone.

~~~
krichman
This is much better, but since I am going full-on free software advocate at
the moment I am obliged to complain that the wi-fi chip drivers are not open
source :)

~~~
zalew
do you use the rms laptop of choice
[http://www.lemote.com/en/products/Notebook/2010/0310/112.htm...](http://www.lemote.com/en/products/Notebook/2010/0310/112.html)
:)?

~~~
krichman
No :( That's my ideal computer at the moment, though. All I want is Bash,
Firefox, and liberty.

~~~
zalew
imo it's far from ideal. 1.5h battery? for 325E? it's a joke.

~~~
krichman
Performance is not the USP, obviously.

~~~
zalew
tbh I got interested in the yeeloong some time ago but sadly I haven't seen a
single usp besides free drivers. for that price tag it's just crap.

------
lifeformed
I agree that it's a great practice to make games, but there's definitely no
reason to specifically state iPhone games, or even mobile games. There are
tons of great libraries for building desktop games that are extremely
accessible for newcomers, like Love2D and GameMaker.

The goal for building a game should be learning design, time management, and
discipline. I think the technical aspect is very overstated. I mean, knowing
the basics is important, but anything after that is something people should be
able to figure out on their own. The technical skill required for creating a
simple game is very basic - the most difficult part is learning how to finish
a project in time, how to stay motivated, and how to design a fun product.

------
akurilin
Why not an Android app instead?

To develop an iPhone game you need a relatively modern Apple desktop/laptop
(at most 2 year old if you plan to run xcode 4.5, thus fairly expensive) and
an iOS device (the cheapest you could go would likely be a 4th gen used iPod,
still somewhat expensive) + a yearly $100 license (not sure if this is waived
for students?). You also end up learning a somewhat insular language with a
ton of idiosyncrasies (Smalltalk on top of C with a somewhat uncommon take on
memory management).

I feel like you get a lot more bang for your buck with Java and the ability to
develop from any platform out there. An old Ubuntu box will do just fine, or
Windows for that matter.

~~~
brianchu
MakeGamesWithUs developer here. Your point about the required computer is
fairly valid, but you could get away with having a early-2009-generation
computer, or with the cheapest Mac mini ($600).

If you were truly strapped for cash, an iPhone/iTouch device is not actually
necessary given the iOS simulator. And we'd totally be willing to test games
on our in-house test devices if a developer doesn't have an actual device.
Ashu, the guy who wrote the blog post, actually developed his game before he
got his first iPhone.

Developers also don't need to worry about the license, as the game is
published through us.

I'd disagree with your point about Objective-C. Firstly, automatic reference
counting (ARC) mostly eliminates the burden of memory management. Also,
learning the language is a requirement if you're at all serious about getting
into mobile game development or mobile development in general. Any serious
mobile app/game on the market HAS to have an iOS version.

While Android certainly has greater market share than the iOS, the fact is
that Android has lots of device/OS version fragmentation. Greater proportions
of iOS users, on the other hand, tend to upgrade their devices. This makes us
comfortable enough to drop support for devices older than the iPhone 3GS and
not have our developers worry about backwards compatibility (the new iPhone 5
screen is a non-issue). People have also found that despite lower market
share, iOS versions of the same game offered on Android usually gross more
revenue.

That being said, we are definitely moving towards publishing on Android soon.

~~~
akurilin
To clarify, my comment was only related to the didactic aspect of the program
with respect to software development.

Regarding everything else, the business side in particular, I completely agree
that you cannot do much better in mobile than with iOS today. Perhaps there
are some esoteric options with 3rd world cell-phones and selling services
through SMS, but let's overlook those for now. That of iOS is a demographic of
people who are willing to spend money, and thus it's a good match for your
need. As you mentioned, assuming iPhone games, only having to support 1 OS
version and 1 resolution with 2 easily bridgeable screen sizes is a big boon.

On a sidenote, I still don't agree that iOS memory management is at all a good
entry level paradigm. Reference counting, choosing between strong, weak, copy,
assign, unsafe_unretained etc., retain cycles, transferring memory ownership
from CoreFoundation libraries are all not trivial concepts for the average 16
year old. I'd be curious to read a blog post from you guys to see what your
experience with this will have been.

~~~
brianchu
Using industry-standard game libraries (cocos2d/kobold2d) with ARC, a 16 year
old would never need to touch reference counting or the CoreFoundation (the
exception is using Box2D physics). It is also not necessary to understand
copy, assign, and unsafe_unretained, though it certainly might help in some
edge-case situations, with which we would be glad to assist any student
developers.

And while it is more helpful to know the difference between strong and weak
references, that is IMO a very accessible concept.

------
jacquesm
If you're a kid and you want to develop a game use what you've already got:
JavaScript and your browser.

Much as I dislike the language it will run anywhere and you won't have to fork
over $ for gear and silly licenses to deploy. Anybody in the whole world can
instantly play your game if they have web access if you upload it to some
public page.

Let's not push kids to closed off, for-pay eco-systems.

~~~
lucian1900
Or at least Android, where users can install any software and the system is at
least partially hackable.

~~~
fakeer
Yes. It will be a logical choice.

One doesn't have to spend minimum ~$700 to play the game. Tools and API are
freely and easily available. Language, Java, is sth that students usually
learn in initial years (No, I am not saying it's the best/worst language).

But I still believe the grand parent commenter's suggestion of JS is more
practical and will benefit the kid in long run even though it shall, most
probably, not earn him $35K immediately or win him cute groupies. JS gives you
the power to make things anywhere quick and see the changes instantly.
Anywhere!

------
moistgorilla
I wanted to join the website but it forced me to log in and register with
facebook. Which I loathe. Please put in another option.

~~~
josteink
You mean a website recommended by someone who suggests that every kid should
buy $1000s worth of Apple-equipment, then pay Apple $100 for the right to
program that equipment and have it entered into Apple's locked ecosystem,
isn't fully free and open?

I'm hardly surprised. People these days really don't see to value freedom and
openness the way they used to. It's especially disappointing to see the same
trend in hacker-circles.

------
thechut
Helicopter? This is the problem with the App store - too many clones of old
flash games that have been around for ages. I'm sorry but cloning a game that
already exists certainly shows good timing and business sense but is not the
same as a call to arms to make things.

~~~
adriand
He wrote the Helicopter game when he was 16 years old and went through YC when
he was 19 and you're criticizing him for making a clone of some other game?
That's a hell of an achievement for anyone, let alone a teenager. And let's
not forget that the best known game in the App Store, Angry Birds, is just an
artillery game, which date back to the 70's.
<http://en.wikipedia.org/wiki/Artillery_game>

~~~
ekianjo
Huh... you are deeply wrong about Angry birds. You forget that they included
physics in the game and that makes it a lot more elaborate that any of the
artillery games or scorched tanks ever made before. It's not just about the
angle and power, this time.

~~~
praxulus
The physics, while not dating back as far, were also present in flash games
pre-Angry Birds, the most popular being Crush the Castle. Angry birds brought
a slightly simpler aiming mechanism and (probably most importantly) a much
more polished feel to the genre.

~~~
ekianjo
Thanks for the reference, I was not aware of that one.

------
lquist
I have to disagree here. If Obj-C was my introduction to CS/coding as a
teenager, I'd turn around, and run away as far as possible (like I did when I
was introduced to C as a teenager). Now, Ruby (or Python, JS, etc.)...that's
another story altogether...

~~~
brianchu
The tutorials do assume you know basic coding already, and the tutorials do
quite a bit of hand holding to ratchet up the exposure to Objective-C, so it
really shouldn't be scary.

As someone who thought Objective-C was a terrible language with weird syntax
at first, I'd have to say that 1) Verbosity shouldn't be mixed up with
complexity, 2) You get used to the different syntax in a couple of days, and
3) Objective-C code is really readable once you get used to the syntax, in the
sense that you never have to guess at a method's parameters.

~~~
jaipilot747
Could you explain about 3? Do all function calls require named arguments?
(Never done Obj C)

~~~
brianchu
It's not required, per se, but it is idiomatic. You will never see an unnamed
parameter in the standard library, or in most other people's code. In a sense,
the parameter name is actually part of the method name

Wikipedia has this example of Objective-C, which illustrates what it looks
like: [window addNewControlWithTitle:@"Title" xPosition:20 yPosition:50
width:100 height:50 drawingNow:YES];

This is essentially calling the
addNewControlWithTitle:xPosition:yPosition:width:height:drawingNow: method on
the window object.

------
bryanlarsen
It's so awesome that this is viable again. I started out by writing video
games when I was 16, too. Back then I used BASIC & assembly language.

I didn't get $35K or groupies, though. I got about $200 a game from a disk-of-
the-month club service for them, which was "real money" to a 16 year old farm
boy in the 80s...

------
ekianjo
Why make more iPhone games ? Honestly restricting yourself to using touch
screen controls and making games for under-powered hardware is hardly
gratifying - Make games for desktop, rather. There's so much more you can do
visually and artistically speaking on a big screen with real controls. Plus,
the iPhone market being flooded with games is hardly a good place to make your
app shine. You will more likely be lost in the ever-growing ocean of crap.

~~~
philh
Touch screen controls are different to keyboard and mouse, not inherently
worse. Fingle could not exist as a desktop game, for example.

I don't know how big a deal the underpowered hardware actually is; my
suspicion is that you're overstating it.

I agree that an app is unlikely to get any traction, but it's not obvious that
a desktop game is any more likely to.

~~~
ekianjo
I think controls which hide a significant part of your screen when you are
using them is enough to qualify them as "worse". On some rare occasions if
makes sense to have them but most of the time they just get in the way of the
visible area of the game and seriously restrict what you can do. And let's not
forget there is simply no feedback when you press on a touchscreen vs regular
buttons, which is another factor that makes it really bad in terms of
usability.

That's also why you see so many initiatives (like Ouya, Icontrolpad 1 & 2)
aiming at bringing physical controls to tablets and phones.

Underpowered is a big deal. Before game makers were always pushing to do
better looking, better working games and so on, and since we fall in the
casual games bubble it has just become an endless flow of "meh" games not very
enjoyable nor technically impressive. It is similar to what happened to the
car businesses: it used to be a passion where most cars were built to reach
top speeds and look cool and slowly became mass-market, fridge and washing
machine like business with slow cars designed like shoe-boxes. It's just lame.

Getting traction is not the only thing that matters in life. Making a
difference in an existing market is. You are more likely to make a difference
on a desktop market with a great game than the same on the phone, just because
it is so easy for everyone to publish crap on it. That's what the Introversion
guys are doing and while they are on very limited resources they just strive
to make better and better games for the desktop. They deserve more credit than
they get.

~~~
gizmo686
I'm actually happy that a lot of games are moving to 'under powered' devices.
Most of my favorite games come from when limitations in the platform forced
simple, well designed gameplay. With new (or even old at this point),
computers, you can hide these elements behind fancy graphics,and it is much
harder to pick out the good games.

Also, my 'under powered' phone has a faster CPU, and more ram than by x-box.

~~~
ekianjo
About your last point: your underpowered Phone is incapable of displaying the
same level of game details as your xbox. Stop trying to compare a empty box
with fans running at hundreds of watts with a phone trying to save power every
seconds it runs not to overheat and burn in flames - this is a lost battle and
there's no way a mobile device will be at the same level as 2006 home gaming
hardware anytime soon.

~~~
Synaesthesia
Wrong. The iPhone has tremendous graphical power, especially the iPhone 5. It
will eclipse the XBOX 360 in performance very soon, if it hasn't already.

~~~
ekianjo
I am waiting for a proof.

~~~
brianchu
The iPhone 5 is twice as powerful as the iPhone 4S. I wouldn't go as far as to
say it's more powerful than the Xbox 360.

[http://www.anandtech.com/show/6324/the-
iphone-5-performance-...](http://www.anandtech.com/show/6324/the-
iphone-5-performance-preview)

Also note the distinction between the Xbox and the Xbox 360, because the
iPhone 5 is undoubtedly more powerful than the Xbox.

~~~
ekianjo
"Twice as powerful" does not mean much - performance in game is a combination
of several factors and a matter of consistency of the architecture, OS,
libraries and so on. I have yet to see anything on iPhone close to what the
Xbox 360 is capable of. And I am laughing at the claim just like I am laughing
at the claims that the PS Vita is just as powerful as the PS3, for example:
it's fairly obvious that a game like Uncharted, available on both machines, is
way less detailed and less fluid and less post-processed than the PS3 version.
You can give the illusion it's "almost just as good" but once you factor all
the elements mobile games are just relying on small screens to hide a number
of visual imperfections that would be obvious and dirty on larger ones.

~~~
Synaesthesia
Ok I retract my claim. It's not as powerful as the 360, but I still find its
graphics very impressive.

------
pjmlp
The idea of getting kids to learn to do mobile games is commendable.

But getting their parents to spend €1000 in the Mac, €100 in an Apple
Developer and €389 (+ 2 year contract) for the iPhone is just too much.

Specially when many countries have an average income of around €500 euros.

Kids should learn using open systems that don't cost their parents an arm and
a leg to pay for them.

~~~
josteink
And all this money... To program on the minority platform with a dropping
market-share, which you can be banned from if you and Apple happen to disagree
about what is good fun and not.

That's a pretty shit deal.

Compare it to the Android deal: It now has over 75% of the smart-phone market.
Developing on it can be done for free, using free tools, on any PC or Mac,
basically any platform with a JVM. Chances are you can do it on a machine you
are already own. Applications can be distributed freely, directly to your
friends, without the need for any store approval.

Android in short: Zero cost. Ready to go on things you already own. Full
freedom.

Whoever wrote this and decided that _iPhone games_ was the thing kids needs to
learn must be smoking some pretty heavy weed.

------
jchin
Love the idea. I'm not a game designer and I would only put myself in the
hobbyist-gamer category, but I'm always so impressed by well-designed games.

I've played a ton of different games (board games, Magic, card games, RPGs,
shooters, city-building, etc) and have even tried to create simple games in
the past. What I found the most challenging and exciting was how to get all
the different aspects of a game to come together. Top games today are probably
made by specialists (I'm guessing) with someone who focuses on story or design
or power balance or gameplay, etc. When I was a kid trying to put together all
these things myself, I found it to be a really exciting and fun way to use my
brain.

I guess I disagree that the reason kids (and kids at heart) should try
building a game is to "build a product, make money and make people all around
the world just a little bit happier." I think the reason they should build a
game is to practice doing different types of critical thinking. But maybe it's
hard to convince a kid to build a game with that kind of reason. :)

------
bennesvig
At a young age, if you create something and get really positive feedback from
someone you don't know (even if there is negative feedback as well), like he
did, it has a huge effect on how you spend your time. Video games seem boring
compared to making people happy through creating.

------
ReedR95
Great article! I too wrote an iPhone game[1] while in high school (2 years ago
during sophomore year) and while I didn't make $35k, the game did get
downloaded close to 600,000 times while it was free. It was an extremely
valuable experience that I learned a lot from.

It always amazed me how easy the App Store made it to access such a vast
market and that a game I built in my free time was being downloaded by people
in countries as far away as Kazakhstan.

1\. <http://itunes.apple.com/us/app/drop!/id415884044?mt=8>

~~~
jvrossb
Downloading it now :) Let us know if you're ever interested in making another
game!

------
valdiorn
The true title of this article:

"Why every kid should buy an iPhone and iMac, because that's the only way you
can develop iPhone games"

No thank you, Apple.

