A Game to Make Games
craftstud.io
craftstud.io
Just woke up to a surge of visits & contributions and realized CraftStudio made it to the HN front page. Thanks for the love and criticism, I value it a lot coming from the Hacker News crowd.
A bit of technical background for those who might be interested: CraftStudio is built in C# using the XNA framework.
I will port it to MacOS X and Linux using Mono + MonoGame (https://github.com/mono/MonoGame), when MonoGame reaches enough 3D support. I already managed to get the UI to run under Linux so I'm pretty confident this will pan out well.
The network code uses the most amazing Lidgren.Network library (http://lidgren-network-gen3.googlecode.com/). Honestly I don't know that CraftStudio could have happened without it. It's entirely UDP-based and does such a great job of handling all the low-level bits while providing a great API.
The user interface uses a custom built library (which I open sourced under the MIT license over there, documentation is severely lacking for now though: http://nuclearwinter.codeplex.com/).
You can also find the Operational Transform library I built for real-time collaborative document editing (MIT too, https://bitbucket.org/elisee/nuclearot). It's only used for the text-editing support.
If you have any questions, please go ahead and ask :).
You can follow me on Twitter there: https://twitter.com/craftstudiodev if you want to be kept in the loop. I also do livecoding on CraftStudio every once in a while: http://www.twitch.tv/eliseegw
Looking at the time-lapse of using it [1] it's certainly not a "game"; you need to have patience and dedication to make anything serious. If there were any friendlier looking interface for learning the principles of 3D editing and animation, though, I sure haven't seen it. Could perhaps inspire a lot of kids from middle-school age and up.
I would certainly call WarioWario D.I.Y. a "game to make games", so the developer should definitely check it out if he hasn't. It's very polished. Though CraftStudio's scripting system will have to be pretty different. WWDIY's scripting system is very primitive, and has low, hard limits on numbers of objects. It isn't too bad in-game because each game you create is played for only a few seconds, so doesn't have too much stuff, but CraftStudio is obviously different.
It also discusses why you normally need this "patience and dedication" -- you're often wrapping images around polygons and you have to tell the computer how to do that.
You're right in saying CraftStudio isn't your regular game, but I do think it has a very gamey feeling to it, if only for the fact that editing is tailored to be simple and it's fully multiplayer.
There are quite a few people hopping on the public test project again and again with nothing special in mind but to join others in making something fun and cooperating.
I think using the word "game" lowers the barrier, some people are wary at the idea of _working_ on a game, using _tools_.
First, and the most obvious, I want to say that this looks like a very interesting and fun project. I wish you the best.
Secondly, and I know I'm pointing out the elephant-in-the-post here, but I think if one is launching a product or revealing a project to a wide group of potential users, it would be best to utilize a speaker that is easy-to-understand. This has been a point of criticism in past HN posts. Obviously, I don't mean to be offensive in anyway and I really don't know the most politically correct way of pointing this out. I just simply could not understand a large chunk of what the speaker in the video was saying because of his strong accent.
I think there are some ways around this. For example, you could use a different speaker and if you felt the need to make an appearance or comment in a video as the creator/founder of a project, you could make a couple brief rehearsed/precise comments.
Again, very interesting project and I wish you the best.
Thanks for the criticism! I do realize my accent might be off-putting and did my best. My friends and I did many takes and kept the best of them, fully realizing the limitations we were working with.
I wanted the video to feel personal and also use this as an opportunity to improve my communication skills.
I subtitled the video in both English and French right away to mitigate the problem.
I hope that by supporting power users you mean CraftStudio will support, in addition to your visual scripting language, an existing (textual) programming language. A language has to be text-based for users to input the code with reasonable speed, unless your GUI is fantastic. And if you try to implement your own text-based language, I bet you will miss a lot of useful features of existing languages - and users wouldn't be able to use existing libraries with your language. I've heard that Lua is a popular game scripting language, but there are many other possible languages. So, what are your plans for the scripting language?
It's very important for me to not hinder the productivity of people who already have scripting / game dev experience and as such I want the scripts to be fully editable with a keyboard. There will probably be a way to edit your scripts externally at some point too.
The details are still a bit blurry as I'm quite busy implementing all the other core features but it's coming together. I'm looking at a lot of what has been done, too.
CraftStudio has scenes, which are pretty similar to Unity 3D scenes. You have game objects in a hierarchy and you can add components to them to render stuff or add physics or script behaviors.
I plan on using Lua as the underlying scripting language, but I might change my mind by the time I get around to implementing it. I expect (just a wild guess) to have scripting support ready sometimes over the next 2-3 months.
There will be a library of "black box" scripts with a bunch of variables and nobs you can turn. People will be able to make more and share them with the community. You'll also be able to reveal the underlying code if you want to tweak it to your specific needs.
On that front, I think CraftStudio has the potential to get people into programming by starting with simple tools and then learning with the help of others thanks to the real-time collaborative editing capabilities. Being able to chat and interact about code will be pretty awesome I think.
[1] IndieGoGo is like Kickstarter except instead of money being taken when they total is reached (with "pledging") it's taken straight away and provided whether or not the project succeeds in raising the total.
The main reason I wandered away from Kickstarter is that in order to start a campaign, you need to be a US citizen living in the US with a US id. Since I'm living in France, that's not happening.
Id wonder how hard it would be to support both templated GUI based events and a scripted language for those who wanted to get a little deeper than
onclick(mouse1).character(player).section(armleft).item(bow).create(arrow1).shootforward(90)
Can you show a preview of the shirt?
You can read my comment about scripting down there, which should give some more insight about what I'm trying to achieve: http://news.ycombinator.com/item?id=3752396.
Thomas Frick is working on multiple concepts for the t-shirt and we'll probably have a community vote to choose which one will go to print. He designed the pirate on the frontpage of http://craftstud.io/ and also made this pretty cool artwork: http://d2oadd98wnjs7n.cloudfront.net/medias/192736/files/Cra.... You can see more of his work at http://xaelgraphics.com/
Edit: It's on the wiki, both are planned.