Log In

I don't know where I should post this so I'm doing it here . Hope it's no trouble.
I'd like to get some sources, tutorials, explanations about how to make some classic
effects used by the demoscene (like dot tunnels for example)
I'm trying to study some codes I got here on the lexaloffle website but they are a bit difficult, for me to understand and help would be appreciated.
Does anyone have any books or website to recommend that i could read? thank you very much

P#59778 2018-12-06 19:56 ( Edited 2018-12-06 19:58)

No one ? really? );

P#59874 2018-12-10 14:02

I am sorry, but I don't know exactly what you are talking about when you say "the demoscene". Plus I am not very good at coding. Could you please clarify a bit.

P#59876 2018-12-10 15:25

I found interesting stuff just Googling for "demoscene effects":

Some of these are specific to graphics hardware, but others are just fun graphics programming effects. I assume the latter is what you're asking about, and would be best suited to Pico-8.

If you're just starting out, you might have more fun and learn just as much from experimenting. Keep track of the location of an object (a dot, a circle, a sprite) in x and y variables updated with a function in terms of a variable t that you increment by one each frame. Try different equations in terms of t. Use sin() and cos(). Try multiplying t by things, try multiplying sin(...) by things, try adding, try dividing. Now try doing that for hundreds of objects, each with its own offset to t. Make the objects letters of a message, have the color of an object change over time. Use randomness, use patterns, use color ramps.

If there's a specific effect you want to recreate, just try recreating it. You can get some very natural looking particle effects just by taking a guess as to what's going on with each particle at each step.

 ```function _init() circles = {} end function x(t) return cos(t/50)*t/4 + 64 end function y(t) return sin(t/50)*t/4 + 64 end function _update() for ci in all(circles) do ci.t += 1 if ci.t > 1000 then del(circles, ci) end end add(circles, {t=0, c=flr(rnd(15)+1)}) end function _draw() cls() for ci in all(circles) do circ(x(ci.t), y(ci.t), 5, ci.c) end end ```
P#59918 2018-12-12 05:55

Yes thanks for your answer!
That's actually the kind of algorithms i'm looking for. I've also searched on google and found these links , I've actually also started to read some source codes and try to understand what is going on in these.
What I was wondering was if there exists some books or websites where these algorithms are explained and detailed that would surely help me go faster

P#59931 2018-12-12 10:34 ( Edited 2018-12-12 10:35)

This is interesting. I didn't know there was an organization for making stuff like that. I know Xscreensaver has a lot of similar stuff. No surprise there, as screensavers are just interesting effects that have no user input. I will keep an eye out for stuff like this.
Edit: This has a good bit of code to help visualize what is happening:
https://lexaloffle.com/bbs/?tid=29314

P#59932 2018-12-12 11:20 ( Edited 2018-12-12 11:44)

As it is often the case, it's when you stop looking for something that you finally find it
I share this with everyone who might be interested in
http://canvas.projekti.info/ebooks/Mathematics%20for%203D%20Game%20Programming%20and%20Computer%20Graphics,%20Third%20Edition.pdf

enjoy

P#60356 2018-12-25 21:45

[Please log in to post a comment]

Follow Lexaloffle:
Generated 2022-07-03 09:19:22 | 0.005s | Q:16