GeorgeZaharia's Forum Posts

  • Construct 2 expressions are the same as Construct 3 expressions just some expressions in Construct 3 are newer but old ones from Construct 2 are still there. So it's ok, sure if you find Construct 3 tutorials would help better, but Construct 2 has been around for 10 years i think now if not even longer, so Construct 3 being built on the same similar expression system it won't hurt you learning Construct 2 expressions they are literally the same on event_conditions, Construct 3 might look different but it does the same thing using the same expressions and as i said above, with a couple new changes, but if you look close enough they are there.

  • Yea, don't worry, is all about testing there is no wrong or good way in Construct, if it's working then is good if it doesn't well it doesn't.

    It's all about trying to understand the tool you are using, in this case Construct, learning how expressions work in Construct will make you understand how to combine them and creating a behavioral pattern for your enemy in game or player.

    We all started as hobbyists here, and some of us went to another level and to other languages, some stuck at hobist level.

    Just give it time and learn from the tutorials and example files available in the forum and community tutorials, it will soon come to you what you have to do.

    Have fun!

  • functions if you look at them have parameters which you can define

    the order of those parameters are 0 = being first 1 = being second and so on, you can add a N numbers of parameters

    in order to set a value at a surtain parameter you do the plus sign on the call function .. or set function .. and a parameter is added then u add a value in it being it text or number.

    then to use the parameter u call its position from top to bottom, if its the 1st on top then u use 0 as explained above if its the 5th parameter in order u call it by using 4 and so on.

    the order of the parameters follows the same numerical order as loopindex... they count starting and including 0 not from 1.

    take for example a function named "set_stats" with 5 different parameters

    and we do the parameters like this

    0 = 100

    1 = 10

    2 = 5

    3 = 200

    4 = 50

    lets say the stats are to be set for a character with the following variables defaultHealth, Strength,

    Stamina, Defense, Coins.

    then when we call "set_stats"

    C :< Call Function "set_stats"

    --------------------------------A :< set player variable defaultHealth to function parameter 0

    --------------------------------A :< set player variable Strength to function parameter 1

    --------------------------------A :< set player variable Stamina to function parameter 2

    --------------------------------A :< set player variable Defense to function parameter 3

    --------------------------------A :< set player variable Coins to function parameter 4

    Building a game is a pain ^_^ ...

  • mfalcuta

    set ViewPort X and Y to player X Y there are system expressions for that.

  • You can look at the RTS example Construct has, the enemy Ai there kinda goes near the player and starts shooting at it if to close or in range.

    There is no way of defining a Ai behavior, there is only the event_programming which accumulates in a series of rules and actions the Ai would do... Ai is not actual Ai, but a set of rules we pre-program.

    It shouldn't be named Ai, but Pre-Programmed Behavior or simply a Blueprint.

    And that as i said above, is something you as a game developer have to come up with by yourself, i can do it for you but you wouldn't learn anything as you wouldn't understand what i did there.

    Please consider taking the tutorials i sent above in the links, and try see how they work, after you do that you will understand how to event_code a Blueprint yourself.

    Keep on learning.

  • Since this would probably take time to implement, can we get instead WebP support? instead of current PNG stripe sheet export images? Same quality and features + support on over 70%(natively supported by chrome,mozilla,even and many big name browsers) world wide browsers and devices (cause around 30% are '99 outdated devices / platforms -who cares...)

    To make this clear, instead of exporting the images as PNG strips, instead convert them to Webp, if selected as that. Like not making it default but optional conversion.

    that saves around 50% + image size on game assets.

    Maybe i should add this in the Ideas forum.

    Edited: and here it is WebP Suggestion Submitted

    Having a lower compression image structure, would allow us to fake the SVG functionalities(which we can now by using normal images and lots of event_coding) at lower the GPU/CPU usage and faster data serving.

  • I'm not sure if that is a intended behavior, it might be on some devices it acts like that and some doesn't? Ashley should be able to know this better.

    Another work around would be to use spritefonts instead of texts, it might be the spritefont aren't gonna be interfering with the mobile device text rendering, since they are image based.

    Also instead of adjusting the font by decreasing their size, i would set the font to be locked at a surtain size, for example let's say on desktop you have it at 24 points, but when mobile is detected force 24 points or 20 points, when the text is updating the text.

    You can use the system expression is on platform

  • do you have pixel rounding on? it might interfere with the mobile retina or Physical Resolution.

    understanding pixels resolutions

    hope it helps.

    if it doesn't fix it for you, you will have to code in events for mobile platforms a different font size.

  • it's possible without plugins also, but they will be very rudimentary or as complex as you make them by event_coding.

    For example if u want your enemy to chase you u just compare the distance from evemy.x to player.x and make enemy.x set to self.value + or - an amount that you want.

    for example

    C <: ifPlayer.X < Enemy.X

    (meaning the player is in left of the enemy)

    compare two variables

    C <: distance(enemy.x,0,player.x) =< 200 | A <: Enemy.SetX to Self.X - 5

    (meaning if the distance from enemy.x and player.x is equal or less than 200 pixels then the enemy will start moving towards left side from its current position by -5 pixels)

    and u do the same thing for the chasing enemy if is reversed by adding instead of subtracting and comparing ifPlayer.x > Enemy.X -- but don't change the distance =< 200 leave it the same.

    and that would be the follow ... then for shooting the player or jumping over obstacles you need more event_coding, but there are tutorials that are doing that without events, take your time, a good game is made in time! Have fun!

  • You don't have to do it every level, but it can be done like that also, just its gonna waste a lot of events by doing that, imagine if you have a game with 200/500 levels ... it would be impractical... doable but impractical.

    Made you a Array based 5 by 5 checker and reward, plus bonus% at level up.

    All you need to change is change value of 5 from the global variable to denote your wanted reward level.

    bonus reward is currently at 2 as (2*100)/100 = 2% if u want 1 % u just change the value of 2 in global variables.

    If you want to adjust the count of rewards or how many times it should be rewarded you just decrease the array width or increase it, i made it for 1250 levels that is 250 bonus rewards given. or around 2500% health increase (if player reaches level 1250).

    every-5-levels

    Have fun! ^_^

  • Premium C2 super aI platformer - requires some custom plugins probably provided by the seller (there is probably a more extended one somewhere i just spent 1 minute searching the store and forum, didn't meant to plug the sale in there) can be converted to C3 c2runtime.

    C2 tutorial ai-jump and follow - should work with C3 also.

    and then there are this Extend AI platformer tutorials

    Have fun, take your time read and practice! You'll make it eventually :P!

  • Edited: just seen ur file, first you have to disable animation speed -43 to 32 on your "shoot" animation and set its repeat from 9999999999 to 1 and disable loop.

    then add a "trigger once" on the 1st condition in "idling" group,

    then check for other events where you might loop/or not having a trigger once on conditions-that fire actions like Player1-"set animation" and if they don't have a green arrow toward right that means they will loop, you need to add condition "X is not pressed" or x is pressed and right click invert on the condition list, so they don't interfere with your shooting animation.

    after u done that they should work, also make sure your shooting animation is triggered at the bottom of the event code, and rest of other animations are above it.

    so your structure should look like

    idling (this should check that player isn't running/jumping/shooting/animation Shoot is playing inverted.)

    running (this doesn't need to check only be used when key is pressed or key is down)

    jumping (this needs to check only once if player has pushed button to jump)

    shooting (this needs to check only once if player has pushed button to shoot)

  • Can be done Forge of Empires is a medium-heavy-server based game, when we talk about supporting thousands/hundreds of thousands/millions of players.

    For a small scale version should be possible using only Construct knowledge, however for same scale support as FoE, it will require atleast some knowledge about Apis and Microservices and services like MongoDB and Mongoose in order to scale it up.

    I'd say scalability is the only downside on Construct in this scenario, cause requires a bit more than Construct knowledge.

    But if you have the knowledge i can't see any reason not to be possible.

  • There are probably bunch of tutorials on puzzle games on Construct channel on youtube or other Construct channels that are not necessarily the official one supported by scirra.

    Your first stop should be at the puzzle tutorial that comes with C3 editor, then dissect that one up and see how was made, there is no good way... is just doing it, all u have to keep in mind is avoid using everytick loops (meaning don't update your text objects on a everytick but use for example actions that are triggered once when the player collects a coin, player dies or walks 1000 pixels etc).

    the same loops should be avoided for any type of action u want to do, if it's not a looping animation or behavior you want to create, it all should check for collisions or conditions only when it's needed, other than that... everything is game. You can do it anyway you want, is a matter of just starting and doing it then figure out later on how to better optimize your code. (make sure you comment your own actions/conditions that way long run of development you won't be confused where something is.)

    have fun!

    (resources can be found at the top of this website under learn/community menu)

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • the banners should position themselves automatically.

    when u create ur banner ad on admob, you have a few options, to what type of banner it will be and where it will show, being it interstitial or small top/bottom banner, once u generated the ad all u have to do is copy the id of the banner and load it.

    the position automatically is taken from your admob ad banner place settings, is not a Construct feature cause the ads are a loaded from the plugin that is using a script to call your admob ad places which is very much like an iframe... so there is no need for u to manually position them on Construct.

    this was how admob worked since it started and i don't think it will change.

    the short answer is check your ad banner on the admob dashboard and make sure you load the right one.

    make sure also, you disable the ad place setting that loads any type of ad.

    there are responsive ads, interstitials or just small banner ads, if u leave it to size"custom" it will automatically fill in an ad that is available for you which is random or based on your tags u put on it for you app.

    it also depends on the fill rate admob has, which is pretty much low, im not sure if there is still that setting that offers u filling rate and displays what ur filling rate is on the account, last time i checked back 5 years ago on my account i had a 85% filling rate, however coming years that number lowered more and more as competition in the business increased.

    (knowing your filling rate matters very much for the type of banner u will be using to show ads, video ads have the most fill rates now a days because everyone wants to entice people better, where a static image doesn't really convey that message u want to send that good. to simplify this, you might have ur small ad banner working on ur device but if there are no ads to fill in your ad space u won't see any on ur app, same applies to videos, interstitials etc, but small banner ads while cheap, filling rate is really very low, back when video ads started small banner ads had best filling rates, and interstitials also, but then internet boomed and technology advanced, faster internet = better loading/buffering times = more filing rates for video places, so almost every advertiser changed from static small annoying ads to video or interstitial.)

    Hope it answers your questions and solves your issues.