Johncw87's Forum Posts

  • It has been 3 weeks with no response. I found the github issue tracker, so I have posted it there.

    github.com/Scirra/Construct.net-website-bugs/issues/173

  • hell yeah tell thme john !!!

    I don't need cheerleading from someone who posted a contrarian opinion in a thread about a crypto plugin and didn't even provide a single reason or fact to back up that opinion. I may agree with your opinion, but I don't agree with how you presented it.

    Your low-effort posting tells me you are only here to stir **** up.

  • Don't get into crypto is like: don't get into cars when you are a horse owner. I think there are some very good reasons why crypto is great:

    - It provides means for decentralization

    - It provides means for anti censorshop

    - Everything is public via a ledger

    I don't want to turn your release thread into a argument about crypto, but I cannot let this "crypto is the future" rhetoric go unchallenged

    There is a big difference between horses vs cars and crypto. Cars have advantages over horses, like being able to go faster, and being able to safely transport multiple people without worrying that someone will fall off. There are practical reasons to use a car over a horse. You cannot say the same thing for crypto, or even blockchain. I have yet to see a single use of blockchain that couldn't have been done better with some other tech.

    In theory, blockchain is supposed to be decentralized, but it became centralized anyway. No sane person tries to conduct transactions themselves with bitcoin. It takes way too long to process a transaction for that to be practical. Instead, they go through some intermediary that makes it easier. In order to make it easier, these intermediaries have to have full control over the crypto-wallet containing your funds. Congratulations, you just invented banking, something that already existed, except now, there are no regulations to protect ordinary people from predatory companies. What has society gained here? Nothing. Just a pointless waste of electricity.

    How exactly is crypto anti-censorship? In order to circumvent the government, businesses would actually have to accept the crypto-currency as payment for goods and services, and if you haven't noticed, most don't. Once upon a time, crypto-currency was good for exactly one thing. Buying illegal things. But the place that facilitated this shut down, and crypto-currency has gone back to being functionally useless as a currency. It instead functions as an incredibly volatile stock that isn't actually worth anything. The only way to get value out of crypto now is to sell it to someone who is a bigger sucker than you. Interestingly enough, this is where NFTs come in. NFTs are a huge scam in every conceivable way. They are marketed as a way to "help artists", but their only true purpose is to trick more people into buying crypto. The fact that you can easily "mint" an NFT for something that you don't own any rights to and then sell it to someone else should be a HUGE red flag that this isn't something that will be accepted as legitimate. Then, if you go into the technical details of what is actually being bought and sold, it gets even more obvious that it has no value. What gets bought and sold is merely a URL to an image. Not the actual image. Just a URL. URLs are practically free. It costs virtually nothing to add a URL to an existing webpage. Why would you pay for this? The actual image is still hosted on some server that someone is paying for, and they could easily swap out the image with something else. Your terrible-looking ape NFT has now become <insert name of shock image here>. (I don't want to name-drop actual shock images here, this forum isn't the place for that)

    The blockchain IS public, and yet, crypto-bros seem to conveniently forget this fact when they start talking about how block-chain will be used for everything, including storing private information that you absolutely wouldn't want to have public, like social security numbers. Being public also makes it ludicrously easy to "pirate" all NFTs, further cementing their uselessness.

    Not only has blockchain yet to prove itself as a useful technology, the whole crypto scene is rife with scammers. Scammers have concluded that people who buy in to crypto and NFTs are easier to scam, and run rampant in spaces dedicated to NFT and crypto discussion.

    For all of these reasons and more, I will never buy into crypto, and I would heavily discourage anyone else from doing so either. If you want more information, here's a 2 hour long video that goes into great detail about the problems with NFTs and crypto.

    youtube.com/watch

  • There's a thread I created here 6 years ago that I needed to update the download links on. The files are hosted on Google Drive, and are configured to allow anyone with the link to download them.

    The problem though, is that the forums are mangling the link as part of the outgoing link tracking, but then not properly de-mangling them for the redirect, which causes the query parameters to not be interpreted properly by Google Drive. This results in users needing to request access to a file that they shouldn't need to do so for.

    Here is one of the links, as I entered it into the BBCode:

    https://drive.google.com/file/d/0B40Xy8VSKqoOTnE3bC1xdlEwVEE/view?usp=sharing&resourcekey=0-iqlE98_7mDhZInXkO63jRg

    This is how the forum mangles it:

    https://www.construct.net/out?u=https%3a%2f%2fdrive.google.com%2ffile%2fd%2f0B40Xy8VSKqoOTnE3bC1xdlEwVEE%2fview%3fusp%3dsharing%26amp%3bresourcekey%3d0-iqlE98_7mDhZInXkO63jRg

    According to https://deref.link/, this is how the forum is redirecting users:

    https://drive.google.com/file/d/0B40Xy8VSKqoOTnE3bC1xdlEwVEE/view?usp=sharing&amp;resourcekey=0-iqlE98_7mDhZInXkO63jRg

    They key difference between this and the original link is the ampersand. The redirect has it encoded for xml, and it mucks up the parameter name.

  • I would advise against using that "lightning fast" raycasting tutorial. I can assure you that no built-in function of Construct 2 can match the accuracy of a real raycast function (Construct 3 added real raycasting, but this topic is about Construct 2). Since Construct 2 was lacking such an important feature, I wrote a plugin to implement real raycasting. Click here to see it in action.

    Using multiple raycasts with my plugin is simple enough. You use the "Trace Line" action to perform a raycast, and then, in the following conditions/actions, read off the various bits of info that you want from the raycast using the plugin's expressions. The data from the most recent raycast will remain until another raycast is performed. You can perform as many raycasts in a single frame as your CPU will permit.

  • First of all, your sprite should face right in the Sprite Editor.

    Then in the event sheet:

    *You can use Self.X for pikmin.X*

    That's not what Miles_Miles is asking for. In fact, I think they made it clear that this is what they don't want.

    I already have it so the 'pikmin' move towards the player but I cant get it so that they don't face the player. And I want that because the game isn't top down on the players head

    Without seeing the sprite, I can't tell you what the appropriate approach would be, but I can offer some suggestions.

    1. Set the "pikmin" angle to: angle(Pikmin.X, Pikmin.Y, Player.X, Pikmin.Y). This should cause the "pikmin" to "face" the player via rotation, but only ever directly to the left or right.

    2. Use the "Set Flipped" action to flip the sprite. This is what most retro games do. Compare the X position of the "Pikmin" and the player to determine whether the sprite should be flipped or not.

    Whichever approach you use, you will need to adjust it if you ever decide that the "Pikmin" should move to somewhere other than the player, even if only as an intermediate step (like with pathfinding). If I were writing this, I would set up two instance variables on the "Pikmin" titled "GoalX" and "GoalY", and use them to store whatever position the "Pikmin" should be moving towards.

  • I've been noticing this issue recently, and I've determined that it is related to Avast Anti-virus. Something about Construct 2's save behavior causes Avast to block it, resulting in this error. Disabling Avast protections allows saving to work.

  • Hello ,in case anyone wanted to have fewer instances of this plugin on their layout i crudely modified it to use 'tagged' rays and from now on the expression to access hit data requires tag ,as an example : Trace.HitX("tag")

    It may be possible to attain such behaviour with original plugin but i couldn't grasp it.

    I'm not sure why people keep insisting that you need more instances of the plugin than you actually do. You only need 1 instance per collision configuration, and that's if you want to avoid re-configuring a single instance constantly (you should want to avoid that, don't waste CPU cycles just because you can).

    All you need to do is fire off a trace and then use the data from it in the events immediately following the one that fired it, and not fire another trace until after you are done with the data from the previous trace. If you need to keep the data around while performing another trace, store it in some variables.

    You can easily service 1,000 different uses of the trace plugin in a single tick and with only 1 instance. If you think you need more for any reason other than multiple collision configurations, please explain the exact scenario you believe requires it.

    With regard to 'reverse compiling' an exported project, this is obviously impossible, for quite obvious anti-piracy reasons.

    So unless you can use a drive recovery program or company, then it's likely you will have to start again, or from whatever old backup you may have.

    I wouldn't say it's impossible. Someone with sufficient motivation and programming skill could write a program to do it (with a little help from the user). Most of the relevant project information still exists within the output data.js file, and is only protected by security through obscurity. It would simply become a matter of trying to fill in the blanks to generate a complete and working project. Successful de-compiling may require several attempts and educated guesses by the user (similar to actual reverse engineering), but a determined enough individual could do it.

    I imagine such a program would be highly frowned upon here though, as while it would be useful for project recovery, it could also be used as a tool to steal other people's finished games.

  • Ashley

    Many of the awesome plugins we have would not have been possible without such a preview of plugin code: off the top of my head, I imagine that Canvas, jcw_Trace and most of RexRainbow's plugins would not have been possible without other c2 plugins being human-readable, but I could be wrong.... I feel that this restriction will sacrifice the creative, just to avoid giving support where I think you shouldn't be giving support anyway.

    I'm just gonna chime in and say that, at least for my plugin, this is true. It would have been much more difficult to make my trace plugin without the availability of the runtime and plugin sources, and I may have given up on it altogether.

    And many of the more creative plugins were created to fill gaps in the official plugin list. For example, raycasts were asked for many times and you never saw the need; IIRC you stated that we should just use a sprite (! - what about collision point and normals etc?), then jcw_Trace came out.

    To add on to this, a prime example of why you need a trace/raycast plugin. Lets say I'm making a platformer, and the terrain is made of various objects with unique collision polygons. Throw in a few different types of rotating platforms from various other 2D platformers to make it interesting. I want to adjust the player's horizontal speed based on how steep the slope they are walking on is, and force them to slide down if it is too steep. How do you propose to solve this without traces/raycasts? You might try to be a smartass about it, and say that every walkable edge should be its own object with a variable set on it so you can know what angle the slope is at, but that's a mess to design a level with (believe me, I tried). When you start making the level design that complicated, it kinda defeats the purpose of using a tool like Construct 2.

    The simple fact is, nothing will be easier or more CPU efficient than just using a proper trace/raycast to find out the normal of the surface the player is walking on.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Problem Description

    When a project is minified on export, the Browser plugin conditions "On update found" and "On update ready" do not trigger. The service worker sends the messages like it is supposed to, but nothing happens in the engine.

    Attach a Capx

    https://drive.google.com/open?id=0B40Xy ... EpEOXJrMWs

    Description of Capx

    Displays text. If an update is found, it will update the text. If an update is ready, it will also update the text.

    Steps to Reproduce Bug

    • Open linked capx.
    • Export for HTML5 website minified.
    • Open in browser.
    • Export again, to simulate "update"
    • Refresh page.
    • Wait a few seconds.

    Observed Result

    Text does not change. You can, however, observe some of the debug output of the service worker in the browser console.

    Expected Result

    Text should change

    Affected Browsers

    • Chrome: (YES)
    • FireFox: (YES)
    • Internet Explorer: (NOT TESTED)

    Operating System and Service Pack

    Windows 10 64 bit, build 14393.1358

    Construct 2 Version ID

    R244 64-bit

    Other observations

    I performed all testing of exported projects on Internet Information Services, with a mostly default configuration.

    Whether or not the project is exported minified, simply refreshing the page in Chrome never seemed to actually load the updated version. In addition, after 2 refreshes, it would take 3 seconds for the service worker to decide that there is an update again. Only a hard refresh (ctrl+f5) seems to be reliable enough to actually load the new version. A lot of people don't think about hard refreshes when troubleshooting a website, so anything that can be done to fix this would be a good idea. Firefox has no issues loading the new version after the service worker downloads the update.

  • It's almost impossible to do anything about bugs that I can't reproduce. Step 1 is to reproduce the problem, so I'm still stuck on step 1.

    My current hypothesis on the matter is that you haven't been testing this bug with the same executable as the rest of us, but instead a version of it before anti-debugging "features" have been added. This is understandable, but I really think you should attempt to reproduce it with the same executable that is distributed on the website.

    But regardless of whether this is the case or not, we can (probably) sort it out with virtual machines. What sort of virtual machine shenanigans would you be okay with? I'm up for whatever.

  • There is no obvious way to fix this problem, because we have to tick the behaviors in some order. Any changes we make would just move the problem somewhere else. If we sort by the object name and tick in that order, then renaming objects can change the tick order. If we tick in the order objects were created in the editor, then deleting and recreating an object can change the tick order. There's no gold standard tick order that is the "correct" one. I am also against letting the user customise the tick order; micro-managing such obscure parts of the engine is the exact opposite of the design principles that has made Construct successful.

    Sure there is. In the Quake engine derived games, moving brushes used a special movement called MOVETYPE_PUSH. MOVETYPE_PUSH entities were responsible for pushing other entities if they were in the way, as well as moving entities that were resting on top of them. Adopting this to Construct 2 would require a few changes (such as being able to specify which objects can be "pushed"), but If you did this, and added a recursive check to it, developers would get the result they want, and the tick order wouldn't matter at all.

  • If I request the files in private (incognito) mode, I still get the 403 forbidden errors. If I use a proxy, I can receive them just fine. I guess the arcade hates my IP address now.

  • I found that a game that I uploaded also wasn't working anymore. Same 403 Forbidden errors on the images. I tried re-exporting and updating the game, but that just seemed to make it worse, as now the data.js file is getting the 403 Forbidden error.

    Also, the server spits this out if I try to view the game iframe:

    [InvalidOperationException: Sequence contains more than one element]   System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) +4506
       System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) +188
       System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +500
       System.Data.Linq.Table`1.System.Linq.IQueryProvider.Execute(Expression expression) +50
       System.Linq.Queryable.SingleOrDefault(IQueryable`1 source, Expression`1 predicate) +490
       V1.Game.IncrementPlaysCount(String playToken) +2946
       Index.ProcessRequest(HttpContext context) +639
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +913
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165
    [/code:1ndb1i39]
    
    @Tom, could you look into this?
    
    EDIT: I suppose I should actually link my game.
    
    [url=https://www.scirra.com/arcade/action-games/super-mario-bros-world-1-3750]https://www.scirra.com/arcade/action-ga ... rld-1-3750[/url]