Codea Craft - Official Thread

Codea Craft

We are proud to officially announce the development of Codea Craft. There have already been several unofficial threads, twitter posts and videos based on pre-alpha versions of the update. We are now ready to release more information and answer questions related to this update. Codea Craft will be added to the official roadmap soon.

What is it?

Codea Craft is a new addition that simplifies and extends the 3D capabilities of Codea via an entirely new API and set of subsystems.

What Features will be included?

3D Physics!

Feature Breakdown

  • World() - The Codea Craft world, containing all the objects within it
  • Entities - Flexible objects in the world that can have a number of components
  • Components - Special modular components that can simulate physics, render graphics and more
  • Cameras - Physical representation of camera with support for changing FOV, orthographic rendering, raycasting and more
  • Mesh - Supercharged replacement for the mesh class
  • Model Loading - Support for loading .obj models (with future support coming for FBX and skinned meshes)
  • Materials - A completely new system for controlling the appearance of objects with support for lighting, textures and more
  • Rigidbody - Simulates 3D rigid body physics
  • Physics Shapes - Various 3D shapes for simulation including boxes, spheres, cylinders, cones, convex hulls, meshes and compound shapes
  • Physics Joints - Various 3D constraints for simulation including hinges, welds, ball-socket and more
  • Voxels - An entire sub-system dedicated to voxel rendering, customisation and interaction
  • Math Improvements - support for quaternions and associated helper functions, such as slerp, angle axis constructor and more
  • Comprehensive Noise Library - Tree-based 3D smooth noise including perlin, rigid multifractal and many others
  • New Example Projects - example projects showing how the new features work with step-by-step guides

When is it Coming Out?

There is a tentative release date for the end of the year but nothing solid just yet. Closed-beta will begin soon.

Will it be Free?

While we love giving out free updates wherever possible, Codea Craft represents an extraordinary amount of work on our part. We aren’t sure how monetisation will work at this stage but we want to make this fair and reasonable for both new and existing users. We are open to suggestions at this early stage.

I don’t see why adult Codea users can’t pay full price, it’s not a huge amount of money, I assume. however, I would suggest a discount coupon for students, if that’s possible, as they are very important in driving the success of the app.

Can’t wait - please add me to the beta list :sunglasses:

And yes I agree with @Ignatz - I have no problem paying the going rate for this app, Codea is still the single most used app on my iPad (not including iBooks 8-))

I’d be interested to see how this will integrate with / complement the existing Codea app and how exporting apps to run natively will work.

If Codea Craft is being integrated with Codea then it might make sense to add it as an extra IAP, which could open up a whole new direction for Codea with extra downloadable modules / asset packs etc etc

Is this a Codea Update?

If I be in the Beta list? Will my projects be in examples? Just asking…

@John - Thanks for clarifying that, I thought it would be a standalone product (a bit like Codea scratchpad), the fact that it’s a Codea update is great news.

And I don’t mind a reasonable IAP to purchase the extra functionality - god know’s I’ve more than my fair share of use of Codea over the years :slight_smile:

@Ignatz Yeah this is more about how to charge for a new feature in a way that’s fair to us and our existing user base.

@TechDojo, your suggestion to add the feature as IAP isn’t a bad idea, the only drawback is that user’s wont be able to test-drive the new features or load up forum projects that use it. I was thinking that the new examples would be read-only but still functional if Codea Craft isn’t unlocked. That way the examples can still show you what features you will get.

@TokOut, yes this is an update to Codea specifically (not a standalone product). If you are part of the beta then you are free to submit example projects to us although there’s no guarantee they will be added (or we may ask you to fix or comment them as necessary).

Thank you for the feedback so far.

It cost money :frowning: I wished it, but I will not be allowed to install it. My father won’t pay. Well grates to anyone who receives it!

Also will Bluetooth and server writing be possible there?

Is World() a class? Wait it is reserved?

Beta list? IM IN

I do like that its build in into Codea! But I kinda dislike the idea of an API (pack) inside of another API. I also dislike that it has its own Mesh() function and a different syntax (funtions beginning with capital letters)

I think Codea Craft should be added as an IAP (but free viewer). This would be the best compromise I think.

There’s currently 22 names listed as beta testers. I’m not sure how many of those names are still current users/beta testers. I’m just posting what I saw listed on the Codea home page. I have no control over who’s selected as beta testers, so don’t ask me to include you.

I am! … I think. Codea disappeared from my TestFlight, so … not sure if I still am an “active” beta tester

I believe this game will be a huge success across multiple communities:
Young kids will have interactions with unique shapes
Older kids can enjoy coding their own Minecraft type game, thus making this more popular
However, most people tend to go for the origional idea. Try adding custom a
schematics into the game to make it unique to itself. Minecraft was an entirely new idea, how will this be similar and different? Make this stand out from other games, maybe add a coding tutorial in the game to help better understand.

@TokOut, @se24vad - I’m not 100% sure on the final syntax but at the moment you have to use the Lua require function to load the Codea Craft libraries, so none of the new features will clash with existing projects.

Currently it looks like this:

function setup()
  -- load Codea Craft table and export into global namespace
  require 'codeacraft':export()
  world = World()

Alternatively you could do this:

function setup()
  -- store reference to Codea Craft table to avoid crowding global namespace
  cc = require 'codeacraft'
  world = cc.World()

@se24vad The use of capital letters for classes is supposed to mimic the naming convention used for user classes. This does look a bit strange compared to the standard syntax codea uses. All function names are still lower case, only classes (such as World, Entity and Components) are named this way. I may consider changing it for the sake of consistency but then you can’t really name things as variables of the same name (i.e. world, mesh, material), which encourages uglier shorthand names (i.e. wrld, msh, m, mat, etc…)

The World class itself may end up being automatically created and executed when using Codea Craft. Right now you have to create it and update / draw it manually each frame.

function setup()
  -- load Codea Craft table and export into global namespace
  require 'codeacraft':export()
  world = World()

function draw()

  -- Do your updates here


How to make your own requires?

Will be Codea Craft - The World() - be multiplayer avaibel?

@Tokout - please stop cluttering this thread.

Have a little patience and let John finish his work.

This game already looks great. So lets take some time to let John and his crew do the work, we will in the meantime use this wonderful app to create our own Codea Crafts :smile:

just add a in app purchase menu for people that straight out want to purchase it and add a button to access a list of surveys or ads basically that a user can select, do them, and gain enough points to purchase the app with that, after purchase make the app update to remove both buttons. Either way you would get paid, but people that can’t afford it can still have the opportunity to get it.