This article helps you to get started on software development with the Doomsday Engine.
It is important to understand, that Doomsday is an open source project. Doomsday is licensed under the GNU GPL v2 or later license.
To further that goal, we ask that all contributions use the following license:
If you do not wish to use the GPL or a compatible license like the MIT, New BSD or LGPL, then we can't accept your contribution.
Check that Doomsday's requirements are fulfilled.
Tool | Windows | Mac OS X | Ubuntu |
---|---|---|---|
Git | TortoiseGit is a nice Git client for Windows. It integrates with the Windows shell. | Git should be installed along with Xcode, but you can also get it from MacPorts or Homebrew (Intel-only). | Available as a package (see distro). |
qmake | Qt web site | qt4-qmake, libqt4-dev | |
Qt Creator (optional) | Qt web site | qtcreator | |
Other tools | build_tools_for_unix |
The deng source code is stored in a Git repository on GitHub. You can browse the contents of the repository by visiting that link.
Git is an advanced distributed version control system. Before you do anything else, you should familiarize yourself with its basic functionality and operating principles. These should get you started:
To get a copy of the Doomsday source files to your own computer, you will first need to set up your working copy of the deng repository. With Git being a distributed version control system, every working copy is actually a full, independent copy of the entire repository. Once you have your working copy set up, it will be configured to fetch changes from the GitHub Doomsday-Engine repository.
The first thing you will need to is to clone the deng repository:
git clone https://github.com/skyjake/Doomsday-Engine.git //name-of-your-working-copy//
This will download the full repository (about 200MB) from GitHub, so it may take a while.
Next, you should make sure your repository configuration is good. To see all your Git configuration settings, type:
git config -l
Your master branch should be tracking origin's (= the GitHub repository) master branch:
branch.master.remote=origin branch.master.merge=refs/heads/master remote.origin.url=https://github.com/skyjake/Doomsday-Engine.git remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
You may find it convenient to set a default branch for pulling changes:
git config pull.default tracking
The options user.name and user.email should be set if you are going to commit changes to your repository.
user.name=yourname user.email=your.email@some.domain
To synchronize your copy of the repository with the origin, use the following command:
git pull
This will fetch the new changes from the deng repository and merge them to your working copy.
Say you want to work on another branch, e.g., stable-1.10. You will first need to create a local branch that tracks the changes of the stable-1.10 branch in the deng repository:
git checkout -t -b stable-1.10 origin/stable-1.10
This will also automatically switch to the new branch. In the config you now see:
branch.stable-1.10.remote=origin branch.stable-1.10.merge=refs/heads/stable-1.10
This means your stable-1.10 is tracking the one in the origin repository.
Now you can switch between your branches with:
git checkout master git checkout stable-1.10
See: compilation