@invulse
While not all scripting languages, I've previously used XML, LUA, and yaml as additional languages in a project.
LUA is a very fantastic small language that only takes fits into into ~40kB of C, and super easy to add to any C/C++ project. You can then "link" C/C++ functions to LUA functions and do some really quick scripting. Many AAA games use it, including World of Warcraft, Crysis, Crackdown, Fable, and a dozens more! I'm not entirely sure if LUA is allowed with the new iPhone developer EULA. It is based on C, and it can be used with an Objective-C wrapper called LuaForge, but the language itself is LUA.
yaml is a great language that can be used to describe data. It's very nice for config files, though plists are very easy to use also with the GUI editor. yaml is similar to XML, but it's designed to be readable by a human which makes editing very easy. It's definitely possible to implement a class that reads a yaml file and renders the level based on that.
Squirrel is another fantastic little language. It's meant to have a very small footprint, and is essentially LUA with a C syntax instead of a BASIC one. I've never used it in any application other than playing around with it, but it also is very ideal for event driven applications like games.
There really are dozens of great languages to pick from, which is a shame as there are soo many good ones.
For my project, I know I will use plist/XML files to describe each level. They will be passed into a levelParser which renders the level. I am considering using LUA/Squirrel to script events or do rapid prototyping, though I'm not entirely sure how I would use them to their best.
Being this is my first time working with the iPhone for more than a few hours to toy around, and me never working with Cocos2D previously, or ever working on a Game (beyond 10% completion at least) I don't know what to expect when it comes to managing lots of items on the screen and rendering multiple levels, so I can't really say what I might end up needing in the future. So, for the time being I suppose, I'll do everything in Objective-C. If I see I'm doing one particular thing very often I may break it out into another language that is quicker to work with.
@drPedro:
Interesting. I've never really viewed Models in that way. Being a Web Developer primarily, I consider Models to be something that is based on data from the MySQL Database. My class that grabs the models is the controller, and the View is my templating engine.
I have a singleton called SingletonGameState which contains information about my Box2D world, and my Cocos2D world (active scene, layer, etc.) as well as some commonly used pieces of info (screen size, though that's easily obtainable from the Director but calling the shareDirector is annoying if you do it often). This singleton would be considered a Model then?
What about a Layer? Even though it's technically the Controller, couldn't it also be the Model? I mean, my Layer contains arrays on what are the currently living Actors in it, as well as what Actors I plan to delete on the next frame. Yet the Layer is also a View as it is the parent to the Sprites currently visible in that Layer.
Sorry if I've gone in circles with my definitions. It is rather confusing and I'm trying to sort it out. I've never really explicitly defined what my Model, View and Controller were in any of my projects. I just sort of went for it.
-robodude666