mOOnpunk's Forum Posts

  • There is a free extension that was made recently to allow 3d objects to be rotated. Sorry i can't find the link right now, but its on here somewhere.

  • The download link appears to be dead?

  • Sounds interesting, but way outside my capabilities.

    I will see how things go.

    Thanks.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Thanks for your suggestions. I'll give them some thought.

    I did try another method now, where i do one ordered for each loop on all goods based on priority descending, buying and reducing a persons money each time, and discarding other goods of the same type each loop. As the money goes down, they sacrifice priority for affordability.

    Its acceptably fast so far, but its a slightly different behaviour, as its not an optimum distribution of capital like before.

  • I'm experimenting with a simulation.

    A person agent has an income amount and needs to decide how to best allocate their money when buying goods.

    I have each good type as a sprite. They have Type, Cost and Priority variables.

    Each sprite has 4 instances with different variables, representing 4 choices of the same good type.

    The first always has a Cost of 0, and Type "none" and priority 1, to represent the option that a person agent doesn't want, or can't afford to buy any of that good.

    The other instances are given different Priority values indicating how much the person prioritises or desires spending on that good, and different Cost values.

    The idea is that these values, income, cost, priority, change through out the simulation and so people change their buying habits to maximise their spending to get the best mix of goods for their money.

    The way i have it set up is;

    	
    
    
    //First i dismiss any goods that are already more expensive than the persons income.
    
    all goods cost > person income then set boolean too_expesive true.
    
    //now check each possible combination of goods and find the combination with the highest combined Priority and lowest Cost.
    
    if boolean too_expesive = false
    for each good A
    
    	if boolean too_expesive = false
    	for each good B
    	good A cost + good B cost <= persons income
    
    		if boolean too_expesive = false
    		for each good C
    		good A cost + good B cost + good C cost <= persons income
    
    		---- Set total cost = good A cost + good B cost + good C cost
    		---- Set total priority = good A priority * good B priority * good C priority
    
    			if total cost <= persons income
    			if total priority => best total priority
    			
    			---- Set best total priority = total priority
    			---- Set chosen good A uid = good A uid
    			---- Set chosen good B uid = good B uid
    			---- Set chosen good C uid = good C uid
    
    

    This method works well, but the more goods you add the more exponential the calculations become, example;

    each good has 4 options times the number of goods types so with 3 good types that 4 x 4 x 4 = 64 combinations. 4 goods is 256, 5 goods 1024, 6 good types 4096 etc.

    Now if you have lots of agents as well the whole things becomes too processor intensive.

    Is there any other method or a better way of doing it that accomplishes the same thing?

    Thanks!

  • I've tried most types of data systems in C3, and to me nothing beats just using sprite objects made invisible with collisions turned off.

    The ability to pick instance by highest lowest value and foreach ordered, using a boolean to omit some sprites, makes it very easy to sort data.

  • Mikal Any chance you guys working together on those other plugins could tackle the whole ui plugin problem in C3?

  • This looks incredible. For a moment when i read the topic i thought it was a new plugin you were releasing.

    I hate to be pessimistic all the time, but i'm not going to bother voting, because i already know the response.

  • I had a look at the game. It appears to be simple 3d objects (buildings) with 2d sprite characters with pixel art textures. You could do something like this in C3 but there are quite a few extra hoops to go through over a conventional 3d software, like collisions, different elevations etc.

  • I've been trying to make a game for over 20 years now. Cant believe i've been so long at this.

    I started with Darkbasic (classic now), then an early game maker, i think version 3 or 4 by mark overmans, then i found clickteam and stayed there for a few years before construct classic was announced and i've been here ever since.

    I definitely don't have the motivation i once had. Its sad cause at the start i lacked patience and understanding but had plenty of drive, now i have a lot of the understanding ( i often do eventing in my head, or a text editor, and putting them into c3 editor usually works right without much change), but lack the drive.

    I think one of the reasons ironically is the bar to entry is so low now. Any game you think of, no matter how unique, you look and its already been made, on sale on steam and done better than you ever could. Ai is another reason i guess. Also i have this terrible thing where as soon as i know i can do something i lose interest in doing it.

    I found that when i do get fed up and stop for a week or two my brain suffers. I guess theres nothing quite like the mental exercise you get from trying to solve complex problems of your own creating.

  • Yeah it's kind of a pain: why can't conditions apply to all objects that it's valid for? For me, "Pick all" doesn't really act the same as "for each object" and it's difficult to tweak the code to make it act the same along with the benefit of lower CPU usage.

    "Pick all" is mainly used to reset already picked or filtered objects, example,

    object A's picked, do stuff

    subevent pick all objects B's, do stuff.

    or

    objects A's health > 50, do stuff

    subevent pick all object A's, do stuff.

    whereas foreach is used to effect a single instance at a time.

    Also if you were to do

    enemy health > 50

    foreach enemy

    only the enemy with health above 50 would be included in the loop. If you put the foreach at the top them all instances would be picked regardless of their health, but only the enemy with health above 50 would be effected.

  • So true.

  • I haven't made an FPS game, maybe try looking at some of the 3d examples that come with construct and see how the project is set up?

    Perhaps someone else knows.

  • When you switch to REGULAR you need to readjust your 3d objects Z height properties (z height not z elevation), so if you want say a cube to look correct make sure the z height is the same as the objects width and height properties.

    Also i think an FOV of 90 is quite high, it might produce a "Fish eye" look?

  • Yes, under the projects properties panel. Change Z axis scale to regular and the FOV option will appear.