Homebrew DS Game Maker

  • Thread starter Thread starter Inunah
  • Start date Start date
  • Views Views 3,219
  • Replies Replies 9

Inunah

The Female Mistaken for a Male.
Banned
Joined
Sep 14, 2009
Messages
2,678
Reaction score
4
Trophies
0
Location
USA
Website
inuscreepystuff.blogspot.com
XP
258
Country
United States
Attempting to make a game, and the start screen I've got up needs a blinking 'touch to start' icon.... Er... Sprite...

So I go to add in something I made... It says it's too big.... But 64x64 is the biggest image it lets me use... Which is only 1/3 of the sprite I need to use... I don't know how to do this.... Blahhhhhhh.....
 
Inunah said:
Attempting to make a game, and the start screen I've got up needs a blinking 'touch to start' icon.... Er... Sprite...

So I go to add in something I made... It says it's too big.... But 64x64 is the biggest image it lets me use... Which is only 1/3 of the sprite I need to use... I don't know how to do this.... Blahhhhhhh.....
Just use 3 64x64 sprites.
 
Noitora said:
Inunah said:
Attempting to make a game, and the start screen I've got up needs a blinking 'touch to start' icon.... Er... Sprite...

So I go to add in something I made... It says it's too big.... But 64x64 is the biggest image it lets me use... Which is only 1/3 of the sprite I need to use... I don't know how to do this.... Blahhhhhhh.....
Just use 3 64x64 sprites.

tongue.gif
I knew that's what the answer was going to be.... Blah, this is why I shouldn't have started.... I've read the tutorial six times and I still don't know how to make anything with this freakin' thing.

I was going to attempt to make simple games.... Starting out with the most simple kind of game I could think of, which is a Pokedex.... I mean, there's not much to it and shit, so it sounds easy.....

Bah. This game maker is shit.

QUOTE(jurassicplayer @ Jul 14 2010, 01:04 AM)
Or just figure out how to use paLib or LUA (like TouhouDS from http://weeaboo.nl/) and make the future better xD (though its totally fine if you stick with DSGM).

That requires C++ or whatever, from what I heard. I'm not learning another coding language. It took me two years to learn shitty HTML skills (I know only enough to edit text and images into a premade layout... Yeah, classy.... >:( ), why would I want to waste two+ more years of my life?
 
Inunah said:
Bah. This game maker is shit.
You shouldn't say that (Eldude will come after you xD). Although I agree that it probably isn't the most powerful thing out there, it IS supposed to make things more understandable (failed in my case though)...but, if there is some previous knowledge and you know what you are doing, then there have been a couple of decent homebrew (I wouldn't say AMAZING, but definitely some things that could be amusing to some people).

PaLib actually isn't that bad if you can piece together the tutorials and other peoples source files. Then again, I've never really attempted making anything past Hello World and that StarWars scrolling text (I had fun with this one xD I inserted my own words) so I suppose I shouldn't really say much about either.
 
jurassicplayer said:
Inunah said:
Bah. This game maker is shit.
You shouldn't say that (Eldude will come after you xD). Although I agree that it probably isn't the most powerful thing out there, it IS supposed to make things more understandable (failed in my case though)...but, if there is some previous knowledge and you know what you are doing, then there have been a couple of decent homebrew (I wouldn't say AMAZING, but definitely some things that could be amusing to some people).
This thing is supposedly really simple, but I find it 100 times more confusing than the Alice software used to make little flash videos.

I've used RPG Maker XP, so I have some previous knowledge of game making, but this.... This acts like it requires you to have made a DS Homebrew before and know exactly how to do things and it forces you to do things in a certain way.

Hell, I could make myself a whole Vocaloid song and finish an Alice animation before I got halfway through with any sort of game in DS Game Maker.
 
DSGM is an easy to use software(my use might be different due to my previous coding knowledge) DSGM uses PAlib so if you don't get DSGM you could easily check out the PAlib forums and get some info.
 
Me and BassAceGold politely agreed that coding in C is much easier and sufficient than any front ends or mimics. I've noticed, that DS Game Maker is a fraud. Proof?

Game Maker forums;

QUOTE said:
Working with Game Maker
Tutorials and Examples
This forum is for good, clear, concise and efficient tutorials and well documented examples that can be of great use to other Game Maker users. This forum is for resources answering frequently asked questions, NOT for questions.
Extending Game Maker
Members may post questions about extending GM, and make requests for new extensions. Members may also post their own GEX extensions, GML scripts, DLLs and Libraries in the appropriate sub forums.

DS Game Maker forum;

QUOTE said:
WORKING WITH DS GAME MAKER
Tutorials and Examples
Learn to use DS Game Maker by Example!
Extending DS Game Maker (Advanced Topics)
Discuss extending DS Game Maker with custom code, actions and libraries.

Now, lets have a look at the posters from DS Game Maker forum compared to PAlib forum users.

Help support forums:
EXACT SAME QUESTION
Saving and Loading

DS Game Maker;

QUOTE
Saving and Loading is something everyone wants to do but no one seems to know how. Well, here I am to the rescue. Here is a nice, simple example of saving and loading the position of a box sprite.

It works on my original R4 using Homebrew Menu. Users with other carts and firmwares, please patch the ROM using the correct DLDI driver.

Also note that this demo does not work in the NO$GBA DS emulator, it must be run on the Nintendo DS. In the emulator the sprite is always loaded back to the position of 0,0, as emulators cannot write back to the current playing file.

The Actions

You do not really need many actions at all to save/load variables but I thought I would make a full demonstration, including text that disappears after 2 seconds using a timer. So if you ever wanted to do that with some text now you can see how too!

I commented in some places, but if you don't understand, please ask. I am willing to go through all of the details with you, and importantly explain "WHY" not just that "IT DOES".

There is just one room with one sprite at position 64, 64.

CODE: SELECT ALL
--- Variable for disappearing message
Declare Global frames;Whole Number;0
--- Declare Some Variables to hold X and Y co-ordinates
Declare Global BoxX;16-bit Signed;64
Declare Global BoxY;16-bit Signed;64
Output Text 1;1;1;Use the D-Pad to move the box.
Output Text 1;1;3;Press A to save its position.
Output Text 1;1;5;Press B to load its position.
Output Text 1;1;7;Its location will be stored,
Output Text 1;1;8;if you turn off your DS.
--- Let the user use the D-Pad to move the Box
Move Sprite with D-Pad 0;0;Slow
If Button Press Newpress;A
Save Variable BoxX
Save Variable BoxY
Output Text 0;1;1;Position Saved!
Set Variable frames;120
End If
If Button Press Newpress;B
Load Variable BoxX
Load Variable BoxY
Jump to Position 0;0;BoxX;BoxY
Output Text 0;1;1;Position Loaded!
Set Variable frames;120
End If
If frames > 0
Set Variable frames;frames - 1
End If
If frames == 0
Clear Text 0
End If
--- Keep the variables updated with the Box's position
Set Variable BoxX;BottomSprites[0].X
Set Variable BoxY;BottomSprites[0].Y


Attachments

I have included the NDS file so you can put this on your flashcart/DS Homebrew Cart and try it straight away. I have included my XDS file too. It uses a sample sprite included with DS Game Maker so will load fine and compile without needing to be Packed'n'Goed'. I advise that you try to reproduce the above actions and basically do it yourself rather than use my XDS, because you will learn how it all works, by example.

PAlib-Dev forum;

Hey all,

First of all, I've been away for a while, partially because I thought PAlib was dead, and also to give libnds a try. Well as you can see that last attempt failed, never got beyond spawning random pixels on the screen (outside framebuffer mode).

Anyway, I'm trying to get into PAlib again, so I thought I'd write a little tutorial on a subject that I found intimidating when I first started coding for the NDS, writing a savegame.

Right...

A savegame is nothing more than a file that holds some data for you. You will probably want to use it to remember the level of a character, how many times that character died already and how much health he got left, it could be anything.

The first thing you will want to do is create a struct that hold the data you want to save. the struct is a way to group some variables. (more info here: click)
Code: ©
struct
{
char name[10];
u8 level;
u8 health;
u8 died;
} character;
The above struct is called "character", it holds a couple of variables:
a character array called name.
an u8 called level.
an u8 called health.
and another u8 called died.

now lets have these variables hold some data:
Code: ©
#include

struct
{
char name[10];
u8 level;
u8 health;
u8 died;
} character;

character YourPlayer;

int main()
{
PA_Init();

YourPlayer.name = "TestChar"
YourPlayer.level = 15;
YourPlayer.health = 100;
YourPlayer.died = 5;

while(1)
{
PA_WaitForVBL();
}
}

Did you understand what's going on here?
"character" is a data type, just like "int" or "char", so we have to create a variable of that type:
Code: ©
character YourPlayer;
We then let the members of YourPlayer (name, level, health and died) hold some values
Code: ©
YourPlayer.name = "TestChar"
YourPlayer.level = 15;
YourPlayer.health = 100;
YourPlayer.died = 5;
You've probably done most of the above before, remember to use the "." operator to acces the members of a struct.


Now we have our data ready, we want to write it to the SD card right? To do that we'll have to initialize FAT first:
Code: ©
fatInitDefault();
You only have to initialize FAT once, so put it right after PA_Init();
Now open a file:
Code: ©
FILE* SaveGame;

SaveGame = fopen("/DATA/APPNAME/SaveGame.sav", "wb");
Got that? We just opened SaveGame.sav in the directory /DATA/APPNAME for writing, so we can now start writing our data to it!
Code: ©
fwrite(&YourPlayer, 1, sizeof(YourPlayer), SaveGame);
We now wrote YourPlayer to SaveGame. If you used pointers before you'll know that &YourPlayer actually means "the memory adress of YourPlayer", if you haven't used pointers before just remember to put "&" before the variable.

When we're done with our file we have to close it again:
Code: ©
fclose(SaveGame);
In three lines of code we wrote the whole structure to a file, so we can read from it later on.

This is what we've got so far:
Code: ©
#include

struct
{
char name[10];
u8 level;
u8 health;
u8 died;
} character;

character YourPlayer;

int main()
{
PA_Init();

YourPlayer.name = "TestChar"
YourPlayer.level = 15;
YourPlayer.health = 100;
YourPlayer.died = 5;

FILE* SaveGame;

SaveGame = fopen("/DATA/APPNAME/SaveGame.sav", "wb");

fwrite(&YourPlayer, 1, sizeof(YourPlayer), SaveGame);

fclose(SaveGame);

while(1)
{
PA_WaitForVBL();
}
}

Reading from this file isn't very different from writing to it
Code: ©
FILE* SaveGame;

SaveGame = fopen("/DATA/APPNAME/SaveGame.sav", "rb"); // "rb" = read, "wb" = write

fread(&YourPlayer, 1, sizeof(YourPlayer), SaveGame); // noticed we are using fread here?

fclose(SaveGame);



Alright, lots of code, lots of text and lots of info, If you managed to read this far I'd suggest that you now RUN to the place you store your cookies and grab one. You deserved it .
Using structures takes a while to get used to, but it can save you lots of time AND it helps keeping your code readable and organized.

I hope this tutorial helped you realize that FAT isn't as intimidating as it might look. If you've got any questions, feel free to ask them

Notice the difference?
The DS Game Maker forum explains nothing! The users their are incredibly dumbfounded, no offence.

Also, more evidence James is quite hated:

From BassAceGold, years ago;
James deleted this topic to 'look good'. Also binned his account.
 

Site & Scene News

Popular threads in this forum