ID:152970
 
I was wondering what type of game I should make that would use everything from beginner to intermediate.I'm haveing a tough time with the dm guide,so I want a game that would mostly focus on chapters 6-10.
Broly103 wrote:
I was wondering what type of game I should make

Make whatever you want, but don't make it too big! Start small! In other words, if you try and make your dream RPG which includes 12 races, 52 classes, and 3 worlds, well, you'll just end up extremely frustrated.

Why don't you make a board game? A card game? BYOND could always use more of those!

You could make an arcade game too! Those are always fun!

A platformer might be too difficult for you at this stage: you'd have to override BYOND's default movement system, which requires a good understanding of how it works.

that would use everything from beginner to intermediate.

The words, "beginner" and "intermediate", are extremely relative terms. Many here would hold far higher standards for "intermediate" than you, while some would hold lower standards for beginner.
In response to Wizkidd0123
okay, I was reading the dm guide again I can't get past chapters 6-10. I tried makeing demos and re-reading again and again.Heck I even tried looking for the proc in the reference and still I do not get what he stalking about.All I see is a bunch of code on the page that I do not get, is there anyway to make learning the byond language easier.
In response to Broly103
Everytime you do something that you might need later, or that you want to learn about make commented demos for yourself. I have like 53 demos ranging from missile() to equipment systems, combat systems, little games. So just make demos for yourself, or study other peoples.

http://developer.byond.com/hub/Shadowdarke

http://developer.byond.com/hub/Spuzzum

http://developer.byond.com/ index.cgi?qd=hubIndex&all_channels=1&view=8&pub_status=0&sta rtitem=0&type=132064&text=demo

Those are some good demos to look at.

=-=Edit=-=
Don't go near Zeta coding. >_> Trust me on this.
In response to tidus123
tidus123 wrote:
http://developer.byond.com/hub/Shadowdarke

http://developer.byond.com/hub/Spuzzum

Both very good programmers -- you can trust what Shadowdarke and Spuzzum make!

http://developer.byond.com/ index.cgi?qd=hubIndex&all_channels=1&view=8&pub_status=0&sta rtitem=0&type=132064&text=demo

Those are some good demos to look at.

I can't begin to tell you how wrong this is; how many bad demos you'll find by clicking on that link. Don't do it.
In response to Broly103
Broly103 wrote:
okay, I was reading the dm guide again I can't get past chapters 6-10. I tried makeing demos and re-reading again and again.Heck I even tried looking for the proc in the reference and still I do not get what he stalking about.All I see is a bunch of code on the page that I do not get, is there anyway to make learning the byond language easier.

Well, tell me what you don't understand. When you've tried re-reading parts of the DM Guide; when you've tried making demos to further your own understanding, but you still don't get it, then the forums are a great place to go for help! If you tell us what you need help with, then we can help you!

Don't get frustrated! You've been asking really good questions, and as far as I can tell, you've been developing good programming habits!
In response to Wizkidd0123
Wizkidd0123 wrote:
Broly103 wrote:
okay, I was reading the dm guide again I can't get past chapters 6-10. I tried makeing demos and re-reading again and again.Heck I even tried looking for the proc in the reference and still I do not get what he stalking about.All I see is a bunch of code on the page that I do not get, is there anyway to make learning the byond language easier.

Well, tell me what you don't understand. When you've tried re-reading parts of the DM Guide; when you've tried making demos to further your own understanding, but you still don't get it, then the forums are a great place to go for help! If you tell us what you need help with, then we can help you!

Don't get frustrated! You've been asking really good questions, and as far as I can tell, you've been developing good programming habits!

Its just when I read the dm guide his examples are way to difficult to understand.
In response to Broly103
Broly103 wrote:
Its just when I read the dm guide his examples are way to difficult to understand.

Next time you find one that you don't understand, post it on the forum, and we'll try to explain it to you! =)
In response to Wizkidd0123
Wizkidd0123 wrote:
Broly103 wrote:
Its just when I read the dm guide his examples are way to difficult to understand.

Next time you find one that you don't understand, post it on the forum, and we'll try to explain it to you! =)

mob/verb/inventory() var/obj/O usr << "You are carrying:" for(O in usr) usr << O.name


sorry for the screwed up post.
In response to Broly103
Broly103 wrote:
Wizkidd0123 wrote:
Broly103 wrote:
Its just when I read the dm guide his examples are way to difficult to understand.

Next time you find one that you don't understand, post it on the forum, and we'll try to explain it to you! =)

> mob/verb/inventory() var/obj/O usr << "You are carrying:" for(O in usr) usr << O.name
>

sorry for the screwed up post.

Here, let's expand it so I can comment:

mob/verb/inventory() //This is a basic verb
var/obj/O // You define a local var under /obj
usr << "You are carrying:"
for(O in usr) // This is a for() loop. Most likely this is the confusing part. Basically the for() loops through all O in usr's contents.
usr << O.name // It keeps on going through until it went through everything and then tells you the name of the obj.
In response to N1ghtW1ng
Thanks, I understand what that code does finally.I wish the dm guide code was explained like this :(.
In response to Broly103
Well, let's analyze the code:

mob/verb/Inventory()
var/obj/O
usr << "You are carrying:"
//short for for(O in usr.contents)
for(O in usr)
usr << O.name


I disagree with what they've done here: defining O outside of for() without a specific purpose. Unless you have a specific reason for doing so, which you probably won't very often, I would define O within the for() list, like so:

mob/verb/Inventory()
usr << "You are carrying:"
//short for for(O in usr.contents)
for(var/obj/O in usr)
usr << O.name


Now that the example is as it should be, I'll explain:

The example here is portraying for(). The for() proc can be used in two ways, one of which is documented as "for() list"; the other, "for() loop". The one that we're looking at here is the "for() list". When we use the for() list, we're going through each element of a list, and then we're telling the program what to do with each one. If we wanted to make a list of all of the players in the world, and we had a type path used for player mobs called /mob/player, we could do it like so:

proc/get_player_list()
var/list/player_list = list()
//Here, "world" is short for "world.contents"
for(var/mob/player/P in world)
player_list += P
return player_list


In english, the above would read as, "create a list called player_list, and then loop through every /mob/player in the world, and add it to player_list. Finally, when you're done looking through world.contents, return player_list as the result".

Knowing this, let's go back to our example:

mob/verb/Inventory()
usr << "You are carrying:"
for(var/obj/O in usr)
usr << O.name


If, in his inventory, the mob whose player clicked on Inventory() had, say, a /obj/apple with a name equal to "apple", and a /obj/orange with a name equal to "orange", that verb would output:

You are carrying:
apple
orange
In response to Broly103
Broly103 wrote:
I wish the dm guide code was explained like this :(.

If you ask about it on the developer forum, it will be! =)
In response to Wizkidd0123
Hmm I see what for loop and list is used for and here is another code that is confusing.

mob/Bump(mob/M) if(istype(M) && M.key && src.key) var/pos = M.loc M.loc = usr.loc usr.loc = pos else ..()
In response to Broly103
That right there is usr abuse, for one. Hopefully, somebody will fix that example soon. =P

For now, I'll fix it. Remember, /atom/movable is a type path that encompasses /mob and /obj. atom/movable/Bump(atom/obstacle) is called when an /atom/movable isn't allowed to enter atom/obstacle. In Bump(), src is equal to the atom/movable who tried to enter atom/obstacle, while atom/obstacle, the argument, is equal to the obstacle that src couldn't move onto.

mob/Bump(mob/M)
//If M and src are both player mobs
if(istype(M) && M.key && src.key)
//save M's current position in a variable
var/pos = M.loc
//Move M to the place where src is standing
M.loc = src.loc
//Move src to M's old postion.
src.loc = pos
else ..()


The above snippet swaps the locations of the /atom/movable that bumped into something, and the obstacle that it bumped into, but only if both src and the obstacle are player mobs.