Just remembered I wanted to update the website with some links to the many awesome open source projects we've built upon. Just to name a few right now:
As someone who was inspired by game development to become a programmer I must thank you. When I was in my early teen years I remember getting a bunch of programmers and artists together to try and pump out a game called "Because of War." While it never took off, I still have those assets (models, environments, music scores) and have given them to people to use in their own projects. I remember compiling my game for the first time and my OpenGL shaders being wonky but resulting in a cool effect and I ended up leaving it. Game development is truly interesting, it's 90% creativity and 10% implementation whether you're on the artist side or programmer side (Think Crash bandicoot on Playstation).
Unfortunately I lost contact with many of those friends but it helped me become what I am today. Game development is a great way to get creative minds going and link the creativity of programming to those who haven't discovered it yet.
Hehe, got the numbers mixed up? Building, shipping and maintaining a game is at least 90% tedious and boring implementation work, sprinkled with a few sparks of creativity and experimentation inbetween, no matter what framework or engine used (you just might get started a bit faster, but starting is the easy part).
So, you've worked in game development other than your attempt as a teenager? If not then how can you say "it's 90% creativity and 10% implementation" with any authority?
I would love to see a compare-contrast between Superpowers and Phaser. I've used Phaser in the past and found it to be a good tool for some game projects and pretty frustrating for others.
All I can see is the ability to jump just before the doorway to hop over whatever it is that triggers the transition to the next room and be stuck past the door.
Hi! I've been working on live collaborative game development software for about 4 years (some of you might remember me from CraftStudio). For the past year and a half, we've been working on Superpowers with my two friends Bilou and Pixel-boy and now we've open sourced it, as promised back in March when we launched early access for supporters.
Superpowers at its core (http://github.com/superpowers/superpowers) is more than a game maker. It's a generic collaborative client/server Web app for building all kinds of projects. A project type is defined by what we call a system, and you can have any number of systems installed on your Superpowers server.
We spent most of the last year building the core along with a system called Superpowers Game (https://github.com/superpowers/superpowers-game), which is a TypeScript game engine built on top of Three.js along with a bunch of collaborative asset editors.
Another example: Superpowers Web is (https://github.com/superpowers/superpowers-web) a Superpowers system for building static Websites. We've used it to build the official website (https://github.com/superpowers/superpowers-html5.com) in real-time collaboration. We have plan for a "Superpowers Node.js" system, and hopefully the community will embrace this extensibility and build cool tools for all sorts of engines and creative endeavours.
I think this is really cool, and really appreciate what you guys are doing. I have a particular passion for game creation tools as that is how I started down the path of becoming a developer over 20 years ago.
To show my appreciation, I've set up a $5/month pledge on Patreon. It's not much but I hope it helps! Should Crapule meow my name, please send me the recording. ;)
How do you find this impact performance, especially when a behaviour might need to communicate with other behaviours, also how would that be done?
I've looked at several solutions, e.g Apple has a "BehaviourSystem" (called ComponentSystem) where you can fetch Behaviours (Components) per class from all other actors.
Behaviors are simply added to a list of components on the actor (aka "game object") and once a tick, the whole actor tree is update()'d. There are probably optimizations to be done here, but we haven't hit the wall yet so we're trucking along on more urgent stuff :)
Communicating with another behavior can be done like so:
If you use an actor or a behavior often, you'll want to cache it into a member variable so you don't look it up every frame.
By the way, we have open sourced all the games we've made for Ludum Dare and the Global Game Jam over the last year, you might like checking them out: https://github.com/superpowers-extra
During our 10 months of early access, we had a recurring / one-time support option on the website. We got (very roughly) about $1000 from that thanks to many generous people. After taxes and all, that doesn't leave much but we are pretty frugal, we live and work together so we've been able to afford it so far.
We're hoping to make a decent living with a mix of donations (we just setup a Patreon - http://patreon.com/SparklinLabs), maybe some sponsors? as well as part-time contract work around Superpowers or game development in general. If it doesn't pan out, well, we're very happy with what we've been able to accomplish so far, so we get to keep that! ^_^
As someone in a similar space, I work part time on data consulting contracts. I spend 10 to 20 hours a week working for clients, usually at the end of the week, trying to cram it all in before the billing cut off. Then I go back to spending all week working on my project.
Looks really awesome! I can't wait to dive in and see what all it can do.
I suggest you modify your title to start with "Show HN: ", as that will signal to the HN community that it is a project you are both releasing for general use and presenting for feedback.
Just a minor nitpick, the last line of the build instructions is repeated twice("open the dev tools with F12 and type the following in the console: and type the following in the Console"):
We actually started with CoffeeScript 15 months ago, because TypeScript wasn't quite far along yet (I don't quite remember why, but we definitely considered it and said "maybe later"). We also started by writing our own scripting language for games... and then after a few months of development we converted the whole codebase to TypeScript and we haven't looked back ^_^
Agreed on TypeScirpt being awesome! I'm happy SuperPowers decided to encourage it.
Does Phaser tend to overlook type definition updates? I know the language has TypeScript files, but I wasn't aware that they tended to be lacking. I use Phaser with ES6 a lot, but I'd be keen to use TypeScript.
Superpowers is shaping up to be something really incredible. I'm so glad that Sparklin Labs has decided to open source this project. It really iterates on what made CraftStudio special. I just hope I have enough free time to do some hacking on it soon!
This looks really great and I am definitely going to be giving it a solid try!
If I could nitpick about something...it really bothers me that all the links on that page open in a new tab! Ahh! It shouldn't matter, but I just found it a little frustrating. /rant
Nope, the scene editor is just a way to setup a "recipe" of actors with their transform in space and pre-added components so you can load them all at once when needed. Very useful, but you can definitely do the same in code instead.
Our game engine is a thin layer on top of http://threejs.org/. Our real-time collaboration is powered by http://socket.io/ (WebSockets). Everything is written with http://www.typescriptlang.org/, http://jade-lang.com/ and http://stylus-lang.com/. The app is powered by Electron / Node.js. We use CodeMirror, Browserify, Gulp, Express, lodash and too many other awesome npm modules to name them all.
Thanks to the community for all the cool stuff we were able to reuse :)