lolpaca's Recent Forum Activity

  • Here's an idea for how you could do it Binding of Isaac-style.

    Make an array called 'Map', with width and length set to the maximum width and length of your total dungeon (let's say 9,9). Set the value in the middle (4,4) to "A" - this represents the starting room of your dungeon.

    Say "A" always has exits up, left, right and down. You then need to make a bunch of other rooms whose door configurations are represented by letters of the alphabet - "B" could be exits up and left, but not down and right, for example. You can have multiple different rooms with the same exit configuration, so you can name these "B1", "B2", etc.

    Then the tricky-ish bit. For your map array, you want to do something like:

    For Each XY Element

    &Value at CurX, CurY = A

    Set value at CurX+1, CurY to choose("B","C","D")&choose"1","2","3"

    (where B, C and D are room configurations which all have exits to the left, and you have 3 different layouts for each).

    Carry on doing that for the other exits for room A, then carry on for the other rooms. Finally, you should end up with an array that contains all the information you need to auto-generate a dungeon.

    Hope that makes sense! I might not have explained it too well - if you like I can put an example .capx together showing the basic idea.

  • Oh man, I've never seen that nickname plugin before. rexrainbow you're a goddam rock star

  • Yep, or just use a circular invisible sprite pinned to the player and only play sounds if it's not overlapping the origin of the sound. But I'm lazy, your solution sounds more impressive

  • Add a line of sight behaviour with the radius you want, and play sounds only if the player doesn't have line of sight?

  • So, any chance of a demo anytime soon?

    +1 to this

  • Could you explain why you want all your enemies grouped into the same object type? That sounds like it'd be a nightmare to code... It's much less complicated to just use multiple object types and put them all into a family.

  • Yeah, it sounds like a partnership would be good if it's the main process of creating a fully-fledged game you're struggling with. It's a lot for one person to take on!

    It might help too to write up a design document. Just set out your main ideas for what the game is, what are the mechanics that make it tick, and what things you still need to add before it's complete. It doesn't have to be anything fancy (mine's a big Notepad file vaguely divided into subheadings) but getting it written down can help to flesh it out in your head.

    It also depends on what kind of game you want to make. If you're making a story-based adventure game your design doc will probably read more like a film synopsis, while if you're making an RPG, you'll probably have to get the old spreadsheets out at some point

  • Ha no worries, it's a pretty specific problem and I'm not explaining it all that well. I think it's a limitation with how solids are treated by behaviours - basically you can't have "push out solid" for one specific group of solids only, which is what I want. Had a bit of a brainwave last night though and I think I've figured a way around it.

  • My player uses 8 direction, while the enemies mostly use a combination of MoveTo and custom movement. I have custom movement to "bounce" the enemies off one another when they're clustered together, and that works fine. I can't use the same thing with the tilemap though, because I have to set a direction for the bounce - usually I use angle (SolidObject.X, SolidObject.Y, Enemy.X, Enemy.Y), which won't work with the tilemap since its X and Y are at 0,0 (or some fixed coordinate anyway). If I could somehow return the coordinates of the point of collision with the tilemap, that might work, but I'm not sure how.

    To be honest, movement and AI's always one of my biggest headaches I don't like using push out solid at all if I can help it - it tends to lead to janky, glitchy movement - but it's the only way I can see that'll make sure the enemies don't go clipping into the tilemap.

  • Thanks for the reply! I don't think that would work though, unless I've misunderstood it. The problem's that "Push out solid" simply triggers for every solid the object is touching, not just the solid being referenced in the event.

    Basically, flying monsters can move over furniture (sprite, solid) fine, as I don't have any collision events set up for them & the furniture. But when a piece of furniture is close to a wall (tilemap, solid) and the flying monster collides with the wall while also over a piece of furniture, it suddenly pushes them out of both, which looks a bit jerky and rubbish.

    One possibility is just to remove all solids from the game and do all of the push out stuff manually with custom movement... but that'd take quite a lot of work with the project in its current state, and if I'd like to see if there's an alternative using the native push out first. I might just be misunderstanding your example though, if I have could you explain a bit more please?

  • I'm having a bit of trouble with enemy movement in my game. I have a main tilemap which should be completely un-traversable for all enemies, so I've been using the "Push out solid" action when they overlap with it. The problem is some enemies have a "flying" attribute, which enables them to move over other solids (like furniture in the rooms) normally, but when they collide with the tilemap, the push out solid action pushes them out of the furniture as well as the tilemap.

    I've tried using custom movement to mock up my own "push out solid" behaviour, but it's hard to get it working with the tilemap, since there's no easy way to push something in the opposite direction of the point of collision (pushing it in the opposite direction of the tilemap itself won't work).

    Is there any way to make certain objects only treat certain others as solids? Ideally flying enemies should be seeing the furniture as non-solid, but the tilemap as solid.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Basically everything TiAm said. There comes a point in nearly any project where you have to face up to the fact that the code you've written is crap and you need to re-draft it leaner and better. I've found it's best to bite the bullet and do this as soon as you notice it, rather than staving it off - saves a lot of arseache in the long run.

    If it's motivation with finishing a project that you mean, I think if you're not enjoying working on a project, maybe it's just not for you. Trust your own instinct with what's worth pursuing and what isn't. Obviously there are boring bits in any project, but the overall motivation to get this thing finished should be enough to get you through that, and if it isn't, it might be time to come up with a new idea.

lolpaca's avatar

lolpaca

Member since 28 Feb, 2013

Twitter
lolpaca has 1 followers

Trophy Case

  • 11-Year Club
  • Popular Game One of your games has over 1,000 players
  • Email Verified

Progress

13/44
How to earn trophies