Refeuh's Forum Posts

  • I looked into sole trader / sole proprietorship, but I don't think it's as interesting in Hungary (where I live now) as it is in the UK. Lots of obligations, and it seems more suited for a full-time activity :/

    I know at least one music composer here who hasn't had to incorporate to be able to sell his creations, while declaring his income to stay on the legal side. That's the kind of thing I'm considering, if applicable to my situation. The experts I'm meeting next week will surely be able to confirm

  • Thanks for your input, that's very appreciated -

    Indeed, I'm sure the "legal stuff" is all very easy when you have done it at least once ; though for someone who has never been through that process, it's all quite confusing and a little bit scary.

    In my case for example I don't have a company, and I don't even know if my "amateur/hobby" "work" qualifies as a "business activity" ; so there are lots of questions like "do I need a company to sell a product, or can I do it in my own individual name", "without a company, what are my personal liabilities", "with a company, what are my obligations", etc. Lots of things that do not really seemed to be explained anywhere. Especially considering it all varies depending on the country (adding internet, international digital distribution, and double tax treaty agreements making the whole thing a big mess for non-experts)

    I have an appointment very soon with experts, accountant and solicitors, who will be able to tell me how to proceed

    So far I haven't sold anything and I'm not expecting to make much money at all to be honest, but I'd like to do it "right" from the beginning. It's quite easy to just setup an itch.io page and a paypal account, but I don't want to go ahead until I have the confidence it is suitable for my situation (and that I won't have to re-do it after creating an actual company, declaring an activity, etc.) and that I don't expose myself to unreasonable risks.

    Also, to make things more complicated, I don't have a "normal job" anymore and I'm just living on my savings, meaning I don't have "normal tax" forms onto which I can claim additional personal income from other activities.

    As for the marketing side, I've been trying to do my best ; building a small community of followers during the development (updates, screenshots, demos, polls, etc.) I had "some" success - but without much visibility in the first place, it's quite hard to go beyond the small circles of indie game devs themselves. As for the press and games websites, I've got my material ready (resources, screenshots, trailer, etc.) ; thought it's near impossible to catch the attention of "big" news sites unless an indie game is already a success.

    Thanks for the contribution ! Updates very soon...

  • The "solid" behaviour needs the collision information to resolve object overlaps anyway ; that's how all discrete or continuous collision detection systems work. Preventing object overlap should still register a collision, otherwise it makes the behaviour useless to write actual gameplay logic.

    Floating point math errors are a known problem, and while actually solving collisions can always be difficult and lead to degenerate cases, registering collisions should be consistent.

    I still believe the specific y positions hint at a physics cell boundary issue.

  • Yes it is ; don't share the repo, just place your game dir in a publicly available location, and get the public link for the index.html file. That's what you give others to test your game

  • Thank you very much for the positive post -

    If you have any comment or feedback, please let me know ! The game has been subject to numerous iterations and focus tests and I believe the current gameplay experience should be close to optimal, but the game hasn't been released yet so there's always room for improvements

    The full game isn't available at the moment ; I'm hoping to publish it properly as soon as I sort the "legal" side of things to sell it via online distribution platforms.

    It should be noted the demo is limited in terms of content (intro/tutorial + 1 explorable module vs. 8 modules in the full game) and therefore offers less freemdom, though should be sufficient to get a good feel for the product.

  • Thanks to all the feedback, the game is pretty much finished now !

    I have updated the initial post with some new screenshots and links to the latest demo.

    Key changes :

    • Core mechanics update (energy, morphs, etc.)
    • More content (x2 playable area)
    • Additional story elements
    • New enemy types
    • Improved resources
    • Keyboard configuration
    • Customisable visual style (scanlines, bulge, etc.)
    • Endless list of balancing and level design tweaks, plus various bugfixes

    Previous focus test demo is no longer available

    New demo shows ~15% of the game content (tutorial area + 1 out of 8 modules)

    Browser demo

    Recommendations : up-to-date Chrome + Xbox360 compatible gamepad

    https://dl.dropboxusercontent.com/u/526 ... index.html

    Desktop demo

    Recommendations : Windows 7/8/10 + Xbox360 compatible gamepad

    https://dl.dropboxusercontent.com/u/526 ... emo0.9.zip

  • Hi all -

    I am trying to find legal information related to publishing games as an "amateur" / "hobbyist".

    Basically I will soon be in a position to sell a small game I developed but I don't know much about entrepreneurship and legal company stuff.

    This all depends on localisation (Europe here btw) and I will want to see an accountant (or solicitor, or tax/business advisor) at some point, but for now I am gathering information to review the options at my disposal. Additionally, with modern technologies (international distribution platforms, paypal, etc.) it is not always trivial to find tax experts that are also up-to-date on internet specificities.

    The core question could be formulated as : I created a game at home, what is the legal process to sell it ?

    This could also apply to lots of other disciplines (painting, writing, music, etc.)

    From what I've read so far, I see mainly 3 cases :

    • Independent worker, as a main income-generating activity. This is relatively well covered, with lots of suitable business statuses (sole trader, limited company, etc.)
    • Freelancer, working on demand for a client ; btw apparently it is possible to be freelancing while being incorporated or not
    • Hobbyist, producing something of value without any real business structure

    My situation is quite close from the last one, I think ; I don't have an infrastructure (no office, no dedicated hardware, only my home equipment), no order (not creating the game as a request for a client), no fixed working hours (personal free time)

    I am trying to limit the administrative paperwork while remaining on the legal side to sell a product.

    Lots of applications are being published by individuals on a regular basis on many platforms (itch.io, gamejolt, etc.), so I'm thinking there must be an easy way, but actually finding the legal info is far from trivial. Most of the websites talking about indie games focus on the development process, not really the legal/business side of things for individuals.

    If I can make a simple revenue declaration to pay the relevant taxes without being incorporated, that would seem like a practical solution.

    Well, if anyone has ever published games as an individual or has experience with this, any advice would be greatly appreciated.

    Thanks for reading

  • Thanks for the confirmation, 'much appreciated.

    I've created a minimal test scene demonstrating the problem ; bug reported :

  • Problem Description

    This bug report relates to the following thread : load-assert-getobjectbyuid-and-quot-wait-until-afterload-quot_t163350

    Performing an UID lookup in "on created" triggers during layout transition fires an assert "Do not call getObjectByUID in loadFromJSON: wait until afterLoad() to look up"

    Attach a Capx

    https://dl.dropboxusercontent.com/u/526 ... ssert.capx

    Description of Capx

    2 layouts, a "menu" and a "game level"

    Menu : Space to go to the "game level" layout ; F9 to load a game state

    Game level : 3 entities : ground, player, pickup. I'm not too sure if/how object creation/destruction works with game states, so having a player being able to collect pickups provides a quick way to "collect" some of the entities and try different "save/load" configurations. On creation, the pickup entity performs a UID lookup (pick by UID) with triggers the assert

    Steps to Reproduce Bug

    • Menu, press "space"
    • Game, press F6 to create a save state
    • Restart the game / reload the page
    • Menu, press F9 to load the save state > an assert is triggered
    • Menu, press "space"
    • Game, press F6 to create a save state
    • Restart the game / reload the page
    • Menu, press "space"
    • Game, press F9 to load the save state > the assert is NOT triggered

    Is seems the assert fires only during layout transition.

    Expected Result

    The assert seems to have no impact ; the event logic seens valid, therefore the developer expects no assert

    Affected Browsers

    • Chrome: YES

    Operating System and Service Pack

    Win10

    Construct 2 Version ID

    C2 r216 64b (Steam)

  • Confirmed the hunch !

    OK, this is indeed coming from UID lookups in "on created" triggers during loading phases that cause a layout transition.

    I worked around the issue by duplicating a bit of code in all entity creations, or delaying UID references (lazy-ctor style), as I was mostly mimic-ing a super-constructor behaviour via function calls ; this makes it virtually impossible to factor creation logic with "interfaces", but isn't too bad to deal with once you're aware of the limitation.

    Thanks R0J0hound for the input, just boucing some ideas and formulating possible causes to explain the problem help to think properly, in these cases.

    Ashley if I have time I'll try to recreate the assert in a smaller test scene to report it properly as a possible "bug" (or undocumented unexpected behaviour)

  • In the meantime I'll try to play around with my "on created" events to try to eliminate/delay all UID lookups. Hopefully this will solve the problem...

  • *edit* Hmm on some further investigation, it seems it might be coming from the system I use to mimic "inheritance" via families and function calls -

    Basically, most of my entities follow this pattern :

    • Entity belongs to Family ; Family is used as an "Interface" to factor some data and logic
    • "on Entity created" > call function "Family_method(Entity.UID)" (almost like a constructor calling a super-constructor to initialise data of higher-level interfaces)

    A concrete example : Guard entity (a simple sprite of a guard patrolling left/right with a sine behaviour) that belongs to my SuspendableIF "interface" family (factored logic I use to suspend/resume entities when far away from the player so they don't cost any performance in my large levels when not close to the action)

    Guard : on created

    set some member data / behaviours (sine magnitude and period)

    calls SuspendableIF_Init(Guard.UID) ; this generates some functions names (Guard_Suspend, Guard_Resume, Guard_Advance) that are cached in the SuspendableIF to be called later (removes the cost of dynamically generating these names from "class" info lookups)

    Anyway, short version : the problem I'm facing might be coming from these UID look-ups in "on created" triggers during the loading phase !

    I might try to summon Ashley on this one to confirm how things actually work in terms of entity creation during loading :

    Ashley : using UID lookups in "on created" triggers when loading game states that cause a layout transition seems to fire a "Do not call getObjectByUID in loadFromJSON: wait until afterLoad() to look up" assert. Does this seem like an expected behaviour ? If it is, are there any good recommendation to easily work around this ?

  • Thanks for the input, 'really appreciated -

    I tried going through the call stack, but but with limited understanding of the underlying low-level logic it doesn't give me much to go on to be honest ; it's definitely fired during the loading process, and it does seem to have to do with "on created" triggers, at which point it all becomes indices in condition arrays and event blocks and I get a bit lost in the events that are currently running when the assert triggers.

    assert2 (preview_prelude.js:11)

    Runtime.getObjectByUID (preview.js:2863)

    cr.add_common_aces.cnds.PickByUID (commonace.js:475)

    Condition.run_static (eveng.js:1303)

    EventBlock.run (eveng.js:868)

    EventBlock.run_subevents (eveng.js:996)

    EventBlock.run_actions_and_subevents (eveng.js:935)

    EventBlock.run (eveng.js:888)

    Runtime.executeSingleTrigger (preview.js:4843)

    Runtime.triggerOnSheetForTypeName (preview.js:4762)

    Runtime.triggerOnSheet (preview.js:4694)

    Runtime.trigger (preview.js:4665)

    Acts.CallFunction (Function_plugin.js:180)

    Action.run_object (eveng.js:1852)

    EventBlock.run_actions_and_subevents (eveng.js:931)

    EventBlock.run (eveng.js:888)

    Runtime.executeSingleTrigger (preview.js:4843)

    Runtime.triggerOnSheetForTypeName (preview.js:4762)

    Runtime.triggerOnSheet (preview.js:4694)

    Runtime.trigger (preview.js:4665)

    Layout.startRunning (layout.js:381)

    Runtime.doChangeLayout (preview.js:2743)

    Runtime.loadFromJSONString (preview.js:5499)

    Runtime.handleSaveLoad (preview.js:5302)

    Runtime.logic (preview.js:2610)

    Runtime.tick (preview.js:2322)

    Runtime.initRendererAndLoader.tickFunc (preview.js:649)

    As for the triggers I am using, well... Quite a lot ; it's a full platformer game - I'm unable to reproduce the issue on small test scenes, and binary chopping through my events doesn't get me very far in terms of narrowing things down.

  • Hi all -

    I'm facing a problem with loading/saving, and I'm not too sure what's triggering an assert.

    The assert is : "Do not call getObjectByUID in loadFromJSON: wait until afterLoad() to look up", and it's coming from preview.js:2863

    Runtime.prototype.getObjectByUID = function (uid_)

    {

    assert2(!this.isLoadingState, "Do not call getObjectByUID in loadFromJSON: wait until afterLoad() to look up");

    var uidstr = uid_.toString();

    if (this.objectsByUid.hasOwnProperty(uidstr))

    return this.objectsByUid[uidstr];

    else

    return null;

    };

    Initially I thought it was to do with objects dynamically created and destroyed by other objects (typically : on created > create some more stuff, on destroyed > destroy some more stuff the was previously created)

    I had a nice repro-case with a pickup object. A pickup item is manually placed in the level ; on creation, the pickup item creates a "floater" item (could be some text, icon, effect, etc. floating above the pickup) ; the pickup keeps a reference (uid) to the floater it creates ; when the pickup item is collected by the player, it is destroyed , which also destroys the floater.

    I moved things around a bit to avoid looking up UIDs in "on destroyed" triggers, and it seems that helped a bit.

    Still, I have more cases of this assert firing when loading game states from a different layout (game menu) :

    I breakpointed on the "return null;" and that never triggered, so I *think* this has actually no impact on the game (and I can't see anything wrong when playing the game after loading with the assert).

    Nevertheless I'm still confused - what's the actual sequence of events when loading a game state, esp. regarding object creation/destruction ?

    Has anyone ever faced this assert when loading save states ? Any idea what might be triggering it ?

    I've been investigating on smaller test scenes and binary chopping through my events, but at this stage I don't have much left to go on and I haven't been able to narrow it down any further ; any pointer or random guess would be appreciated !

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Ashley : my apologies ! I recently cleared some old links I submitted in the past for other bugs/demos and it seems I mixed a few things :/

    Correct .capx for this bug : https://dl.dropboxusercontent.com/u/526 ... onBug.capx

    You'll be delighted to see it only has 6 events <img src="{SMILIES_PATH}/icon_e_biggrin.gif" alt=":D" title="Very Happy"> Thanks for finding the time to look into this !