0 Favourites

Is a Community C Exporter Legal?

  • Ashley, it was either last year, or the year before that that I'd originally posted on here with a severe overconfidence of my abilities as a programmer, stating that I'd make a compiler for Construct 2 that basically translated HTML5 to native code. At the time I clearly knew nothing about what I was talking about.

    Basically, my goal is to make a program that can read the XML files of Construct 2 projects and export C/C++ code in the same way Javascript code is exported. That way users can compile the code to native and other platforms themselves. I was thinking about making the converter in C2 itself, and use Node Webkit to read and write files.

    My concern with pursuing this for fun is that I don't want to infringe any licensing and become a legal issue. So, before I release anything I will need you permission.

    Anyone reading this, keep in mind that this project is as a hobby, not a legitimate project. Assuming C3 will use the same XML based project file structure, I think it'd be worth the time to invest in it, even after the new version comes out. It will be uploaded to Github once support for Platform, Audio, and Keyboard are fully implemented. I'm using a few different open source projects to mash together to construct the converter, so there's not a lot of work on my side aside from reprogramming the base engine functionality. Which, of course, is the main concern of performance.

    All I'm saying is, don't expect this to be a fullproof native compilation method, because I'll likely not have the time to implement everything on my own.

  • I don't think that you can release something that can bypass the license limitations. However, I like your project, and I wish you good luck for this ambitious hobby.

  • Initially there were plans to make an sdk for native as a completely separate exporter, but that's gone by the wayside since html5 got so many wrappers.

    So technically it probably wouldn't go against licensing, however, what you are asking to do is much more complicated than you realise.

    Not only would you have to create lookups to everything from the editor, you would also have to do that for every plugin including any third party code you wanted to use.

  • This would be really cool! I had my eye on things like Tiny Arcade (witch runs of C), but didn't find anything to convert the code to C.

    Hopefully it's all right with Ashely and it does not infringe on the licence.

    Best of luck!

  • Construct 3

    Buy Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Buy Now Construct 3 users don't see these ads
  • I can't think of any legal reason you wouldn't be allowed to do it, but our policy is (for pretty obvious reasons) that any discussion of methods to circumvent license restrictions are banned, and I think this would qualify since it's a new kind of exporter.

    Still I think your bigger problem will be the infeasability of the project! It's not for nothing we've held off native exporters. Even if you used a JS interpreter so you could re-use all the engine and plugin code, it still amounts to implementing a significant amount of a real browser engine. Several companies and projects have tried before and they were always pretty crap because it's a *much* larger project than you think, so they ended up skipping major features like Web Audio, form controls, networking etc. If you're going a step further and rewriting all the engine and plugin code in a very different language, then I am skeptical you will ever be able to run any meaningful C2 project.

    So... good luck, I guess

  • it's funny. you know what is funny?

    wou will spend ~500h on some crappy work that noone will use, won't get you any money, won't be profitable in the end, and for what?

    you could make 10 games in those 500h and earn some money instead.

    point is: learn how to use your time for something productive, not to waste it onto something that won't gain anything for anyone.

  • glerikud, Thanks!

    @newt, As an experienced programmer, I'm fully aware of everything I'd have to do in order to make something like this, and as has been noted already, is just for fun, so if it never amounts to anything, I don't really care.

    @Saiyadjin, try having a little fun once in a while, mate. I don't think I'd want to develop games if I thought of them as simply a way to make money. Not really interested. Money will come, it's more about enjoying life while it last, in my opinion.

    @Ashley, Yeah, it seems like the majority of people would think it's a complete waste of time. I will be rewriting the engine from the bottom up, so it'd probably never be useful enough for someone to actually use it, but I think it'd be cool to have either way. I wanted to program something in C, mostly as a portfolio piece, but also because I'd enjoy it.

    I think a lot of the people reading my words, "Not a lot of work to do", think I meant I don't have to program anything, which is the opposite of what I meant, I'm just not doing it for work. I think, though, this kind of project would work out well for trying to get a programming job in the future, as it'd make a really nice portfolio piece to show my programming experience.

    Anyways, I'll probably upload something about it in a year, Valve time.

  • Just don't wrap up Node js.

  • Just a thought:

    if you are doing this as an exercise that is supposed to have impact as a portfolio piece.. why not go all the way and make a new engine?

    Imagine a recruiter looking at your portfolio. "Made a working, published game engine" vs. "Made an exporter for a 3rd party engine".

    Reverse engineering all the stuff that Scirra did.. that amount of time might just as well go into designing something new, and you would not be bound by C2's philosophy and restrictions.

  • KTML5

    You're going to need a team. Seriously, a team! You'll cry from the amount of work & fix that is needed to be done.

    Or better use your time focusing on more important things, again don't waste your time. Think about this more clearly...

    This is one decision you don't want to regret.

  • it's funny. you know what is funny?

    wou will spend ~500h on some crappy work that noone will use, won't get you any money, won't be profitable in the end, and for what?

    you could make 10 games in those 500h and earn some money instead.

    point is: learn how to use your time for something productive, not to waste it onto something that won't gain anything for anyone.

    That's just being rude, man.

  • KTML5

    You're going to need a team. Seriously, a team! You'll cry from the amount of work & fix that is needed to be done.

    Or better use your time focusing on more important things, again don't waste your time. Think about this more clearly...

    This is one decision you don't want to regret.

    It's always much more appealing to work on projects that every tells you not to, though, isn't it? Adds a certain prohibitive edge to the whole thing

    @KTML5 Fusion 3 will have native export to C, and the game files will be JSON source, so something for Construct would be worth LOOKING at, if nothing else. And they're doing 3D now

  • I'm impressed with the one year time frame you give yourself. I wish I had that kind of patience for a project.

    Choosing to do it in Construct is probably not the fastest method, but it makes for a challenge.

    I know you already plan on supporting a subset of the plugins but I'd recommend only implementing only a subset of the engine's features, at least initially. The idea is to get something working early on so you can get motivation and/or a better picture of the work involved early on. This will lead to needing to refactor your code later as you add stuff, but you'll be doing that anyway if you tried to implement everything at once.

    You may find it interesting that events aren't converted to javascript. They are run by the event engine which in turn runs the javascript in plugins and the engine, while it also updates the picked object lists.

    Anyways I'm sure it will be very good coding practice no matter the result.

  • On second thought, if it is for the sake of learning then go for it. There is nothing wrong with learning. Every knowledge is useful.

    But you have to ask yourself, "do i need this knowledge?". Good luck on your project.

  • chadorireborn, Working on this as a hobby, not as a legitimate, full time project. I'm focused on developing my game right now, not on making this. You also have to consider the fact that making it a community project is essentially the same as forming a team, the difference being the fact that I'm not held liable, and nobody else working on it is.

    Maybe if I had more money to spend, I'd hire programmers to work with on it. But, for now, it's simply just for fun.

    @R0J0hound, Haha I definitely don't have a one year time frame! I'd have to put my game aside to do that, which wouldn't be practical in the long run, unless I made people pay for it. Which I wouldn't. I was simply saying that last year I'd posted about this topic, saying illogical things, not knowing what I was doing.

    The features I plan on implementing will be on an as needed basis after the core engine is rewrote. Which means updates will be slow and inconvenient if I'm the only one making them. I'm hoping that people understand this and don't get so excited about it. I'm not making any promises as to it being feasibly useful. At least, though, it could serve as a starting point for the future of Construct, and my career as a programmer.

    @Eisenhans, Reprogramming Construct 2 in C is the same as making my own engine, the difference being that the interface is already there.

    Reprogramming Construct 2's javascript engine in C IS making a new engine. You can't just copy over Javascript into C. An exporter in Construct 2 does NOTHING aside from structuring the project properly for packaging with a specified tool, such as Intel XDK.

    On my portfolio, it wouldn't read as "programmed an exporter", which really would be a waste of time, not because of feasability, but because of the reason you mentioned. It would read as something along the lines of "Reprogrammed C2's Javascript engine in C, for native compilation".

    Also, you have to consider the importance of C as a language. Even thinking that this kind of thing could be simple shows the lack of knowledge required to do it, and if someone won't hire because of that kind of thinking, they don't know what they're looking for and most likely won't pay well. So, I'm not worried.

    Additionally, the only limitations of using Construct 2 to do this is the fact that Construct 2 was made in Javascript. Though, Construct 2 has EVERY FEATURE any 2D game engine should have, and more. So, I wouldn't be limited by anything other than my own experience as a programmer.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)
Similar Topics Posts Views Last Post
Unread hot topic
257 18,864
nav's avatar
nav
Unread sticky
150 392,789
Rice games's avatar
Rice games
Unread hot topic
126 15,930
Nathanial's avatar
Nathanial