Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411469 Posts in 69368 Topics- by 58422 Members - Latest Member: daffodil_dev

April 23, 2024, 03:20:20 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsSuperpowers — Free 2D+3D game maker (now open source!)
Pages: [1] 2 3 ... 5
Print
Author Topic: Superpowers — Free 2D+3D game maker (now open source!)  (Read 43260 times)
elisee
Level 1
*



View Profile WWW
« on: February 14, 2015, 04:31:19 PM »



                                                                                       Hi, I'm Elisée! You might remember me from CraftStudio, QuadSmash or the Spelunky Death Roulette. Together with Bruno (better known as Pixel-boy) and Nicolas, we're working on software to make cool vidja games.
                                                                                       




                                                                                       
KEY FEATURES

Built with Web technologies
Superpowers runs either in your browser or as a stand-alone app.

It'll very soon be free and open source
ISC licensed, the shortest, sweetest license ever.

Completely modular
Like, really. Superpowers is just a small core and everything from editors to scripting are added by plugins. You'll be able to improve or replace them all, and get more from the Superpowers community.

Real-time collaboration
As its predecessor CraftStudio, Superpowers lets you work with your buddies in real-time cooperation over the Internet... if you wish to do so!

                                                                                       

                                                                                       
MADE WITH SUPERPOWERS

Those are some early examples of jam games made with the software as we're developing it. Right now it's all 2D but we've got 3D games coming soon. _______ _______ _______ _______ _______ _______ _______
                                                                                       


                                                                                       
TECHNICAL DETAILS

  • The Superpowers game engine is built on top of Three.js.

  • The Superpowers server is based on Node.js, it can host multiple projects. It serves the app and asset editors over HTTP and project data over socket.io. Electron makes it all incredibly easy to run on any computer.

  • The codebase is written in TypeScript, a JavaScript superset with great tooling.

  • On the scripting side, it's TypeScript too!

  • Plugins can be written in HTML, CSS and JavaScript, or any language that compile down to those.

                                                                                       



Using 3D models (static OBJ and animated glTF models are currently supported)


                                                                                       
MILESTONES

We're out to build a platform for people like us, small teams and lone developers. Lighter than Unity, more polyvalent than Game Maker. Open to contributions. Something you can fix yourself when the need arises. Easy to get started with. Collaborative.



The team, guest-starring @schouillette

The plan is to try and get funded with recurrent donations, open source it all and keep working on it. When the time comes, we hope those who can afford it will see the value in funding a small team to build an open tool that everyone can enjoy no strings attached ^_^.

10,000 feet view of what's we've been doing since summer 2014 and are working on now/soon:

☑ Core design
The plugin, network and storage architecture are all in place, it works. To Superpowers, a project is just a tree of assets and a bunch of editors, all provided by plugins, served over HTTP and edited through WebSockets.

☑ Sprite sheet importer
Import spritesheets (any image format supported by Web browsers), set up grid and start/end frames for each animation.

☑ Sound importer
Import sounds and tracks (any format supported by Web browsers), set up whether to decode on startup (for short effects) or stream (for background music).

☑ Tile set and map editors
Import tile sets, configure tile properties, build layered tile maps. Includes various tools like select, flip, resize/move map.

☑ Scene editor
Create and manage an actor hierarchy. Add and configure components exposed by any plugins.
Very barebones right now, missing draggable transform handles for instance.

☑ Model importer
Import static OBJ and animated glTF models, with a single diffuse map for now.
glTF models can be converted from COLLADA with the official converter.

☑ Script editor
Edit scripts live together like in Google Docs. The TypeScript compiler helps catch errors early and source maps let you debug your game in your browser of choice.
Uses scripting APIs exposed by any plugins.

☑ Server manager application
Start/stop a local Superpowers server and manage installed plugins.
Just a ZIP to unpack, no external dependencies.

New Superpowers website
Show what Superpowers is and wants to be. Provide a way for people to subscribe to support development and get early access.
The teasing page is up and work on the crowdfunding system begins now.

☑ Release machinery
We need to write some packaging scripts to automate creating builds of Superpowers and uploading them.

☐ Open source for everyone
Once we're ready and funded, open up the repositories and start inviting people to contribute.

☐ Much more...
We'll have much to do to enable people in the community to effectively learn, meet, work together and share. And there'll be a lot of work on existing editors and new ones to build (shaders! materials! fonts! to name a few).
Make games, improve Superpowers, repeat!

                                                                                       


                                                                                       
LINKS
___________________________________________________________________
                                                                                       

« Last Edit: January 12, 2016, 12:12:15 PM by elisee » Logged

SolarLune
Level 10
*****


It's been eons


View Profile WWW
« Reply #1 on: February 15, 2015, 07:45:34 AM »

Posting to follow because this could be quite the interesting game creation tool, indeed. I wonder how's the performance on HTML5 programs, and how cross-platform are they (PC, mobile, etc)?

Craftstudio was quite the program!
Logged

elisee
Level 1
*



View Profile WWW
« Reply #2 on: February 15, 2015, 08:20:57 AM »

Posting to follow because this could be quite the interesting game creation tool, indeed. I wonder how's the performance on HTML5 programs, and how cross-platform are they (PC, mobile, etc)?

Craftstudio was quite the program!

Thanks for following along and for the kind words Smiley

What we know for now is that Murder at the Residence Gudul runs very well with its post-processing shader and animations if you point an up-to-date mobile browser on a recent smartphone to http://gudul.sparklinlabs.com/

Also, here's Samurai Monkeys (WIP), featuring randomly-generated levels from pre-made map chunks, running super smooth on a Galaxy S4:


Exported to an .apk using the Intel XDK, a tool with terrible UX but very handy for packaging apps! It supports iOS too but we haven't had a chance to test that since we don't have an iDevice on hand.

It looks like mobile Web gaming is really getting there both performance-wise and in terms of features, when you're using it well.

On the desktop-side, Superpowers and the games made with it will run on any desktop OS that has a good browser. For offline distribution, NW.js (formerly node-webkit) is available for all 3 major OSes, it's basically Chrome without the browser interface and we'll be using it both to run Superpowers as an app and for distributing games.
« Last Edit: February 15, 2015, 08:28:01 AM by elisee » Logged

Tokinsom
Level 0
***



View Profile WWW
« Reply #3 on: February 15, 2015, 08:54:08 AM »

I predict Superpowers and Construct 3 will be butting heads in the near future ^^; However, you guys are actually making games with it so you know what the engine needs, it has real-time collaboration, it'll be open-source, and it uses JS...which is a turn off for me, personally, but will likely open the doors to a greater and more professional user base. Will be following.
« Last Edit: February 15, 2015, 04:57:18 PM by Tokinsom » Logged

elisee
Level 1
*



View Profile WWW
« Reply #4 on: February 20, 2015, 05:51:32 AM »

Superpowers devlog — Update 1

                                                                                        Hey! Here's the first update to our devlog. We're in a sprint to get Superpowers ready for its first public appearance a little less than a month from now. Our Trello board has a list of the tasks we're tackling at the moment.
                                                                                       


A dashing team picture to get started Big Laff


BUILD SYSTEM AND PLUGIN IMPROVEMENTS

                                                                                        We use browserify to transpile and bundle the client-side parts of Superpowers. A particular plugin might require various dependencies including the game engine or parts of all other plugins. For instance, the scene plugin needs access to all exposed component editors from other plugins.

This architecture meant that whenever we made a change to the engine, we had a global build/watcher script that would trigger a rebuild of all the plugins that use the engine. Yes, all of them. That could take upwards of 10 seconds sometimes, which while not much in the grand scheme of things, really adds friction.

Our global build script also assumed that all plugins were developed with a particular set of transpiled languages, would take 30s+ to build the whole project from a cold start and the scene plugin had to be rebuilt everytime a new plugin was added / removed since everything had to be bundled up in a single JavaScript file for the scene editor.

So I spent a couple exhausting days experimenting and rearchitecturing our repositories and build system to fix all that.

We now have a few small, independent bundles instead. The Superpowers engine and other self-contained parts are built on their own with the "standalone" browserify option. Any editor can just get access to the SupEngine global with a <script> tag. When making changes to the engine (as long as the API doesn't break) plugins don't need to be rebuilt.

Likewise, each plugin can now build several small bundles to expose assets, engine components, component editors, etc. The scene plugin just dynamically inserts <script> tags for the ones it needs. The build system is no longer involved at all.

All of this gets us a truly modular platform where plugins can be dropped in and work out of the box!
                                                                                       


SUPERPOWERS HOME PAGE


                                                                                        We're almost done with the teasing page for Superpowers. Pixel-boy has been working on some purty art! As well as doing a lot of logo research. We haven't decided on any particular one yet. Suggestions?
                                                                                       




TYPESCRIPT INTEGRATION

                                                                                        Bilou is making great progress replacing our custom-built, unfinished language with TypeScript as the default scripting language. TypeScript recently got a very nice compiler API and their roadmap is looking good. Scripts are properly transpiled now so most of the remaining work is updating each plugin to expose their scripting API in a TypeScript-compatible way.
                                                                                       


WHY NOT HAXE?

                                                                                        Nicolas Cannasse, the creator of the popular Haxe language asked on Twitter why we weren't using his language over TypeScript. From our limited experience with Haxe, it seems great and we did consider it at some point. It's an expressive language that can be transpiled to a variety of other languages to get native performances on most platforms.

The Haxe compiler itself is a native tool written in OCaml. That makes it at odds with the Web-based philosophy of Superpowers. We'd have to ship binaries for each platform where Superpowers will run and call out to this native tool to build scripts.

Contrast with the TypeScript compiler that can be used right in the browser or from Node.js and exposes a rich compiler API including diagnostics and incremental builds. TypeScript code can be easily debugged using the browser's dev tools either as JavaScript or with source maps.

Overall, TypeScript is just a much more natural fit for a platform built to embrace the Web.
                                                                                       


LAUNCHER / SERVER MANAGER

                                                                                        I started working on a little launcher app to manage your favorite servers list and start/stop your own local server, using NW.js.

Getting the server to run as a child process was a bit of a challenge. Using Node.js's child_process.fork works but the standard output is eaten by NW.js (so that it can be redirected to the devtools which aren't even running) so nothing appeared in the log area.

After toying with child_process.spawn and the idea of bundling node.exe along with NW.js, I went back to child_process.fork combined with ChildProcess.send and ChildProcess.on('message' ...) to pass messages between the server and the launcher. The launcher sends a message to the server when it should shut down and the server sends messages to the launcher (instead of logging to the console directly).
                                                                                       


An early look at the launcher. Will make pretty later!



                                                                                        That's it for this update! Thanks for reading, hope you liked it. I'm very happy with all the progress we're having lately. THE LAUNCH HYPE IS REAL. I'll be back soon with more news  Beer!
                                                                                       
Logged

rj
Level 10
*****


bad, yells


View Profile WWW
« Reply #5 on: February 20, 2015, 06:06:37 AM »

dude this is rad as heck

that is all

i'm following this
Logged

nio101
TIGBaby
*


View Profile
« Reply #6 on: February 20, 2015, 07:16:48 AM »

Well done! Grin

What will bring Typescript as the default scripting language over basic javascript ?
Will it be faster to execute ?
Or will it be only easier to debug thanks to static typing ?
Logged
elisee
Level 1
*



View Profile WWW
« Reply #7 on: February 20, 2015, 07:35:17 AM »

I predict Superpowers and Construct 3 will be butting heads in the near future ^^; However, you guys are actually making games with it so you know what the engine needs, it has real-time collaboration, it'll be open-source, and it uses JS...which is a turn off for me, personally, but will likely open the doors to a greater and more professional user base. Will be following.

Construct 2 is pretty rad. Any word on whether Construct 3 is adding any 3D support?
Yeah, JavaScript is not for everyone. For what it's worth, it's entirely possible someone will come up with a more visual scripting plugin at some point. That's the kind of things we want to enable and that's why we're working early to make sure the platform is very extensible and doesn't lock us  into our own choices forever.

dude this is rad as heck

that is all

i'm following this

Thanks Durr...?

Well done! Grin

What will bring Typescript as the default scripting language over basic javascript ?
Will it be faster to execute ?
Or will it be only easier to debug thanks to static typing ?

TypeScript compiles down to the flavour of JavaScript supported by current browsers (most browsers support a mix of ES5 which as been around for a long time and some features of ES6 with new ones being enabled as new versions are released) so it doesn't really impact performance.

The next version of JavaScript after ES6 might have (optional) types and the TypeScript people are working to align themselves as well as inform the development of the specification. This could lead, at some point, to browser optimizations for typed code (if anyone's interested, read up on Facebook's Flow, Google's SaneScript and SoundScript, etc.).

Anyway, the main advantages right now is that TypeScript will allow us to have syntax errors, type checking and auto-complete at editing time. Those will make writing scripts much more pleasant! Syntactic sugar for classes, inheritance, template strings, etc. are also all very nice.

The TypeScript playground showcases all those.
Logged

botwoj
Level 0
*



View Profile
« Reply #8 on: February 20, 2015, 10:06:58 AM »

Oh man this looks pretty awesome! I was just looking at game engines to check out, seriously hyped now Smiley
Logged

elisee
Level 1
*



View Profile WWW
« Reply #9 on: February 23, 2015, 06:43:16 PM »

Superpowers devlog — Update 2

                                                                                       Hey! This update will be slightly shorter, I'm heading to bed soon. Some great news coming up though!
                                                                                       


SUPERPOWERS LANDING PAGE

                                                                                       Pixel-boy and I spent a few days working on the pre-launch website for Superpowers. Pixel did a lot (A LOT) of logo research and drew fantastic artwork while I was working on copywriting and web design.
                                                                                       



Click to check out the website and subscribe to our newsletter!



Logos. Lots of them. We're still picking!



TYPESCRIPT SOURCE MAPS

                                                                                       Bilou has completed the replacement of our old custom language with TypeScript. Type checks everywhere, yay! He also converted our entire WIP Samurai Monkey mobile game to TypeScript and fixed some bugs in the process.

He spent today integrating source map support (with the help of the combine-source-map package). Since we're currently compiling scripts dynamically when loading the game (we'll switch to server-side pre-compilation soon), there were some interesting challenges.
                                                                                       



Debugging the original TypeScript I wrote in Superpowers
using the Chrome Developer Tools. So convenient!




                                                                                       That'll do for today's update. Please do go and subscribe to the newsletter so we can let you know when we start crowdfunding. Thanks for reading and spreading the word! Beer!
                                                                                       
« Last Edit: February 24, 2015, 06:44:50 AM by elisee » Logged

Baron_Mercury
Guest
« Reply #10 on: February 23, 2015, 09:11:35 PM »

Just a reminder that elisee's previous game authoring project, Craftstudio:

1. Is not finished, and years later still lacks basic features like collision detection(!).
2. Will, by his own admission, never be finished.
3. The above two facts have not prevented him from continuing to sell it.

He indicates in this post (elisee.sparklinlabs.com/2014/08/teaming-up/) that there is some intention to provide free/discounted Superpowers licenses to current Craftstudio customers, which is laudable.

Crowfunding for Superpowers starts in 17 days, and I urge anyone thinking of backing it to consider elisee's track record and not give it a damn cent.
Logged
elisee
Level 1
*



View Profile WWW
« Reply #11 on: February 24, 2015, 03:49:05 AM »

Just a reminder that elisee's previous game authoring project, Craftstudio:

1. Is not finished, and years later still lacks basic features like collision detection(!).
2. Will, by his own admission, never be finished.
3. The above two facts have not prevented him from continuing to sell it.

He indicates in this post (elisee.sparklinlabs.com/2014/08/teaming-up/) that there is some intention to provide free/discounted Superpowers licenses to current Craftstudio customers, which is laudable.

Crowfunding for Superpowers starts in 17 days, and I urge anyone thinking of backing it to consider elisee's track record and not give it a damn cent.

Thanks for holding me accountable. There's no need to be confrontational, I'm a very approachable person and I do my best to please those who supported my work. Assuming you're a customer, you could simply have shared your concerns with me at any point in the last few years if you were unhappy with CraftStudio and maybe I would have been able to help. Smiley

Anyway, my own view on the matters you raised, in a few too many words:

CraftStudio is not "finished" because any big program can always be improved, right? Tons of cool little games have been and are being made with it. CraftStudio has a built-in 3D physics engine. There's no built-in non-physics-based 2D collision detection and I never promised there would be. It's possible to write your own or copy some code from one of the example projects.



Speaking of cool little games, have you played Spherunner?
Great game made with CraftStudio by nice folks who learned gamedev with CraftStudio!


The "beta" tag is still there (not for long!) because until very recently, there were some serious bugs in the Mac and Linux versions stemming from MonoGame (I could not foresee those). It was good enough for a lot of people but I still wanted them fixed. After trying and failing to fix MonoGame/OpenTK, I spent a lot of time in December / January migrating to flibitijibibo's awesome FNA (and reporting/fixing bugs I found) for this very reason and I'm now monitoring bug reports and making sure it's all working like it should. When I'm confident this is done, I'll remove the beta tag.

I've been very careful to let people know that CraftStudio was a crazy one-man adventure from the start. I'm confident that the vast majority of the early supporters and customers know what they supported/bought and are satisfied with it. After all, I built the first fully real-time collaborative 3D game-making platform with incredibly easy modelling & mapping tools built-in.

So yes, I believe my track record is worth mentioning (and I did so in the very first post of this devlog)! People reading this might even want to buy a copy of CraftStudio while we're waiting for Superpowers to be ready, it's a great program and I'm proud of it. Wink

Sure, it could be even better or do even more stuff. I made some design mistakes along the way (like any developer doing something radically new would) and the business model of selling cheap licenses to individuals makes for a very asymmetrical, sometimes overwhelming relationship between one developer and thousands of users. I learned a lot from all that! And that's precisely why Bilou and Pixel-boy have joined me to build a new, very different game maker:

Web-based, because the Web is well supported everywhere and it's a great place to invest in.
Modular (engine is separate from platform) and extensible (every editor is a plugin), so the community will not be held back by our limited manpower.
And we're going Open Source, ditching the individual license model while trying to gather voluntary recurrent donations to support our work, because we believe this will be the best way for as many people as possible to enjoy Superpowers and make games!

Again, I'm sorry if you were disappointed with CraftStudio, I truly am. I've worked my ass off for 3 years to make something awesome and make it very affordable. I believe it was, all things considered, a huge success  Hand Thumbs Up Left Grin. By all means, feel free to not buy anything else I make ever again!
« Last Edit: February 24, 2015, 03:57:20 AM by elisee » Logged

nahkranoth
Level 2
**


View Profile
« Reply #12 on: February 24, 2015, 04:49:11 AM »

I bought craftstudio a while back and played around with it. I can testify that elisee is a really approachable guy. Superpowers looks promising. Will keep an Blink out.
Great to see three.js being used.

Logged
darkhog
Level 7
**


Dragon Agent


View Profile
« Reply #13 on: February 24, 2015, 08:41:40 AM »

Why you don't use Lua for scripting? It worked quite well for CraftStudio and there was no performance issues when exported to HTML (with Lua.js)? On top of that, Lua is easy to learn and if you used Craftstudio, you could easily translate to Superpowers, maybe with just learning differences in API.
Logged


Be a computer virus!


I cannot C well, so I stick with simpler languages.

There are no impossible things, there is only lack of skill.
yuotta
Level 0
**


View Profile
« Reply #14 on: February 24, 2015, 09:16:38 AM »

I like this and am excited to see how it plays out!
Logged
elisee
Level 1
*



View Profile WWW
« Reply #15 on: February 24, 2015, 01:39:03 PM »

I bought craftstudio a while back and played around with it. I can testify that elisee is a really approachable guy. Superpowers looks promising. Will keep an Blink out.
Great to see three.js being used.

Three.js is such a great library! I use it to power CraftStudio's Web player and my MMO trivia game show Master of the Grid too.

I like this and am excited to see how it plays out!

Thanks!

Why you don't use Lua for scripting? It worked quite well for CraftStudio and there was no performance issues when exported to HTML (with Lua.js)? On top of that, Lua is easy to learn and if you used Craftstudio, you could easily translate to Superpowers, maybe with just learning differences in API.

Lua.js is a very clever hack, but it's a hack. JavaScript and Lua are quite similar (prototypes vs metatables match quite well for instance) but they also differ in some key ways (Lua tables are both arrays and hashtables. Lua has multiple return values and JavaScript does not, Lua hashtables accept any kind of values as keys whereas JavaScript, prior to WeakMaps, only supports strings) and because of those differences, Lua.js has to do some pretty terrible things like always returning a JavaScript array for every function call or iterating over lists of keys instead of indexing directly. It still works quite well for reasonably-sized and well-written CraftStudio games. BUT:

The project has been unmaintained for over a year, I found a compiler bug, there's no source map support (which makes debugging a... less than stellar experience), it doesn't support all of Lua... That's already a lot of reasons to look elsewhere.

TypeScript on the other hand is basically Web-native, it is converging with ES6 and beyond, it has robust type checking, source maps, incremental compilation, solid error reporting, a healthy open source presence and the Microsoft juggernaut's backing... Lots of reasons to invest in it.
Logged

Tokinsom
Level 0
***



View Profile WWW
« Reply #16 on: February 24, 2015, 08:34:52 PM »

Construct 2 is pretty rad. Any word on whether Construct 3 is adding any 3D support?
Yeah, JavaScript is not for everyone. For what it's worth, it's entirely possible someone will come up with a more visual scripting plugin at some point. That's the kind of things we want to enable and that's why we're working early to make sure the platform is very extensible and doesn't lock us  into our own choices forever.

To my knowledge it will remain a strictly 2D engine. 3D can be achieved with the 3rd party Q3D plugin but it can only go so far with C2's existing architecture.

A visual programming addon could be cool if it isn't too limiting. Hard to say at this point I guess! Perhaps it's time to just bite the bullet and learn js.
Logged

darkhog
Level 7
**


Dragon Agent


View Profile
« Reply #17 on: February 25, 2015, 05:16:15 AM »

Elisee, how about using Dart for scripting then (it compiles to JS)? Dart is actually good language and I'm using it for "serious" webdev, i.e. when I can't do what I want with few lines of JS. It is also more clear than CoffeeScript (which is also good, but Dart's better IMO).
Logged


Be a computer virus!


I cannot C well, so I stick with simpler languages.

There are no impossible things, there is only lack of skill.
elisee
Level 1
*



View Profile WWW
« Reply #18 on: March 05, 2015, 10:56:33 PM »

We're very busy getting everything ready for the launch of the Superpowers early access crowdfunding campaign next week (7 days, 13 hours, 5 minutes from now :D), hence the lack of updates. Setting up SSL certificates, payment and website stuff is always a bit of a nightmare but it's coming together. I'll put up a new devlog entry with as soon as possible! Smiley

In the meantime, go check out what Bilou has been up to, it's preeetty cool!
Logged

abclive
Level 0
*


View Profile
« Reply #19 on: March 10, 2015, 07:30:10 AM »

I follow Elisee's adventures for quite a long time now and I have to say that I'm both impatient and proud to see what they come up with. Craftstudio was a great intro to the game development world for me and I can't wait to have my hands on their new production. I truly hope that they'll encounter the success they deserve. You have all my support in this adventure!
Logged
Pages: [1] 2 3 ... 5
Print
Jump to:  

Theme orange-lt created by panic