5 ms·
Superpowers, a collaborative HTML5 2D and 3D game maker, is now open-source
- elisee 11y agoGiving it another shot since it didn't take off when I submitted it a few days ago. Quoting my comment on the original submission (https://news.ycombinator.com/item?id=10864402 https://news.ycombinator.com/item?id=10864402): 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 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 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. Now that the platform is maturing, we've started work on other systems. For instance, Superpowers LÖVE (https://github.com/superpowers/superpowers-love2d https://github.com/superpowers/superpowers-love2d) lets you build Lua games for the LÖVE framework. Demo: https://i.imgur.com/yLybycP.jpg https://i.imgur.com/yLybycP.jpg Another example: Superpowers Web is (https://github.com/superpowers/superpowers-web 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 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. You can find lots of pictures of the app in the release notes: https://github.com/superpowers/superpowers/releases https://github.com/superpowers/superpowers/releases and many games made with Superpowers Game here: http://sparklinlabs.itch.io/ http://sparklinlabs.itch.io/. The devlog album has cool stuff too: http://imgur.com/a/NdIuH http://imgur.com/a/NdIuH
- Zikes 11y agoLooks 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.
- elisee 11y agoThanks! I don't believe I can edit the title after submitting though.
- seivan 11y agoHey, so I had a question about http://docs.superpowers-html5.com/en/getting-started/scripted-behaviors http://docs.superpowers-html5.com/en/getting-started/scripte... 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.
- elisee 11y agoBehaviors 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: Sup.getActor("Some actor").getBehavior(BehaviorClass).someMethod(); 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 https://github.com/superpowers-extra
- condescendence 11y agoAs 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.
- slmyers 11y agoSo, 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?
- too_root 11y agoPerhaps people should preface everything with "in my opinion"... Jeez.
- nekopa 11y agoMaybe you took his user name too seriously...
- condescendence 11y agoThat happened. :p
- flohofwoe 11y agoHehe, 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).
- seivan 11y agoAwesome, it uses TypeScript. Biggest reason I avoid Phaser is because it's always short on type definitions, especially at updates. Nice to see this being written from scratch in TS(?).
- elisee 11y agoWe 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 ^_^ Seems like Phaser's developer initially considered TypeScript but felt it was too early at the time too: http://www.html5gamedevs.com/topic/13599-reconsidering-building-phaser-3-in-typescript/ http://www.html5gamedevs.com/topic/13599-reconsidering-build.... It looks like he's decided to go with Babel for Phaser 3 / Lazer: https://github.com/photonstorm/lazer https://github.com/photonstorm/lazer
- chei0aiV 11y agoAt some point WebAssembly will mean you can rewrite it in any language.
- danbolt 11y agoAgreed 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.
- ipsum2 11y agoThis is neat. Here's the demo game, showing what the maker is capable of: http://sparklinlabs.itch.io/discover-superpowers http://sparklinlabs.itch.io/discover-superpowers. To OP: seems like I can jump through walls in the sample game.
- elisee 11y agoAh, can you explain how? We have a check for the contact normal (https://github.com/superpowers-extra/discover-superpowers-game/blob/18923c2030a73f7a1b10c0266165142623bfd515/assets/Behaviors%20(2)/Player%20Behavior%20(3)/script.ts#L35 https://github.com/superpowers-extra/discover-superpowers-ga...) so you shouldn't be able to jump multiple times while walking towards a wall as was once possible.
- j_s 11y agoAll 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.
- tcfunk 11y agoThis 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
- elisee 11y agoGood call, fixed! :) https://github.com/superpowers/superpowers-html5.com/commit/b771016a4b109f37828de3c2ff80b874c0b3913f https://github.com/superpowers/superpowers-html5.com/commit/...
- hardwaresofton 11y agoVideo introduction: https://www.youtube.com/watch?v=T7XoWWvGPd4 https://www.youtube.com/watch?v=T7XoWWvGPd4
- elisee 11y agoJust 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: Our game engine is a thin layer on top of http://threejs.org/ http://threejs.org/. Our real-time collaboration is powered by http://socket.io/ http://socket.io/ (WebSockets). Everything is written with http://www.typescriptlang.org/ http://www.typescriptlang.org/, http://jade-lang.com/ http://jade-lang.com/ and http://stylus-lang.com/ 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 :)
- Dr_tldr 11y agoI 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.
- jmannon 11y agoNice, gonna give it a try. Is there anything that the scene builder can do that scripting cant?
- elisee 11y agoNope, 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.
- nihilnegativum 11y agocool
- chazu 11y agoSuperpowers 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!
- elisee 11y agoThanks, that's very nice :)