ID:1490534
 
(See the best response by Lugia319.)
I recently began trying to learn DM, to not much avail. Now in your(the readers)opinion what is the most solid way to learn it?

I have tried looking at frameworks but that really doesn't do anything for me.
As a person currently learning the DM language, there is no one way to learn, it's all down to you. Are you the type of person who likes to read from a book? If so then we have the DM Guide.

Maybe you're the type of person who likes to learn by examples? Try Your First World by Dantom, which comes with a tutorial/readme type guide. Follow it step by step, and then maybe play with it.

There's also A Step BYOND by Deadron, which is a kind of follow up.

There's a whole load of resources on BYOND to look at. Try the BYOND Resource Repository, it has a lot of links to help you learn. I definitely recommend you check out Zilal's tutorials, they're great for starting out.
Best response
The best way to learn is by making stuff and making mistakes. Press F1 in DM to look up stuff and that's really all you need imo.
In response to Rickoshay
Rickoshay wrote:
As a person currently learning the DM language, there is no one way to learn, it's all down to you. Are you the type of person who likes to read from a book? If so then we have the DM Guide.

Would you say its a good idea to actually do everything from the DM guide as it comes up in Dream Maker? Or just read it through?
In response to Plemith
Plemith wrote:

Would you say its a good idea to actually do everything from the DM guide as it comes up in Dream Maker? Or just read it through?

The reference would help as it comes up, just press F1 in Dream Maker. Try Lugia and Falcons way if you feel that's more viable to you.

Anything you don't understand check in the reference. Still don't understand? Look for topic related to your problem in the DM guide. Still don't? search on the forum.

Then if you still don't understand ask on the forums, just don't ask for someone to write code for you. I find that people are more willing to help, if you give it a go first and show an example of what you are trying.
In response to Rickoshay
Rickoshay wrote:
Anything you don't understand check in the reference. Still don't understand? Look for topic related to your problem in the DM guide. Still don't? search on the forum.

You wouldn't understand much just by reading about it. As soon as you don't understand something, test it out! Act like you are debugging something, and try to find out how it works, and why you don't understand something. When you don't understand something, that's a good thing, because then you know that you have something new to learn.

When you are reading through the DM guide or the reference, don't just read it. TEST IT! Pretend that you don't believe anything the guide or the reference says, and try to disprove everything, by actually writing out verbs and procs, and running them. This is probably the best way to learn with the currently available resources.

Also, as far as tutorials go, I have to recommend Forum_account's Game Development Tutorial. This should prove to be helpful. It may be a bit more advanced than the ones you are used to, but that's a good thing. We need more advanced tutorials. If you don't understand something, then stop and try to understand why you don't understand it! You may want to go through this tutorial more than once, as you get better at programming. Programming is a lot like poetry. You can look over the same material again, and later find that it has a whole new meaning.

I really haven't seen anything else like this anywhere on BYOND. This is probably the best tutorial you will find covering DM game development. It should set the standard for any future tutorials.
Didn't know about that tutorial myself Multi, Thanks.
Falcon lazorz wrote:
This is something I've stolen from his libraries countless times and never been able to solidly reproduce on my own. I think it's just my lack of intelligence but this confuses me so much for some reason.

You don't lack intelligence. Chances are, you don't think in exactly the same way Forum_account does, therefore you would approach this same problem in a different way. Everyone has their own style, although some are worse than others.

Rickoshay wrote:
Didn't know about that tutorial myself Multi, Thanks.

Don't thank me. Thank Forum_account!

Anyway, there does seem to be a lack of actual code comments in this snippet, which leaves it kind of obfuscated. Fortunately, there is a proc for that! I wonder why Forum_account chose not to use it. Did it not exist at the time of writing?

Forum_account wrote:
turf
New()
..()

if(density)
var
n = 0
turf/t

t = locate(x, y + 1, z)
if(t && t.density) n += 1
t = locate(x + 1, y, z)
if(t && t.density) n += 2
t = locate(x, y - 1, z)
if(t && t.density) n += 4
t = locate(x - 1, y, z)
if(t && t.density) n += 8

if(v < 15)
overlays += icon('outline.dmi', "[n]")


We can simplify that, just by making use of the get_step() proc:
turf
New()
..()

if(density)
var
n = 0
turf/t

t = get_step(src, NORTH)
if(t && t.density) n += 1
t = get_step(src, EAST)
if(t && t.density) n += 2
t = get_step(src, SOUTH)
if(t && t.density) n += 4
t = get_step(src, WEST)
if(t && t.density) n += 8

if(v < 15)
overlays += icon('outline.dmi', "[n]")


I bet that looks better!

What makes this complicated though is probably the fact that it involves numbered icon_states, but there's probably a much easier way of managing those states, than what is presented here.
Yeah, the numbered icon states are the hardest part. It just takes some time to figure out what you need.

1 - Outline only on the NORTH side.
2 - Outline only on the EAST side.
4 - Outline only on the SOUTH side.
8 - Outline only on the WEST side.

Now using that logic, it is simple math.
3 - NORTH+EAST outline.
5 - NORTH+SOUTH outline.
9 - NORTH+WEST outline.
6 - EAST+SOUTH outline.
10 - EAST+WEST outline.
12 - SOUTH+WEST outline.

I think that's it.

As far as an "easier" way, bitflags are probably as easy as it comes, unless you are referring to "easy" relative to someone's level of knowledge.