ID:153169
Nov 9 2004, 4:03 pm
|
|
A question for all you experts and not-so-experts. What way best worked for you when you were first exposed to the DM language? Details! Details! Im just curious. =-P
|
Nov 9 2004, 4:07 pm
|
|
[link]
|
Well, what I did was, I read the first chapter of the DM Guide, and then, I started to read a whole bunch of libraries and demos, trying to code my own basic, simple games in the process. As I needed to, I would look up entries in the DM ref and sometimes, an entire DM Guide Chapter. Eventually had read the entire guide and far later, I had read the ref. After that, I turned to a combo of BYONDscape, the forums, and sometimes ByondBwicki(But I was careful about that since some info there is wrong). Also, I made sure to look at readmes and in the process managed to learn alot (especially in the case of Dantom's htmllib).
The key thing is, I was careful about what I learned from. I quickly learned only to try to learn from the best, since many had put horrible coding out there on the hub. |
Well, I ordered the Blue Book and read it cover to cover...
During that time, I also went through the tutorials, most notably of which was Zilal's Beginner Tutorial... The file that I was using to work through ZBT is the exact file that became DBTC... In fact, some of the original coding from that still remains deep within DBTC... I didn't really look over any of the libraries or demos until much later... I don't like to learn by reverse engineering... I like to learn by doing things myself... Since then, most of my learning has been through trial and error, along with looking specific things up when I need them... I haven't really used the forums to ask too many code questions... A few here and there, but few and far between... Basically, I'm a loner...lol |
I grabbed some tutorials (not the ZBTs, though. In fact, I never read the ZBTs untill about 2 months ago) and just started reading it and trying to understand it.
After looking through Kunark's RPGtutorial literally hundreds of times, I thought I had enough knowledge to make a dragon warrior game. Boy was I wrong! -.- I was discouraged after failing and quit BYOND for a few months. I came back and made some cheap-o chatroom. From their, I just built up my 'skills'. I didn't read the blue book for a while either, though I did have it before the online version and while we were still on the old layout. |
I read the old guide, read the ZBT, downloaded A Step BYOND and went over it until I understood it. Then I downloaded BYOND Home and fiddled with it. It wasn't until much later that I ordered the Blue Book, more to support Dantom than because I thought I needed another guide. I was delighted to find it very informative, even after all those other learning steps.
|
Like many others, I started with Zilal's Begginers Tutorial. I then built on from that to create a small map, learning to make icons and animations, figuring out what movement states were and using directions. All really basic stuff to me now, but at the time, movement states weren't quite clear.
I then created a small key/lock mechanism and trigger. This required some time to figure out. Basically, I created a small stone gem. I had to have a way of picking it up, so I created a get() verb for it. Then there was a black stone the gem fit into. You had to place the gem in the stone, which did a few things. This required another verb, Use. I had some trouble getting it so you could only use the gem on the stone if you were right next to it, but soon I had it working like I wanted. Then I had to have something happen when the gem was fit into the stone. I used the key/lock mechanism the gem and stone made as a switch to activate a door opening. It took some time to get it all connected and working, but after it was, I had progressed quite a bit in DM programming. I then went on learning how to have two players switch mobs. It was a real challenge, but I eventually figured it out, with some help from the forums. I still refer to the reference almost everytime I work on a project. It's invaluable to me, and I don't think I'd be able to program in DM without it. I tried while on the road to code, and did manage to produce something in Notepad, but without a compiler and the reference to check it all out, it was very very buggy. I asked a lot of question, looked at many many demos and libraries. Read whatever tutorials I could get my hands on, and disected Ensya to the point where I could understand it fully. I never really reverse-engineered other's work to produce my own, but I did use their as an example of a possible solution to problems, and to learn different programming tricks and techniques most people rarely discuss. I guess my best advice to people just starting out is this: Read the beginner tutorials. You have to start somewhere, and these will give a base to work from. Without it, you have no foundation to build your knowledge base on. Then, set tiny goals. Make very simple, small mechanisms, like my gem/stone. Lean how to use variables, procs, and verbs. Know when to use them, and when not to. Read the Reference, and look up procs, verbs and variables that you may not know about. Try to apply them somehow, even if the application has no real purpose but to test out the things you learn. After you're able to read raw code, and understand the basics of what's going on, look to some simple demos and more complex tutorials. See how they work, and more importantly, why they work. If something puzzles you, ask questions here. Then move on to building on what you learned, and create a very simple, yet complete, game or application. Maybe Tic-Tac-Toe, or Pac-Man. Something easy that you can use to test and develop your skills and style. Then, just keep at it. But don't rush. It takes time for your mind to fully grasp the implications of what you learn. It may be months before it all "clicks" for you, or you may get it quickly. Either way, don't try to tackle the heavy problems before you're ready. You'll know when it's time to move ahead. The worst thing you can do is start off by ripping other people's work. I'm not saying it because it's immoral, illegal, or wrong, but because that approach will take you longer. You may think you're learning a great deal in a short amount of time, as all the "answers" are laid out before you. But the sad fact is, those aren't the only correct answers to a problem. Not to mention, that answer may not even be correct. Ripping to learn will only teach you how to rip, not how to program. Programming involves problem solving, and knowing your tools, techniques and the best way to apply them in the almost infinite situations you might face. No two answers are going to be the same. And some answers to a problem are clearly more appropriate than others. If you learn by ripping, you're only going to learn how to answer problems the way someone else did. it won't give you the tools to solve any problem you come across. Learning to program for yourself will. You will be able to answer problems you've never faced before, because you understand the basic rules, your tools, and how to apply them. Ripping, that's just going to brake you. You'll have to forget most of what you think you learned, and start almost from scratch if you ever really want to get good. ~X |
In response to Xooxer
|
|
Also, when most people rip, they rip from DBZeta code and that stuff is just horrible. It must be the most disorganized, inefficenet, and bugged piece of coding I've ever seen.
Ripping is wrong, but ripping from DBZeta is just plain stupid. |
I started with Zilal's tutorial, and by asking a few questions on the forums. I only ever had a few code problems that I couldn't finally get on my own...
To beef up my skill, I took someone's (I think it was either Nadrew or Lummox) advice and learned about lists. Learning about lists and how to operate them is what jumped my skill from "average" to "very good". I then always had trouble with savefiles, and so I ended up buying the Blue Book, which after looking through it and using Deadron's character handeling as an example, was able to learn what I needed to learn about savefiles. About that time, in a lot of the processing I have already become very good at it, but there is always room for improvement. Stuff like words and sentences as HUD, random generation, pathfinding, and pixel movement and physics, still baffle me. I did manage to become one of the first people to figure out the secret to making a 3D maze, here on BYOND, even though it ended up being one of the most crude examples. |
I'm a "not-so expert" I think... just don't do what I did. I read somewhere on byond not to start out by making a huge game. I went completely against that, and 2 years later, I'm still working on that game. Though I released a crappy incomplete arcade game which I spent only 2 days on. Brickbuster. So, do as these guys did, don't do what I did and screw around forever. I've probably read every demo and tutorial on this site. I still put off looking up how savefiles work (in major detail, anyway), if and when you can understand it (and I'll take my own advice when I'm not too busy to) go through deadrons character handling demo and figure out how savefiles work. I think there was a bug in it, but last I heard someone on this site released a fix for it.
Against what most people say, it's okay to copy people code if you aren't going to use it commercially. Just take that code snippet and work off of it, even if you don't understand it entirely just try to stem out from it, building additions may require you to go back and rework some of that code, this means you will probably gain a better understanding of how that code snippet works. I started out with RPG TUTORIAL 2, so I was pretty lucky, I don't remember who released it but I think they took it down, which is ashame. Another thing, if your not in programming just because it's programming, don't worry about being professional. And, if you want to release a game to just a group of your friends to play around on, it's alright to use zeta code or whatever, but just understand that you're not going to learn anything in the process. *Edit, o yeah, and very importantly, ask questions in the Newbie section. People can be pricks sometimes but if you stick with it you'll get the answers you need. Sometimes you just have to be creative with how you word the question, think of it like advertising, you're just trying to get someone to help you, if you make it look like everyone elses question, they're gonna be bored to tears. And, make your writing as comprehensible as possible, it's sheer annoying to try and desipher what someone wrote. Spelling doesn't matter terribly, just write it like you would an essay, or a letter to someone you don't know. |
In response to Rockinawsome
|
|
Rockinawsome wrote:
Against what most people say, it's okay to copy people code if you aren't going to use it commercially. I totally disagree. If you're using a rip to build on, you're just going to end up with a mess, especially if you're just starting out in DM. Ripping games is never the way to go, besides it being illegal, it's the one sure way to fail. Just take that code snippet and work off of it, even if you don't understand it entirely just try to stem out from it, building additions may require you to go back and rework some of that code, this means you will probably gain a better understanding of how that code snippet works. Again, this is just not true. The only thing you'll gain from this approach is a very limit and narrow understanding of the programming used exclusively in that game, if you learn anything at all. You won't even be able to add on to it, not without learning the proper way how to program. Not many will help you, and you'll earn the disrespect of many people who would help you, if you didn't rip. Don't take this advice. Another thing, if your not in programming just because it's programming, don't worry about being professional. Promoting sloppy code is never good advice. Even if it's just your friends playing, sloppy code will produce bugs which will be hard to find, and harder to fix. Even friends get annoyed with buggy games, and they're the ones who are closest to you, don't you owe them a well written game? And, if you want to release a game to just a group of your friends to play around on, it's alright to use zeta code or whatever, but just understand that you're not going to learn anything in the process. This is also false. The Zeta source code is not public domain. It is the property of Zeta Team, and should never be used without permission. Using it as the base for your game is just inviting trouble. If they wanted to be real pricks, they can take you to court and sue you for copyright infringment. It is against the law to use the Zeta source, and using it could cost you or your family time, money and headaches. I'd love to see the Zeta Team press the issue. I would pay money to see the looks on the parents faces when they find they're being sued because their kid broke the law. Don't follow this advice. *Edit, o yeah, and very importantly, ask questions in the Newbie section. People can be pricks sometimes but if you stick with it you'll get the answers you need. Sometimes you just have to be creative with how you word the question, think of it like advertising, you're just trying to get someone to help you, if you make it look like everyone elses question, they're gonna be bored to tears. This is good advice. ~X |
In response to Xooxer
|
|
I thought someone released the Zeta Source code legally, it comes up on a search from this site, or at least it did. I'm not saying to use Zeta, it drives me nuts to see all the zeta rips under the unpublished section of the live link, but I figure if you're just after a game to keep between you and your friends and the code you're using is legal, it really doesn't matter. You can change all you want and you're not doing anything illegal. It's just when you go public that there is a conflict.
If zeta is illegal then definitly ignore my previous advice. But it still applies to any legally public code. Another note. I am always baffled by people who release code and then expect others not to use it. No, I don't believe stealing is right. But if you release code and just leave it out there and then tell people not to use it you're being pretty stupid. And, if you're going to release an rpg tutorial, shouldn't you just release it under the guidelines that anyone can use it, just call it an engine or whatever. I think byond could use a few good rpg engines to get a few more people interested. *Edit, o and from working off the code. What I was saying was during the learning process just work off of the code if you don't understand it. I did and that's how I got to understand a few things that the guide and otherwise wouldn't have. Before byond I was new to programming/coding. You can, and should make your own from scratch, but here's where the oldbies get it wrong, ussually. Newbies can't be expected to. If they make some of their own from scratch then that's great, it doesn't have to be entirely original. |
In response to Rockinawsome
|
|
I started out with RPG TUTORIAL 2, so I was pretty lucky, I don't remember who released it but I think they took it down, which is ashame. I released it. I then got harrassed by jackasses 2 years later (Notice that it wasn't when I asked for bug reports, it was two years after everyone got snobby thinking all newbie's problems were the fault of my tutorial, and two years after I had forgotten what was in the tutorial and didn't want to look at them again.), who pushed me over the edge to just delete the damn thing. I would have fixed it all up for them, because someone helped me realize just how important it was that now that I know of any minor effeciency problems in the code, I should fix them so the newbies have the best. However, I got harrassed an ass=load more after that, whithin a week's period of time, and decided this community no longer deserves me helping beginners and giving them the idea of the framework to do what they want to do. Once agian, the friendliest community out there. |
In response to Rockinawsome
|
|
Rockinawsome wrote:
You can, and should make your own from scratch, but here's where the oldbies get it wrong, ussually. Newbies can't be expected to. If they can't be expected to try things out for themselves, experiment and test their own ideas, we can't be expected to do it for them. People seem to think that because I and other oldbies seem to know what we're doing, we are obligated to help you. That's not true. No one is expected to help anyone at all for any reason. The fact that we do is mainly because we want to, or because we want to pass on the help we recieved when we first came here. Using a rip, or even a public code base, and expecting us to explain and fix for you the bugs you created because you have no clue what you're doing, and can't be bothered to learn for your own sake, is wrong. Telling newbies to start from a pre-existing code base is not going to help them at all. In fact, it's going to hurt them in the end, because they'll have to unlearn what they think they know, which can often be harder than learning the right way from the start. I don't care if your code is so simple, it's only two lines and basically "var/X = 1+1", as long as you're trying to help yourself, I will try to help you. If you come at me with a 1,000 line code snippet, and can't even explain to me what a proc is, I won't even bother, because, obviously, neither have you. That's the outlook a lot of people have, and it's a good one. There is no magic code to solve your problems, only that which you write yourself. ~X |
In response to Rockinawsome
|
|
Oh im not a newbie on byond if that's what you're thinking, but I do know I am what you would call a novice programmer compared to these great programmers that can basically make anything that pops into their head.
Ya, been here sense... I think... May 2002? Ya. |
In response to Rockinawsome
|
|
You can, and should make your own from scratch, but here's where the oldbies get it wrong, ussually. Newbies can't be expected to. So is the moral: don't start. Don't try. You can't, so don't bother. 'cause that's what it seems like you're saying. You're the one who's got it dead wrong here... you're telling people who don't know how to drive that they should just hitchhike everywhere instead of putting in the time to learn. What, do you think some people are lucky enough to be born oldbies who know how to code and everybody else is stuck being a newbie? Or that if you sit around ripping long enough, at some point you magically metamorphose into an oldbie? Ripping teaches you how to rip. Modifying rips teaches yuo how to mod and tweak. CODING teaches you to code. If we're using "able to produce a game from scrach" as the benchmark for "oldbie" vs. "newbie", the people who follow your advice will remain newbies a long, long time. |
In response to Xooxer
|
|
I'm not saying not to figure out how to code from scratch, but that it's okay to start with someone elses code and work from that, and perhaps go backwards. There is more than one way to learn how to code, just find the way that works best for you.
I wish people would give the same advice in school or at work as well...we don't all learn the same, let people be themselves and learn the way they want to. In the end it's beneficial for both parties. If you're the kind of person who has to do everything for themselves from the little tiniest piece of the puzzle and work up, good for you, it will probably be a long and frustrating quest which will probably end up with you loosing all interest what-so-ever, but, there is the possibility that you are one of those people who work that way...and maybe you have some really good help to explain everythng. However, should you be someone who doesn't have any one-on-one help from another coder, or are just another type of individual, than by all means follow my advice and take code and modify from that until you can figure out how it all works, then go back and make your own. It's just alot more rewarding to see something that works, than to be stuck with "Hello World!" until a month passes and you finnally figure out what another line of code actually does. Programmers are naturally bad at explaining things, they're logical creatures for the most part who aren't apt at linguistical skills. It's just not part of them, ussually. There are some exceptions though, there are some of us who program merely because it is another outlet for our creativity. And writing is our fortay. To use an analogy it would be like expecting a chef to know how to farm. It seems close, but there is a distinctive gap in the 2 trades. So...what have we learned here? We've learned that people are different, that there is no one set way to learn, and that if you want to be tedious than by all means, do so. |
In response to Rockinawsome
|
|
Rockinawsome wrote:
So...what have we learned here? We've learned that people are different, that there is no one set way to learn, and that if you want to be tedious than by all means, do so. No! You're a bad man! Stop saying it's okay to take other people's code and "work" off it, because it's not okay! Being "proper" and "thorough" isn't tedius, and remember, it's the same as cheating in a school test: The only person you are cheating is yourself. You've been cheating yourself, Rockinawsome! Wake up from the prison of your mind! Welcome to the real world! (and so on) |
In response to Kunark
|
|
People suck, that tutorial was the best one on byond, it was more comprehensive than any of the other ones out there and at least gave you an idea of how to go about making a good game through byond.
I still have some of your code from that tutorial, but I think it's been modified or something since I last used it. See, I modified, then went back, then built my own....ughh, but anyways... Alot of people need to see how things are done first before they can do them. And some of us even find it necessary to play with what we see until we understand it. I hope you don't feel completely negative torwards every newbie. There are jackass snobs on this site, trust me, I know, but there are still those of us who genuinly want to learn. |
In response to Kholint
|
|
You're daft. You're missing the point entirly. People learn differently. I'm saying if you want to learn the tedious way than do so. But alot of us don't want to waste the time (at least at first) to...screw it, if you don't understand what I've said in 2 posts, you never will.
|