pouët.net

getting started demo programming.

category: general [glöplog]
maybe i should have said graphics programming in general. maybe it's just me and thinking i'm going to do it wrong if i attempt to do it. i've seen alot of people with great first attempts on here and not really looking for the criticism i'm going to recieve. so, is there an order in which i should learn things to become a demo programmer? there are alot of apis and sometimes i wonder i'm going to use the wrong one and someone will say it's slow, or it's not portable or some other shit like that or i did it wrong. since i've never been in college for any programming or had a programming class in my life. i was just wondering is there a certain order i could learn this stuff in to understand. i've wanted to make raycasters, and 3d engines and all sorts of shit. but, it's itimidating. because, even if i have a way to do it. i think to myself i am doing it wrong. i wonder what it's like to be a professional game programmer and i think maybe they have to follow standards and all that shit. then i think. i don't know any of these standards. what is the point of me trying and the only point i can think of is that i want to. i want to make demos. i want to make games. i want to make anything i can. i'm not brave as hell so there are some things i'd refrain from making. but, demo programming never hurt anyone except maybe hurt their feelings. so, i figure if i am to make a first attempt i want to make it a good first attempt. so, i'm asking for information on how to make the best first attempt i can. i can get a person to make music and graphics. i've got friends who like to do that sort of thing. so, i'm more interested in the programming, apis to use, anything that has to do with drawing on the screen and why it is best to use that one. i've wanted to use directx and shit. but, i don't get it. i have a 2000 page graphics api book it has all this calculus shit in it and i don't understand it and i have a ton of ebooks on graphics and games programming. but, i'm not sure where to start. there is to much information. if someone tells me to do something one way and someone else tells me to do it another way. then what do i do? do it both ways? it's confusing. also, there is all these kinds of mapping and i have to look all over the internet to read about them. there's qbasic code, assembly, c, c++ and i feel like everything is taking me off my ideas and making me want to program in a certain language to make something then they want me to use some api that isn't portable anyway. idk. i'm surprised some of you aren't nuts. except i guess some of you are by looking at the random image thread. but, not all. but, how did you start and how did you improve your skills? because, i know people aren't just born with skills they learn them or teach them to themselves. so, there has to be a way i can improve mine.
added on the 2009-01-26 03:36:06 by hexen hexen
needs more paragraphs
added on the 2009-01-26 03:42:34 by Baz Baz
maybe i should have said graphics programming in general. maybe it's just me and thinking i'm going to do it wrong if i attempt to do it.

i've seen alot of people with great first attempts on here and not really looking for the criticism i'm going to recieve. so, is there an order in which i should learn things to become a demo programmer? there are alot of apis and sometimes i wonder i'm going to use the wrong one and someone will say it's slow, or it's not portable or some other shit like that or i did it wrong. since i've never been in college for any programming or had a programming class in my life. i was just wondering is there a certain order i could learn this stuff in to understand.

i've wanted to make raycasters, and 3d engines and all sorts of shit. but, it's itimidating. because, even if i have a way to do it. i think to myself i am doing it wrong. i wonder what it's like to be a professional game programmer and i think maybe they have to follow standards and all that shit. then i think. i don't know any of these standards. what is the point of me trying and the only point i can think of is that i want to. i want to make demos. i want to make games. i want to make anything i can. i'm not brave as hell so there are some things i'd refrain from making. but, demo programming never hurt anyone except maybe hurt their feelings. so, i figure if i am to make a first attempt i want to make it a good first attempt. so, i'm asking for information on how to make the best first attempt i can. i can get a person to make music and graphics. i've got friends who like to do that sort of thing. so, i'm more interested in the programming, apis to use, anything that has to do with drawing on the screen and why it is best to use that one.

i've wanted to use directx and shit. but, i don't get it. i have a 2000 page graphics api book it has all this calculus shit in it and i don't understand it and i have a ton of ebooks on graphics and games programming. but, i'm not sure where to start. there is to much information. if someone tells me to do something one way and someone else tells me to do it another way. then what do i do? do it both ways? it's confusing. also, there is all these kinds of mapping and i have to look all over the internet to read about them.

there is qbasic code, assembly, c, c++ and i feel like everything is taking me off my ideas and making me want to program in a certain language to make something then they want me to use some api that isn't portable anyway. idk. i'm surprised some of you aren't nuts. except i guess some of you are by looking at the random image thread. but, not all. but, how did you start and how did you improve your skills? because, i know people aren't just born with skills they learn them or teach them to themselves. so, there has to be a way i can improve mine.
added on the 2009-01-26 03:48:36 by hexen hexen
Quote:
will say it's slow, or it's not portable


If you're getting started, focus on one platform and don't bother with the portability, you will have enough problems to solve on one platform.
Trying to deal with many platforms will only multiply your problems and won't be good for your motivation.

Besides that, an easy start with a cool learning curve could be C (or C++) using OpenGL. Nehe has tons of simple examples on the platform of your choice, with commented code and explanations : http://nehe.gamedev.net/ (OpenGL tutorials).

Get a simple example, play with it and read carefully the comments. Check another one and slowly start changing the code to include your own things. It should help you get really started the easy way.


Also, something that could prove helpful for you and your readers : http://www.merriam-webster.com/dictionary/paragraph ;)

I honestly did not manage to read your post till the end because of that ;)
added on the 2009-01-26 03:50:31 by keops keops
Damn, Baz was fast and so were you :D
added on the 2009-01-26 03:52:46 by keops keops
hexen just added some paragraphs here and there anyway, haha :)

go with keops...
if you want to have a start http://nehe.gamedev.net is the best available...
...some people may tell you that directX is easier ( it is, but just some bits ) but i made that fault already....i wish i would have invested my time into the multiplatform-API also known as OpenGL...
with NeHe you´ll have a good start ( being able to do demos already! )
...next step would be shader-programming...but one step after another...first go through NeHe carefully !

just think like that: if you do a first_demo that is not_top_notch its normal ofcoz, but everyone has to start somewhere ! ( so dont try to be the best in your first attempt, just release sth here and then, so we can help you to improve further ! )

its always nice to see ppl working themselves up to the throne ( even if they´ll never completely reach it, as others "been there, done that" are way longer into it already ! ) ...but who knows ;)

P.S.: with OpenGL you´ll be able to code on other platforms aswell afterwards ! ( including Linux and Wii f.e. )
oh, i'm sure my paragraphs aren't correctly written. but, he said that so i figured i'd better try to figure it out.

anyway, i've thought about this opengl thing, i've also thought about this software engine thing. it's confusing. because, i figure i'm going to learn one then i'll have to learn another just to make the same things on the screen. i see it as just a screen that's it. i don't see why there are so many different apis. like why didn't microsoft make directx like opengl or why aren't they both like the gdi api. it seems to me like they are slowing down humanity. but, i say that because i don't know how to do it.

i've looked at some of the nehi tutorials. but i don't remember what i read now. but, i'll reread them. i've tried learning assembly, c, i know basic, i tried learning xblite. because, it seemed like i can do alot of stuff with it and it isn't an interpreted language.

there is alot to learn and none of it is in one spot and i've been looking all sorts of different types of texture mapping up on wikipedia and i remember seeing those multicolored textures and shit that doom 3 uses and i think to myself i don't even know how to load a bitmap let alone manipulate it. well i can load it to set it as a background from a resource file and set it as a background. but, that's far from manipulating it.

what if i wanted custom file formats. like for my images and sounds. how would i display or load those?

there are all these tracker formats to and what if i had a custom tracked file i wanted to load. how would i go about that?

even if i went to college for programming. i don't think they would teach me this stuff. here in idaho they have a c programming class at the college. but, i think they would just teach me how to program in c and that would be it. it's not a graphics programming class and i can't even afford to go to that c programming class.

so, i wonder do i just sit here and feel sorry for myself because i can't do something or should i just try to implement every idea i can come up with and hope one works?

and if i ever got good enough to make a demo or a game. then whould i be doing it right? if there really are standards to follow and i'm doing it wrong. then i'll never get a job doing that. i probably won't anyway. i kinda give up. because, i don't know if i can handle the stress. but, i don't want to do it completely wrong and have to go and learn a new way to redo it either.

i know it's kind of like conformity. which is shunned apon here. but, even when i feel i have a good idea. i'm stuck doing it myself. so, it must not be a good idea or i'd have people around me implementing these things with me. i have friends who are programmers. but, they want to make business apps and things like that. because, they want money. i want money to. but, i think people can make alot cooler things than business apps and if a person can make a demo they can make a kick ass business app anyway.

anyway, i figure i have to do this myself. even though binary bros. did offer to help me make demos. but, i don't want to disappoint them. by knowing nothing about demo programming. i do have alot of information of it. but, if i had to start doing it write now. i probably would be able to come up with some squares,circles and lines on the screen and i don't think anyone would want a person in their demogroup who could only do that.

well, i've learned some c. but, i did try reading alot of c source and i'm looking at it and i see the 90 files associated with what should be a small program and it makes me want to freak out. because, i don't understand it. i've seen less files associated with an masm program. in fact i can actually make a program in masm. i can only make a console program in c. except i have made some gui examples in c. but, i don't remember how.

i tried looking at the quake 2 source and i posted on here that i couldn't find main. because, visual c++ 6 couldn't find it and everyone thought it was a stupid question to ask. i've seen source with main at the top and main at the bottom and i wonder if it's supposed to be in a certain order or i can just place it anywhere in the code or if it's at the end do all those functions have to be made to be associated with main before it.

maybe, most of this is because i don't have anyone to talk to about this stuff. i have a friend who programs in c. but, he'll only answers questions like what do this function do. it's helpful. but, it doesn't help me sort it all out.

maybe i just need to calm down and find something simple to make and go from there. but, i do know it's nothing to get stressed out about. it's not like demo programming is threatening my life or anything. i'm just thinking. life should be easy. not hard. so, i think thinks are alot easier than i am making them out to be. except i can't seem to get out of that way of thinking. because, if i ask questions i figured i have to ask them to myself and obviously i can't answer a question to myself that i don't know.

i had a guy trying to get me to program a c program with him for a ti83 calculator with him once. it was a basketball game. i didn't really understand it. but, he was trying to make an interface for the game and i pulled up visual basic and made this interface for him using an image of the ti83 interface and added all my own graphics to it to make an interactive menu for it and he was asking me how i did it and i figured he'd already know how since he knew c and i didn't even understand it.

so, i've went and read the last 2 posts and maybe opengl is the way to go. but, what about software engines. like raycasting. it's supposed to be easy. but, do i just use setpixel for that? or is there a better way? how do i load 3d models? how do apply textures to these models? what if they are in a custom format?

and if i was using opengl for all of this. how would i do some of this? maybe i'm asking. because, i never even got how to load a level. like i've looked at simple raycaster code. i'm not saying i'm trying to make a raycaster. even though i'd like to because i think it would be easier. but, they have something like

11111111111111
10000000000001
10000000000001
10000000000001
10000000000001
10000000000001
10000000000001
10000000000001
11111111111111


how do i draw that? do i just load the top row and figure out where to draw it
then load the second row? and when i'm in this room how do i know where i am at in this room and do i update this room in memory or what? i can store coordinants for where i am. but, i the room is only so big. how can i be in like 3.5,3.5 in the room? why is there such a thing as multiple bits per pixel. when a pixel is one thing? do they associate these pixels with multiple functions or something? which ends up determining the color of the pixel? i've got alot of questions to ask and i'm not sure if i'll get anywhere if i do it wrong. but, it works right. because, i've made things that have worked right and came back and found out i did them wrong before. no crashes or anything. worked good. but added more things than i need to add and when i took that stuff out it worked better.

can you recommend any books and in what order would you say i should read this list of books? does one of them tell me something i should learn before i should learn another thing?

well, that's what i got for now. i better stop before i take up a whole page.
added on the 2009-01-26 04:39:23 by hexen hexen
and sorry about the bits per pixel thing. i'm not trying to explain the color of the pixels. i'm trying to explain where people talk about using more bits to represent different things to determine what color the pixel will be and why they do it. i'm just confused.
added on the 2009-01-26 05:04:20 by hexen hexen
i won´t dare to read this all !
you wanna make nonsense of us "helping people" ???
if so you´re just some...[insert random hexen/word_for_hexen] here !
you don't have to help me. shit, i'm not forcing you to. i'm asking questions. feel free to tell me to fuck off. if you don't want to read it all then don't and let this thread disappear with all the rest of the ones noone has any interest in and you might think it's nonsense. but, if my head is thinking this shit. then i can't just dismiss it as nonsense. because, if i'm wrong about something. then i better find out the right way to do it or i could just pretend i know i'm doing what i'm doing. so, when i do it and do it wrong. someone can come back and talk shit about me. maybe i should goto a visual basic forum and ask them about demo programming. that would be a good idea. not.. ! noone said you had to like me and if you don't then fuck you! or continue to make more posts stating that i am talking nonsense. k thx bye.
added on the 2009-01-26 05:37:07 by hexen hexen
i'm still waiting for the delete thread and delete post buttons. so, when someone decides to get pissed off at me i can delete it and forget about it the next day. but, since i can't do that. i guess i have no choice but to get over it. so, that is what i think i'll do.
added on the 2009-01-26 05:42:57 by hexen hexen
i'll motivate myself then. ;x thanks c0c00n and keops even though you hate me. sorry, i didn't realize you were one of the poeple who helped me c0c00n. i just thought were someone who hated me. i'll just do what you said. so, just forget about this thread.
added on the 2009-01-26 05:50:05 by hexen hexen
Might be good idea to stop reading and start doing.

For demo all you need is:
1. Get compiler working
2. Get music playing
3. Start writing some crap

For raycasting there is millions of very basic tutorials as it's really old stuff.. (http://letmegooglethatforyou.com/?q=raycasting)

After you have some idea how to solve the common issues switch back to reading only mode.
added on the 2009-01-26 08:04:58 by rale rale
thanks for the help rale. i can already do the first 2 things. i've read up on the raycasting thing. i'm just maybe afraid to implement it. because, i think i'll do it wrong. so maybe i'll just try some of the ideas in my head and hopefully i do it right. i just don't have anyone around me to bounce programming ideas off of. so, it's only right if i think it's right. which doesn't necasserally make it right. anyway. thanks for the help and i'm waiting for this thread to die like the rest of them. because, people seem to want to always fight with me everytime i write something on here. now i guess all i have to do is get to the start writing some crap part and i'll be good. i did mess with opengl in xblite. so, we'll see how that goes if i mess with it some more. anyway thanks and have a good night rale.
added on the 2009-01-26 08:11:11 by hexen hexen
lol is this a request of help or story O_o;
added on the 2009-01-26 08:34:44 by panic panic
it's a novel i wrote? do you like it? i'll think about writing a sequel in a few months if this one is good. lx
added on the 2009-01-26 08:36:30 by hexen hexen
Hexen, STOP worrying that you are going to do it wrong. You need to start having a go at it! Go through NEHE and start working your way up from there. join forums. get sample sources and start building a small library of code.

In the demo scene there is no right or wrong way to do it. You can do it the way you want to. Then there will be others who will do it more efficiently byte wise, and faster. That's the challange ofthe demo scene.
added on the 2009-01-26 08:45:47 by mop mop
Oh noes, someone just beat Optimus in length. Shit :)

Hexen: there is no such thing as implementing it wrong. If it does not work it's still an experience, which helps you making it better. And you'll learn a lot more from failures than from getting it right with a dozen of tutorials, and copy-paste coding.


added on the 2009-01-26 09:31:13 by FooLman FooLman
And learn to use your Shift key, please. Most programming languages are case-sensitive anyway. kthxbye
added on the 2009-01-26 09:43:36 by raer raer

About more software based effects, this book is a must read, most common algorithms and techniques are explained:

BB Image

added on the 2009-01-26 09:53:23 by krabob krabob

May I add, this book can be understood by someone with an average (or even poor) math level, but nevertheless explains some interesting aspects usually forgotten by up-to-date coders. i've wanted to use directx and shit. but, i don't get it.

Quote:
i have a 2000 page graphics api book it has all this calculus shit in it and i don't understand it and i have a ton of ebooks on graphics and games programming.


What you need is a teacher, or even better, some coder friends of the same level that will learn with you, so you can help each others. Nowadays, we're surrounded with docs and API... think about the demo coders before 1995 on amiga or else: you could only hope for hardware docs and it was a shit hell to find.

I've seen really interesting code threads these times on this forum, for all levels, I really look forward to see more.
added on the 2009-01-26 10:10:13 by krabob krabob
And of course, the sentence "i've wanted to use directx and shit. but, i don't get it." should have belong to the quote part in the previous post.
added on the 2009-01-26 10:18:49 by krabob krabob
@Hexen:

You just need to keep the ball rolling. Start with something simple and don't panic.

I am trying to remember how I started. Also many times I wonder about other people I know who would like to start but they can't focus. Or,. there is a barrier, many people have written a hello world programm or some simple stuff in university and always wonder how I coded demos. And for some reason they can't break that barrier that leads from coding simple lines of code to something more impressive. Somehow I can't understand why these people can't make the leap, I can't understand what is the thing that stops them here, because I never remember myself being in the same situation. Maybe it came naturally to me..

..but maybe I had dedication. The first time I knew little but I really really had the obsession to be a democoder, at the first challenges, at the first difficulties I insisted. Many of the people I know who couldn't break the barrier I said, I think they had sort attention span or something. Not sure. At that time I had focus maybe because of my dedication to it, maybe because it came naturally. I don't know. So if someone with sort attention span has to read some stuff or has to be focused on some plan in order to start, it's maybe too hard. I'd like to help these people to learn programming, I know many friends who want it for years, not to just write the simple programms fro university (which print hello world or at best do a bubble sort and print results in text) but overcome that barrier and take the leap to write something more interesting and impressive.

And some of the effects are really more simple than you may think. I would like to explain them how some things are done to see it's nothing far fetched. For software rendering I would suggest you use SDL, I could maybe help you connect the libraries and open a frame buffer and I could teach you to code a plasma or something, too few lines of code. Raycaster has an easy explanation of how it works but there are many pitfalls and bugs, it's a pain till you make it work right, it's a bit more advanced for start. Don't look at big programms and drewl. I used to do that one too! But my biggest demos are not even reaching 100kbs of source code.

Would you mind to send me an email at optimus6128 at yahoo no spam gr? Maybe I'll try to help you how to setup SDL for software rendering and then you have a framebuffer and I will explain you how to do basic effects in it. Maybe we could talk about raycaster if you later want to do it and I could help you where you have problems. But I believe when you understand few bits and see how easy it is to do your first 2d effects the process of understanding will be accelerated, you will gain motivation and willpower by feeling you can easilly code such things and maybe you want need to write such paniced posts on pouet anymore :)

Send me an email please, I'd like to help!
added on the 2009-01-26 10:18:53 by Optimus Optimus
If I'd been getting help from someone other than parapete for the last few years, I'd be able to code like a motherfucker by now.

Lesson 1: "Okay, so what type is returned when you call knobber(penis);??? YOU FUCKING IDIOT. I can't be bothered with this. Go and learn ASM or something."

Keeps my motivation low, but at least it gives parapete ample time to code hundreds of cool demos!
added on the 2009-01-26 10:32:27 by syphus syphus
please remember, blood and blood alone will turn the wheels of history
added on the 2009-01-26 10:33:52 by superplek superplek

login