pouët.net

Getting started with demos

category: general [glöplog]
Hey all! I'm out here in the United States, and I've been captivated by the demoscene for years. However, sadly, even here in NYC there isn't much of scene. That said, I'd like to forge ahead and make some demos.

I have some experience in C++.x86 assembly, openGL etc. What is a good place to start with making demos?

I can find so little information about how they are made.
Well I think the first thing is to have some concept that you want to do. Once you have an idea of an artistic style or a technical method that you wish to use, that will motivate you and define how you code your demo. Then it is a matter of making it happen.

If you want to do a size limited production then you need to look at the compressors/packers like kkrunchy and crinkler. Also the music synths like clinkster and 4klang. You also want to look at how to generate your scenes procedurally. A lot of this information can be found on the pouet bbs or simply by googling.

Probably the simplest way to do your first demo is to ignore the size categories and make a 3d engine which will load and play models and textures and lighting. There is a lot of information on how to do this on the internet as it isn't really demo specific tech, most of it is game tech. In fact most demos can be looked at as non-interactive games, which is good because there are lots of websites, forums, blogs and papers describing how to achieve many realtime visual effects. Then add an mp3 or wav music player and some post processing shaders and a timeline/sync/movement control routine. You can make pretty much anything with C++ and openGL. There isn't much need for asm unless you are doing some small sizecoding.

If you want to do something technically innovative then that is up to you to come up with an idea or research existing tech and find your own way to put a fresh spin on it.

Once you have done at least a simple demo or intro with some animated scenes and effects with a music player then you will have a better idea on what to do next. You can start building on your existing work, add some more complex control routines, start on a basic demo tool or framework to help you design and develop.

Of course posting here and asking questions is also good, there are a lot of sceners who are willing to help and share their knowledge.

One last thing, not to sound negative but more of a reality check to someone starting out. I recently came back to the scene after 20 year break, so it feels almost like starting from scratch for me anyway. It can be hard to do everything on your own and learn all the tricks. You are trying to catch up and compete with other people who have 20 years or more experience in demo coding. Lots of sceners also code for a living and work for game developers, sometimes it feels impossible to compete against this as someone just learning to code and make demos in your spare time as a hobby. But it is like anything in life, you have to really want to do it and spend time learning and practicing.

Do it because you love doing it and because you enjoy learning and programming, if other people like what you do then that is a bonus. Don't be upset by comments from jaded sceners.
added on the 2014-10-27 05:47:22 by drift drift
Just go make a demo about, really.
added on the 2014-10-27 06:27:56 by maytz maytz
pro tip: start with a small project that you really finish and release it at a party - there is no better motivation than seeing your stuff on the big screen.

at the beginning, try to avoid the urge to compete with all the more complex stuff the top guys are doing - it will only lead to frustration as it takes a lot of time to implement and often a lot of experience to get right. do it step-by-step and eventually you will also get there, albeit with much more fun..
added on the 2014-10-27 08:44:30 by arm1n arm1n
Quote:
I can find so little information about how they are made.


What information do you need, really?
I mean, there are basically three components:
- Code
- Music
- Visuals

Just write code that can display the visuals and play the music. That's it really.
So, what maytz said.
added on the 2014-10-27 08:49:52 by Scali Scali
I've given some talks on the topic over the years. Feel free to check out my seminar. Basically, what I recommend you to do, is to just start making stuff. Have OpenGL/DirectX up and running, add a music player (fmod/bass/your own) and go from there :)
added on the 2014-10-27 10:09:48 by Preacher Preacher
init stuff
start tune

while not_pressed_esc():

if(time<100)
draw awsome(time)
else
draw something more awsome(time)

print "release your own memory - fool!"
added on the 2014-10-27 10:31:45 by quisten quisten
Seek realtime graphics (Direct3D, OpenGL) / shader tutorials (Youtube, blogs, e-books). Read source code. Experiment. The End.

A truckload of reading material is already where you'd expect it: http://en.wikipedia.org/wiki/List_of_computer_graphics_and_descriptive_geometry_topics
added on the 2014-10-27 11:06:07 by tomaes tomaes
What drift said. And also very important what spike said:
Quote:
start with a small project that you really finish and release it at a party [...] try to avoid the urge to compete with all the more complex stuff the top guys are doing

This. Most sceners will react positively to newcomers and welcome them with thumbs up and encouragement to keep ging.

Start small and enjoy growing.
added on the 2014-10-27 11:28:40 by xTr1m xTr1m
+1 for spike & quisten :D
added on the 2014-10-27 11:43:46 by ferris ferris
Watch a lot of demos and try to find ones you could've written yourself. That's what I did.
added on the 2014-10-27 12:08:52 by Gargaj Gargaj
oh also, go US scene!!
added on the 2014-10-27 12:17:28 by ferris ferris
Quote:
I have some experience in C++.x86 assembly, openGL etc. What is a good place to start with making demos?

I can find so little information about how they are made.

That you allready have experience is a good start.
Try imagine how something is made and then code it. Read books and code alot. Also, one idea is to look at earlier demos and try to imitate some demo-effects. If you want to jump straight into 3D then start with something simple like a rotating cube. Then add lights, shading and continue with even more complex objects. One idea is not to start with shaders, but to use the fixed function pipeline in gpu's, just so that you can get condident with the process. If you want to be more oldschool you can find lots of old documents about that, and you only need a framebuffer to draw pixels to. Just ask
added on the 2014-10-27 12:20:48 by rudi rudi
code one effect per day, even if it's shit.
you can always go back and turn it into something more interesting later.
at the end of the month find a track you like and try to glue some of those effects together. it'll look like crap but it'll be your crap and now you have something to show to a graphics designer who might be able to help you turn it into something decent.

just one of the ways to stop procastinating and do a demo about it.

you'll figure out the best method for you as you do more. some folks plan the entire demo ahead of time, others just do an engine and throw it at a talented 3d artist.

just don't try to do something unachievable right off the bat, that's the sure road to get frustrated and give up.
added on the 2014-10-27 12:21:38 by psenough psenough
Have a directory with texts, each of them to be an idea of some effect and how you could make it - method A, method B inner loop version 1, method B inner loop version 2, method C with low memory usage etc. If a new method suddenly comes in mind, open the corresponding file and add it. So, when time comes to use an effect in a demo, just look in your texts and you have a solution.
What rudi (and mostly everyone said). Sometimes I find some friends who are good programmers, know a lot about C/C++ and OpenGL or DirectX or whatever, so they are good candidates. But somehow they wonder how I do some of the stuff, like how I even move my objects in such peculiar ways (and usually it's just some sines and experimentation :), or how do I script and time the transitions and all that. They don't seem to get it at first, because it's quite a different kind of thought than typical programming and some of these things are not into textbooks. You just have to invent by playing, combining uniquely, mimicking and imagining how you would do some effects from other demos. So, maybe the best would be to first start with a standard framework that is obvious, like drawing a single cube and then try to be more creative with it, to make all weird non standard stuff with it without searching for a tutorial or worrying if it's a standard approach in programming. Some of the stuff we do are very playful and not anywhere on the net.
added on the 2014-10-27 13:36:37 by Optimus Optimus
Just *MAKE* something. It really doesn't matter. Find your own way, create your own style, invent your own effects... or copy what everyone else is doing, that's fine too.

There really isn't a hard ground rule for what a demo is apart from maybe something like "a realtime executed audiovisual production"
added on the 2014-10-27 14:16:40 by ___ ___
added on the 2014-10-27 20:53:25 by bull bull
Quote:
this ?

Oh no please don't...
added on the 2014-10-28 00:20:46 by xTr1m xTr1m
Quote:
Oh no please don't...


100% Navis/ASD approved.

But seriously some good stuff here GPU Gems
added on the 2014-10-28 00:34:14 by drift drift
I only made one demo, so I'm probably the last person to contribute to this thread, but I still made couple of good/bad moves that I can share.
So my two cents would be:

Do not aim too high
Keep in mind that there seriously a lot to learn. it start with programming, OpenGL, rendering technics, lighting, tools, what's looking good and what's doesn't, how to sync music and visual, what works on the big screen and many more...
if you're trying to nail all those in your first demo, you're never going to release it.

as a note: the scene is very welcoming to first prods, so you really don't need to push it to get good constructive feedback on your first prod.

Code demos, not tools
Don't start by developing demo tools. if there is one way that will surely stop you from releasing anything is trying to develop a tool. I think you're much better with what psenough said instead of working 6 month on some tool.

Don't start with size coding
Size coding adds difficulty to something that is already difficult - don't go there... just start with a regular demo.

Build up an effect arsenal
Basicly, what psenough said, "one effect per day" I'm just not sure if a "day" time frame is the correct one, you might be better with "one effect per week"

Find someone experienced to help you with your first demo
In my first demo, I found gloom - I can't even express how much of a help and guidance that was. of course you may want to already have several effects in your arsenal.

as I said, my two cents...
Good luck
added on the 2014-10-28 07:48:59 by TLM TLM
Quote:
I only made one demo


TLM, it's about time to change that situation I would say ;) Was nice to meet you at NVScene! How about redshift 2? :)
added on the 2014-10-28 08:35:32 by arm1n arm1n
Quote:
I only made one demo, so I'm probably the last person to contribute to this thread


What TLM said.

Erm wait, that's an unfortunate quote :)
Seriously, yes, you make some excellent points.
added on the 2014-10-28 08:49:29 by Scali Scali

login