Okay, so here I was, looking for programming languages, and I find this Game Maker thingy. In fact, it's very good! So let me show my ideas. Please note: <> indicates boolean, () indicates text input and [] indicates dropdown menu.
Session blocks (or multiplayer)
GM has a multiplayer function (not reccommended for online games with too much players). The blocks would be:
"Show IP adress" [mplay_ipadress()] would show your IP adress on the screen. Useful when we see next.
"Start network" [mplay_init_tcpip(addr)] would start the multiplayer. There could be a boolean <Multiplayer on?>. "End network" [mplay_end()] would end the multiplayer.
"Start session (sesname)" [mplay_session_create(sesname)] would start a multiplayer session. Sesname s an area with the session name. Could be used: "Ask: (session name?) and wait/Start session (answer)". "Set players to (playnumb)" [mplay_session_create(playnumb)] indicates the max number of players. "Set name to (playername)" [mplay_session_create(playername)] sets your name on the network.
"Find sessions" [mplay_session_find()] looks for sessions that aren't full and returns how many were found. "Info of session (numb)" [mplay_session_name(numb)] Shows the name of the session number (0 is the first) and current player. "Join session (numb) [mplay_session_join(numb)] makes you join a certain session. Be sure to use "Set name to (playername)"!
So you use "Find sessions". It shows that there are 3 sessions avaible. Then you use "Info of session (numb)". In this case, you set (numb) to 1 (the 2nd session, cause 0 is the first one.). It shows the session name and current players. Then you use "Join session (numb)" and puts (numb) to 1. You would join the 2nd session.
"Quit session" [mplay_session_end()], it's obvious that it makes you quit the session.
"Find players" [mplay_player_find()] would show the number of players on. It's only used for the host. "Show player (numb) info" [mplay_player_name(numb) and mplay_player_id(numb)] would show the name (that can be set with "Set name to ()") and the ID (unique) of player (numb) (0 would be yourself.)
Let's suppose you want to know how many players are online. You would use "Find players", right? Then it finds 5 players (you count). You want to see player 5's name and ID. You use "Show player (numb)" and set (numb) to 4 (don't forget the 0, that is yourself.)
"Set move to [true/false]" [mplay_session_mode(move)] would set the move, which if it's true, if the host quits, moves the session to another player (in the session).
This ends Session blocks.
Now for Draw blocks! Draw blocks draw something, and should be part of Pen blocks.
"But I can draw something doing it in sprites!" Yes, but this is better!
"Draw text (text) in X: (x position) Y: (y position)". This draws (all at once) a text at some position. It's useful because of this: "Ask: draw text? and wait"/"Draw text (answer) in X: (0) Y: (0)". Got it? Or even make the player's name follow the player! "Draw text (playername) in X: (player X position + 10) Y: (player Y position + 10)". Just an example.
What about the font? Just use "Set font to [font]".
It also draws lines, arrows, squares and circles. A line would be:
"Draw line in X1: (position of the 1st tip) Y1: (same thing) X2: (2nd tip) Y2: (also)". A bit complicated, but... It also draws arrows, almost the same thing, but: "Draw arrow in X1:() Y1: () X2: () Y2: () with tip size (point size)".
Third and fourth verses (square, circle), same thing as first and second verses (arrow, line). For circles and squares, you need the X1, X2, Y1, Y2 and and additional thing: "Draw circle/square in X1 (...) Y2: () and [filled/outline]".
The color can be set by "Set pen color to".
PS: The block you are going to see now was invented by me. It doesn't exist like the others.
"Draw sprite". Yep. You could set a sprite's settings to "drawable". This way, when you use this block, an image editor would appear (in the game), allowing the sprite to change into what you drew.
That's all!
Last edited by CPfan123 (2009-10-30 15:57:58)
Offline