saiyadjin's Forum Posts

  • winkr7 - like i said, there is no real reusability. ever. anywhere. but if your projects are similar - for example - car race, bird race, planes race, etc.. you can create a group of controls that use wasd (for example for pc), which are put on a family named "player", where objects inside are just player objects that can use the movement, and then in another game, you create family "player", and copy paste the events. voila.

    but there will always be tweaking, pimping, fixing, and more.. so

    once again. there is no REAL reusability!

  • 1. - lol

    2. - lol - sure, go create sheets for each object, gl hf with order later. also - i agree with family part - you can't select an object from family by it's name or id or sth, but still you can create instance of an object by dropping it in with spawn/create, so whatever.

    3. - lol - you sure are not a pro "developer" like you've said in the post above. "pro" developers know that there is no real reusability. you can create parts of code which can be reused, but create a single (if we're talking about C# for example) DLL which will do everything, it's impossible. same goes for this.

    also it depends on type of game. if you have cars racing game where you have controls wasd, and they are binded and programmed perfectly, you can reuse them in another project that uses the movement. but if you copy / paste the movement of wasd to a tower defense game - wtf is it going to be used for there? nothing exactly and therefore the reusability concept already drops in water.

    4. really? like really? did you even read manual? check forum? tutorials? anything? wtf, and you're a "pro" developer. do you even think bro? use dictionary? array? save locally and access from anywhere? global vars? global somethings? dictionary in dictionary... i can go on..

    5. didn't use it so i can't say... but i guess you're a "pro" developer so you're gonna tell me what is good and what is bad

  • i've just flew across the blog and found this out:

    https://crosswalk-project.org/blog/deprecate-40.html

    is it just 4.0 version or all 4-4.4 versions?

    also.. you can enable downloading crosswalk libs and stuff in background:

    https://crosswalk-project.org/blog/cros ... -mode.html

    100mb apks anyone?

  • not sure what you're asking?

    i've done some cm, push out solids and such in my game, didn't use tilemaps though.

    check here:

    https://dl.dropboxusercontent.com/u/136 ... index.html

    p.s. if you don't see menu - > there's a new game button floating on the left upper side, so just randomly click around until you get it, it seems some font is causing sometimes problems and people do not see it, also there's options under it / but defaults are wasd + 4 on numpad for shooting.

    everything is done with custom movement / pathfinding / pushing out solids and more...

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • rexrainbow - i've noticed you got your repository, why not just get a small database (up to 1GB) and create a software that uses the base and does all that for your / everyones plugins ?

    p.s. i could help you, but i'm not that good with python which i see you used

  • you mean offline plugin manager inside the editor? yeah that would be nice.

    i've started building my program for the same purpose but i stopped halfway. wanted to create a nice admin interface for users to upload through and manage their plugins, and another where you could easily browse them, download and install.

    i've stopped halfway through because i had some other business to attend to, but i will continue it's development shortly..

  • what's the point if they have no internet connection?

  • i'm not sure if he developed so that it automatically takes the 2% or you have to manually do it, but i'd say it's the first thing.

  • hey guys,

    currently it's 100mb for APK, which leaves us at around ~70MB for stuff. if you make a game that has > 70MB you can't put it on googleplay. is there a way to use expansion files for adding more content? i'm guessing packing images and sounds should be just fine, and leaving runtimes and data in the first 70mb.

    any ways how to do it?

    i've found a few blog posts but they are for apps, not for game engines.

    https://iphonedevlog.wordpress.com/2014 ... a-project/

    https://groups.google.com/forum/embed/# ... NTRDZHN5Cw

    could it be made through plugin?

  • next up, improvement in collision detection:

    http://i.imgur.com/OguZ26n.png

    since i've got a project that achieves around 60 000 collision checks per second, these values seem pretty good for improvement. it changes the section intersect code. i've noticed that it can be further improved by moving the code to gpu, but that's another pair of glasses. in preview i noticed around 3-4% less cpu usage when high collision checks hits in. found in common_prelude.js

    old code:

    // Segment intersection
    	cr.segments_intersect = function(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y)
    	{
    		var max_ax, min_ax, max_ay, min_ay, max_bx, min_bx, max_by, min_by;
    		
    		// Long-hand code since this is a performance hotspot and this type of
    		// code minimises the number of conditional tests necessary.
    		if (a1x < a2x)
    		{
    			min_ax = a1x;
    			max_ax = a2x;
    		}
    		else
    		{
    			min_ax = a2x;
    			max_ax = a1x;
    		}
    		
    		if (b1x < b2x)
    		{
    			min_bx = b1x;
    			max_bx = b2x;
    		}
    		else
    		{
    			min_bx = b2x;
    			max_bx = b1x;
    		}
    		
    		if (max_ax < min_bx || min_ax > max_bx)
    			return false;
    		
    		if (a1y < a2y)
    		{
    			min_ay = a1y;
    			max_ay = a2y;
    		}
    		else
    		{
    			min_ay = a2y;
    			max_ay = a1y;
    		}
    		
    		if (b1y < b2y)
    		{
    			min_by = b1y;
    			max_by = b2y;
    		}
    		else
    		{
    			min_by = b2y;
    			max_by = b1y;
    		}
    		
    		if (max_ay < min_by || min_ay > max_by)
    			return false;
    			
    		var dpx = b1x - a1x + b2x - a2x;
    		var dpy = b1y - a1y + b2y - a2y;
    		var qax = a2x - a1x;
    		var qay = a2y - a1y;
    		var qbx = b2x - b1x;
    		var qby = b2y - b1y;
    
    		var d = cr.abs(qay * qbx - qby * qax);
    		var la = qbx * dpy - qby * dpx;
    		
    		if (cr.abs(la) > d)
    			return false;
    		
    		var lb = qax * dpy - qay * dpx;
    		
    		return cr.abs(lb) <= d;
    	};[/code:2tumiohd]
    
    new code:
    [code:2tumiohd]// Segment intersection	
    	cr.segments_intersect = function (a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {
    		
    	var s02_x, s02_y, s10_x, s10_y, s32_x, s32_y, s_numer, t_numer, denom, t;
    	s10_x = a2x - a1x;
    	s10_y = a2y - a1y;
    	s32_x = b2x - b1x;
    	s32_y = b2y - b1y;
        denom = s10_x * s32_y - s32_x * s10_y;
    	
        if (denom == 0)
        {
    		return false;
    	}
    		
        var denomPositive = denom > 0;
        s02_x = a1x - b1x;
        s02_y = a1y - b1y;
        s_numer = s10_x * s02_y - s10_y * s02_x;
    	
        if ((s_numer < 0) == denomPositive)
    	{
            return false; 	
    	}
    	
        t_numer = s32_x * s02_y - s32_y * s02_x;
    	
        if ((t_numer < 0) == denomPositive)
    	{
            return false; 
    	}
    	
        if (((s_numer > denom) == denomPositive) || ((t_numer > denom) == denomPositive))
    	{
            return false; 
        }
    	
        return true;
    	};[/code:2tumiohd]
  • here's a first test i've done.. function "next power of two" - found in common_prelude.js

    results here:

    http://i.imgur.com/HCpm6ne.png

    old code:

    cr.nextHighestPowerOfTwo = function (x) {
    	    --x;
    	    for (var i = 1; i < 32; i <<= 1) {
    	        x = x | x >> i;
    	    }
    	    return x + 1;
    	};[/code:d6luuvun]
    
    new code:
    [code:d6luuvun]	cr.nextHighestPowerOfTwo = function (x) {
    
    		x--;
    		x |= x >> 1;
    		x |= x >> 2;
    		x |= x >> 4;
    		x |= x >> 8;
    		x |= x >> 16;
    		return x+1;
    	};[/code:d6luuvun]
  • i'd go with 720p still. resolution really doesn't matter much, and 720p is a solid resolution for upscaling to 1920x1080 and lowering to less reses. like 640x360 and more. here's a chart for it: https://en.wikipedia.org/wiki/720p#/med ... dards2.svg

    but beware . if you make your game 720p, when different resolution is used your sprites might deform. therefore you should test your game on 720p and 1080p and 320p devices to see the differences.

  • i'd stay with 720p.

  • this won't work.

    since you set sub events - they will fire the same tick / next, and attacks animation won't end for let's say - 2.3 sec, and you don't know if it will hit, how long it flies and stuff. depends what kind of attack it is - melee or range?

    the solution is next:

    add local variable to attack named "didHit" with value 0.

    when you activate the hit with some key (for example space) - set the animation on and wait till it ends. if it collided somewhere set didHit = 1.

    once the animation ends - check if didHit is = 1, if it's 0 - kill player, otherwise don't do anything.

    now this applies good for melee attacks, but what if you want a range projectile to check if it collided? add the same variable to the fired projectile.

    on destroyed check if didHit is 0, if it is kill player, if not then nothing. ofcourse you will have to check if projectile collided and have a way to "terminate" projectile on miss... for example - starts with speed 400 and deceleration 100, after ~6seconds it will stop - therefore you destroy it when it reaches speed 0, which will trigger checking didHit. and ofcourse if collision happend you destroy it in that moment it hits (and set didHit to 1ofc)

  • ok, since i've cleaned most of the stuff i'll start in a few days with optimizations and microopts, hopefully these are taken care of if nothing at least i've done it for my pleasure, regardless if ashley finds them usefull / useless.