C-7's Forum Posts

  • Here's a brief overview of how I handle inventory in Courier. I'll not be posting code snippets, but I think the description will help you.

    First off, I use one big array for most of the data in my game--I use global variables for other stuff. In Courier, you have two types of items. I have 6 items that you can accumulate more of (potions, money, etc), so I just have 6 array slots with a count. Add one, subtract one. That one's pretty simple. I also have 4 slots that can take any one of a ton of essentially quest items. I have a single Quest sprite and all subsequent icons are saved as frames of that same sprite. I have a copy of that sprite with an instance variable sitting in each of the quest slots (be sure to have a blank frame for empty!) I have the 4 cellsin my array and, at the start of a quest, I set that cell to that quest's number. I have an external spreadsheet (ie, excel/google spreadsheet) to help me keep track of this stuff. I also have reminders for what coordinates go with what information. Once that quest is put in that cell, I update the corresponding icon to the frame that matches that quest item. I also have a 5th "holding" cell so I know what the user is deciding about (you can accept or deny taking on quests). Once the user selects where that quest item will go, I reset the holding cell to 0.

    As a side note, I also use my array to keep track of the status of each quest/delivery. If the value is 0, it hasn't been attempted. If it is 1, it is currently in-progress, and if it is 2, it is completed. This helps with characters speaking in context and making game events happen when they should.

    If you want a non-static list of these things, you could go through every slot (coordinate within a certain column, for example) and look for how many 4's you have and say you have 4 potions, etc. So you could take the general list in that column and make a visual display, but you could also loop through it and make a compressed list with quantities. Such is unnecessary for my game, but definitely a logical expansion of it.

    So if you have just quantities of a certain number of items, just have a cell dedicated to each item and run with a total count in each cell. If you have multiple one-off things, I would think of having a certain number of dedicated cells (or dedicate an entire column and just add to the end--pay attention to the dimensions of your array so you don't run out of space) and set those cells to a number that means something to you. So assign each item a number (in your head, on paper, something) and assign cells to those numbers. You now have a list of the items the player is holding can you can make your visual display relative to that data. Just remember to think of arrays as spreadsheets and you'll be fine.

  • Nintendo have confirmed that WebGL support is on the way for WiiU.

    If that comes, Courier just may make it on Wii U!

  • Here's a look into a different are that I haven't shown before. Snow!

    Click for full size

    I'll show you it in motion in next month's trailer

  • Looks interesting

    Here's a bit of snow from Courier:

    Click for full size

  • Masking is simple in C2. Use Destination Out and set that layer to Force Own Texture. Unless I missed what you were looking for...

  • I do agree more features along these lines would be very helpful! I think I have one of the further-along RPG's in C2, so I'll comment on some things I've done in regards to come of your points:

    RPG (à la RPG maker)

    ✓ Dialogues can be easily tied to NPCs via the use of families, and downloaded individually

    Right. I didn't want too many external calls, so I do it through events, but I simply have an instance variable on the invisible rectangle I use for each NPC. Then I just have sub-events for each one. Pretty simple, easy to follow, allows for them to say different things depending on game state. Maybe not as elegant as what others may do, but it looks and handles nicely and I don't have to play with strange formatting or parsing issues. It could even be simplified with functions, but I'm happy with how I'm doing it and it hasn't bothered me for the 50+ NPC's I already have in-game.

    ✗ Tilemap object is very deficient: can't add properties to individual tiles, no multi-tile entities, can't apply shading to single tiles, collision mapping must be done with separate object, tile placement is cumbersome, "open-world" layouts eat lots of memory (there's no option to only load visible tiles)

    For tile-based games, I'm sure this is significant. I don't use that technique to build maps, though, so I don't have these issues. I have a lot of tiled backgrounds and sprites that I use (and re-use in different ways) as overlapping building blocks. That way, I can get a lot of customization, I'm not tied to a grid, and performance doesn't seem to be an issue even on my older desktop.

    ✗ Can't do isometric (yes I know you technically "can", but there's a lot of pain with back-to-front rendering and z-ordering for pseudo-3d complicates matters further)

    It's a pain. It works for me, but there are still minor tweaks that always need to be done. This is particularly cumbersome with Sprite files because any global z-ordering shenanigans will re-order the body parts (and then I have to re-order them correctly after each z-ordering pass). This could be better, but I do have it working fine. I have a layer where things can be sorted and then layers above and below that are static. This reduces the amount of objects being ordered quite a bit.

    ✗ NPC movements (i.e. wandering, chasing, fleeing) must be coded by hand (a behavior that attempts to do this would have to tie into c2's tile structure, generating a dependency that the SDK doesn't tell us how to address)

    Also a pain. I just have to do it manually. There are a few good ways to do it (the best, to me, being to set waypoints and have characters move towards that then advance to the next).

    ✗ Inventory is hard to manage, requiring separate projects and, in some cases, even plugins

    I don't have this problem. Granted, I do limit the number of inventory objects in the game. I have 6 always-there item types (money, potions, etc) and then 4 slots for quest-related objects. The code for the 6 is easy--just pull numbers from an array and update the UI with those values. The 4 slots are a little tougher since I need to have imaginary holding slots and such for letting the user place objects and such. I just have cross-reference array values and then set the visuals to match based on what values are in those slots. It's complicated, but works flawlessly.

    ✗ Windowed interfaces are hard, little can be shared and there's no concept of "sub-layouts" to ease this. 9-patch object sometimes shows seams, hardcoded interfaces are tough to reskin, sub-components (sliders, checkboxes, accordions) are hard to reuse since "widgets" don't exist

    I just have the UI set up on a layout how I want it, I wrote down where everything needed to be (relative to the window since I support multiple resolutions) and just create the objects at the start of each layout like that. Then, to change it, I just have to change that create call. Now, setting up that create event the first time is obnoxious, but it's the best solution I can think of. I'd love for something better, but this seems best to me.

    Good list! I hope it leads to more features!

  • C-7

    Wow...After 1 year the game is still in alpha?Are you developing the game alone?If it's just you, gratz in double.

    Haha yes, still in alpha. I had to take a little time from it for a little of that for life reasons, but I work on this game around my irregularly-houred day job (and family!). Mostly late at night when the wife and kids are sleeping. And, yes, I work on the game on my own. Thanks!

  • Awesome! Congratulations on the coverage you're getting! You guys deserve it, the game looks fantastic.

  • >

    > >

    > >

    > > I agree, more realistic characters will really give this a boost.

    > >

    >

    > Blah blah blah.

    >

    I'm sure this game will get a great response either way

    I sure hope so! I'm glad discussions can go meaningfully on this forum, too. It makes some of us okay with posting things as they develop instead of holding back for a finished product.

    Yes. Since it is getting to a further stage of development now, I'll be running a kickstarter soon to try and jump to fulltime development on it. If that goes well, I plan to release in Spring or Summer of 2015.

  • > I really like the tileset!

    > I'm just not too keen on that character art, to me it clashes a lot with the semi-realistic style you have going on with the in-game graphics.

    >

    > I think this kind of rendering would give the whole graphics a good, consistent feel.

    >

    I agree, more realistic characters will really give this a boost.

    Thanks for the input! This is actually one of the opinions with which I completely disagree. I ran through a number of styles of characters initially (including more realistic) and it shifted into generic instead of matching. Thematically, the character styles fit quite well--much of the game is quite light-hearted, even when it gets darker. I feel if they were any more textured, they would be more difficult to read visually and would get lost in the environments. The proportions are a little exaggerated, the texturing is more muted (though still present), the shading is a little more contrasted, and they have very slight outlines. But this contrast is important to gameplay--the people are the primary gameplay elements that you interact with throughout along with puzzle 'devices' and obstacles. So thank you, but that's an element I'm quite happy with and will keep.

  • > The other option is to create the objects at the start of the layout and place them where they need to be using code.

    >

    this is what i want to do but construct gives an error message if object isn't present in layout.

    Correct. They have to be on some layout to be included with the game information/export. Just have a dummy layout and throw all your objects on there to meet that requirement.

  • It's looking good, burningcake!

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Donkey Kong Country: Tropical Freeze and loving every minute of it!

  • Courier is looking much more vivid and detailed these days!

    Click for full size

    Click for full size

  • Thanks! Here are a couple more:

    Click for full size