Suggestions List

I know I’ve posted a few too many of these, but I’m soon to release a game later this month with Codea (yay!), and I thought I might post a few features in Codea that could have been helpful.

Different media storage method

We’re developer on this forum, not people who have never seen a computer before. We don’t need a unified, simple media storage method. It’s super hard to find an image in a sea of images, not to mention without searching and folders. Here’s how I think Codea should do it:
There are 3 types of places to store media: The global, cloud based (iCloud/DropBox/Box/Google Drive), and project specific locations. You can put whatever types of files and directories in there that you want. You wold also be able to open files in Codea from other apps to store. Then, we access the files by saying something like sprite("Global/Cloud/Local: Image.png"). That allows us also to create our own data types or create interpreters for other data types.
More media readers

A developer shouldn’t have to leave his/her favorite IDE for the rest of a project just to play a sound file. That’s just not fair. Codea is far more than a prototyping app… It’s actually useful… We can release real apps with it. It’s about time we get to play sound files in our app. I would also love to be able to display SVG files in Codea. Eventually, as people’s interest in 3D inclines, the ability to natively display Blender models would be great.

I usually don’t use snippets for multiple lines of code, that’s what functions are for. Still, sometimes there are lines of code that are pointless putting into a function that I need to repeat. Bonus: Create a place where users can upload snippets to and download them.

I could talk all day on why this is important. First of all, I’ve never had a successful undo in Codea without it completely messing up my code. Never. I’ve had to rewrite complete functions because of that. Not to mention when you make some code in your game, then think you found a better way, then be horrified when you discover it doesn’t work, then you have to revert it back to the original version. Anyways, versioning would be great.
Web views

Let me start of by saying I DO NOT want UI elements. There is almost no point in it. What I’m asking for is the ability to have hybrid apps, in other words apps that have native and web functionalities.

If we had versioning, this wouldn’t be that important, but we don’t so this is really important.

There was a time when Apple was extremely strict about App Store submission rules, but they’ve loosened up on coding app rules. TTL already has the code for sockets, but last time they included it, Codea got rejected. It’s always worth a try to submit it with sockets again.
New libraries

Here are some libraries that could become useful in other types of games and apps:

  • LuaFileSystem
  • A JSON and XML library
  • Gesture/hand writing recognition (MyScript)
    Engine only libraries

What if the Codea Runtime had access to features like GameCenter, iAds, IAP, etc., but there were only placeholders for them when you run it in Codea. That would be cool.
Other little things

Different project ordering types
Adding a “0” in from of all my important project to get it listed first in the project list can be annoying. What if we could order the projects by when it was last open, created, or by name? That would be useful.
Reording lines
It’s a hassel to reorder line. If we could just tap and hold on a line then move it, that would be a life saver.
Quick page switching
One thing I love about Chrome is that you can switch tabs just by swiping from the side of the screen. The same would be useful Codea.
Many developers need to know the general area where the user is to do things like find weather, find nearby players, etc.
Disable assistant UI
While it’s really nice to be able to quickly change a number or select an image, sometimes that UI get in my way. It’d be great to be able to disable it.
Things I’ll never get, but would be cool

Forum notifications
I find my self constantly procrastinating by looking at the forums instead of coding. If Codea simply notified me when I got a new notification, then I’d only have to check it when I have to.
The sharing function
It’d be cool to be able to open files in other apps from a script.
Android runtime
If only you had a bigger team.
Codea write your app for you
Now that would be sweet.

OK. Hopefully, this is my last list of suggestions on this forums.
P.S. Once I finish and release this app, I’ll FINALLY start working on the Codea HTML runtime so you can run your app on any platform.

Forum notification: have you seen you can rework your profile and define if you want notifications, mails etc…?

@Jmv38 - Yes I have, but I kind of ignore my email until someone tells me I need to read it. Thanks though.

Actually - I’d call you out on the UI thing, you might not need it, but I think there are a lot of dev’s that would like to be able to add simple native buttons and register a callback with them.

It would open up Codea to a whole new class of users - you could actually prototype and even create fully fledged “business” apps on the device - what a great way to sell a concept to a client or business.

Just my $0.02

@TechDojo - I see your point, and it ran across my mind, but there were a few issues:
There’s always Apple. Rarely are you allowed to submit an app that codes UI elements. iLuaBox had to remove their UI elements. Also, I haven’t seen many utilities made with Codea other than Spritely and the app Mark demoed earlier.
I’m not against it, I just think that there are more important things to do.

Good thread @Zoyt !, although I’d challenge your statement: “We’re developer on this forum, not people who have never seen a computer before”. I think Codea should ensure any future developments encompasses a wide range of users from beginners to more experienced developers. I’d be intrigued how many Codea users aren’t hardcore techy types in their day jobs. Hmmmm - I think we’d be surprised :wink:

I agree with your list, heres a few others:

  • Better project browser (with date sort etc…). Not everyone will want to run a remote GitHub/Dropbox integration for saving projects - so a slightly better system of navigating projects locally will be very useful (its quickly becomes quite cumbersome at the moment)

  • Better audio handling. MP3/Wav/aiff with control of start/stop/play from a point and volume control etc… support natively from within Codea would be really useful. I guess users shouldnt have to go into Xcode/Objective-C to get this sort of functionality and should be integrated ‘out-of-the-box’. Midi support would also be welcome.

  • Bluetooth support. Great for multiplayer games and would open Codea up for even more interesting applications.

I’d love a nice 3D Physics engine (like Havok!) - but I think this is a way off… :smiley:

Right… Forgot the BlueTooth one, but not many gamers use it anyways… But it’s lots of fun if it’s for personal use.

I sure hope the GPS isn’t the in “never get it” category. I desperately need it, and have been holding off on projects just waiting for it to show.

Udp socket should be on the list.
I started on node.js yesterday to work on a server and the way node.js is only one thread with callbacks makes me think, that must be possible i Codea. We have callbacks allready in the http.request thing so why not udp ?
Maybe I misunderstood something, but this is the way I see it

And now we are at it. I would love an option to turn off all the “help” elements in the editor

Re Peter

@Mark - I thought of you when I wrote it, but I don’t see many people using this function in games other than knowing the user’s location. That being said, I see that you are interested in making apps other than games in Codea, which is cool. I’ll move it to “Other features” because I want to know the general area that the user is too.
@macflyerdk - Apple rejected this feauture before, but since Steve has left, they’ve REALLY loosened up on their rules, so I’ll add it again. By help elements, do you mean the buttons to select a sprite, or dragging on a number to change it? Now that you mention it, I agree.

Dragging a number I did not use even once, but introduced errors in my code by mistake several times by accidently dragging the number.

As for the help items I refer to the white bubles and similar that hides the code underneath for a while to help decifering what a function does. Not helpfull but very very much in the way.
Edit: of course helpfull for a beginner, but if you have used a function just a few time you know what it contains.

I wish all this was a double tab, then it wouldn’t get in the way. Do double tap and drag on a number, or double tap on a sprite to choose a sprite.


A better project/example browser (with folders an subfolders) would be great. And it would be very useful to have a library of tabs that you can include in a project (and a library browser), that way you can polish up your classes and save them in the library (as named tabs) then only include the ones you want. Including whole projects (as can be done now) can drag in stuff you don’t want. Similarly, the ability to import/export library tabs (e.g. to Dropbox) would promote better tool sharing… Or is that an Apple no-no?

And I totally agree with macfiyerdk about dragging on a number… As neat an idea as it is, it has been unuseful and an actual pain. At least have a way to turn it off!

Finally, a way to edit project metadata would be nice. Rename, change description, … Or maybe I just have not found the way to do it.

@JimK - amen to the better project / browser, my list of small apps is getting ridiculously large now

@jimk you can change name and description. look up saveProjectInfo()

There was also a clever way shown on one of the forum projects to only include part of a library. I’ll see if i can dig it up. But having it built into codea would be awesome.

I’m looking into integrating a music and sound api very soon. What would you guys say you want most in terms of functionality? I was thinking of an audio picker similar to the current sprite picker for selecting music and sound. Sound would work something like this:

soundObject = sound("Dropbox:soundName"[, loop, volume, pitch, pan])

The last 4 parameters are optional:

• loop determines if this sound effect loops
• volume determines the volume of this sound effect
• pitch determines the pitch or speed of playback (2, would the sound twice as fast, 0.5 half as fast)
• pan determines the left / right stereo balance of the sound (i.e. -1 = left speaker, 0 = middle, 1 = right speaker)

The object returned from sound when playing a sound file is a soundObject you can use the source object to modify parameters

soundObject:volume(volume[, time, callback])
soundObject:pitch(pitch[, time, callback])
soundObject:pan(pan[, time, callback])

Music would work something like this:

music("Dropbox:musicName"[, loop, volume, pitch])
music.volume(volume[, time, callback])
music.pitch(pitch[, time, callback])

This lets you change the current music and alter its volume or pitch on the fly, allowing for fading, changes in tempo etc.


We are looking to revamp resource access, allowing for folders and searching etc, but this will require a lot of thought to get right.

I like the idea, and I’m excited to get this feature… I do think that sound and music are too similiar, you could just use sound() for your music.

@Jordan: Actually, there are some differences that make it worth separating the concepts of music and sfx. For one, iOS can do hardware streaming of MP3 files, but only 1 at a time, so you usually want to use a music subsystem to take advantage of that when possible. SFX are often short, and there are many options/tradeoffs regarding quality and compression for certain kinds of sfx, and sometimes you want special handling (like looping, dynamic pitch/volume adjustment, etc.) and you often have several playing at the same time, so you usually want a different subsystem for those.

Ahhh, I see. So music should have a separate function because of apples speed ups and little behind the scenes improvements? Then go ahead!