What language was used to program the 'Angry Birds' app? [closed] - programming-languages

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I've never programmed a game, but have about a dozen years programming interfaces. After playing a few games on my Android phone, I'm stuck wondering what language is used to program games like Angry Birds, and how such graphical manipulation can happen. Native languages or some cross-platform code?
Thank you!

I'm not sure but considering that quite a few .lua files are inside the angry bird app folder, I'd say they used LUA at some aspects.
But from what I've heard, LUA isn't a primary language, just something to script with.
That said, I'm not a obj-c programmer either, so take my word with a grain of salt.
Follow up link
https://web.archive.org/web/20120502071633/http://blog.anscamobile.com/2010/04/lua-the-lingua-franca-of-iphone-games/

Android apps are coded in Java with the android development kit, iphone games are coded in objective c
Android dev kit is available here
http://developer.android.com/index.html
iphone (iOS) development kit available here (Caution requires a mac)
http://developer.apple.com/devcenter/ios/index.action
As the two languages are both based on the C syntax there's a lot of cross compatibility between the basic parts of your code however the interactions with the phone are both done through the respective sdk's so you're gonna have to make changes to account for that. Also worth bearing in mind is that objective c on the iphone isn't garbage collected so you'll need to worry about memory management!

AngryBirds (and some other games) are using C/++ code and the NDK. Sources: What language was used to program the 'Angry Birds' app?, http://www.gamasutra.com/view/feature/6481/postmortem_vector_units_riptide_.php

Has to be C for the core at least. If I was them I would write the core in C and wrap java around it for android (I think you can do that) and objective c for the iPhone (I know you can do that).

I always assumed that these developers program core functionality in c/c++ and then use native development kits to link the two. For example I know in android development you can use the NDK to wrap java around c/c++
http://developer.android.com/sdk/ndk/index.html
Ironically Java isn't the "build once, run every everywhere" language in this case :p

Related

Atom built on Node.js isn't that a recipe for performance flaw? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
Note: This is not an attempt to bash Atom in any way. These are the questions I had and it's overall about the choice of Tech Web instead of a Native one.
This is me trying to understand the goal of it, and if it's a solid tool to use in general.
( I have Atom, and I use it sometimes - test driving - )
Why wouldn't they make it native which would be faster and solid?
Is Atom focused on entry level Web Developers? Is it supposed to be cool instead of functional?
Is it a reliable and solid tool for "real" / heavey programming (with languages like C, C++, Java, etc)?
Yes it's at its begining but why would they go with web tech (node.js) to start a product that would turn out to be slower than with native tech?
It can't even handle big files!
Why is Github advertising Atom (https://www.youtube.com/watch?v=Y7aEiVwBAdk) as a tool for programming machines (rockets and low-level programming) with Javascript!!!
And again: Is it supposed to be cool instead of functional?
making it native means you need to compile it to use it. Since one of the goals of Atom is to make a hackable (to the core) code editor, making it in javascript, css, and html allows people to use it \ changing it without compiling any code which allows a quicker flow. Since it's more of a code editor+ than an IDE, basic functionality isn't harmed so much by the performance difference.
no. It's meant for real engineers. the kind that wants to mess with the code editor they work with and tweak it to their needs. This approach allows you to create extensions a lot easier than standard IDEs and code editors.
yup. real programmers usually do real programming. It doesn't matter if you use notepad or whatever. Actually, a lot of programmers prefer the simplest text editors (and some don't). One of the reasons programmers give for that is that it keeps them sharp on all the little things that IDEs usually do for you.
Node is an exciting JavaScript language for web development that has been growing in popularity in recent years. It started out for small development projects and has since penetrated the enterprise and can be seen in large companies like Microsoft, eBay, LinkedIn, Yahoo, WalMart, Uber, Oracle, and several more. Most of them actually improved their performances since the move. Just a few examples [taken from the MEAN Machine book by Chris Sevilleja and Holly Lloyd]:
Yahoo started experimenting with Node back in 2010. At first they just used it for small things like file uploads, and now they use Node to handle nearly 2 million requests per minute. They have noted increases in speed and a simpler development process.
LinkedIn began developing the server side of their mobile app entirely with Node. They were previously using Ruby, but since the switch they have seen huge increases in performance, ranging from 2 to 10 times faster.
PayPal has recently jumped onboard and began migrating some of their Java code to Node. They began experimenting with just their Account Overview page, but once they saw a 35% speed increase and half the amount of time spent on development, they started moving all sites to Node.js.
It's just a commercial. It's suppose to pay tribute to old technology commericals like the AOL commercial from 1999 https://www.youtube.com/watch?v=1npzZu83AfU
It's supposed to be both. For a more detailed answer, read the previous bullet which answered the question the first time you asked it ;-).

How to create Flash animations / movies on Linux? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
This is more of an assignment work. I'm trying to help a friend debugging his Flash animation. Now, when I'm at his place and at his MacBook, he's using Adobe Flash to create his animation, with those timelines, the AS3 editor, etc.
Now, I want to help him while I'm at home, but I don't have a Windows or Mac computer, and I don't have a Flash license (he's got his from the school he's going to).
I know about osflash.org, but can I work the same way as he does in Flash? I need those timelines, and obviously I need to compile and preview the .swf files.
I should explain, I've never worked with Flash before, and the IDE is quite weird to me. The only way I help him, is by providing general programming skills (since AS3 is just another OO language). I was thinking of installing a cracked Flash version in a Windows VM, but that's not how I'd like to work.
Is there a better solution to this?
He's doing his work in AS3, as I mentioned.
Since you are not much familiar with the flash IDE you should be not at problem. Since the only problem with linux & flash developers is lack of decent IDE.
AS3 programs can be compiled with the flex SDK. So you simply need to download the SDK for your linux ditribution. However do note that there are no timelines in case when you develop applications with code. Instead you work with Timer events.
Flash IDE actually hides the Timer implementation in a easy usable (neat) way to provide anyone to create an application quickly.
FLA is a proprietary format for Flash CS and earlier files. No, you cannot use them with Flex compiler, because the later is an OOS software. But you can tell your friend to avoid using them. It is in fact very common to use them only to generate graphic assets, but not the code. The typical workflow is to compile SWC or SWF to use as a library and to write the code in another editor.
Anyways, some practical things:
Developing AS3 proper, you can use Intellij IDEA (some people even like it and use on other OS then Linux, to be honest, I'm not a big fan of it, but it is of the same quality as the most industry-standard level IDEs)
Your another option (which I'm using) Some good soul "ported" Flash Builder for Linux (Flash Builder is originally an Eclipse plugin developed by Adobe). It's story on Linux is fogged by a mire of inconsequential decisions. Once there was a trial version, but Adobe never released it for Linux. The trial expired, then Adobe granted continuation for the trial version. Later, they seemed to abandon the product entirely. I'm not sure of its current status, but you can find it here: https://code.google.com/p/fb4linux/
Your another option, absolutely legal, but problematic: FlashDevelop, it runs considerably well in virtualization and the devs made an effort to ensure the best they can that the virtualized version runs fine. It also runs (to an extend...) under Wine. I tried the later, but I tried it a lot time ago, it was far from being perfect, but it was workable. Here's the thread at FD forum on this: http://flashdevelop.org/community/viewtopic.php?f=9&t=7621
FDT (from Powerflashers, a commercial IDE based on Eclipse) is said to run on Linux - never tried.
What I also used: Emacs with actionscrip-mode - it is barely a syntax highlighter. While using it I added some functions to run the compiler and debugger, but they are too crappy to share them :) seriously. So I won't.
More options:
Haxe, is another language that compiles to SWF. Less well-known, but considerably more advanced and more modern language. Besides compiling to Flash does a whole bunch of other things. I've seen it used inside MonoDevelop http://haxe.org/com/ide/monodevelop (haven't used myself). Similarly, it should be possible to use it inside FDT.
Haxe mode for Emacs (I'm currently trying to improve it, but it's not there yet), hopefully, in a couple of month it will be. Here's what I've gotten for now: https://code.google.com/p/haxe-mode/
Graphics:
It seems unlikely that you can find an editor matched to Flash CS in terms of editing vector graphics for Flash, but MXMLC (Flex compiler) can fairly well compile SVG. You can thus use Inkscape to produce some non-animated graphics... but YMMV

Wish to learn a new programming language [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I wish to learn a new programming language but there are so many out there! So thought I'd ask here if there are any that correspond with what I wrote in this list that you might know of:
Making applications with GUI
That would preferably run on any system, preferably Windows (I run Windows 7)
That would not need a hardcore IDE and hopefully no compiling
That is not incredibly advanced (Hard syntax paired with OOP etc.)
That does not need any 'platform' or 'component' installed to work (can be opened with a click, say an .exe file or any other file type)
I already know:
HTML, JavaScript and PHP
Thanks in advance for your input.
I'd recommend Python to anyone.
You seem to have some mutually exclusive options here.
For example, no compiling and opening an .exe. An exe file is generated via compilation.
IMHO, Qt probably best suits your needs. It runs on just about everything, doesn't need an IDE (though qtcreator is a fantastic one, I suggest trying it before you choose not to use an IDE) and is easy to learn and well documented.
If you want compile-less then you'll need to use the python or other scripting language bindings too it.
I would suggest C-sharp / F-sharp combination with WPF thrown into that to get GUI's going...
It a pretty rough learning curve but the combinations are endless...
A couple things to certainly look into:
PRISM
M-V-VM ( Model , View, Viewmodel)
If you are interested in an other back-end persistancy try going into object databases, such a great new world opened up for me when I discovered all the things you can do with that... ( DB4O is my preferred one at this moment.. it has loads of info and a very active community )
It is only limited by your imagination ;)
This is one of those questions of having 10000 people going to an Ice cream shop and then choosing which flavour they want. So far I have worked with Delphi and C#, I am doing SQL, Asp.net and javascript, well, basically!
The answer should be somewhat simple. Go check out which programming language fits your needs, and is in great demand in the working world. If you want to program websites for companies, then PHP, ASP.NET and the older HTML is for you. As far as I know, flash is also coding.#
Another way to look at this question is not only the availability of the language you seek, but its future, if it will become obsolete or the coding language of the century.All coding is the same, but some are more rigorous in certain tasks (like C# and delphi are good languages to build forms applications to handle tasks for data manipulation, integration and whatnot.)
The answer to this question is to explore! What is Your flavour? Sitting in front of a desk doing CRUD operations and staring into a gui which has countless buttons and textb
oxes, but real in-depth code, or to start into a rich gui with XML based code?
I recommend HTML5+Javascript.
You can use Canvas or SVG for
graphic.
It works depending on the browser. So
any OS or system can use it.
Javascript and HTML can be edited in
any thing for example: notepad.
You can write your JS using OOP.
How to open a HTML file? just
double-click on it.
Have fun :)

What's the most cross-platform friendly coding language? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
Let's say I want to create FPS game, let's say clone Crysis so everybody understand what type of graphics & performance I'm after. What's the best code to write this game with so it's as easy as possible to port it to all the common platforms? Of course I want the application to feel and be native to the platform. This also means that it should be easy to take advantage of Snow Leopard's new features like OpenCL and Windows 7's new features. I realize that GUI has the written separately for different platforms and that's not a problem.
So my question is that what's the best language for the job. I'm not looking for one-for-all solution but more like language for the core. I guess one way to put it is to say that what's the best language if you need to port the same program to Windows, OS X & Linux? Java is out of the question.
C (and now for some padding to reach 15 chars)
Have you ever seen the Blues Brothers? In the movie, Jake and Elwood go into a hick bar to do a gig and ask what sort of music they like, to which the woman behind the bar answers:
We have both kinds: country AND
western.
What has this got to do with this question? Well, you want to create high performance 3D graphics and you're asking what language to use?
We have both kinds: C and C++.
You probably want C for your lower level graphics performance, either the variant of C89 that Visual C++ supports, or use MinGW and gcc C99 ( VC++ 2008 doesn't support declarations in for loops in C99 code, which is very annoying, but then they didn't do that right in C++ for years ).
Admittedly, if you're taking GNU with you and running full-screen with your own GUI then it's not really cross platform any more.
You also probably want either Lua or Python or another scripting language which plays well with calling C to give a sensible higher level way of controlling the game.
C++. You can avoid millions of "if #define"'s for platform dependent things and instead use inheritance (derived classes for each platform and client using/knowing the abstract base class). A few exceptions to this can be made for the performance critical parts.
There are also lots of libraries for cross-platform development.
I really recommend using Lua for any scripting. It is an ANSI C library so that means that a: it can be compiled in (at least most) C++ compilers, and: if there's a C compiler for the platform then you can use lua. It allows for significant extension of flexibility of your game and if you want it will let your players customize it too!
Java is probably one of the easiest to learn, personally. Java though doesn't have have that great of a graphical system, it needs more code to support the graphical display if you are coding "GAMES," if you're going to code a website though choose JavaScript, CSS, and HTML/5. Or use only one of these languages normally best to choose two that best fit your comforts... =) For an FPS, I would recommend for beginners to use Java, if you have a good sense in what you want to create and it is a more complex game then use C# or C++, just because it uses less hardware if you want to make more complex games to run on multi platform.
Whatever you use you're going to have to write platform-specific code. Languages like Java or other interpreted languages (Python be my personal preference) are going to allow you to use a lot of commonalities. However, since it's not a quick and simple project, I'd suggest </intelligent-looking-padding> C or C++.
Edit: GUI doesn't necessarily have to be written from scratch for every platform. Check wxWidgets.
Most cross platform games are written in C++, because it is very good - performance wise; and its more user friendly than C. Games need maximum speed & efficiency!
You can hide away platform specific stuff behind certain abstractions and API's that you write so that you can port it easily. You can also use a cross platform framework such as Qt or wxWidgets for the window & GUI elements. Adding a scripting language to non critical parts is also nice. :)
As most have noted here, you are almost certainly going to need C/C++ for your graphics in the end particularly for your high performance (graphics) requirements.
However there might be an opportunity to develop the "core" as you call it, in a scripting language which in turn is easy to embed within a C/C++ application. In which case, the top 2 scripting languages to look into would be Lua and Tcl.
Lua in particular is used in WoW among others I'm sure. Tcl on the other hand has more "batteries included" (libraries).
I'd recommend C++ for large cross-platform projects as well. But I think what's also important are the build-tools you use. For example SCons or CMake can create project files/makefiles for most compilers under Windows/Linux/MacOS.
C is a good language, but generally you want an object oriented language for programming game. If your looking for speed, go with C++, but if you don't have much programming experience, go with python. look into the sfml and pygame libraries.

Lego Mindstorms Programming - which language/IDE do you use/recommend? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
I'm new to it and currently using the visual flow-chart like language that the Lego Mindstorms IDE uses. I'm impressed with how readable the diagramming language is but missing the flexiblity of actual code. I'm imagining complicated projects I want to try out and don't really want to implement them as a gigantic flow chart! lol :)
I know there are other languages/IDEs you can use but not really sure what they are or which to use. What IDE/language do you recommend for programming Lego Mindstorms projects?
I'd prefer an IDE that still allows me to hit Run and send the program down to the NXT brick via bluetooth and run it immediately.
UPDATE:
I ended up choosing lejos. Mainly because I've just started learning Java at work which is very similar to C# which I'm already familiar with. I would recommend Lejos since Java is a great high level, feature-rich language and there are nice IDE's for it. Eclipse is a great IDE which lejos has a plugin for and ant build scripts make building your project, loading it to the NXT brick and running it on the device a one step process. Lejos does require special firmware on your NXT brick but that went fine and you can always put your old Mindstorms firmware back on later if you want.
If you want to check out other language and IDE options I'd highly recommend this chart I stumbled across: http://www.teamhassenplug.org/NXT/NXTSoftware.html
FYI, I came across this extremely helpful feature comparison chart of different languages which you can program the NXT in:
http://www.teamhassenplug.org/NXT/NXTSoftware.html
Another option is Microsoft Robotics Studio.
I think this is a good book about programming your Mindstorm NXT with the NXC (Not eXactly C) language.
"LEGO Mindstorms NXT Power Programming: Robotics in C" by John C. Hansen
With a small amount of tinkering you can probably get NXC working with whatever your favourite IDE already is.
We used NQC for programming Lego Mindstorms. We was to build a four-wheel robot to gather artificial rubbish(pieces of bead and paper) in a competition. After testing different programming and IDEs I concluded NQC was right to me.(because I knew C and NQC had many good tutorial materials).
And the point is that you can modify your code easily with NQC. For example, at the competition, we should change our code in oder to cope with new challenges in our robot's environmetn( they changed MDF with carpet!)
by the way, We obtained a good result (third place) :)
MATLAB actually has a LEGO MINDSTORMS NXT Toolkit, if you're interested at all in using MATLAB. You can send commands via Bluetooth connection or create embedded controls that are downloaded to the robot. I've seen it discussed on some of the MathWorks blogs, and there are some demos posted on the MathWorks File Exchange (here's one).
You can use nxtOSEK as operating system on the NXT. Then you can use plain C to write your code.
Back in the day, NQC was the way to go; A good intro to C style programming, with fewer pitfalls.

Resources