HN user

Voltage

67 karma
Posts0
Comments48
View on HN
No posts found.

Yeah, I'm very familiar with the tech, I've been interested in games dev and web dev for a few decades now. So you could be right, that the models aren't ready to "play on their own" yet.

I tried doing a warcraft 1 clone, but that felt too complex for the model being used (openai 4.1). That model was just the default setting in copilot.

I dug a little deeper this morning, and it turns out I hadn't actually enabled my copilot 'pro' mode, which has granted access to some more current or dev focused models. So I'll take them for a spin to see what they're capable of.

My goal here is to roughly get a sense for when a task is too complex for an "agent" to handle.

I also want to try adding custom tools to suit certain project needs. For example, Unreal Engine has a python editor interface, so I'd like to have an agent drive the editor to build something. I have my doubts.

Once I have a feeling for what level of complexity can be handled, I'll see if I can manage the tools better using this understanding, by breaking large and complex projects into appropriate chunks of work / complexity.

/endBrainDump

I will. I'm just trying to evaluate the tools on a medium size task. I'm trying copilot's agent mode with the goal of creating a warcraft 1 clone. Or something resembling it.

I'm on the side of AI is a huge productivity booster (by my guess... 10x)

But I don't want to make the claim lightly, so I did an experiment.

I signed up for copilot pro, and have been using their 'edit' feature. This is more than just their auto complete.

I set myself a goal to create a playable web game of classic frogger.

It took 4 hours with copilot "edit" and my full attention.

I didn't write a single line of code, but I did ask it to refactor and gave it a project description.

I suspect this would have taken me 4 days full time to get to this level.

Try it out:

https://dev.zebrar.com/jd/frogger/

Given my interest in games and demos, I feel the opposite. I'm always in search of the real-time method that looks plausible and can cover huge areas in 3d space.

Computational accuracy is not important to me at all.

Yeah the demoscene jumps out as a good candidate to represent "creative 'useless' programs". :)

I make a few demos, but my personal favourite was this 4k (windows executable less than 4096 bytes):

https://www.youtube.com/watch?v=sBcwQCBpEiE

It uses all the fancy compressing linker tech (called crinkler) along with a tiny music player and a glsl raymarcher.

I tried to download it but all I get is virus warnings now... I guess malware devs also like crinkler. :(

A big smiley face. :)

    uniform float time;
    varying vec2 vUv;

    // https://iquilezles.org/articles/distfunctions2d/ (Thanks IQ!)
    float sdRing( in vec2 p, in vec2 n, in float r, float th )
    {
        p.x = abs(p.x);
   
        p = mat2x2(n.x,n.y,-n.y,n.x)*p;

        return max( abs(length(p)-r)-th*0.5,
                length(vec2(p.x,max(0.0,abs(r-p.y)-th*0.5)))*sign(p.x) );
    }

    void main() {

        // create coordinates at visual centre (y coords doubled for circles)
        vec2 centre = vec2(0.25, 0.25);        
        vec2 uv = vUv * vec2(1.0, 0.5) - centre;

        // mirror x to get both eyes for the price of one, and find eye offset
        float eyes = length(vec2(abs(uv.x), uv.y) - vec2(0.035, 0.03));
        // carve them out using smoothstep
        eyes = smoothstep(0.015, 0.016, eyes);

        float mouth = sdRing(vec2(uv.x, -uv.y + 0.03), vec2(7), 0.65, 0.1);
        mouth = smoothstep(0.02, 0.025, mouth);

        float shade = min(eyes, mouth);
    
        vec3 yellow = vec3(0.9, 0.7, 0.0);
        vec3 color = shade * yellow;

        gl_FragColor = vec4(color, 1.0);
    }

Thanks for the tip.

I thought I recognized your handle! You wrote the "A Primer on Bézier Curves" article. Thanks for providing that amazing resource, it's been invaluable during my learning process.

Great article! I didn't know about Rotation Minimizing Frames or the double reflection method.

I've run up against the issue of unexpected twisting of splines at work more than once.

Counter point: Often I am faced with doing it right or doing it within budget for an activation that is designed to live for a few weeks only. I aim for 100% compatibility with different hardware, OS, browser, user experience, client expectation and non suicidal business practices.

Very cool indeed. Seems like a good platform to apply the demoscene trick of "adaptive subsampling" to greatly improve performance at the cost of a little image quality.

It takes advantage of the fact that pixels that are close together in screenspace are likely to be similar enough to interpolate from it's neighbours where possible. It focuses the computation time on areas where neighbouring pixels are very different, such as object boundaries, shadow boundaries and large lighting differences.

https://web.archive.org/web/20101123123238/http://exceed.hu/...

As a long time self learner (35 years), I really enjoyed the learning format (and learning focus!).

I was surprised how much I enjoyed clicking I learned something, even though I got the yes/no answer "correct".

Well done Julia. You have me thinking if I should prep my own content to direct new users to when fundamental questions are asked.

I use Unreal Engine Blueprint visual scripting a lot, and I like it too.

Regarding your point about complex logic and number crunching can be alleviated by using a 'Math Expression' node... which allows math to be written in textual form in a node.

In CBM BASIC RND(1) returned a floating point value between 0.0 (inclusive) and 1.0 (exclusive).

205 + RND(1) would always evaluate to 205 when truncated.

205.5 + RND(1) pseudo randomly selects between 205 and 206