Fully-fledged PC games?

Hello! I am planning to make a 2D top-down RPG and exporting to Steam with PC and gamepad input, is this possible with Codea?

I’m wanting to move my workflow to iPad as I already use Pixaki and Procreate for assets.

Just need to know before I buy :slight_smile: thanks.

@mega - I think it should be but you would have to master Xcode to export to other systems.

Ok! Thanks. :slight_smile:

PC games are absolutely not within Codea’s scope. In fact, PC games are probably out of iPad’s scope.

The only iPadOS app I’m aware of that can actually build apps itself is Swift Playgrounds (it can’t do it yet, but it will be updated to allow for it soon, apparently). Codea can export to Xcode, so that you can build it on a MacOS computer. Both of these deal with iPadOS and iOS apps only.

Right now, Codea can only take input from a touch screen, a keyboard, and a mouse/trackpad. Some of these inputs are limited by the nature of iOS. For example, Codea’s touch API is basically a Lua wrapper over Apple’s native API, if I understand correctly.

I really don’t understand how you would get any Codea app to function outside of Apple’s ecosystem, though I hesitate to say it’s impossible. If your goal is to make a Steam game, I suggest exporting the assets you make on your iPad to a computer running a game engine like Unity or Unreal or Godot. A complete workflow on an iPad just isn’t possible as far as I know— and to make it possible would require much more work than just using a computer.

But if you want to test coding ideas or draft a concept or make a fully fledged iOS/iPadOS app, Codea is great for those things.

@calm_dolphin - I thought the latest generation of Xcode was cross platform.

One other thing you could consider is to build your prototype on the iPad and then transfer to Love2D Lua on a PC or Mac. You can the package from there to PC, Mac or Android.

@Bri_G Xcode does support cross-platform libraries, but I believe Xcode projects generated by Codea make use of Apple-specific libraries, so you would need to change dependencies, which isn’t always a simple task.

Speaking of dependencies, I hadn’t heard of Love2D before. That method actually seems plausible, though still tedious and in all likelihood more work than using a computer would be IMO. That said, I did some research and found an old wrapper program for running Codea scripts with Love2D at (https://github.com/mrspeaker/LoveCodea). It hasn’t been updated in ten years, and it was apparently never fully functional, but it’s a great proof-of-concept. It would be super cool if we could have something like that built into Codea. Imagine publishing a Steam game that was developed entirely on an iPad! That would be an amazing milestone for Codea.

Thanks @calm_dolphin I guess we need to see what the future holds. Thanks!

@calm_dolphin - I have used LoveCodea and updated it a little, but it’s a huge set of code and Love2D has made many changes over the years which would mean a major overhaul for the wrapper. It also doesn’t support Craft but there are a couple of 3D engines built for it. A lot of work.

A stand-alone Codea engine would be the best way forward, the existing one is very old.

Hi @calm_dolphin Short version: it may not be worth updating LoveCodea for your app needs with a game.

While trying to get a Codea program running under Windows, I updated LoveCodea to catch up its versions for changes to Lua, Love2d, and Codea a few months ago. As noted by others, there are still gaps between features in the languages, and “wrapping” requires experimentation and detailed study of the actual behavior of the language functions/types and not just what is documented. (i.e. Unit tests for every function in Codea which was wrapped.) Regardless of that, after the updates I found the result very slow and a huge memory user, making “wrapped” Codea apps unwieldy to run. I ended up building my own Codea language wrapper for Love2d from scratch, tailored to needed features for my app. Even with that approach there were performance issues. Still, it was a great learning opportunity for investigating the languages.

You may want to consider other approaches to get your app over to a PC version unless you want to invest in that amount of experimentation.

@CubicleBill Was performance really that bad? I haven’t tested LoveCodea extensively, but I didn’t notice a huge hit on performance. Would it be possible to maybe share your updated version of LoveCodea or your own wrapper?

@Bri_G Do you think updating LoveCode (Craft excluded) would be feasible?