OUR OFFICIAL WEBSITE: https://dsgamemaker.online - ONLINE


WARNING! YOU WILL BE BANNED WITHOUT WARNING PERMENANTLY FOR SPAMMING THE FORUM WITH NON-DSGM RELATED TOPICS & POSTS! - FULLY ENFORCED!!!

NOTICE: ALL members that have NOT logged in once since their activation within 5 days have been and will be deleted!!! LAST UPDATED: 5-1-2022

NOTICE: I will NOT be sending anymore emails confirming your account being activated.. Try to log in and see if your account was activated yet..

ALL accounts MUST be Admin activated due to the server we are on! - More info in the announcements section

Please read announcements section of the forum upon logging in to stay up to date

Side note: Just a reminder, 4.9 and 5.12 are 2 totally different programs. You cannot use 1 app to load projects from the other.

Studying DSGM5.12 source code

Discussions and support SPECIFICALLY for version 5.12 only
Post Reply
User avatar
HitCoder
Newbie
Newbie
Posts: 15
Joined: Mon Sep 28, 2020 3:53 pm
Location: United Kingdom

Studying DSGM5.12 source code

Post by HitCoder »

I've been looking at the build files made by DSGM today and yesterday I was digging through the source code, as I'm curious how the software works (I would be interested in making a modernized DSGM based on DSGM5.12, if I do end up working on this it will be fully open source)

I feel like only James would be able to answer most of the questions I have, but I will be using this thread to talk about things I'm learning, showcase what can be done with this information, and helping the DSGM community.

I learnt that DSGM itself is relatively small, and is compiled in DotNet using VisualBasic (which is probably common knowledge).

.dsgm files are zipped up project directories, which is really cool and could make for a lot of interesting things. Version control could very well be possible even with the current projects. (I do intend to eventually look into DSGM4.9 projects and learn how those work too, and if they are composed in a similar manner I may be able to bridge the gap between the two pieces of software)

In these directories are all of the assets used in games, scripts in plaintext in .dbas files, and an XDS file which contains the game information, a tree of all of the assets of the game (sprites, objects, rooms, etc) and all of the actions relative to every object.

Browsing the build temp directory, there is a main.c file which contains all of the compiled C code from the game project.
This file contains some of DSGM's own functions, which means DSGM has its own C libraries that are included in games compiled with the software. My only issue with this at this moment in time is that I cannot find where these DSGM libraries are, and I'd be interested in finding them so I can learn more about it.

My main goal is to potentially be able to create an open source DSGM that runs on all systems cross-platform. I figured this would most likely be fine as the source code of DSGM is on GitHub at this point, and hope to eventually make something that is more modular. My main inspiration for this is the ENIGMA project (https://enigma-dev.org)

I'm currently still plotting out the UI in Qt designer, and will most likely start developing the application in Python, but I might consider C++ if Python becomes too restrictive.

I'm interested in knowing your thoughts on such a project and knowing what James himself thinks, especially as without DSGM existing I wouldn't be looking to work on such a project.
Last edited by HitCoder on Sat Oct 03, 2020 6:30 pm, edited 1 time in total.
Hobbyist game developer & final year CompSci student in the UK
User avatar
Ruffsta
Site Admin
Site Admin
Posts: 170
Joined: Fri May 22, 2020 6:21 am

Re: Studying DSGM5.12 source code

Post by Ruffsta »

Yes, only James can answer your questions as it his software that he created. Also, james would have to give an approval on re-creating or releasing any other version of his software as he owns the rights to it. He is undecided of making any other versions at this time but he never gave a definite no to the idea either.. So, all that is up to him.

personally we don't have enough members to support the idea of any new versions and secondly.. How many people even still play on the DS system anymore? This was just something i wanted to see back in use and now that i can play the created games on the Raspberri PI through my tv, i'm more excited than ever. It's mainly the only reason i wanna keep making games.. not so much to play on a DS system on tiny screens... but that's just me.

My question is why not just use what we have available? both versions do their jobs as they were meant to.

What do you mean DSGM doesn't exist? both versions are available fully and free in a virtual machine setting..
DS Games:
BananaCraze / MasterMind / Rock,Paper, Scissors

*strictly a 4.9 user
User avatar
HitCoder
Newbie
Newbie
Posts: 15
Joined: Mon Sep 28, 2020 3:53 pm
Location: United Kingdom

Re: Studying DSGM5.12 source code

Post by HitCoder »

"My question is why not just use what we have available? both versions do their jobs as they were meant to."
I'm not telling anyone not to! I'm not trying to replace them, I just find the concept interesting and was interested in potentially branching it out and making something functionally different but equivalent as a hobby project.

"What do you mean DSGM doesn't exist? both versions are available fully and free in a virtual machine setting.."
I'm not sure where I ever said it doesn't exist, I think you must have misread. by "especially as without DSGM existing I wouldn't be looking to work on such a project." I mean IF DSGM did NOT exist then doing such that I mentioned would not have even occurred to me.

Of course James would have the definitive say on whether I could scratch beyond the surface. I'm only looking at the information provided to me by the software and by the source code. I am not doing anything that goes against James' wishes as far as I am aware, as this is all data that is out in the open.
With regards to "approval on re-creating", I agree that he would have to approve any re-creation of his software upon the basis that the re-creation used anything of his.

again, I am not asking anyone to invest time or money, I am posting just in case people would be interested in seeing such a project.
Hobbyist game developer & final year CompSci student in the UK
User avatar
Ruffsta
Site Admin
Site Admin
Posts: 170
Joined: Fri May 22, 2020 6:21 am

Re: Studying DSGM5.12 source code

Post by Ruffsta »

i think it would be too big to take on.. it took James years to get the software to where it is.. he'll answer you soon. He's obviously having server issues and email issues. so when he gets it all sorted he'll visit the forum to answer your question on all this.
DS Games:
BananaCraze / MasterMind / Rock,Paper, Scissors

*strictly a 4.9 user
User avatar
DigitalDesignDude
Appreciated Member
Appreciated Member
Posts: 84
Joined: Sun Aug 16, 2020 6:02 am

Re: Studying DSGM5.12 source code

Post by DigitalDesignDude »

@HitCoder Just want to add I think it's great you had a look at DSGM's source and are showing interest in modernizing DSGM more so.

Of course James has the rights to DSGM, so I'm interested as well to hear how he feels about what you would like to do.

If I recall correctly, years ago James was developing a version of DSGM that ran from a web browser. I believe it was called: "DarkFlow".

If it truly existed (and if I'm not totally mistaken) with James's permission, it might be worth having a look at it and seeing if it's better to continue on from where its development ended.
Multimedia Developer & Designer and Former DSGM 5.12 User

Created DS Games: BioDie, Fishing the Deep

Email notifications not currently supported on this forum.
User avatar
Ruffsta
Site Admin
Site Admin
Posts: 170
Joined: Fri May 22, 2020 6:21 am

Re: Studying DSGM5.12 source code

Post by Ruffsta »

@DDD
that was back in 2015.. https://github.com/jadaradix/darkflow - i don't know whatever became of it since..
DS Games:
BananaCraze / MasterMind / Rock,Paper, Scissors

*strictly a 4.9 user
imadedsgamemaker
Site Admin
Site Admin
Posts: 15
Joined: Thu May 28, 2020 7:06 pm

Re: Studying DSGM5.12 source code

Post by imadedsgamemaker »

Dark Flow should build fine. I think I ran it recently either on Windows XP or Windows 7. It was written for Windows 7 and took advantage of the "aero glass" on there.

The DS Game Maker source code is not good code. You can use the code to understand how the file formats work, but I wouldn't recommend using the code on GitHub as a "basis" for other code. As far as I can remember, everything you've written is correct: 4.9 files are plain text XDS files; 5.12 files are zips containing an XDS file, but not the same kind of XDS file as 4.9. The name "XDS" comes from the first version, pre DS Game Maker, called "XtenDS". If you Google "Invisionsoft XtenDS" you can probably find out about it.

You would be welcome to make another DS Game Maker and if it loads files from my DS Game Maker then even better (there is an opportunity here to make a better file format and I encourage you to take it). My only request would be that you call it a different + original name than DS Game Maker. You don't need my permission to use the source code (altho don't as above, just because it's not very good), or to support the file formats.
imadedsgamemaker
Site Admin
Site Admin
Posts: 15
Joined: Thu May 28, 2020 7:06 pm

Re: Studying DSGM5.12 source code

Post by imadedsgamemaker »

My only issue with this at this moment in time is that I cannot find where these DSGM libraries are, and I'd be interested in finding them so I can learn more about it.
The code may be here: https://github.com/jadaradix/dsgamemake ... ctionWorks

And look in files that don't have extensions in the same folder: https://github.com/jadaradix/dsgamemake ... /Resources
User avatar
HitCoder
Newbie
Newbie
Posts: 15
Joined: Mon Sep 28, 2020 3:53 pm
Location: United Kingdom

Re: Studying DSGM5.12 source code

Post by HitCoder »

Thank you James, I appreciate your response and thank you so much for linking me to those resources.

Don't worry, I'm not following DSGM's source code as a basis, I'm studying it to learn how it works. I agree, it is badly coded, but it makes sense especially judging by the fact it is old as heck, and the fact you were in your mid to late teen years when developing it. I made some very poorly coded things when I was younger too (if you're really interested, look into "SAGE 2014 Sonic Core", I was 13 when I made this though). Part of learning to code is writing bad code.

My UI prototypes have mostly been completed in Qt Designer. I'll probably post other stuff here. Also, yes, to avoid confusion I plan to call my application DSGIDE (DS Game Integrated Development Environment) (could be pronounced "DS Guide" or similar would be fine)

Yeah, support for DSGM projects is intended but I will be writing my own format for projects, which will probably be a folder structure based flow. In addition I will be giving each resource its own folder inside it's catagoric subfolder, and I'm planning to allow users to modify the tree if they so desire.

Again, thanks for your response and feedback! I'm really interested in bringing such a concept back to life and following modern standards for the DS Homebrew scene (which is more popular than ever thanks to the recent DSi exploits and loaders. To put it into perspective, the DS(i) Mode Hacking Discord server has 2,738 members as of typing, and the NDS(i)Brew Scene Discord server has 2,426 members as of typing)

I'll occasionally post updates on here unless requested otherwise, but to make this project different to DSGM in its own right I think I will be replacing the object's drag-and-drop UI with a code textbox instead (though keeping events) sort of how GMS2's "code only" mode looks.

I still have yet to look into libraries that aren't PALib or DevKitPro (I think there are better libraries available now but I'm not 100% sure) but hopefully progress beyond this point goes smoothly.
Hobbyist game developer & final year CompSci student in the UK
Post Reply