Terraria Mods, thoughts

  • Making mod is a good way of learning how to collaborate alone
    • The mod loader usually needs to follow a pattern in order to "hook" the apis from the original game, so although working alone, it's kind of like working with other people.
    • Usually it follows a design pattern
    • Good opportunity to learn how to work from existing framework
  • Now with 1.4, tModLoader become official, which lead me to believe the community will be more active, so it's easier to seek advice/help from the community.
  • Gaps identified
    • As it's a small hobby project, I do not want to scope to get too large.
    • There's large mods with every element of the game play even transforming game play, however I'm going to make the first attempt simple.
    • The one thing seems to be lacking in the current mod is weaponized mounts
      • It's possible that it's not doable that's why no-one is making it
      • However, there's sign the system supports that, as there's mining vehicles in vanilla and mod that has overriden the "fire/use" button for mining. Also in vanilla and mods there are auto-targeting weapons.
      • Reference from other game:
  • Preliminary plans:
    • First step of this one is actually not design but technical exploration 
    • It could be that it can not be done, as if it can I'm positive someone will have attempted to make it

Adversarial Attack on Human Vision

  • Shame on me wasting time on youtube again, it's me browsing through random videos and saw this
  • The human vision very much could be hacked like AI
    • However the given example, my hunch is that the picture is altered more than the computer AI Adversarial Attack example ( could totally be wrong about it, as I did not do objective verifiable calculation )
    • Based on my preception the picture (again totaly could be wrong), the noise they use changed several contour feature of the "cat" original picture, but that's only one example, probably will need to see the dataset compared to AI test.
  • Original paper is here: Adversarial Examples that Fool both Computer Vision and Time-Limited Humans
    • So the main takeaway of the study was not to fool human, it's the indication from time-limited human vs no time-limit human(robust) to infer there's potential for AI to be more robust.
    • Previous example for AI to be known vulnerable to adversarial attack is cited by Ref 13 also on same web site: EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES , "A demonstration of fast adversarial example generation applied to GoogLeNet (Szegedy et al., 2014a) on ImageNet", which shows the attack on panda image being wrongly recognized gibbon. However, I would argue this is only possible when they have control to finely rewrite input cache as 255*0.007 = 1.7 85, I doubt such grain could be picked up by real camera and even if so, would easily drown by noise of the sensor that even it accidently formed severl frames out of hundreds, in real application, the system could use statitstical method to make output more robust (Also I could be wrong), or the subtlety of modification is exaggerated.
    • However it never the less points out the  flaw of the algorithm so that it could be improved upon.
  • There had been attempts to fool face recognition technology

Development log - GDice

The log of the development, major problems and things to improve

Development log - GDice - Number

Raycast on Phaser Camera3D Plugin

  • The problem is actually discovered by a student when trying to implement a forward running game (They need to click the enemy)
  • The camera3d class provides a ray function: https://photonstorm.github.io/phaser3-docs/Phaser.Cameras.Sprite3D.PerspectiveCamera.html#getPickRay__anchor
  • In that way, calculating the x,y on the target plane and then do some hit-test manually would do the job
  • Used example: http://labs.phaser.io/edit.html?src=src\camera\3D%20camera\floor.js
  • Modify line  33 to : var balls = camera.createRect({ x: 8, y: 1, z: 8 }, 32, 'ball');
  • Add following block to create():
       balls.forEach( function(ball){
            ball.setData('tag', 'ball'+ball.x+':'+ball.y+':'+ball.z);
        } )

       this.input.on('pointerdown', function (pointer) {

            ray = camera.getPickRay(pointer.x, pointer.y);
            balls.forEach( function(ball){
               // r is hardcoded here
               let r = 4;
               // calculate x y @ z of the object
               let tx, ty;
               let tz = ball.z;
                tx = ray.origin.x + ray.direction.x * (tz - ray.origin.z ) / ray.direction.z;
                ty = ray.origin.y + ray.direction.y * (ray.origin.z - tz) / ray.direction.z;
               let tl = Math.sqrt( Math.pow(tx - ball.x, 2) + Math.pow(ty - ball.y, 2) );
               if( tl < r ){
                    console.log(ball.getData('tag')+' isHit');
                    ball.gameObject.alpha = 0;
                }
            } );

        }, this);
  • Explanation:
    • the radius is hard coded here (5)
    • more complex hit testing will need to be implemented for complex shapes
    • manually enumerated through all object, inefficient (may need to implement some obvious exclusion for optimization)
  • Extra problem
    • Why is y axis reversed here?
  • To study:

Imaging Device and Webcam

Ultrasonic Directional Speaker

  • Open source one:https://hackaday.io/project/9085/logs
  • Probably first saw in "future weapons" as a military equipment for crowd control
  • It uses the directional properties of ultrasound
    • Modulates and trick our ear of hearing it
    • Presumably can achieve a lot of interesting effects, like spatial sound

Example:

 

Alternative phones than mainstream

Takeaways - antinatalism

  • As evolution imprinted in us, it's intuitive to just wave off the idea that having children might be bad
  • However, it one truely care about suffering, this isn't a topic that could be dismissed without a careful thought process.
  • I first learned about Prof. David Benatar in a very early Sam Harris podcast (however not the first time I had the idea, it's the first time that I hear a more structured argument about it and knowing that I'm not the only werido):
  • Also newer debate/discussion with Cosmic Skeptic
    • There are much questions uncleared as some of the points are inheretly subjective
    • Also Prof. Benatar also said there's know "knock down argument" for antinatalism, which I totally agree, one can only lean towards it by observing the life status and examples around you
    • Even when people do not grant the problem of asymmetry, from my observation, even for people who won capitalism, their life (at least in public eye) don't seem like particularly lacking suffering (of course not in materialistic sense).
      • This gets to a mechanism of my speculation that has lead to this happening
      • We somehow evolved a mechanism like "compressor" (in audio processing sense, not data compression), that when we have some "good" experience, we experience "good" for that instance and only in that instance we feel that level of "good" and our system has raised the bar and next time when experience same level of "good", it's not as good, and level below that becomes suffering. And the "release time" parameter is super long some even life time.
        • Extreme example: drug (specifically about hard drug here), first few take of it (not first hand experience, but based on description) feels great, and over very short amount of time, the taking of that drug becomes necessity. Not taking the drug produce abstinence reaction which is extreme amount of suffering. Not the "good" become normal, and normal becomes suffering.
        • Not so extreme example: makeup, I've come across numerous ladies who says they can't look themselves in the mirror without makeup. When first time putting makeup, it's a raise of flourishing, yet our "compressor" raised the bar and now the with-makeup state becomes normal, and without makeup becomes suffering.
        • Common example: when suffering from starvation/sickness, the suffering is persistant, yet when the craving of fullness/wellness is fulfilled, the "wellfed" or "healthy" buff only last at most one day and then it becomes normal and people don't feel good anymore.
        • So even without asymmetry, life seems to contain more (at least perceived) suffering than flourishing. Adding the most chunk of life - boredom. The good analogy here is like what's mentioned in a previous podcast by CosmicSkeptic - "It's like a bad but not terrible movie, half way in, do you really want to leave now, probably not. But if knowing it's going to be like this would you come to the movie in the first place, also probably not "

Tags:
Created by Victor Zhang on 23:50, 28/01/2005