DozeMaster's Recent Forum Activity

  • lots of graphical work, there are some tutorials in the startup page of editor for this type of effect.

    but is all basically dark graphics, with diffused lights and a "feather" bright area around the character which is basically a black full screen image with a hole in middle that follows the character, or u can replace that with a layer and have a sprite "outsource" or "insource" blending mode.

    everything else is regular platformer style, mostly is just "graphic work"

    you can use some shader effects to "colorize" some areas or give it some type of cool color effect, but 90% of the game style is just how graphics are made physically drawn like that dark colors.

    example

  • there was this alternative to nodejs for webview2 called "Electron"

    but was meant for C2... not sure if will work for C3 in the link above is the link for Construct addon page, seems everyone is asking for this addon there, seems outdated or not maintained, i remember there was some discord channel for it, but that was maybe 5/6 years ago.. can't recall. But was basically making executables for desktop, but with a browser like feel.

  • So just a quick summary, I'm making something relating to a trading card game I play, like Yu-Gi-Oh! or Pokemon, just less well known. And their website has images of all their cards, but they're decently high quality. Based on the amount of cards I've put in so far I estimate that when I'm done, the file will be around 100GB which is absurd. Is there a decent way in Construct to fix the storage usage, like a simple way to shrink the sprite without it being unreadable, or without taking thousands of downloads for all the cards? Or would taking the physical sprite object and shrinking it down help at all? Just anything.

    Shrinking the ingame-sprites will not help the project size, will help the rendering time. (dont confuse this with loading time).

    you will render basically a smaller version of that, but the original file is still 100gb so ... physically u have to "tinypng" everything and resize it to a common sense ratio, if file u use is a 5k resolution image bring it down for mobile scale version which should be max 512x512 or lets say more "quality" 1024x1024 is more then enough, even for most computers, a 1024 ratio image is considered "luxurious HD" for gaming purposes. anything above that u goin into unrealengine specs which is not feasible, or atleast i wouldn't recomend it for a trade card game, makes no sense.

  • Probably just:

    Var rotY=0
    
    Every tick
    — add 50*dt to rotY
    — sprite: set width to self.originalWidth*cos(rotY)

    Also it’s probably not necessary to post the question twice in both the c2 and c3 sections. The forum is already slow and most just look at new posts so they’ll see the question no matter where you post it.

    oh that make sense. like a flip/flop thingy

    as a patch to r0j0s input, for me works with this bellow, i think he wants to do exactly what u shown r0j0 in ur code which makes sense don't know i was thinking at gusts of winds lmao, but if using Width makes sprite stop at 0 while sprite can take negative values is a bit weird to convert, but as originalWidth since is not a function yet in regular eventsystem basically he can use ImagePointY(0) (if the 0 is the default of that sprite)

    Var rotY=0
    
    Every tick
    — add 100*dt to rotY
    — sprite: set width to self.ImagePointY(0)*cos(rotY)
  • Hello friend, do you have a animation of what you are trying to achieve?

    im confused by trying to understand what you mean by rotate around its own Y axis?

    is it a 3d game ? or effect?

    top down view?

    usually X axis left right Y axis forward backward Z top down.

    so u see why my confusion ...

    in C3 default camera is top down, or sideview... depends who u ask...

    so rotate works as intended rotates from origin or "center" point of sprite clockwise or counterclocwise as u experienced, what you want i think considering is a "leaf" animation correct me if im wrong>>>

    you want the leaf to fly straight then make a round trip then continue its journey? like a gust of wind? or what is the final achievement?

  • here are my tips for large scale projects

    coment everything on spot, even if takes double the ammount to properly do it, document everything as many said above me.

    You need basically to create a "user manual" or better said a "dev manual"

    when you make games or software that is 1000 -10,000 lines of code maybe you don't need that many comments.

    but if you are going above 10,000 lines of code or in Construct events, you might want to do so...

    also as many suggested, layers events and layouts, name them accordingly, early in C2 and classic someone used this format and i since followed it instinctively for Construct cause it made sense and its easy to find stuff

    for example you have Intro screen and the events sheet for it will be ES_Intro_Screen

    that will differentiate between the layout and event sheet, not wasting time clicking back and forth trying to figure out which one is which, especially when u got like 10 event sheets opened or 10 layouts opened.

    latest C3 now has colored comments, i use that feature instinctively since implementation, reason?

    RED is danger (meaning properly comment stuff and alert lines), Orange mid danger (meaning above medium danger if modified stuff might brake and cause weird glitches), yellow somewhat danger (some visual glitches or missalignments), green "animation stuff" "hud lements" - no danger if altered wrong, maybe some display not showing.

    folders in project - i used this structure for my project usually

    "g-spot" = plugins (mouse,touch,audio,etc) - all plugins that i use goes in this folder - (i name it usually like that or core but not to mess with the engine core - i usually give it a "sensitive naming" because once u mess with it, things go hot in weird places.)

    "hud elements" - everything hud related (for in-game) goes in this spot

    "menu items" - all menu items goes here

    "character" - everything related to character goes here

    "intro screen" - all intro/loading screen goes here

    and u can do this for everything just keep track of them in a proper manner.

    global variables - now here as the latest post in this topic there are a few factors to consider

    are u confortable with using "workarounds" or sacrifice "memory usage" for sake of "development purpose" ? or u care more about how the "game performs"?

    sometimes i find that what i think makes sense to me as a dev, is not always healthy for the game "resources" and i tend to do more harm then good, while is easy for my work it will clutter the project and barelly open it up in some cases.

    that's why i prefer using Arrays, dictionaries or instead of the actual dictionary plugin, a json/xml file, or most of times i just make a Variables_event_sheet that i include in everything as "globals" and "graphic dump" layout to make every sprite first instance renderable and not having to worry about if i can call "create object" if object is not placed in a layout somewhere.

    famillies - are your friend, no matter how good you are at simplifying things, you will find famillies are the best - like touretto says "all for the familly" and in our case .... its just true, famillies are one of the most powerful tools you can use in a project, learn to use them, when to apply them and how they interact with other project objects will make ur life easy.

    json/xml/array - you want to learn this how they function how to properly make a grid, how to read and write them etc. plenty of examples plenty of tutorials just grind till u get the hang of it, it looks scary in beginning but are easy actually, requires somewhat some logical thinking.

    entry level html5,css,javacript knowledge - if you want to understand how C3 works, will help you long run to understand this 3 languages. they are a must in everyones repository as developers,jquerry optional not really needed since javascript does similar stuff nowadays and sometimes even better.

    functions - now here... i seen projects doing functions and were a masterpiece when looking at the code, and i seen projects that would make you hurt just reading the names of some of the functions ... avoid naming everything the same with 1_2_3_4_5_6 at end or in front, unless imperatively needed or required for some reason.

    and going back to my first recomendation ... ALWAYS keep track of your code, i personally changed my style of coding lately, from just implementing in, implementing and while my head is hot and in the moment add comment immediately, otherwise i close i go to sleep, come back, and i look at it like some stranger made the code... and dont understand a thing of it.

    always document your progress

    oh and since i mentioned progress... turn autosave on, and make a habbit in making a backup, even if u "ctrl+s" by now as a tick response, "save file corruption" is a thing.

    late development stages, streamline everything, find a better way to make ur code faster to read and run, reduce image sizes, and code. The shorter everything is and smaller the less memory usage your game will use, the greater experience the user will have.

    Advertising - early in development across the years, decades by now, devs would stick ads on all pages of their game, bottom, top, spam full screen ads, video ads etc, you name it.

    Personally i never liked that because before making games, i played games, and i hated watching advertising especially forced ones.

    So one perfect model for advertising is a fairy dancing on ur screen saying hey "you want to watch some ad? you get X ammount of gold or diamonds or whatever, by watching this you help me as a dev and also u get something from it... you dont want to watch an add now? ok il come back later buzz u later"

    that is the perfect model, piratesoftware mentioned this also in some of his twitch stream, but i totally agree. Also if users buy your game, and u have a in-game store for purchasing items etc ... don't make them powerful, make them design choices, especially if its a multiplayer game. it just ruins the mood as a player to grind free mode in watching them ads and diamonds and whatever and then some guy just comes in trows 100$ in ur store and bam top1% rank in leaderboards. while the rest grinding months in ur game. is toxic avoid it.

    if you really want to give "a powerup" for donations or in-game stuff do this, instead of giving level 100 gear to the "payup" guy.. sell instead the ability to grind faster, or the ability to get 2x rewards if he watches the fairy ads or something that is a bit OP in balance of the free user that only paid for ur 5$ game or 20$ game, but can't afford to pay another 1000$ in-game supplies.. make it fair for everyone.

    A good example here is the way POE is doing it, they sell goods and services, but the game is free, u can buy materials in game etc but all the in-game purchaseable items, don't give u any powerup are just super cool visuals nothing more.

    and sort of this are my personal tips, you will find, that most of them repeat with a recurring theme with other devs, thats because its a "right way of doing things" which most devs will find and there is a "let the world burn way" of doing things.

    hope it helps.

  • > if u have a big project, problem with it is that it might glitch

    No, it won't glitch as long as you make sure that there is only one instance of this object.

    > is transparent and everytime u fetch 1 variable the gpu trying to render that sprite which uses a little bit more resources in spikes... and if u fetch consequencely 10-20-50 variables from that sprite ur game will have a spike "load freeze" on read/write data.

    I don't think this is true.

    The sprite is invisible and off-screen, so it's not consuming any GPU or CPU resources.

    true true, i totally agree with you. But... we are talking about a 1st time here who is about to take on a big project. everything can go wrong. thats why i mentioned those issues.

    for example, if he using the global object as invisible while the Construct says is invisible cause is a html5 interpreter u are correct... but u have to take in consideration all objects in screen are rendered by canvas... even if the system is saying is "invisible" once in screen they are actually transparent, and believe it or not... rendering "transparency" uses more memory then actual colored pixels.

    same reason why "antialisign" requires more memory... cause antialisgn basically is the smoothing of harsh edges into the background/foreground using transparent objects which requires more memory to render to calculate how much % of transparency should be and wherre that transparency should apply.

    in a large project now... depending how many of this objects u have the % usage will stack considerable...

    now in ur suggestion if is 1 object shouldnt do a big impact... however stacking that invisible object with 100000 variables that will take over globals to save "events" is a trade off i wouldn't even consider.

    from mistakes like "forgetting what that invisible sprite does" to lets say u have a project team member coming in sees a object that has "seemingly no purpose" and deletes it, then all the game engine brakes.

    thats why i suggest better use json, arrays, dictionary anything that its purpose is to keep number values, text values by default.

    if he likes to visualise the "array" he can even do a event sheet dedicated to global variables and nothing else - as long as they are all properly named and commented.

    in the end is all going to be a big time consuming thing, especially correctly commenting things.

    i find myself more then 50% of the time, implementing ideas, patching things, then not commenting and going back to comment and i forget what everything does, and just stare at it and im like "it works, it made sense at the time, but what does it all mean" xD

    dont take it as a "neing" ur tip, for you it works, for others also might work, but if you want to work in a big project with team members they need to know that sprite object thats hidden is a dictionary or the entire engine in 1 so i believe is going to be confusing, saying that... if he /she feels comfortable go at it.

    but considering C3/C2 is mainly used for tablets and phones, i know from past experiences sprite objects, and many instance variables on them, will glitch, like the variables will fail to be read and written. i used this method in the past, and i just dont recommend it long run. especially in a large scale project.

    especially a sprite is easy to delete by mistake, or change its designated state by simply adding it in a familly by mistake, and then "woops" the familly gets destroyed when shot, and now ur invisible sprite that holds all user data gets removed or cleared.

    and so many other reasons similar to above.

    now memory wise you are correct once outside the screen no memory is used, C3 engine doesnt render nothing that is outside the screen.

    but is easy to remove a sprite by mistake once outside the screen.

  • dop2000

    > I have two objects for "global stuff" - a sprite (invisible, global) and JSON. The sprite is for variables I use often, and JSON for everything else.

    > The sprite also has Tween, Timer, and LineOfSight behaviors, so I can run occasional timers/tweens or cast a ray when needed.

    Please could you expand upon this a little? What do you mean by "The sprite is for variables I use often" and how do you use the JSON?

    I understand adding Tween and Timer behaviours to some object as they can then be used anywhere else - I've always found it odd that Timers in particular had to be associated to an object and not just global.

    he just using a global sprite, that can be visible across entire game, like lets say u want a small logo to be seen on all pages, you can use that logo's ability to add "instance variables" on it, that will act as global variables, this has been a thing for a long time. is like a "workaround" around the 50 events limits which take 1 event away from free users even by simply adding globals.

    useful to keep in mind, but if u have a big project, problem with it is that it might glitch, simpler would be to make ur values in an array or dictionary, unlimited size data to be kept in, just is more dificult to fetch and store data.

    the logo/sprite in question can also be invisible out of screen as long as u remember not to delete any sprite that is outside the screen. or u can keep it in the hud layer that stays always in screen and make it invisible, but that will slow down ur games, even if is invisible, the data there will slow down ur game resources, because "invisible" actually is not invisible.. is transparent and everytime u fetch 1 variable the gpu trying to render that sprite which uses a little bit more resources in spikes... and if u fetch consequencely 10-20-50 variables from that sprite ur game will have a spike "load freeze" on read/write data.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • if you want to force 1 decimal even if is 0 after the front number just update the text in line 11 action

    "Money: " & round(Money / Divisor) & Suffix

    to

    "Money: " & round(Money / Divisor) &".0" & Suffix

    this will always force a .0 if number is perfectly round like 1,000,000 / 10,000,000 etc

  • i wouldn't recommend using 1.959 M as might be confused with 1.9Billion and users will think your game is glitching max i would recommend using 2 decimals like 1.95M u cant confuse that with 1.95Billion even if is 999.95M

  • > Hi, here is a simple solution i made for you

    >

    > not sure what is all the int u using but the logic for decimals should be this

    >

    > round(Money / Divisor * 10) / 10 & Suffix

    >

    > Here is a full functional solution up to Sxtillions using Construct 10^N

    >

    >

    > LargeNumberFormating

    >

    > in theory should show you any number as Sx,Qt,Q,T,B,M,K + .1 decimal like 2,155,123 Becomes 2.1milion

    >

    > Example uses 12 Events And 4 Global variables - for free users (and a function but the function can be changed to a Boolean condition all the same)

    Thanks a lot for your help, just one thing, if the number is 19500000, it shows it as 19.5. Is there a way to always show it as 19.500 M?

    I want it to always be pleasing to the eye design wise

    or 19000000 19.0 M

    any touch and

    is touching object

    --

    touch on tap gesture

    What is the difference between the two I just started to learn and I don't know exactly

    redownload the example i updated it a few more times, should have all explanation and some more features inside.

    to show more decimals just increase "Decimals" 10 = 1 decimal , 100 = 2 decimals, 1000 = 3 decimals etc.

    i like to use on Tap as forces users to click and release quickly which counts as 1 click

    if u use "is touching " that creates a loop which means if user is touching or keeping pressed on 1 item long enough that action / condition will happen multiple times over N*ticks per second, so if u want for money to be awarded 1 time per click u need to use "on clicked" "on sprite touched" "on released" or "on pressed" "tapped"

    is touching is like "on holding" if u notice on Tap has 1 green arrow meaning happens 1 time per action

    if no arrow is a loop, unless is a condition to be checked if true then also becomes a loop unless specified "trigger event one time"

  • Hi, here is a simple solution i made for you

    not sure what is all the int u using but the logic for decimals should be this

    round(Money / Divisor * 10) / 10 & Suffix

    Here is a full functional solution up to Sxtillions using Construct 10^N

    LargeNumberFormating

    in theory should show you any number as Sx,Qt,Q,T,B,M,K + .1 decimal like 2,155,123 Becomes 2.1milion

    Example uses 12 Events And 4 Global variables - for free users (and a function but the function can be changed to a Boolean condition all the same)

DozeMaster's avatar

DozeMaster

Member since 30 Jun, 2014

Twitter
DozeMaster has 36 followers

Trophy Case

  • 10-Year Club
  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • x9
    Popular Game One of your games has over 1,000 players
  • x21
    Coach One of your tutorials has over 1,000 readers
  • Educator One of your tutorials has over 10,000 readers
  • Regular Visitor Visited Construct.net 7 days in a row
  • RTFM Read the fabulous manual
  • x3
    Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

21/44
How to earn trophies

Blogs

  • Construct For Dummies - Simple Tutorial Collection

    I scour the Construct forums for users tutorial requests, and create small quick and simple tutorials using Construct's defaults features so anyone can use and apply them.

  • My Dev Logs

    Thinking on games 24/7 is fun and waste of time and unproductive if we don't bring those game ideas to life. In this blog im bringing my game ideas to life and log their development process.