Silent Cacophony's Recent Forum Activity

  • Nice. Metroid has always been at the top of my favorite videogames list, and this game looks great to me.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • That's cool. A plugin will be very nice to have.

    I remember running across Jamis Buck's generator a few years ago when I first became interested in writing a roguelike game, but I never got around to doing it... It's probably this that gave me the idea that I used on room placement in the example that I posted recently, though I think this one was a bit different in it's implementation. I'll have to take a look at this one again.

    I've just looked back at an incomplete dungeon generator that I wrote in python a couple of months ago, and it looks extremely similar to this. I didn't implement 'smart' room placement on that, and didn't create any doors or content within it, yet.

    Good job with this, as I'm sure quite a few will find it to be useful.

  • if he only needs store the objects python index temporarily this should work fine, which I assumed was the case given his bob example

    however, if he needs to store many instances long term, you can already manipulate large arrays of objects using python with s

    True, it would work fine as long as you don't use the reference past the point that an instance may be destroyed, which could be never in some cases. This would be great for setting up initial values, as you mentioned.

    Thanks for the tip on your S plugin. I had been using python for my complicated data structure needs. That comment just opened my eyes to some new possibilities. I'll be checking S out, soon.

    Seems as though one (or both) of those two solutions pretty much covers it, hopefully.

  • The normal return value of System.Create is None, which is python's null value.

    All of my past attempts to store a direct, persistent reference to a single instance of a multi-instance Construct object have failed. Many of the python methods for Construct objects don't work properly, if they are even there, and work at all. It definitely needs some work.

    As far as the index number goes, they are practically scrambled every time an instance is destroyed, so they can't be counted on to point to the same instance under all circumstances. Here's the output of a quick test with my PyShell.cap:

    >>> ls = []
    
    

    for i in range(5):

    ls.append(System.CreateByName('Sprite',1,i*36+16,16))

    ls

    [None, None, None, None, None]

    for i, s in enumerate(Sprite):

    print i, s.uid

    0 1

    1 3

    2 4

    3 5

    4 6

    5 7

    Sprite[2].uid

    4

    Sprite[2].Destroy()

    > for i, s in enumerate(Sprite):

    print i, s.uid

    0 1

    1 3

    2 7

    3 5

    4 6

    Sprite[2].uid

    7[/code:4py0sf3d]

    I'm afraid that this affects your above plugin's function as well, Lucid, though I really like the idea.

    Not saying that there isn't a better way that I haven't found, but the only way I know of to reliably reference an instance is to store it's uid, as you might do with events. Then, you can use something like so:

    def rotateInstance(obj, uid, deg):
       for i in obj:
          if i.uid = uid:
             i.angle += deg[/code:4py0sf3d]
    
    ... which kind of sucks. I keep hoping that I stumble across a clever way to eliminate that loop. 
    
    That said, I still find Python quite useful for many things in Construct, but you may need to interface it with normal events for some things. Construct's function object can help with that.
  • Other than using the predictive aiming option with the turret behavior, there is also the Linearaim system expression. There is an example of it under New -> New template/example -> Aim AI Tutorial in Construct, as well as a link to an old thread about it in it's description on the wiki.

    They both seem to work the same, as far as I can tell.

  • Nice. It worked quite fine for me, with basic on-board Realtek AC'97 audio, though I think the sounds in general will need a bit more polish to them. I found the footstep sounds to be a bit distracting (maybe too loud or distinct), and a couple of them sounded noisy/distorted at the end of the sound.

    I really liked the graphic design of this. I think it looks great. I'm envious of that talent.

    I haven't gotten past a certain enemy with an affinity for percussion, but I think the player character will either need more martial arts ability, or weapons, if they are not already there. I envision this guy with a gun of some sort.

    Speaking of that enemy, I guess I'm getting too slow in my middle-age to dodge very well, or the things that need to be dodged could be a tad slower.

    Very nice demo. I hope the project proceeds well for you. Now to see if I can get farther...

  • I've prototyped a simple roguelike dungeon generator in Construct, and thought I'd post it for informational purposes. I'm looking into different methods, but I like this one so far.

    I'd most likely implement it as pure data, without the visual creation, if I use it, since it can be quite slow with some settings. Also, the way that I implemented differing dungeon sizes is suboptimal, and can cause problems because of object scaling. I intended it for 40 x 30, and 80 x 60 sizes, though others may work fine, too.

    It can be easily serialized into an array, since I use strict boundaries on the size.

    It uses a simple scoring system to place rooms, with a user-set number of attempts, in order to avoid overlapping rooms. If those, or speed, are desired, use 1 or another low number.

    It digs corridors between rooms to make sure that all are connected, with a chance to wander around on the way there. This can be set to get quite different results. The more wandering, the longer it takes to create, though.

    Download the .cap from the attachment at the bottom of the post. This requires Construct v0.99.92 or later.

    Here are a few results with different settings:

    <img src="http://dl.dropbox.com/u/5868916/Images/shot1.PNG">

    <img src="http://dl.dropbox.com/u/5868916/Images/shot2.PNG">

    <img src="http://dl.dropbox.com/u/5868916/Images/shot3.PNG">

    <img src="http://dl.dropbox.com/u/5868916/Images/shot4.PNG">

    <img src="http://dl.dropbox.com/u/5868916/Images/shot5.PNG">

  • Wow, dungeon generators are popular lately.

    It doesn't run for me, either. Same error as Minor, and I'm using 0.99.92.

    It had some looping that I didn't understand at the beginning of the event sheet. Such as in the very first event:

    + System: Start of layout

    -> System: Stop loop "filly"

    -> Wand: Set X to Tile.width/2

    -> Wand: Set Y to Tile.height/2

    -> System: Start loop "fillx" and run 1 times

    I'll have to look into the start and stop loop thingies there, as I've never really noticed those before.

    I've recently been using groups in a very similar way that you did, for flow control in tick-based loops and such. It works really nicely.

  • I agree on the forum width. There is a large left and right margin on my 1280x1024 display. I'd estimate that they take up about 37.5% of the width of my screen, combined. I've looked for a forum preference to change that, to no avail.

    Chat? Meh. I'm not much of a chatter. I imagine some would greatly like it, though.

    Contests, for me, seem good because of the fact that they encourage users to get something done. I think that we'd see more examples of what Construct can do, with contests. Thumbs up to that.

  • > Here's a way to do it with one global variable and two events:

    >

    + Sprite: Pick closest to: MouseX, MouseY
    > -> System: Set global variable 'notthis' to Sprite.UID
    > 
    > + Sprite: [negated] Sprite: Unique ID is global('notthis')
    > + Sprite: Pick closest to: MouseX, MouseY[/code:3ctczbur]
    > 
    
    I did that myself in the first place but it doesn't work, mostly because it still pick closest to mouse.x even with first negation event, its like however i decide to outrule the first one from picking it, it is still picked.
    

    R0J0hound's example does work to pick the second closest. The second pick closest condition cannot pick the actual closest object, if you set the events up correctly, because it has been excluded from the selected object list that the second pick condition applies to.

    I made a small example to demonstrate his method. I added a 'On left mouse button down' to activate it, just to show how you may have to group the events as sub-events somewhere in your event sheet, based upon some other condition.

    http://dl.dropbox.com/u/5868916/SecondNearest.cap

    It's made with v0.99.92

  • fps:36

    threads:1

    cores:1

    Advanced Micro Devices

    1799mhz

    and Nvidia GeForce 9500 GT 1Gb

    The steady fps was 105 for me.

  • I think that the Array, Hash Table, and INI objects would all be fine for such a thing. They all support reading/writing to disk for persistence.

    Since .ini files are quite commonly used to store options and such anyway, I made an example using that. It's hard to put it in the same context as it would be used in a game, but the principles of what you'd need to do are there.

    http://dl.dropbox.com/u/5868916/LevelStatus.cap

    Check out the event sheet to see what it does.

Silent Cacophony's avatar

Silent Cacophony

Member since 11 Mar, 2010

None one is following Silent Cacophony yet!

Trophy Case

  • 14-Year Club

Progress

14/44
How to earn trophies