Valerien's Forum Posts

  • I'd just say try the way that seems to complement your gameplay well (mana with slow reload, rage that builds up with hits, etc. - you will need some form of cooldown/delay between two attacks anyway). Then, you can just start with a tiny subset of your 40 planned powers, balance them out and get player feedback. This is really just a balancing act. The feel of a special attack will mainly come from your character's animation and SFX by the way.

    Good luck!

    Nathan

  • tweettopix : it doesn't make much a difference, both can work.

  • Thanks I was coming back to the thread after reading an entry from the SDK manual, just learned that. That's pretty huge.

    Sorry for those misconceptions about C2, this boils down to some prior experience with CJS which had big garbage collector issues, at least a couple of months ago.

    Scofano, it seems like you won't need to bother with pooling !

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • That's exactly it. You can just spawn like 25-30 bullets if you know for sure that you won't need more than that, or use a safe margin. Whenever the player fires a bullet, you then just have to go fetch any inactive bullet and fire it.

    You don't need to take in account the precise number of bullets that your game need at a given time in the overall game progression: if this number grows as the player plays, the target device will still have to handle this object count. In other words, you can set a max number by hand.

  • Yes, or toggle them visible/invisible. At least, if you're getting trouble because of your CPU usage. Creating and freeing objects into memory gives a lot of work to your garbage collector. Anyway, you're already setting the position of your active bullets all of the time in your code, aren't you? So by pooling your objects, you'll technically simply remove all of the object creation and destruction calls during gameplay sessions.

    Good luck going forward, and don't hesitate to tell me if you need anything!

  • Groups that are not active will be ignored at runtime. Using a single "every tick" condition to check the active type of gun with 3 elseif conditions wouldn't make a significant difference.

    On mobile, it's mainly collision/overlap checks, loops and physics that will quickly eat up your CPU power. Creating and destroying many objects as well, like bullets for example. If you haven't done so by the way, you will need to pool any type of object that's being created and destroyed often (that is to say create them only once, store them in an array for example and reuse them).

    Good luck!

  • Oh, thank you for the clarification

  • Don't hesitate to show your prototypes and videos early, even if they're a bit clunky! It's really key to get a healthy feedback loop running early.

    I'm really eager to checking your game.

    Cheers,

    Nathan

  • blackhornet seven : the idea is effectively to use a family as your object type. Just be aware that "is overlapping" picks any list of overlapping objects. Thus, it may return 3, 4 or more objects at once. In that case, you can just generalize so that if one instance has its bool to true, all of the others are set to true. Or you can feed them into an array and send them to the function by pairs.

  • To add up to the conversation, construct is an efficient programming tool for non-developers, that's for sure. As far as making commercial games, I'd say it's quite capable, but that your reach is limited on the mobile market: as far as rendering is concerned, it's hard to target every device and every users. There is no mip-mapping, no possibility to launch the games at different resolutions. 960*640 games (a decent resolution for tablets and desktop in general) will most likely never run on iphone4 and below, or any device of comparable strength. Although this may not be a problem any more in a couple of years, a solid mobile game publisher will request games that are optimized for a wide range of devices, and that retain crisp visuals on tablets.

    It's still a very nice html5 engine anyway though !

  • The "is overlapping" condition actually picks the overlapping objects itself. So, if you have any pair of overlapping objects, you can have a little function:

    objectType is overlapping objectType

    ---local variables -> objectUID1, objectUID2, objectValue1, objectValue2

    ---For each objectType

    ------Store its UID into a local variable

    ------Store the value to compare into a local variable objectValue

    ---X objectValue1 = objectValue2

    ------pick by objectType by UID objectUID1

    ---------set objectType.valueToChange to objectValue2

    This is an abstract kind of example. If you need something more specific, please don't hesitate to ask!

    Good luck,

    Nathan

  • I'd leave out the items etc. first, and integrate that later. Use placeholder code to fill in the gaps: instead of a fully functionnal inventory, you can have just one item stored in an array and a placeholder text instead of a UI. You will have to reorganize and redo some of your code down the line anyway, despite choosing another road. However, if you can focus and deliver the core mechanics of your game fast, you will be able to get feedback on your design sooner.

    I'm working on a rpg prototype for an event next week, and here's how I've organized it:

    1- Worked on the basic turn-based attack mechanic, with a basic 1 button menu (it's a touch based game). I added a rhythm mechanic while attacking, and sent it to be tested out. The overall feeling was validated by fellow gamers and devs. At that stage, the code didn't take in account the possibility of having multiple characters, enemies, an inventory...

    2- I made a character movement, smooth camera, placeholder dialog bubble and animation state functions

    3- Now, I'm re-coding the system to make it flexible-> I separate big logic blocks into various functions to minimize the need to redo stuff when I need to change a system.

    Good luck!

    Nathan

  • I'd encourage you to find the essence of your game. What can you take away from it while retaining its entertainment value? You don't need an inventory, nor do you need a complex AI etc.

    In other words, you want to work on the systems the player will use the most often and find fun into. In a classic japanese RPG, this will most likely be the battle system, and then moving and interacting with the world. Features like a slick UI, an inventory, a shop will most likely only add content and a bit of depth to your system: the player will go through dialog boxes and be attacking foes, most of the time.

    Good luck going forward!

    Nathan

  • I'm pretty sure that the timer behavior is a set of calculations results based on the Time variable.

    I don't think you need to worry too much about the internal clock's reliability, it should be really precise. You will always have some +/- 17-30ms of error margin that comes along with the framerate. But that's good enough. I've written an example using the Time variable simply because I wasn't aware of the timer behavior ^^' (just starting programming with C2) !

    Sorry for the previous answer!

    Cheers,

    Nathan

  • Hey douglas,

    I gave a solution to a problem that's similar to yours: a metronome plays a sound on beats. Its rhythm is based on a global BPM value. In this thread, you'll find a general code logic that should give you a solid base to build a metronome upon: https://www.scirra.com/forum/viewtopic.php?f=147&t=101187&p=788436#p788436

    Without a generic base, you'll have trouble adding functionnality further down the road.

    I hope this helps!