3 Arks - Adventure RPG (2D iso)

This forum is currently in read-only mode.
  • Hi

    I'm new on Construct (I have downloaded it saturday, the 8 may 2010).

    I'm an advanced user of GameMaker since 2006, and I work in a professionnal game enterprise since 2000 (we made 3D games, or 2D games). I'm infographist 2D-3D, and art director on my projects.

    So I have to say that Construct is a very great open-source software, with a lot of very interesting features .

    I was really surprised with the power of construct. Of course, I have compared it with Game Maker and other tools I know, because I have used a lot GM, and make some "little big" games with it (demos in fact).

    So, I would like to thank all the developpers for this very great soft .

    My Game

    Name : 3 arks

    Genre : Adventure with a storyline, RPG. I hope to create an online mode, but I don't know if it's possible and easy as with 39dll .

    Style : sprites are Rendering with Blender. The style is cartoonish, colored and lightened.

    Screenshots and Videos

    Construct Version (only made in 2 days):

    GM version :

    With GM, I have made a Level (map) editor. I hope to do the same with Construct, but I don't know if it's possible to load some external map that I will create with this editor.

    For the moment, I try to see if we can use Construct in a professionnal porduction (for a 2D isometric game), but we need a lot of graphics, and we have to use some external ressources (between 300 and 600 Mo of graphics perhap's) . But I don't find how to use external encrypted ressources (without python).

    Some questions

    1. Is there a way to attach an image/somes images to the instances of the same object :

    ex : the shadow under the character. The shadow will be the same for all the different characters, which could be randomised (I hope). For the moment I use a Turret behavior, but I think it's not a good solution. But I haven't find another way to do that (because drop shadow isn't made for isometric game).

    2. Is it possible to use an object in differents layouts ? How can we do that ? (I don't talk about the inheritance fonction of the layer, because, we can't move the elements).

    For example : I have a tree and I would like to use this sprite in differents layout, move it, change his colour, size... on these layout, but with a unique sprite.

    [edit]OK, I think I need to make a global object (common settings).[/edit]

    3. is it possible to "free" the memory which is no more use, because, for the moment, the game use 80 Mo of ram, (with GM it's only 10 mo with more graphics and features (fx..)). A sort of plug ins like "free memory" of GM would be great .

    4. Is there a sort of A* pathfinding (following an iso grid and avoid the obstacle, and go to the waypoint)? I have found the RTS behavior, but it's not that I'm looking for (the way is direction free for example, because it's made for top-down game and not iso game.).

    5. Can I load different image on an object (not the same methode as add image in different frames of an animation (in the animator editor)), and how ?

    Thank you for answers, and sorry for my bad English .

  • Impressive stuff!

    As I am using construct for a commercial game as well, let me give you some advice and answer some of your questions.

    Making a map editor is completely possible.

    If you're going to have between 300-600 MB of graphics, you're probably going to have to roll your own image loading solution. Construct can take a while to compile if there's a lot of graphics in the .cap. Each time you edit the graphics and preview the application again with that many graphics, it's going to take an excruciatingly long time for it to compile. As such, if you put all of your graphics in a folder and load them from there, it will go much, much faster, as the game will only load the ones you need when you want them. As for encrypting them, lucid's plugin "s" has encryption capabilities.

    1. Attaching a shadow underneath characters is definitely possible, I'm doing it in my game right now. What you do is first, create the shadow object and give it a variable 'uid'.

    Then put every object that needs a shadow into a family, let's call it 'shadowfamily'.

    Give that family a variable 'shadow' via the family manager under the project tab.

    Have two events:

    if family's variable 'shadow' is equal to 0

    • create sprite "shadow"
    • set shadow's variable 'uid' to shadowfamily.uid
    • set shadowfamily's variable 'shadow' to 1

    event two

    for each shadowfamily

    if shadow's variable 'uid' is equal to shadowfamily.uid

    • set position of shadow to shadowfamily

    2. Yes, you can create objects from different layouts. The easiest way to get objects from different layouts to appear in all event sheets is to temporarily make the object global, then it will be accessible from every layout's event sheet. Remember to uncheck global when you're done!

    3. The system object has an action that frees up VRAM, "load/unload layout textures." However, in the application properties, there is a setting for "load textures" - if that is set to per layout, then it will automatically load all textures needed for the layout at the start of a layout, and unload the previous layout's textures. There are a few new tips up about memory management on the wiki section on VRAM: http://sourceforge.net/apps/mediawiki/c ... ation_tips

    4. I don't know of any way to do exclusively isometric pathfinding.

    5. Yes, using the image manipulator, you can load images from disk and copy and paste images to and from sprites. One limitation at the moment is you cannot create extra frames of animation at runtime. You'll need to make sure that the sprite has enough animation frames before you compile.

  • Welcome to the board.

    On the drop shadow I would suggest placing it into a container with the desired object, and placing that object into a family, rather than using a private variable.

    For each shadow
    -> shadow set position to family.character [/code:3arxkrwf]
    When its in a container with the object, its paired object is already picked.
    
    Also the Sprite object has a built in function to load an image directly to the desired frame, called "Load animation frame from file". You just have to make sure the animation is set to the frame number you want it to load to.
  • Hi

    Thank you very much for the answer, it will help me a lot .

    Impressive stuff!

    As I am using construct for a commercial game as well, let me give you some advice and answer some of your questions.

    Making a map editor is completely possible.

    If you're going to have between 300-600 MB of graphics, you're probably going to have to roll your own image loading solution. Construct can take a while to compile if there's a lot of graphics in the .cap. Each time you edit the graphics and preview the application again with that many graphics, it's going to take an excruciatingly long time for it to compile.As such, if you put all of your graphics in a folder and load them from there, it will go much, much faster, as the game will only load the ones you need when you want them.

    Es, for the moment, I use the "load animation frame from file" feature to change my sprite, to avoid to have a too big time for compiling.

    I don't know if there is another feature.

    Can we load any file at the begining of the layout (with the image list or image manipulator, perhap's), and change the image sprite object when we desire ?

    [quote:3ec11ake]As for encrypting them, lucid's plugin "s" has encryption capabilities.

    hank for the information .

    I have find the "S" plugins from Lucid, and I will tried it.

    So I'm trying to create the same level editor as I have created with GM.

    But, I don't find a good pathfinding system (like A*).

    The RTS will not work fine good in this case (not square case, but "iso" (diamond ?)).

    [quote:3ec11ake]1. Attaching a shadow underneath characters is definitely possible, I'm doing it in my game right now. What you do is first, create the shadow object and give it a variable 'uid'.

    Then put every object that needs a shadow into a family, let's call it 'shadowfamily'.

    Give that family a variable 'shadow' via the family manager under the project tab.

    Have two events:

    if family's variable 'shadow' is equal to 0

    • create sprite "shadow"
    • set shadow's variable 'uid' to shadowfamily.uid
    • set shadowfamily's variable 'shadow' to 1

    event two

    for each shadowfamily

    if shadow's variable 'uid' is equal to shadowfamily.uid

    • set position of shadow to shadowfamily

    hank you very much for this tips, I will tried it .

    For the moment, I use the family to create the shadows for the non-animated object, and the turret for animated characters.

    Your technic seems to be better than the turret technic .

    [quote:3ec11ake]2. Yes, you can create objects from different layouts. The easiest way to get objects from different layouts to appear in all event sheets is to temporarily make the object global, then it will be accessible from every layout's event sheet. Remember to uncheck global when you're done!

    es, I have discover this feature (global), it's veru usefull.

    [quote:3ec11ake]3. The system object has an action that frees up VRAM, "load/unload layout textures." However, in the application properties, there is a setting for "load textures" - if that is set to per layout, then it will automatically load all textures needed for the layout at the start of a layout, and unload the previous layout's textures. There are a few new tips up about memory management on the wiki section on VRAM: http://sourceforge.net/apps/mediawiki/c ... ation_tips

    k. For Vram it's a good things to know. I use the "load textures per layout" settings in my game.

    IS it a way to free up the RAM ?

    My game with GM use only 5 - 10 Mo in ram, but with Construct, the same game use 80 Mo in ram.

    How can I change that (if it's possible) ?

    [quote:3ec11ake]4. I don't know of any way to do exclusively isometric pathfinding.

    nd for a normal pathfinding like A* with squarre cell ?

    The RTS behavior seems not working pretty well in some case.

    Is there another technic ? (simple if possible ).

    [quote:3ec11ake]5. Yes, using the image manipulator, you can load images from disk and copy and paste images to and from sprites. One limitation at the moment is you cannot create extra frames of animation at runtime. You'll need to make sure that the sprite has enough animation frames before you compile.

    k. it's great. Can we use several image on a single sprite object ?

    For example :

    • 1 image for the character
    • 1 image for his shadow
    • 1 image for his sword

    ..

    On the same sprite object ?

    [quote:3ec11ake]Welcome to the board.

    On the drop shadow I would suggest placing it into a container with the desired object, and placing that object into a family, rather than using a private variable.

    Code: Select all

    For each shadow

    -> shadow set position to family.character

    When its in a container with the object, its paired object is already picked./

    have tried it, but it doesn't in my example :

    shadow.cap

    [quote:3ec11ake]Also the Sprite object has a built in function to load an image directly to the desired frame, called "Load animation frame from file". You just have to make sure the animation is set to the frame number you want it to load to.

    es, I have seen that feature. Thanks .

  • YEs, for the moment, I use the "load animation frame from file" feature to change my sprite, to avoid to have a too big time for compiling.

    I don't know if there is another feature.

    Can we load any file at the begining of the layout (with the image list or image manipulator, perhap's), and change the image sprite object when we desire ?

    I'm confused. The feature you're asking for is load animation frame from file, which you said you're already using?

    [quote:2u8rz71j]The RTS will not work fine good in this case (not square case, but "iso" (diamond ?)).

    quote:2u8rz71j]Is there another technic ? (simple if possible ).

    It might be possible to hack together a system where you place node sprites all over the map (automatically via an event at runtime, of course!) arranged how you want isometrically, have a pathfinding sprite with RTS behavior that goes ahead of the player, keep track of which nodes it overlaps or it gets closest to, then have your character walk towards those node sprites in order. I don't know if that'll work, but I'm using a sort of hacked system like that in my game for node-based pathfinding.

    [quote:2u8rz71j]ok. For Vram it's a good things to know. I use the "load textures per layout" settings in my game.

    IS it a way to free up the RAM ?

    My game with GM use only 5 - 10 Mo in ram, but with Construct, the same game use 80 Mo in ram.

    How can I change that (if it's possible) ?

    Oops, sorry, I thought you were talking about VRAM. As far as I know, there's no way to control how much RAM construct is using.

    [quote:2u8rz71j]ok. it's great. Can we use several image on a single sprite object ?

    For example :

    • 1 image for the character
    • 1 image for his shadow
    • 1 image for his sword

    ..

    On the same sprite object ?

    Yes, using multiple sprites and containers. http://sourceforge.net/apps/mediawiki/c ... Containers

  • [quote:1ehw7pkq]I have tried it, but it doesn't in my example :

    Actually, you don't even need a for each here, just use "Always" instead.

    You will need to add an event to change its z to "place behind object" since the shadow was added to the layout after the shadow caster.

  • > I don't know if there is another feature.

    > Can we load any file at the begining of the layout (with the image list or image manipulator, perhap's), and change the image sprite object when we desire ?

    >

    I'm confused. The feature you're asking for is load animation frame from file, which you said you're already using?

    n fact, it's not the same function as "load animation frame from file" I look for.

    Because this function replace an animation frame of a sprite by a new picture. But all the instance using this sprite object are changing.

    What I'm looking is the ability to change the frame of a unique sprite Object, but not for all the instance of this Object : Only by example for the instance which private value"type" = 3.

    Like in this example :

    • I create 20 Objects named "sprite" have different private variable value (1 to 5).

    I would like that for the instance with Private variable Type = 1, they have the image 01.png. For the instance which have the private variable type = 2, they have the image 02.png, etc..

    + Sprite.value('type') = 1
    -> load animation frame from file "data\01.png"
    +else
    + Sprite.value('type') = 2
    -> load animation frame from file "data\02.png"
    etc...[/code:2vnp95m7]
    But, in my file, it doesn't work. I don't know if we can do that, and how.
    
    I have made a little example (.cap with 4 images) :
    [url]http://blendman.free.fr/construct/spriteImage.zip[/url]
    
    [quote:2vnp95m7][quote:2vnp95m7]The RTS will not work fine good in this case (not square case, but "iso" (diamond ?)).
    quote:2vnp95m7]Is there another technic ? (simple if possible  ).
    
    It might be possible to hack together a system where you place node sprites all over the map (automatically via an event at runtime, of course!) arranged how you want isometrically, have a pathfinding sprite with RTS behavior that goes ahead of the player, keep track of which nodes it overlaps or it gets closest to, then have your character walk towards those node sprites in order. I don't know if that'll work, but I'm using a sort of hacked system like that in my game for node-based pathfinding.
      try to understand, but if you would have an example, it will be more easy for me  .
    
    [quote[quote:2vnp95m7]]ok. For Vram it's a good things to know. I use the "load textures per layout" settings in my game.
    IS it a way to free up the RAM ?
    My game with GM use only 5 - 10 Mo in ram, but with Construct, the same game use 80 Mo in ram.
    How can I change that  (if it's possible) ?
    
    Oops, sorry, I thought you were talking about VRAM. As far as I know, there's no way to control how much RAM construct is using.erhap's with a plug ins, like with GM.
    
    [quote:2vnp95m7][quote:2vnp95m7]ok. it's great. Can we use several image on a single sprite object ?
    For example :
    [ul]
    	[li]1 image for the character[/li]
    	[li]1 image for his shadow[/li]
    	[li]1 image for his sword[/li]
    [/ul]..
    On the same sprite object ?
    
    Yes, using multiple sprites and containers. [url=http://sourceforge.net/apps/mediawiki/construct/index.php?title=Containers]http://sourceforge.net/apps/mediawiki/c ... Containers[/url]
    ut we need to create several object Spirte, we can't use several image in a single sprite object ?
    
    
    [quote:2vnp95m7]I have tried it, but it doesn't in my example :
    
    Actually, you don't even need a for each here, just use "Always" instead.
    You will need to add an event to change its z to "place behind object" since the shadow was added to the layout after the shadow caster.
    h, yes, sorry, I have forgotten the always event to actualise the shadow 's position. Thanks.
  • [quote:3qlawz3p]

    What I'm looking is the ability to change the frame of a unique sprite Object, but not for all the instance of this Object

    Ah. I'm not sure if there is a way to do that.

    [quote:3qlawz3p]I try to understand, but if you would have an example, it will be more easy for me .

    It took me a month to figure out how to do it for my game, and I'm very busy. I might give it a shot, though.

    [quote:3qlawz3p]perhap's with a plug ins, like with GM.

    Unless the "s" plug-in has some sort of feature like that, there aren't any others that have memory management. You'd have to create your own.

    [quote:3qlawz3p]we can't use several image in a single sprite object ?

    No.

  • Different animation frames / subanimations?

  • The example was quicker to make than I thought. It's a lot faster to make when you already know how to do it!

  • Thank you for your answers .

    [quote:3dumim9j]

    What I'm looking is the ability to change the frame of a unique sprite Object, but not for all the instance of this Object

    Ah. I'm not sure if there is a way to do that.

    es, I think it's not possible as easy as I expected.

    Perhap's with a special technic, plug in, or another hidden feature .

    [quote:3dumim9j][quote:3dumim9j]I try to understand, but if you would have an example, it will be more easy for me .

    It took me a month to figure out how to do it for my game, and I'm very busy. I might give it a shot, though.

    The example was quicker to make than I thought. It's a lot faster to make when you already know how to do it!

    .

    [quote:3dumim9j][quote:3dumim9j]perhap's with a plug ins, like with GM.

    Unless the "s" plug-in has some sort of feature like that, there aren't any others that have memory management. You'd have to create your own.

    think I know why. It's because Construct doesn't work like GM. In construct all the images are stocked in the ram, and only send to Vram when needed (if I have understand).

    So, we can't free the ram easily. Because if we do that, our images will be destroyed, and we 'll need to load them again when needed.

    [quote:3dumim9j][quote:3dumim9j]we can't use several image in a single sprite object ?

    No.

    k, a good feature request, so .

    I use this feature a lot with Gm, and it's very usefull to have a unique Object that can draw several image, for a lot of things (characters with different parts, UI...).

    Different animation frames / subanimations?

    I have tried, but it doesn't work in my example.

    I don't know what I'm doing wrong.

    My new example :

    http://blendman.free.fr/construct/enemyImages.zip

    PS : sorry for my bad english.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • [quote:3vh4nomb][quote:3vh4nomb][quote:3vh4nomb]we can't use several image in a single sprite object ?

    No.

    k, a good feature request, so .

    I use this feature a lot with Gm, and it's very usefull to have a unique Object that can draw several image, for a lot of things (characters with different parts, UI...).

    There's no real reason for a feature like that. You can achieve the same effect using multiple sprites. That's exactly what containers are made for. How else would you tell the multiple images what to do? I don't know how GM does it, but since a sprite is basically an image anyway...

  • There's no real reason for a feature like that. You can achieve the same effect using multiple sprites. That's exactly what containers are made for.

    es, you're right, for little and medium (middle?) game. But for very very big game, I think it's a very usefull feature .

    [quote:1q2sovcy]How else would you tell the multiple images what to do? I don't know how GM does it, but since a sprite is basically an image anyway...

    his feature is very interesting to have an easy and good organisation in your cap.

    In GM, you can load several (multiple) sprites in a unique Object [edit]and draw the multiples sprites (of this unique object) at the same time/together[/edit]. If you want, you could create a game with only 1 object, and thousand sprites in it, with all the events for each sprite.

    In fact, we don't do that, but, it's easier to "manage" and organise 15-30 objects in a game than 150/300 objects and more .

    I will try to explain (sorry because, I'm not very good in english, so if it's not easy to understand, please tell me ).

    To explain, I have to show you all the calculs I have made for my game, to manage and organise the objects and the sprites.

    In my game (and in other big game), we can have :

    • 500/600 Mo of graphics (sprite : characters, fx, UI, enemies, NPC, grounds, trees, plants, objects...)
    • in a map (layout) I will have at least for the sprites : 4000 (characters)+150 (vegetations, house, pnj..) + 1280 sprites (enemies)+1000(UI+FX) = 6430 sprites differents to organise for a map.

    The calcul for the sprites:

    A lot of sprites will be reused, but not all. The sprites characters  + UI/fx will reused. Not the ennemies, and not necessary the vegetations/house/pnj.
    And I don't talk about the customisation :( (the ability for the player to change his cloth, sword...)
    
    [ul]
    	[li]1 player  : walk, sword combat, magic, dead, other animation > 5*8 directions*20 images = 800 sprites[/li]
    	[li]4 friends : 4*5*8*20 = 3200 sprites[/li]
    	[li]enemies : 4 differents by map- 2 animation (walk, fight) : 4*2*8*20 = 1280[/li]
    	[li]vegetations/house/pnj bu different univers : 10rocks + 10trees+10plantes+10 flowers+15grounds+1background (tiled)+10house+40little accessories/objects+5fx (fire, smoke..) +4pnj+others objects (actions, teleport, doors, fontain..).. >> between 110 and 150 sprites by univers[/li]
    [/ul]
    The differents "univers" are :  5 forests,  2 deserts,  2 moutains, 2swamp (marsh), 3 plains, 6 city, 3 prairies...... > 30 univers differents
    (My map are 5000*4000. And I think I will have 50 to 100 maps. Somes maps will be in the same "univers")
    So I will have  125*30 sprites for the vegetations/house/pnj > 125*30 = 3750 sprites.
    [/code:1q2sovcy]
    
    [ul]
    	[li]The objects : I can use of course 1 object for several sprites  :[/li]
    [/ul]
    [b]The objects : [/b]
    [code:1q2sovcy]
    The map :
    [ul]
    	[li]1 object player + 1 object shadow + 6 objects equipement + 1 object for the pathfinding (collision player)[/li]
    	[li]1 object friend + 1 object for the pathfinding (collision)[/li]
    	[li]1 object "PET" (animal) + 1 object for the pathfinding (collision)[/li]
    	[li]1 object enemi (for all the enemies in  the map) + 1 object for the pathfinding (collision)[/li]
    	[li]1 object tree-rocks-plante-flower-house-other objects (decor-stage set (?)) : no dynamics objects[/li]
    	[li]1 object for the tiled background[/li]
    	[li]1 object for the grounds (placed over the tiled background) ?[/li]
    	[li]5 or more objects "action" (teleport, safe (box), door, HP fontain, magic object..)[/li]
    	[li]1 object NPC -PNJ[/li]
    	[li]5 objects FX (fire, smoke..) and dynamic FX (Magic spells)[/li]
    	[li]1 object for the block collision (invisible)[/li]
    	[li]1 object for the target of the player[/li]
    	[li]the objects "drop", items.. : 4 differents[/li]
    [/ul]
    UI :
    [ul]
    	[li]UI for the enemies (health bar, info bar) : 3 objects[/li]
    	[li]UI for the PNJ : 4 objects[/li]
    	[li]1 object for the GUI (player)[/li]
    	[li]1 object by menu > 10 objects (inventory, spell book, quest book, option menu, pet menu, friend menu...)[/li]
    	[li]10 objects for the button of the menus (I don't want to use the button object) : button ok, close, radio, bar...[/li]
    	[li]1 object for the health bar-magic bar, xp bar[/li]
    	[li]icone objects (spells, sword used..) : 2 objects[/li]
    	[li]1 object Cursor[/li]
    [/ul]
    

    60/70 objects to organise for a layout.

    + the objects that I have forgotten, because we forget always some things.

    + the other objects to organise (text...) which aren't no sprite object, but we need to organise it too in our .cap :).

    [/code:1q2sovcy]

    So, I think I will have 60/100 Objects by map to organise.

    So, I prefer to have to organise 30-50 objects than 100 objects. It's easier.

    With the "multiple sprites in one object" feature, I think I could have only 40-60 objects to organise in my .cap, and it would be more cool for me .

    It's like to have folders with global variable. When we use only a fexw globale variable (10-20) in a game, it's not a problem. But, when we use a lot of global variable (50-100), it become really dificult to have a good organisation.

    I hope I have been clear .

    Thank you for help me .

  • [quote:1tkc2f9m]In GM, you can load several (multiple) sprites in a unique Object. If you want, you could create a game with only 1 object, and thousand sprites in it, with all the events for each sprite.

    In fact, we don't do that, but, it's easier to "manage" and organise 15-30 objects in a game than 150/300 objects and more .

    There's no reason why you can't do that in Construct. You just have to take into account that every frame you load must have an existing frame in game. So in theory you can have just one object, as long as that object's number of frames is equal the the maximum animation you plan on loading.

  • [quote:1zgbopz4]In GM, you can load several (multiple) sprites in a unique Object. If you want, you could create a game with only 1 object, and thousand sprites in it, with all the events for each sprite.

    In fact, we don't do that, but, it's easier to "manage" and organise 15-30 objects in a game than 150/300 objects and more .

    There's no reason why you can't do that in Construct. You just have to take into account that every frame you load must have an existing frame in game. So in theory you can have just one object, as long as that object's number of frames is equal the the maximum animation you plan on loading.

    h, sorry, I misspoke, I forgot to mention :

    "In GM, you can load several (multiple) sprites in a unique Object, at the same time (together(?))".

    it means that you can draw several-multiple sprites with one object, at the same time /together.

    We can do that in construct , to draw more that one sprite for an object at the same time ? If yes, I'm very interesting by the technic .

    (Because Construct is a very good application, and I would like to use it for my commercial games if I can ).

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)