Porting Lemmings In 36 Hours 154
An anonymous reader writes "Aaron Ardiri challenged himself to port his classic PalmOS version of Lemmings to the iPhone, Palm Pre, Mac, and Windows. The porting was done using his own dev environment, which creates native C versions of the game. He liveblogged the whole thing, and finished after only 36 hours with an iPhone version and a Palm Pre version awaiting submission, and free versions for Windows and Mac available on his site."
iPhone bandwagon (Score:5, Funny)
Re:iPhone bandwagon (Score:5, Funny)
I misread that as Portal Lemmings in 36 hours (Score:1, Offtopic)
/disappointed.
Re: (Score:1)
Re: (Score:2)
Re: (Score:2)
letting them all drop out by the exit
And go splat because the distance they fell was far, far, far greater than the distance they can fall without an umbrella.
Unless you were thinking of giving them umbrellas for the infinite fall.
Re: (Score:2)
Re: (Score:2)
You mean Digg? ;)
"Oh No!"
Re:iPhone bandwagon (Score:5, Funny)
I think he's hosting the website on his iPhone.
I managed to grab the page after hitting F5 a few times
http://img713.imageshack.us/img713/8107/lemmings.png [imageshack.us]
Re: (Score:3, Interesting)
I had a bad habit of bragging about my N900 -- WVGA screen, CortexA8 overclocked to 1.1GHz, and a touch-optimized Firefox derivative, it can do anything a laptop can do.
The above link has cured me.
(On second thought... does anyone's laptop actually handle that monster gracefully, either?)
Re: (Score:2)
No problems here with Firefox running in a AMD Neo, currently clocked at 800MHz.
Re: (Score:2)
CortexA8 overclocked to 1.1GHz
Sweet Zombie Jesus, you're a madman! 8(
How hot does it run? I know that my N900 can get a bit toasty when I do things that peg the CPU for a long time (like watching videos), especially if the keyboard is closed, and I'm at stock clock speeds.
You can play coin-op arcade lemmings game in MAME (Score:3, Informative)
You can play coin-op arcade lemmings game in MAME as well.
Re: (Score:2)
Same for DOS port in DOSbox [dosbox.com] with a bunch of games.
Re: (Score:2)
Supposedly there was only a prototype of the arcade version. Was it actually finished and just not released?
Nice accomplishment! (Score:4, Insightful)
See, this is what you can do with low level languages... IF you know your shit.
Re:Nice accomplishment! (Score:5, Funny)
I'm getting old. I remember C being regarded as a high level language designed with portability in mind.
Re:Nice accomplishment! (Score:4, Informative)
Yeah, and it is, but it's still considered "low level" these days because it's awfully darn close to the metal. As compared to stuff like .NET or Java that runs on virtual machines or Common Language Runtimes.
Re: (Score:2)
iPhone apps are compiled using LLVM, which provides its own virtual machine, not unlike the JVM and CLR. Does that make C a high level language?
Re: (Score:3, Funny)
iPhone apps are compiled using LLVM, which provides its own virtual machine, not unlike the JVM and CLR. Does that make C a high level language?
That is just so wrong, it hurts to read it.
Re:Nice accomplishment! (Score:5, Funny)
Wrong as in factually incorrect or Wrong as in 350 pound man wearing a Sailor Moon costume?
(You're welcome for that lovely image too)
Re:Nice accomplishment! (Score:4, Informative)
Factually wrong. LLVM is a virtual machine in the sense of virtual architecture, not in the sense of virtual environment. Code for the iPhone is first compiled to LLVM intermediate representation (IR), which is machine code for a virtual architecture that has an infinite number of single-assignment registers and a structured (but simple) memory model. You can do various things with code in this form, but when you are targeting the iPhone, you generally run some optimisations, link a load of the modules together, run some more optimisations, and then compile the result to native code.
Describing LLVM as not unlike the JVM or CLR is like saying that Pascal is not unlike Smalltalk.
Re: (Score:2)
Wrong as in 350 pound man wearing a Sailor Moon costume? (You're welcome for that lovely image too)
C'mon, we've all been to gencon. Try harder.
Re: (Score:2)
I'm not sure what is more disturbing -- the fact that you described it, or the fact that when I googled for images with fat man sailor moon [google.com], I actually got pictures.
You bastard!! I didn't need to know that! :-P
Re: (Score:2)
Try Sailor Bubba for extra credit!
Re: (Score:2)
Okay, perhaps my wording was poor. I was not suggesting that the iPhone executes its apps in virtual machine, just that the build process for iPhone development uses the LLVM, to note that it is not some esoteric project. That, and that C does not have to be compiled straight to hardware instructions.
Re: (Score:2)
I understand you, honestly, but I don't think the intermediate layers count much towards what "level" the language rests at, and arguably the final destination does.
C is pretty dang close to describing what the hardware is doing. To the point where you could fairly easily, one line at a time, transcode it into assembly, which itself is veeeery dang close to the machine code instructions it represents. Not only that, but you can kind of go from assembly to C in a pretty straightforward way too. You can't
Re: (Score:2)
Shhhhhh! You might shatter their pre-concieved notions of C and make them feel bad for never learning it!
Re: (Score:1)
Yes, yes, you are getting old ;)
But C is like "more low level" than many popular modern languages.
I am older, I remember why C is called C (Score:3, Interesting)
You know you are old when B is more then just a brief bit of history in the front of a C book.
To be fair I only knew it from a porting project. I am not THAT old... I am young enough to remember when C was new and exciting... no we did NOT ride dinosaurs to work.
Re: (Score:2)
a Model-T Ford?
Re: (Score:3, Insightful)
C was never a High Level Language. It was a more portable Lower Level Language. Sure it was above assembly (As Assembly isn't much of a program language, but but just a 1 to 1 translation to machine code) it was lower then COBOL, Fortran, Basic, Lisp, and many of the other popular languages at the time.
The difference between higher languages and lower languages. isn't as much portability, while higher languages tend to be more portable, however a high level languge such as VB is less portable then a Low
Re: (Score:2)
From Wikipedia: A high-level programming language is a programming language with strong abstraction from the details of the computer.
I think if you're not moving register values around, it's a pretty strong abstraction. You even stated that it's a portable lower level language, which to me, is mutually exclusive from working with the details of the computer.
Re: (Score:2)
The Wiki Definition is right your analysis is not.
Because there are some things you are kinda missing...
The C Language has the ASM command for moving those registers around if you feel the need... And if you dig into these libraries you find that most of the stuff that is going on ends up to be assembly language. What you are thinking is just as assembler perhaps with some macros. Assembly isn't a language, it is a 1 to 1 map to what the computer is doing.
Languages offer abstractions so you don't need to
Re: (Score:2)
so if java has some libraries that make it possible to manipulate registers, that makes it a low level language? Or any other language?
It says strong abstraction from the details of the machine.. I think when i can write a simple function and have it compile and run on 10 different platforms that implies strong abstraction from the details of that machine.
Re: (Score:2)
Since when does C++ needs to be converted to C? It's C++ -> Machine code. And JVM should be "HotSpot", JVM itself it's just a model, not a specific implementation :)
Re: (Score:3, Interesting)
Since when does C++ needs to be converted to C?
Since it started - it was just a preprocessor. It's now changed though to compile directly. You could in theory write a compiler that goes straight from Java to machine code if you were really keen. In fact, that has already been done [gnu.org]. It's not just the language syntax, the toolchain matters too.
Re: (Score:2)
I didn't asked if it could be done. I asked if it was needed, and it's not anymore. I'm willing to bet that Oracle's compiled HotSpot binaries aren't compiled with a C++ preprocessor and a C compiler, but with a straight-to-machine-code C++ compiler.
You don't need GCJ. HotSpot by itself compiles
Re: (Score:2)
I can actually predict what the machine is going to do when I write a line of code!
Ah, the good old popular misconception. For most practical purposes,
- you don't know what code the compiler will emit, especially if you're optimizing. Given the bajillion optimization flags most compilers have, and the fact that they change across versions (for example gcc 4.4 has the graphite framework, gcc 4.5 has link-time optimization), you're either very smart and brave to take a guess, or just ignorant. You can look at the output of course, but that's hardly "predicting", and we're lazy anyway.
- at a
Re: (Score:3, Interesting)
Yes, but the more output you inspect, the more you get to know your com
Re: (Score:2)
do you really want to be measuring your code performance in seconds? Fine for us console developers i guess, but not so great for your average PC.
If I'm programming a PC game's engine, then I certainly want to treat a system at the low-end of the system requirements that I'm targeting as if it were a console. If something takes 5 ms on a low-end PC, it'll take 5 ms or less on virtually every PC, and I can do three such tasks in one 16.7 ms cycle of the game clock.
Re: (Score:3, Insightful)
I can actually predict what the machine is going to do when I write a line of code!
Doubtful. With all sorts of branch prediction and pipelining going on in a modern CPU it is extremely hard to know what the cpu is really going to do at any moment. This is why when Intel, for example, publishes latency and throughput of assembly instructions that the numbers they provide actually just rough approximations.
Re: (Score:1, Insightful)
You would be amazed what anyone can produce with any language *IF* they know their shit
Re: (Score:2)
Even in Bitxtreme, where you can only address two bits?
Here are all possible programs:
00
01
10
11
His creator is very confident about its turing completeness:
Re:Nice accomplishment! (Score:5, Insightful)
When the vast majority of your time writing code is taken up by debugging or refactoring, the language it's written in doesn't matter so much as the quality of the code that's written.
Re: (Score:2, Insightful)
I don't regret learning a ton of languages because you learn new techniques and ideas from each one...
Eventually you reach the point where that's not really true anymore because you're pretty much seen it all. At that point, it doesn't matter which languages you "know" or don't, and have used in the past or not, you can sit down and write code in anything, even stuff you've never seen before, as long as you have a minimal syntax reference or some sample code handy.
Re: (Score:3, Insightful)
Eventually you reach the point where ... [you've] pretty much seen it all
That is so wrong on so many levels. The beginner thinks he knows everything. The well learned thinks he knows a lot. The expert knows that he knows nothing. This is true in programming as well. There are infinitely possible ways to design a language, and some are yet to come (though derived from current languages of course). There never EVER comes a point where one has seen it all.
Re: (Score:3, Funny)
And the GP responds to AC as AC. Amazing!
Re: (Score:2)
To me it's not the language that make the difference but the _libraries_ that make the difference.
The more suitable and available the libraries there are to do what I want to do, the less code I have to write, document and hopefully debug (some libraries are buggy unfortunately).
And also if they are standard or defacto standard libraries in means the poor sod taking over has less code to read. Assuming
Re: (Score:2)
OT:
Dude, in your world peace blog post, isn't the 3rd group exactly who the 1st group are talking about? Violence and war are related to game theory, it's always to someone's advantage to brutalize the others. You solve the problem of the 3rd group and the 1st group will go away, the 2nd group will as well.
So peace is really simple, you just have to stop the sociopaths and "might is right" people, then everyone else can relax. That doesn't sound so easy now.
Re: (Score:2)
Re: (Score:2)
There's also violence caused by scarcity real or imagined. Want money, chicks, food, etc... I'm sure you know how population growth is causing and will continue to cause fights over these things. It's true that the earth produces enough food for everyone but politics a
Re: (Score:2, Interesting)
Re: (Score:2)
Re: (Score:2)
"If debugging is the process of removing bugs, then programming must be the process of putting them in,"
Debugging is the process of replacing one known bug with 10 unknown bugs.
Copyright? (Score:5, Interesting)
Okay, so Lemmings isn't public domain. The owners may have turned a blind eye to DHTML Lemmings, and other small projects, but how do you expect to get approved for the Palm and Apple App Stores?
IIRC Psygnosis owns the rights to Lemmings. Also IIRC, Psygnosis is now owned by Sony. Unless Psygnosis was only the publisher for a third party I'm not aware of.
Good luck with that.
Re: (Score:3, Informative)
I have no idea Who retained the copyrights, by if it was the developer, then Rock Star North would be the current identity of the developer, so Take-Two Interactive would be the people to ask, not Sony.
Re: (Score:2)
It doesn't happen often that the develop remains copyright over their creations when signing up with a publisher.
If you look at the continuation of the Lemmings series you'll see DMA Design isn't involved anymore, but it's Psygnosis/Sony.
Re: (Score:2)
If that was the case, why would the last 3 or 4 versions be released only on Sony hardware? I think Sony owns the IP.
Re: Copyright? (Score:2, Informative)
PC/Amiga classic 'Cannon Fodder' was also recently ripped off (certainly from a look and feel perspective, and all reviews mention the likeness) as an iphone/itouch game Warpack [warpack.com] Grunts - with no credit to the original coders on their website [strangeflavour.com]. Considering the original devs have their own mobile phone development company [tower-studios.co.uk] I doubt they would have allowed this, and I hope they have sicced their lawyers onto them. I doubt Apple look too closely for prior art and are more interested in counting the filthy lucre th
Re: Copyright? (Score:4, Insightful)
Oh, so today we're mad at Apple for dastardly approving apps that they should have rejected on the grounds of software look-and-feel... because that totally holds up in court [lmgtfy.com], not to mention it's totally Apple's job to ensure that every app has no resemblance to any other software ever published. Got it!
I'm glad you posted, because I think I missed that memo and was still cursing those Apple jerks for rejecting too many apps, because "All Apps Deserve To Be Approved" and "Apple Is Oppressing People With Their Walled Garden."
Re: (Score:2, Funny)
Re: (Score:2)
Show me a "new idea" in software and I'll show you some no-account who claims he "thought of it first" but didn't have the motivation or skills, either to implement it right, or to successfully bring it to market.
Sure there are occasional examples of some freeware widget being copied and made into part of the OS, but more often than that, they just buy the relevant IP from the guy who created it [wikipedia.org]. However if you think Apple is the only company to ever reimplement a "good idea" independently, without the bles
Re: (Score:3, Insightful)
Oh, so today we're mad at Apple for dastardly approving apps that they should have rejected on the grounds of software look-and-feel... because that totally holds up in court, not to mention it's totally Apple's job to ensure that every app has no resemblance to any other software ever published. Got it!
This isn't a game that looks vaguely like the original Lemmings and has somewhat similar gameplay mechanics. It's an exact copy that uses the "Lemmings" name and logo.
Re: (Score:2)
Re: (Score:2)
Actually, Apple lost the look-and-feel lawsuit because they had licensed it to Microsoft. In a huge case of "left hand not knowing what the right hand was doing". the lawyers didn't know that Apple had alrea
Re: (Score:2)
You're right, and it was a hilarious technicality of poor wording, since obviously the intent of the license wasn't to grant them a license to knock off the concept but rather to write software FOR the platform.
However, have there been successful "look and feel" suits? I was under the impression that no one had won any similar cases. I chose a poor one as an example, didn't I.
Re: (Score:2)
Wasn't there a lawsuit involving The Print Shop? I can't find info about it, but I thought there was. (AFAIR, I am not mistaking the Lotus 1-2-3 suits, though my vague memory is about a similar issue -- a clone using basically the exact UI of The Print Shop.)
Re: (Score:2)
There's nothing illegal or unethical about making a clone of a popular game. As long as they don't use the same name, or any of the same art or code it's just fine.
Re: (Score:2)
But he's doing both of those things. Am I grossly misunderstanding the article? The summary? Did you read either?
Re: (Score:2)
My comment was to the immediate parent who was upset about a clone of "Cannon Fodder" that used neither the name nor assets from the original game.
As for the fellow in TFA, he's at least using the name without permission, and possibly the artwork. So he's in a bad spot if someone chooses to protect the lemmings brand. I wouldn't be surprised if he got C&Dd over this.
Re:Copyright? (Score:4, Insightful)
IIRC Psygnosis owns the rights to Lemmings. Also IIRC, Psygnosis is now owned by Sony. Unless Psygnosis was only the publisher for a third party I'm not aware of.
Good luck with that.
Not a bad résumé tactic though, however you look at it. If I had an interviewee who ported a game for kicks in 36 hours, I'd certainly file that in the "pros" column..
Re: (Score:2)
The game was developed by DMA Design (now Rockstar North), but the copyright went to Psygnosis as the publisher, and Psygnosis became SCE Liverpool. So ultimately Sony does hold the copyright, yes.
CORAL CACHE (Score:3, Informative)
Here's the link for the coral cache [nyud.net] copy....now let's see if we can get the page loaded into the cache...
Re: (Score:2)
Here's the link for the coral cache copy....now let's see if we can get the page loaded into the cache...
I don't understand why the editors don't do this as a standard practice before publishing stories to the front page. I dunno, there might be some legal issues with publishing a cc url. If they at least preloaded the content it would be available, and the original host would stand a better chance of surviving a slashdotting.
Wrong language? (Score:2)
Didn't Apple have some anti-competitive rules that allowed only Objective-C to be used in programming for the iPhone? Even if C were allowed, we're talking about generated C code here.
Re:Wrong language? (Score:4, Informative)
Didn't Apple have some anti-competitive rules that allowed only Objective-C to be used in programming for the iPhone?
Objective-C is C. Objective-C is a strict superset of C so there's no difference between C code and Objective-C except for the extensions that Objective-C has added.
Even if Objective-C didn't include all of C it would still be OK. Apple allows iOS apps to be written in Objective-C, C, and C++. These languages were chosen because they are supported under Apple's API for iOS.
Re: (Score:2)
not quite all C code is objective-C code but not all objective-C code is C code. So you can certainly write some C code feed it to the objC compiler and faithful in the technical sense call it an objective-C program; if not in spirit.
Re: (Score:2)
Which is why I said that Objective-C is C with extensions, if you discount the extensions then what's left is C. I was trying to express it in layman's terms because it's very difficult to draw Venn diagrams in text! ;-)
But yes, the intersection of the sets of Objective-C and C includes all of C but not all of Objective-C. You can write a pure C function or variable and use it within Objective-C code without any problems at all.
Re: (Score:2)
Re: (Score:2)
Didn't Apple have some anti-competitive rules that allowed only Objective-C to be used in programming for the iPhone?
No.
Re: (Score:2)
I seem to remember reading that at compilation, Objective-C is actually translated to a C code state before being compiled further. Anyone correct me if my memory serves me wrong.
This is correct if the year is less than 1988, or you are using either StepStone's compiler (I recently met someone who was, which came as a surprise) or the Portable Object Compiler. If you are using gcc or clang (the two Objective-C compilers that are capable of targeting the iPhone or Mac), then it is not.
The Game that Made DMA Design (Score:5, Interesting)
Looking forward to the Android port (Score:5, Interesting)
It would be great if I could play my favourite game on my phone!
Ah, it warms the heart (Score:2)
Its good to see Slashdot still has the power to trash third party sites :)
Portal Lemmings? (Score:2)
I misread this as "Portal Lemmings" and am now seriously disappointed.
Someone needs to make that.
Missing two (Score:2)
>"an iPhone version and a Palm Pre [WebOS Linux] version awaiting submission, and free versions for [MS ]Windows and Mac[OS] "
So you are just missing two versions- Android Linux and desktop Linux :) Of course, on desktop Linux, we already have Pingus http://pingus.seul.org/ [seul.org]
Re: (Score:1, Informative)
No port for Android? Its selling 160,000 phone per DAY! C'mon...
RTFA.
"Congrats to Aaron! Apparently he’s now thinking of extending his dev environment to include a port to Android. Let’s all weigh in on the comments below to help push him into challenging himself, yet again."
Re: (Score:2, Interesting)
After another 36 hours spent wrestling the Android audio APIs he will admit defeat.
Re: (Score:3, Interesting)
Flamebait? Sheer fanboyism! Android bug 3434 [google.com] is a showstopper.
Audio is critical for telephony and the media functionality expected of a smart phone, and Android's basis in Linux is only highlighting the sorry state of Linux audio.
Hopefully this may spur Google to develop something along the lines of CoreAudio that could be used in Linux as well as just Android and rid us of the ALSA, Jack, OSS, etc. mess that represents the worst of Linux.
Re: (Score:2)
No port for Android? Its selling 160,000 phone per DAY! C'mon...
Are they really "selling" that many or is it more like 80,000 since Verizon offers a "buy one, get one free" offer? People like free crap and will take it even if they have no real use for it.
Re: (Score:2)
What about Symbian then? 50% of the smartphone market, and their dev environment is Qt, allowing the same code to run on near 100% of the desktop/laptop/netbook market too (as well as their other OS, Maemo and presumably Meego in future).
(Of course, what one individual guy chooses to develop for is up to him. The sad thing is though, I can't help feeling that this story made the front page not because of the feat, but because of the obligitary "On The Iphone" mention...)
As for your Android comments:
licenses
Re: (Score:2)
Do I smell a butthurt fanboy?
Re:But can he actually publish his iPhone version? (Score:4, Insightful)
Only if you are Adobe or someone else on Steve-O's shit list. They relaxed the rules to be even less consistent and harder to predict.
Re: (Score:2)
Dev environment, no. Code translator, no, if the project was originally written in Objective-C, C, C++, or JavaScript. Since it was written in C, it doesn't even come into play.
But bonus points for noting that Apple is fascist! Take that, The Man! Woo!
Common language between iPhone and Windows Ph 7? (Score:2)
Code translator, no, if the project was originally written in Objective-C, C, C++, or JavaScript.
So in what language should I write an app's business logic if I want to target iPhone (Objective-C++ only) and Windows Phone 7 (languages that compile to verifiably memory-safe CIL only)? C++/CLI is a dialect of C++ that compiles to CIL, but its syntax for "handles" (the verifiably memory-safe counterpart of pointers) is a syntax error in Objective-C++.
Re: (Score:2)
I don't really think the cost of supporting WP7 is likely to be met by the potential returns on the platform.
But if you really want to go there, and you really want to maximise code sharing, and you're OK with throwing away large feature sets of both platforms to achieve that, you can use C++ with #defines to work around the syntax differences for pointers. You can't use any of the other C++/CIL features, but then, neither can you use any of the Objective-C++ features.
I'm not defending Apple's policy.
Common language between iPhone and Xbox 360? (Score:2)
I don't really think the cost of supporting WP7 is likely to be met by the potential returns on the platform.
Let me rephrase: Xbox Live Indie Games. Like all Windows Phone 7 games, those Xbox 360 games not published by a major company use XNA, which runs on the .NET implementation of the CLI.
if the platform itself forces you into vendor specific languages, it doesn't seem necessary to have it in legalese.
The Common Language Infrastructure (ECMA 335) isn't vendor-specific. Besides Microsoft, the Mono project implements the CLI, although only Microsoft implements the XNA API.
Re:No love for Lemmings 2? (Score:5, Funny)
Bill
Re: (Score:2)
+1 funny
-1 people at work are now looking at me funny )-: