Homebrew DS Game engine?

Crimson Cuttlefish

Well-Known Member
OP
Member
Joined
Aug 15, 2016
Messages
298
Trophies
0
Age
21
XP
1,149
Country
United States
Is there any sort of engine to make NDS games? I'm kind of interested in making games for my DSi, if I ever learn to code. Heard of DS Game Maker but I think that was taken down.
 
  • Like
Reactions: MyDePain

PypeBros

Well-Known Member
Newcomer
Joined
Oct 29, 2007
Messages
88
Trophies
0
Location
Belgium
Website
sylvainhb.blogspot.com
XP
453
Country
Belgium
I do have an open-source game engine and companion tool. It is meant to receive human-readable scripts that describe the game logic such as "idle->jump on dpad [JUMP_BUTTON] (SET_VY(100 ~))" ... It lacks beta-testing a community forum and tutorials, though, but if you already have some programming experience, it should definitely ease the task of starting a game, esp. if your game has SNES-compatible gameplay.
 

Crimson Cuttlefish

Well-Known Member
OP
Member
Joined
Aug 15, 2016
Messages
298
Trophies
0
Age
21
XP
1,149
Country
United States
I do have an open-source game engine and companion tool. It is meant to receive human-readable scripts that describe the game logic such as "idle->jump on dpad [JUMP_BUTTON] (SET_VY(100 ~))" ... It lacks beta-testing a community forum and tutorials, though, but if you already have some programming experience, it should definitely ease the task of starting a game, esp. if your game has SNES-compatible gameplay.
Do you have a link to this game engine? I'm don't know anything about coding but I'm tryin to learn.
 

PypeBros

Well-Known Member
Newcomer
Joined
Oct 29, 2007
Messages
88
Trophies
0
Location
Belgium
Website
sylvainhb.blogspot.com
XP
453
Country
Belgium
Do you have a link to this game engine? I'm don't know anything about coding but I'm tryin to learn.
The project sits at dsgametools. There you can find the game engine library (libgeds), sprite and map editors, animation editor and demo games. There is also the swiss-army-knife tool "runMe" that allows to preview game content before it gets packaged into a dedicated .nds program.

I upload here runMe.nds together with the resource (.spr and .map files) and scripts for my former game "Apple Assault".

I suggest you have a look at ASSAULT1.CMD, which contains as much comments as I could put to explain how things work in a game. worm.cmd describes the simplest patrolling ennemy you can think of and funghi.cmd describes a simple-but-somewhat-more-elaborate monster: funky funghi the bouncing mushroom

Don't hesitate to bug me on twitter (@PypeBros) if you want some explanation and find me not-so-responsive on this forum.

PS: the game engine has evolved since I released Apple Assault and you find me guilty of not having upgraded the scripts for AppleAssault for compatibility, so at the time writing, the scripts will not play correctly. I'll try to upload patches in the upcoming days if you're interested to work with my tools.
 

Attachments

  • runMe.zip
    483.9 KB · Views: 314
Last edited by PypeBros,

PypeBros

Well-Known Member
Newcomer
Joined
Oct 29, 2007
Messages
88
Trophies
0
Location
Belgium
Website
sylvainhb.blogspot.com
XP
453
Country
Belgium
using it on emulator
unpack the contents in some directory D. Ensure you have a build of the emulator desmume that allows compact flash storage emulation. Invoke it from directory D as
Code:
desmume runMe/runMe.nds --cflash-path=AA-efsroot --load-type=1

You'll enter the runme grid. The application will first try to connect to a firmware-configured access point, which will never work in the emulator, so click "offline" to get past this point
runme0.png

You're now sent to the "file selection" window. Click ".cmd" to force the application to filter what isn't a script and then on the [A/B] key to have the ASSAULT*.CMD files shown in the middle of the touch screen.
runme1.png

Now, tap one of ASSAULT1.CMD, (or another digit, ASSAULT2 to ASSAULT4) the top screen will confirm the selected file.
runme2.png

Now press L + A (DS buttons, not PC keys, of course) to load the selected script in memory.
runme3.png

Once loaded, it is ready for parsing, which you'll do by pressing L+Y. Parsing will automatically pause if it encounters some script error.
runme-loaded.png

The game is loaded. If the script has no error, that's all you need. It isn't convenient to test with the log overlaid, so you can press "log" to hide all that.
runme-nolog.png

the "beam out" button will take you back to the file selection window any time you want.
 

Crimson Cuttlefish

Well-Known Member
OP
Member
Joined
Aug 15, 2016
Messages
298
Trophies
0
Age
21
XP
1,149
Country
United States
using it on emulator
unpack the contents in some directory D. Ensure you have a build of the emulator desmume that allows compact flash storage emulation. Invoke it from directory D as
Code:
desmume runMe/runMe.nds --cflash-path=AA-efsroot --load-type=1

You'll enter the runme grid. The application will first try to connect to a firmware-configured access point, which will never work in the emulator, so click "offline" to get past this point
runme0.png

You're now sent to the "file selection" window. Click ".cmd" to force the application to filter what isn't a script and then on the [A/B] key to have the ASSAULT*.CMD files shown in the middle of the touch screen.
runme1.png

Now, tap one of ASSAULT1.CMD, (or another digit, ASSAULT2 to ASSAULT4) the top screen will confirm the selected file.
runme2.png

Now press L + A (DS buttons, not PC keys, of course) to load the selected script in memory.
runme3.png

Once loaded, it is ready for parsing, which you'll do by pressing L+Y. Parsing will automatically pause if it encounters some script error.
runme-loaded.png

The game is loaded. If the script has no error, that's all you need. It isn't convenient to test with the log overlaid, so you can press "log" to hide all that.
runme-nolog.png

the "beam out" button will take you back to the file selection window any time you want.
Looks awesome! Although, I don't believe I have a D: drive.
 

PypeBros

Well-Known Member
Newcomer
Joined
Oct 29, 2007
Messages
88
Trophies
0
Location
Belgium
Website
sylvainhb.blogspot.com
XP
453
Country
Belgium
Sorry. Coder jargon again. "A build" == "A version for a specific OS", so you don't have to build it yourself: it's been built into a .exe by the person who uploaded the package online.

The other message about desmume.exe not being recognized is a bit more perplexing. Maybe you'll have to copy desmume.exe in directory D along with the files unpacked and open the command line there.

(sorry: I'm only running windows occasionally, so I'm often failing to provide accurate advices on how to run programs in Windows environment)
 
Last edited by PypeBros,

Crimson Cuttlefish

Well-Known Member
OP
Member
Joined
Aug 15, 2016
Messages
298
Trophies
0
Age
21
XP
1,149
Country
United States
Sorry. Coder jargon again. "A build" == "A version for a specific OS", so you don't have to build it yourself: it's been built into a .exe by the person who uploaded the package online.

The other message about desmume.exe not being recognized is a bit more perplexing. Maybe you'll have to copy desmume.exe in directory D along with the files unpacked and open the command line there.

(sorry: I'm only running windows occasionally, so I'm often failing to provide accurate advices on how to run programs in Windows environment)
Using Windows also. CD'd into that directory, still not recognizing.
 

Crimson Cuttlefish

Well-Known Member
OP
Member
Joined
Aug 15, 2016
Messages
298
Trophies
0
Age
21
XP
1,149
Country
United States
looks like the executable is named DesmuME_0.9.11_x64.exe ... let's try using that instead of mere "desmume" in the command.
"'DeSmuME_0.9.11.x64' is not recognized as an internal or external command, operable program or batch file."
Putting ".exe" after DeSmuME_0.9.11.x64 doesn't work either.
 

PypeBros

Well-Known Member
Newcomer
Joined
Oct 29, 2007
Messages
88
Trophies
0
Location
Belgium
Website
sylvainhb.blogspot.com
XP
453
Country
Belgium
- mind the _ between 11 and x64. It looks you used a . instead.
- does it show up if you invoke "dir" in your command line ?
- I assume you have a 64-bit version of windows if you picked the x64 package, right ? (i.e. it should start if you double-click it)

(hope you'll sort it out. I'll have to go to bed, now).
 
Last edited by PypeBros,

Crimson Cuttlefish

Well-Known Member
OP
Member
Joined
Aug 15, 2016
Messages
298
Trophies
0
Age
21
XP
1,149
Country
United States
- mind the _ between 11 and x64. It looks you used a . instead.
- does it show up if you invoke "dir" in your command line ?
- I assume you have a 64-bit version of windows if you picked the x64 package, right ?
Oh, whoops. I'll fix that typo. It seems to have worked! However, where you seem to have a bunch of files and whatnot in the little square in the the bottom screen, i have nothing.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BakerMan
    The snack that smiles back, Ballsack!
    BakerMan @ BakerMan: morning fellas, it's my birthday