GameMonkey Script

GameMonkey Script Forums
It is currently Tue Jun 18, 2019 3:17 pm

All times are UTC

Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: Unofficial github repo
PostPosted: Sun Sep 02, 2012 3:33 am 

Joined: Sat Sep 01, 2012 3:12 am
Posts: 12
First, I want to address that I have already looked at foobit's github repository, and decided that I'd go my own route with gamemonkey that is going to diverge quite a bit from the regular releases, so without further adieu, let me introduce you to...

The Unofficial Gamemonkey Script Github Repo

You can peek at the Commit Log

Even though my original header to this post alludes that I want to somehow change GameMonkey, this isn't actually the case. What I'm interested in doing is modifying the file structure and project management systems that GameMonkey uses so it is better accessible to programmers. For instance, I shouldn't have to read the FAQ to know how to build GameMonkey into a library, or be presented with various src/* directories that I can't guess what their contents are. Part of having good open-source software is having accessible and intuitive source code. This isn't a dig on Matt or Greg, but it is a gripe I initially had with the zip I downloaded to start diving into GameMonkey. Gamemonkey is powerful, and very intuitive for any C/C++ programmer, and I wanted that to translate not just in the code, but how the code is structured and presented to other developers. I will be continually integrating any updates and changes Matt and/or Greg make. I will also be more than willing to take any patches community members want to give, as long as it does not break the code, or introduce unnecessary complexity to the source code or how GameMonkey works.

Cloning Instructions:

Build Instructions:
  • Open up CMake
  • Specify the "Where is the source code?" to the path of the repository (for instance, mine is "C:\repos\gamemonkey-unofficial") - for the sake of simplicity, I'll refer to this path as repo_path
  • Specify the "Where to build the binaries?" to another directory; I typically use repo_path/build. We'll just call this the repo_build_path.
  • Click configure. It will prompt you for your toolchain if you haven't set it already. I use mingw, so that's what I picked, but you can also specify your MSVC version. (Note:If you're using mingw/msys, it may give you an error the first time you configure the project - not sure why this is currently, just configure again and it should be fine.)
  • Click generate; this will generate the appropriate project files in repo_build_path
  • For MSVC users, you should have a project file for your appropriate version that you selected from the configure step.
  • For makefile people, just go in here and use your make tool.

Patch submissions
There are two main options for submitting a patch. You can either make your local changes and generate a patch file, or you can fork my repo, make your changes, and submit a pull request, which I can then review and potentially merge into my repository.

When I review the patches, the following will probably get your patch rejected:
  • You do not explain any changes that were made
  • The patch breaks the code
  • The new code adds unnecessary complexity to the GameMonkey source
  • There are changes that break gmscript compatibility with Matt and Greg's version of GameMonkey (new features are okay, as long as they do not break older features)

And for things that will help get your patch/changes approved:
  • You comment any portion of the code that is difficult to understand
  • Everything works!
  • You're nice to me :)

  • Sept 3, 2012, 10:25PM EST - Fixed the cmake file, now generates proper project file (tested with mingw32), library is named "gmscript" (generates libgmscript.a in unix-like environments, gmscript.lib in msvc), added missing gmConfig.h file
  • As of today (Sept 1, 2012, 11:26pm EST), I have not completed the CMake file, but will be adding that in very shortly. Edit (Sept 4, 2012 10:26am EST): I should mention that the tools/ directory does not have CMake build scripts yet; these will eventually be incorporated into the main CMake build script.

A request for support
Greg and Matt, if you are interested, I'd be very interested in getting support from you guys - you created something beautiful, and I think we can, not just as three, but as a whole community, make this powerhouse of a scripting language get a much better footing in the world of modern games and the general gaming dev community of the internet.

I will update this post with any additional information as it happens (so you won't have to wade through the thread if it gets multiple pages). Also, I am interested in taking patches if anyone is interested in contributing/bug fixing.

I am okay with the idea of people using this thread as a feature request for my repository - I can't guarantee that I will be able to make those changes (as I'm still familiarizing myself with the GameMonkey codebase, and have my own set of projects I work on), but perhaps there are others who can make patches/repos with your request and we can merge them as needed.


Last edited by mrbarrysoftware on Tue Sep 04, 2012 2:26 pm, edited 3 times in total.

Reply with quote  
PostPosted: Tue Sep 04, 2012 2:31 am 

Joined: Sat Sep 01, 2012 3:12 am
Posts: 12
Shameless bump, updated repo so now it has a working CMakeLists.txt file, and it will now generate anything CMake supports!

A more definitive list of changes:
  • Added missing gmConfig.h
  • CMake now handles version information, which is generated in gmConfig_p.h
  • Editted gmConfig.h and gmMachineLib.cpp to reflect the above statements. GM_VERSION has been changed to an integer value, calculated by ((VERSION_MAJOR)*1000 + (VERSION_MINOR)*100 + (VERSION_BUILD_OR_PATCH)).
  • Change to (didn't realize the files were different...oops :P)
  • CMake should be able to deal with most of the platform dependent code, so no more use for the src/platform/ directory
  • Holy BBQSauce, a working CMake file!

Reply with quote  
PostPosted: Fri Sep 07, 2012 11:52 pm 

Joined: Mon Dec 15, 2003 1:38 pm
Posts: 708
Just a few comments...

I mostly address critical flaws and integrate features that are particularly useful to me.
I'm happy to see GM diverge to meet different needs. I hope parts will also converge toward the best way to meet common needs.
I'm not the boss or governor of GM, I'll just provide any support time will allow and will do so indefinitely.
So good luck with your build and make sure you check out what DrEvil and others have been up to with their cool builds.

Reply with quote  
PostPosted: Sat Sep 08, 2012 2:00 am 

Joined: Sat Sep 01, 2012 3:12 am
Posts: 12
Yeah, it's on my todo list to start pulling in patches from other builds, but one thing at a time :)


Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC

Who is online

Users browsing this forum: No registered users and 4 guests

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group