Jase00's Forum Posts

  • Damn, I'd totally send in a CV to apply for a job, but I lack the required skill. I know my way around C2 very well and have used it excessively and also have interest in software development (as well as games design), and am also located nearby Twickenham, but my Javascript knowledge is little to non-existant. Not to mention I don't know C#/ASP.net or C++ (Though it looks fairly straight-forward to understand, just looks menacing because of all the vague words and { } brackets sprinkled everywhere).

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Oh right yeah sorry, forgot the solution! :P

    If I remember correctly, my backup directory was IN my project folder (so like "C:/User/Username/Documents/My Construct 2 projects/Project/Backup"), so I changed the backup directory to some place outside my Project's folder :D ("C:/User/Username/Documents/Construct 2 Backup/")

  • I had same problem a few months back, and the problem was that each backup was saving my project AND past backups, so when you've saved about 50 times, it's backing up 50 of those backups into a new backup, which adds up fast lol

  • Here's my really drawn out thoughts and ideas on this subject, as I have hit points where I have had problems dealing with this whole "turn on and off individual collision" thing.

    So the problem is that if we are using a behaviour (such as platformer) that relies on another sprite having the "Solid" behaviour in order to be able to collide/stop/land on, we can't. Instance Variables (like Thndr mentions), would honestly be the most AWESOME way to handle this, but we don't actually have the action avaliable to make a behaviour sprite act properly unless the target sprite has a Solid behaviour on it. So the current methods we have aren't good because:

    1) Deactivating the Solid behaviour on the sprite, would mean all other behaviours that rely on the Solid platform will also be deactivated.

    2) Deactivating the Platformer behaviours collision would mean that if they were to land on a Solid, or walk into a solid that they should be able to collide on whilst still being over the floor that should be deactivated, the result could end with the player being able to walk through obstacles they shouldn't be. (So for example, your within some lava that causes you to be deactivated of collisions since you don't have a powerup to walk on lava. Whilst you are in the lava and collide with a wall, you would go through that wall.).

    If I were to implement 1 (seemingly) easy feature into C2 to help, that would be some form of "Treat as solid" action. "Treat as solid" would be available in all behaviours that interact with Solids (platformer, 8 direction, ect), and it could be called during a "Is Overlapping" event (or however collisions are usually called within the code of behaviours normally).

    What this action would do, is simply make the behaviour behave as if it has just collided with a sprite that has a "Solid" behaviour applied to it, even though it doesn't have a solid behaviour...*mindblown*

    So if we take the lava example,

    The lava would NOT have a solid behaviour applied to it, and we could allow multiple platformer players that each have different states to determine whether they can walk on the lava. So the events to make ONLY players with the powerup able to walk on lava:

    -"Player.WalkOnLava" = True

    -On Collide "Player + Lava"

    + Player "Treat As Solid [Lava]"

    This uses instance variables to see if they are allowed to walk on lava, and then detecting if they are on lava, then colliding with the lava, stopping the player from falling through it, whilst any other players that have that variable set to False, they would fall through it.

    The only downside I can think of with this, is that if you would want to take advantage of this sort of mechanic, you would need to remove all "Solid" behaviours that exist in the sprites, and have to handle it manually in events.

    Good idea? <img src="smileys/smiley16.gif" border="0" align="middle" />

    tl;dr Add a new "Treat as Solid" action to behaviours that rely on collision with solids, so that we can make them collide with non-solid sprites as if they are solids.

  • I think I know what he's trying to explain.

    If you have Platformer Behaviour on a Sprite, and was to have a separate Solid sprite, then make that solid sprite rotate whilst the Player is standing on it, it would make the platformers animation flicker between falling/standing whilst the floor is rotating.

    I kinda have a sort of similar problem, which is when I have some floors and then a floor is connected to an angled floor and positioned against eachother. Walking along the floor works fine, but when you walk across the part of floor where the flat floor meets the sloped floor, the character sometimes flickers to the falling animation (though nothing's wrong with the movement, just the animation flickering). I'd put a capx/screenshot up but I gotta go off computer!

  • Well, the good thing is at least, is that there ARE workarounds :P I'm not too fussed but if AudioFamilies is a simple thing to be implemented, then huzzah!

  • jayderyu

    Hmm. I know it could be done without "Multitags" if I were to repeat event's multiple times to give multiple effects to each Tag, but that's severely impractical.

    Let me explain my elaborate situation:

    Some tags are generated in a way to enable them to be stopped if the sound is coming from a specific Sprite, making a tag like ("Rawr"&Sprite.UID), so that if I want that specific Rawr to stop that is from that specific Sprite, I can do "Stop sound" ("Rawr"&Sprite.UID)

    Now that would mean there would exist several Tags like "Rawr23", "Rawr56" ectect. Now say the Rawr sound (which lets say is a 5 second sound) is playing whilst the player is underwater. The sound would get created and we would apply the low-pass filter to mimic the underwater audio effect. Now say the player goes above water DURING the rawr sound effect (3 seconds into the sound), I would now need to change the low-pass parameter so that it no longer sounds underwater for every sound it affected, so now I'd end up running a few loops to remove filters from every possible situation even if the sprite is not playing a Rawr (ForEach Sprite, Set effect parameter for "Rawr"&Sprite.UID). This (I think) seems realllllllly inefficient, especially if one had multiple different sound effects other than "Rawr" that come from multiple sprites, ectect.

    However, having Families, (still not entirely sure how audio families would exactly work in my mind but), when creating the "Rawr"&Sprite.UID, I could ("Add to family ("Underwater")), which will now render that tag to be affected by some separate events for that family, so that I have only 1 or 2 events to detect if the player is underwater or not, and just do "Set Audio Family Effect Parameter" literally ONCE for each event. This would apply to all sounds/music, and literally lessens the events to 1 or 2.

    Extremely elaborate and probably confusing, I apoligise. :P

  • Another practical example would be the "underwater" low-pass effect to play over multiple sounds/music :P

  • +1! Being unable to easily recreate layers across multiple layouts causes me to fear making levels and work on just 1 layout until I think I won't need more layers :P

  • I thought about this yesterday and never thought of the concept of" Audio Families" which sounds perfect! +1

  • blackstr

    You can decide whether to load from files or directly within C2's layout editor! I personally choose C2's editor rather than external files :P

    With variables, most of the time I put them in the sprites. Every single character + monster is the same underlying sprite called "Player", which has many instance variables (I think I managed to rack it up to 60 variables per player! Not sure if that's bad design in the long run but works for me :P) It's good to put variables into the sprites that you know you will have multiple instances of, as you would want to handle individual instances' variables like HP and speeds and other stats.

    As for sprites, I personally loaded them into C2, which was extremely time-consuming and it's definitely not the best way if you are planning to have a lot of different images/frames (like in MapleStory, there's 1000's of monsters with several animations and frames, there's tonnes of clothing items, so these things would probably be better to load externally IF you plan to use a lot of them.)

    Loading external sprites is the most "eh" thing about all of this. Let me explain (and I'm explaining this unaware if there is a plugin that would greatly help this situation):

    IF you wanted to only have 1 character that gets the ability of having external files as images, then sure, you can do that, but only 1 character. Why?

    Well, Construct 2 can indeed load external images into a sprite, it loads over the current frame, so you could load in lots of separate frames into a sprite and load in some origin points into instance variables (you can't specify origin values when loading an external image file, so you have to store the origin point coordinates in another separate file and load them in), then yes, that's basically how to load external images into the game. However, if you had more than 1 instance of this object, it will always share the same images, therefore you can't load some other files in the same sprite, because ALL sprites will change to the new file.

    I guess one work around (Which I'm having the feeling is not the best workaround), would be to clone a sprite several times so that you can load different animations in each blank sprite and then throw all those sprites into a Family so you can handle them all at once, but then you're limited to the amount of times you clone the sprite, and also if you needed to add a new frame or animation or something into the sprites, you'd need to edit every single sprite you cloned to add in the new animation frame. Not a sensible idea! But I think it's best not to worry about it so much, there's probably speedy ways to load things in but I'm not sure at this moment.

  • RookieDev

    Thanks! I never actually released it or put it up anywhere due to nobody really being interested in the project. I guess if there was more demand to play it, I could spend some time cleaning it up and put it up on the Arcade or something :P

    TiAm

    Hey thanks! I have a few reasons why I stopped working on it, mainly because I was enthused by the Tizen Challenge which meant I had to make a game with my own content (not MapleStory images lol), as well as how messy I designed the game.

    MapleStory has literally hundreds of clothing items, each with their own Origin points and frames (there's probably around 50 frames per clothing piece, not to mention certain items were in two's (One shirt would be the "Shirt" and the "ShirtOverArm" pieces, so that's 100 frames to import and align!). There's already lots of tools out there to generate XML files for the origin points, but I didn't know and didn't want to risk trying to load XML's and whatnot in Construct 2, so I would just look at the XML file of an item and align it manually in C2's animation editor. Could take 30 minutes to do 1 item, an hour if it's a top or gloves!

    Also, I didn't design it to be very modular (I believe that's the correct word), whereby if I change a small piece of one thing in the events, it would break 100 other things, such as in the video at 5:16 onwards, you see the window popup with a glitched character; I had designed that menu perfectly: you'd see a clone of your character within that window which you can change the hair and haircolour (same with eyes and eyecolour), but because I tried adding something new (I think I tried adding different body skin tones or tried making it possible to import animation frames externally from a folder, I forget lol), it made characters break in those windows. So in the end, it'd be better to just start fresh

    Another point is that nobody noticed the game, and I fail at marketing/advertising, never really felt good about going to forums to flood them with my game, I think I did it once and it got me nowhere lol.

    The most main reason is, I'd be damned if I put all this time and effort into the game, just to get sued for copyright infringement because I used images/sound that's owned by Nexon (MapleStory company). I'm now making a project which uses things I had made/planned to make in my MapleStory game, except it's better designed, and is no longer a copyright claim waiting to happen <img src="smileys/smiley16.gif" border="0" align="middle" />

  • Yes, definitely!

    I spent many months making a clone of MapleStory in which it is single player and has more fast-paced gameplay. It was my first project ever in Construct 2, although I did use MMF2 and other software for a few years before I found C2. I spent so much time working on it on my own, using the Scirra forum to ask questions I needed to ask here and there, and came out with this!

    I'll upload a video so you can see what I managed to make.

    Here is vid:

    [TUBE]http://www.youtube.com/watch?v=eRywKLbrF7M&feature=youtu.be[/TUBE]

    But anyway, to answer the specific details,

    Large-scale sidescroller

    Yes, definately, as long as you design the level appropriately (Not one massive 10000x1000 image, but instead, lots of small repeated tiles/scenery.) You should check out Remember not to waste your memory and also take a peek at the Tilemap object for level designing efficiency! (I personally didn't use the Tilemap object, it didn't exist at the time I made the game!)

    Character Classes

    Yes! Depending on how you plan to implement the logic behind this, this could be a breeze. It would tie in with other things like if you planned to "Only warriors can equip 2H swords", then that would tie in to the inventory logic, where upon attempting to equip something, detect the class that the item allows, and detect the players class, and if they match, then equip. If not, then popup message saying "No" :P

    All items could be in one "Family" called "Items", which would allow you to assign Instance Variables to that family, such as "Name", "Description", "Str", "RequiredStr", which will make it super easy to implement things later on like inventory/equip stuff! Making "Class specific" items (like, how to assign the property to items so that they can only be worn by 1 or 2 classes) could be done in several ways but my mind is currently blank on that right now, very tired indeed lol.

    Drop tables

    Yep :P See, here is where I should probably say "Use Arrays/Dictionaries/XML" or something, but when I made my game, I didn't use anything except pure Construct 2 events. I do recommend you learn about those things if you don't already, I reckon they'll allow you to handle drop tables really well. You can have all the properties you desire, like rare/uncommon (You could do it like Maplestory with the % chance, I think I made the Blue snail shell in the video have 90% chance of dropping or something), you just need to prepare the correct logic to make that sort of system!

    You're not in over your heads at all, it's totally possible to do it, I've done what I've done single-handedly, I can imagine you and your friends working together as a group would end up creating something way more cooler (and neater)!

    If you have any other questions, I'm more than happy to answer them :)

  • zenox98

    Oh wow I never realised this applies to resizing objects, I was aware of it and have it switched on all the time to 1x1, but never thought to change it to see if it worked with size. Thanks!

  • Hey!

    This suggestion is super tiny but would be extremely useful to me and potentially others that use Tiled Backgrounds when creating levels!

    I think it would be very useful to be able to hold "ALT" (or any other key) whilst resizing a tiled background object, and cause it to snap into it's nearest image dimension relative to the mouse cursor (So say the Tiled Backgrounds image is 64x64 and you resize it horizontally whilst holding ALT, it would snap the width to the closest multiple of 64 (64,128,192)).

    The reason I would find this highly useful is because when making a long stretch of tiled background, it's not as easy to find the exact multiple of the image, which is necessary for sprites that need to connect to a different type of tiled background (They would look out of place if the 1st tiled background cuts off at like 17 then suddenly another tiled background is there that is drawn to connect to the side of the 1st tiled background.)

    It seems like a pointless suggestion almost, but after having to deal with multiple different tiled background placements and having to figure out the right size, it takes away a lot of time in the long run!

    Thanks for reading!