Want to be a developer? Submit a patch? Start here.

For discussion of the code running behind the game

Moderator: Staff

User avatar
Roots
Dictator
Posts: 8665
Joined: Wed Jun 16, 2004 6:07 pm
Location: Austin TX
Contact:

Want to be a developer? Submit a patch? Start here.

Postby Roots » Sun Jul 03, 2011 11:51 pm

This thread is for people interested in either helping out with development or who just want to submit a patch or two. Read through this top post first. Post to the thread if you're interested in contributing as a developer and have questions or need some guidance.

Where do I get the code?
Our project page and code repository is on BitBucket at: https://bitbucket.org/allacrost/allacrost.

Click the "Source" link on the left to look through our Mercurial repository with your web browser. The main directory for the active project is in "game". "demo" contains much older code that is no longer updated. Read the following page on our wiki to learn how to get your own copy of the repository: http://www.allacrost.org/wiki/index.php ... Repository

How do I compile the code?
Refer to the following wiki page: http://www.allacrost.org/wiki/index.php ... structions

If you are having trouble getting it to compile, look through this section on the forums for others who have had similar problems and post your issues if you can't resolve them. Note that sometimes project files become outdated on different platforms since developers do not typically have access to all three major systems supported.

How do I submit changes?
Read about how to use the Mercurial repository here: http://www.allacrost.org/wiki/index.php ... Repository

You are free to commit any changes at all to your local clone and push those changes to your personal repository. To get those changes uploaded to the main repository, you'll need to submit a pull request. After your pull request is accepted and merged, other developers will be able to get your changes.

Do you have any repository usage policies?
We do: http://www.allacrost.org/wiki/index.php ... Repository

The most important rule is: do not submit a pull request to the main repository that contains code that you know will cause the game to crash or be otherwise unusable.

How do I test my changes and debug my code?
We have a testing interface that makes it easy to write tests and jump around between any part of the game: http://www.allacrost.org/wiki/index.php/Test_Interface

Testing out new features on maps, battles, and other game modes is incredibly quick and easy with our test interface. It is very fast and simple to write your own tests as well. You can use the '-d all' or '--debug all' argument when you run the program to view debug messages and warnings. If you only want to see output from a particular part of the code, you can specify a list of namespaces that should output debug messages. For example, '-d battle,common,video' outputs debugging from the battle mode, common utility, and video engine code.

Do you have a code standard?
We do: http://www.allacrost.org/wiki/index.php/Code_Standard

Yes, it is long. Generally you don't need to have the standard memorized. If you match the style and syntax of surrounding code, its pretty easy to pick up.

Do you have any code documentation?
Plenty of it. Its not always complete or up-to-date, but its pretty comprehensive. Go to: http://www.allacrost.org/wiki/index.php ... umentation

Usually the most up-to-date documentation is found in the code itself, as comments in the header and source files.

Do you have a bug tracker or task manager?
We use the issue tracker on our BitBucket project page: https://bitbucket.org/allacrost/allacrost/issues Not everything we're working on (or need to work on) has an issue listed here, so if you're not interested in the type of work currently in the tracker, ask on the forums where you can make yourself useful.

Do you have a project roadmap?
Right here, and it's usually pretty up-to-date: http://www.allacrost.org/wiki/index.php/Roadmap

If you're looking for a larger feature or area of code to work on, this would be a great place to figure out what needs to be done and where you can be most useful to the team.

I'm just starting out. What should I work on?
Make a post in this thread briefly introducing yourself, stating what specific area(s) of the code you would like to work in (if applicable), and request that someone give you tasks to complete. Myself or someone else from the team will come along and assign you a small number of tasks that are relatively easy to accomplish yet are important to complete. The purpose here is to give the new developer a feeling of gratification and accomplishment and exposing them to certain aspects of our code base.

There is no task list or other database that you can look up and find something to do automatically. We tried to do this in the past, but it was just too much work to keep such a list up-to-date, and usually by the time someone came along looking for work to do, it was already outdated. That's why we ask that you please post a request for a task in this thread when you're ready to begin working on something.

I've completed the first task assigned to me. What now?
Here's the process that we've found works best. For new developers, we continue assigning small tasks for them to complete until they reach a point where they feel comfortable enough to move out on their own and assign work to themselves. Programmers get more enjoyment out of this project if they are granted freedom to work on what they want to, although its always best if you can align your personal interests with the broader goals and needs of the entire project.

When you decide to take this step this is up to you. To really become a full developer, you need to learn to stay on top of community discussions here on the forums and on IRC so that you can be aware of our progress and what our current needs are. The best developers know how to take initiative on our coding needs and assign themselves to large projects within the code.

----------

I'll try to keep the first post in this thread updated with any new information. If you feel I left out anything important that new developers would like to know, post it here.
Image
Silencer
Newbie
Posts: 6
Joined: Thu Jul 21, 2011 11:49 am

Re: Want to be a developer? Want to submit a patch? Begin he

Postby Silencer » Thu Jul 21, 2011 11:53 am

Hello. I'm Theodor, I'm here from gamedev... I'd like to take part in developing a c++ rpg game, and someone told me this is the place :) So were do I begin ? Who I need to kill ? :D
User avatar
Roots
Dictator
Posts: 8665
Joined: Wed Jun 16, 2004 6:07 pm
Location: Austin TX
Contact:

Re: Want to be a developer? Want to submit a patch? Begin he

Postby Roots » Thu Jul 21, 2011 9:00 pm

Hi. Did you get the game compiled and running already? That's always the first step. :) I'll give you two choices for your first assignment. Which one you decide to tackle is up to you. If you don't want to do either, let me know and I'll see if I can find something else.


1) Fix dialogue bubble icon being drawn under tiles
If you go to the cave map and look at the dialogue bubble for the very first NPC you see there, part of his bubble icon gets covered up by a map tile (you may have to wait a few seconds for the bubble animation to expand to see what I mean). I haven't looked into this, but its probably because the icon is being drawn at the same time as the sprite, and some map tiles are drawn after the sprites so the tiles are drawn over the icon.

To fix this, the bubble icons need to be drawn after all sprites and all tiles, as it is effectively a GUI-layer object. It should be drawn before the stamina timer, location intro image/text, and dialogue window though. Perhaps the best thing to do is to have a container that holds all of the objects/sprites that are drawn on the screen and then later when its time for GUI elements to be drawn, examine every sprite in this container and see if it needs its dialogue bubble drawn.


2) Add a menu to BootMode that activates when the player selects "New Game"

When the player selects the "New Game" option from the boot menu, we need a small window to pop up that will allow the player to set some settings. I would allow enough space to display three settings (which I would put in a row format, so three rows) and have the options "Begin" to start the new game or "Back" to exit this menu and return to the main boot menu. For now this menu needs to allow the user to choose whether they want their "Battle Mode" to be either "Wait" (which is the default) or "Active". There is code for that in the global manager (src/common/global/*) so search for "battle" or "setting" in that code to find it. We also want to have a tooltip text area to explain these different options.

You know what, I decided to just throw together a quick little draft of what I'm expecting this to look like to make it much easier to communicate this idea:

Image

That's basically what I want you to make, only prettier. :heh: The "Battle speed" and "Dialogue speed" categories you do not have to fill in, because we don't support these features yet anyway (and its not certain whether we will actually want them or not). Just leave some blank space in the menu so we can put them (or other options) in there later. Also I'm not expecting this to be perfect, so don't worry too much about the text (especially the tooltip text, you can just put "blah blah blah" in there for all I care). I just want a starting point for this menu that we can refine and expand later as needed.


Please do ask questions if you're confused or lost about anything. Good luck!
Image
Silencer
Newbie
Posts: 6
Joined: Thu Jul 21, 2011 11:49 am

Re: Want to be a developer? Want to submit a patch? Begin he

Postby Silencer » Sat Jul 23, 2011 9:14 pm

Ok, did the first one... If it's ok with it, I'll try the second one...

How to show the changes ?

Edit: Ok, I created the patch (hope i did it right, first time then i tried to do one), dunno why methods like

Code: Select all

void DrawSomething(const MapFrame* const frame);
have a frame parameter, they don't use it, but anyway I did the same to the new method I created,

Code: Select all

DrawDialogIcons(const MapFrame* const frame);
Attachments
ShowDialogIcons.patch
(4.76 KiB) Downloaded 217 times
User avatar
Roots
Dictator
Posts: 8665
Joined: Wed Jun 16, 2004 6:07 pm
Location: Austin TX
Contact:

Re: Want to be a developer? Want to submit a patch? Begin he

Postby Roots » Sat Jul 23, 2011 9:57 pm

Looks good to me. :approve: Give me your sourceforge name and I'll give you write access so you can go ahead and commit your change.
Image
Silencer
Newbie
Posts: 6
Joined: Thu Jul 21, 2011 11:49 am

Re: Want to be a developer? Want to submit a patch? Begin he

Postby Silencer » Sat Jul 23, 2011 10:29 pm

ok, so I am new to sourceforge, name: sillencer
User avatar
Roots
Dictator
Posts: 8665
Joined: Wed Jun 16, 2004 6:07 pm
Location: Austin TX
Contact:

Re: Want to be a developer? Want to submit a patch? Begin he

Postby Roots » Sat Jul 23, 2011 10:48 pm

Alright done. You can commit whenever you like now. :)
Image
wassat676
Newbie
Posts: 2
Joined: Sat Jul 23, 2011 11:36 pm

Re: Want to be a developer? Want to submit a patch? Begin he

Postby wassat676 » Sat Jul 23, 2011 11:40 pm

Hey, im Matt, im a 4th year CS student studying game design. I was told by roots to introduce myself here and request some assignments. Id like something relatively simple to start out with. What could I do?
User avatar
Roots
Dictator
Posts: 8665
Joined: Wed Jun 16, 2004 6:07 pm
Location: Austin TX
Contact:

Re: Want to be a developer? Want to submit a patch? Begin he

Postby Roots » Sun Jul 24, 2011 12:23 am

Here's a couple ideas for you wassat. Choose the one that sounds better for you.


A) Fix screenshot bug
Ctrl+S takes a screenshot and saves it to the user's data folder (on Linux this is ~/.allacrost, I'm not sure about other systems). If you start the game and take a screenshot and then go open up the file, you'll see that its very wrong. The image is black and white, with scan lines, and drawn as if its laying diagonally on a table. Its very odd and I have no idea why it does this (it used to work, but I had to rewrite the video engine several years ago and never got around to fixing this).

So simply fix this bug so that the screenshots it records are correct. This is a little OpenGL work (which you said you had). If you can't figure this out though or its beyond your capabilities, just forget this one.


B) Make a boot mode debug menu
BootMode (src/modes/boot) is the first game mode that runs when the game starts up and contains the new game, load game, etc. options. You'll also see that there's a "Battle", "Menu", and "Shop" option in this menu, which are there to make it easier for us to debug (we remove these options in our official releases). What I want you to do is to instead create a single "Debug" option in this main menu, which will bring up a different menu window where we can select the type of debugging that we want to do. For now, this menu can simply contain the "Battle", "Menu", and "Shop" options and do the same thing that these options do now in the main menu.


Ultimately, this would be the first step to a larger goal. I want this menu to eventually be able to support a lot of functionality where we can save/load different configurations so that we can better perform tests. For example, I'd like to be able to use this menu to load battle configurations (battles with different enemies, characters, equipment, scripts, dialogues, etc) so that we can test out a variety of different battles easily. A better testing framework is something that we've needed for a long time but have never really dedicated much effort to it.


If neither of those tasks are suitable or desirable for you, let me know and I'll think of something else for you. Thanks!
Image
wassat676
Newbie
Posts: 2
Joined: Sat Jul 23, 2011 11:36 pm

Re: Want to be a developer? Want to submit a patch? Begin he

Postby wassat676 » Mon Jul 25, 2011 7:38 pm

Cool! Option B sounds right up my alley. Ill get to work on that this week (classes just ended, I have LOTS of free time). As for the screenshot thing, ill have to look into it further. If I can't actually fix it, I may be able to at least deduce possible causes.
honigbeutler
Newbie
Posts: 1
Joined: Mon May 27, 2013 4:06 pm

Re: Want to be a developer? Want to submit a patch? Begin he

Postby honigbeutler » Mon May 27, 2013 4:28 pm

Hi, i am wondering if this is still the best way to get in contact with u, since it has been nearly two years since the last post happened, but i'll try anyway :P.
I am Cedric and i've done some stuff in cpp for quiet a while and i would like to contribute to some problem.

So how could i contribute ?
CJ_COIMBRA
Newbie
Posts: 3
Joined: Sun Dec 28, 2014 1:46 am

Re: Want to be a developer? Want to submit a patch? Begin he

Postby CJ_COIMBRA » Sun Dec 28, 2014 2:11 am

Hi,

I am Christian and I've been considering to join the project. I finished Comp.Sci. a while ago and I've been working as a developer for about 4 years now, mostly mobile applications with obj-C but also some games for advertisement with game engines. My main hobby is game programming for which I mostly use cpp and a number of libraries SFML being the most recently used.

I did this one back in 2010:
http://www.indiedb.com/games/skirmish-ii-viking-assault

And this one from 2011 to 2014 which is waiting in the Greenlight:
http://steamcommunity.com/sharedfiles/filedetails/?id=214022703

It has been a while since I did anything not related to work so I have this increasing will to do something soon. Not sure if I can be of any help.
User avatar
Roots
Dictator
Posts: 8665
Joined: Wed Jun 16, 2004 6:07 pm
Location: Austin TX
Contact:

Re: Want to be a developer? Want to submit a patch? Begin he

Postby Roots » Sun Dec 28, 2014 2:44 am

Wow, Chesster looks pretty freaking cool. Did you do that entirely by yourself or on with others?

I'm sure you can be of help here. You have more relevant experience than most developers have that joined us in the past. Is there any particular area of game programming that you're interested in working on? We have a little bit of everything so hopefully we can help find you something that aligns with your interests.

Also, what platform do you do your development on? I'm sure you know already that we're making a cross-platform product, but when we don't have someone actively developing on one of our platforms, the build files get out of date rather quickly. Linux build files are all up to date. Windows will need some time to get working, but someone else already got it building. I gave him commit access to submit his changes and he vanished before making them, but I think the patch file is still uploaded to the forums. I don't even want to guess how outdated the OS X build files are. :uhoh:
Image
CJ_COIMBRA
Newbie
Posts: 3
Joined: Sun Dec 28, 2014 1:46 am

Re: Want to be a developer? Want to submit a patch? Begin he

Postby CJ_COIMBRA » Sun Dec 28, 2014 3:08 am

I did the coding by myself, the art and music was done by others. It shouldn't take 3 years to make such a game but it was a rather complicated process I am sure you now what I am talking about.

I don't know it's been a while.... what area of this project would benefit more of help?

I've been working on OS X for a while now but I keep an old laptop with Windows too.
User avatar
Roots
Dictator
Posts: 8665
Joined: Wed Jun 16, 2004 6:07 pm
Location: Austin TX
Contact:

Re: Want to be a developer? Want to submit a patch? Begin he

Postby Roots » Sun Dec 28, 2014 3:33 am

Well it would really help to have an OS X developer around again, so I think the best way you can help us right now is to just get the game (and hopefully also the map editor) to build on OS X again. I believe you just need to update the X-Code build files (assuming that's the editor/build system you're planning to use). There's been quite a few changes to added/renamed/deleted source files, particularly with the editor.

viewtopic.php?f=7&t=18944
This is the thread I mentioned where someone went through and updated the Windows build. He had to make some changes to the code as well for some reason (no errors or warnings are reported by Linux when building those files), so hopefully you don't run into those same snags. We moved to C++11 standard, so you'll likely need to add some flag or something to the OS X build process to enable that in the compiler (it was necessary for both Linux and Windows build files).

https://sourceforge.net/p/allacrost/cod ... runk/game/
Within this directory, Makefile.am is the Linux build file that lists each source file. It is up-to-date and I am actively maintaining it.

https://sourceforge.net/p/allacrost/code/2083/
This is the most recent commit where the OS X build files were updated. They aren't as stale as I thought (January 2013). Most of the changes that have happened since that date is renaming the top-level directory "dat/" to "lua/", which you may not even need to care about since those are script files and not source code. The code in src/editor has undergone a major overhaul.


http://www.allacrost.org/wiki/index.php ... structions
This should help you get a start with OS X compilation. I believe the OS X libraries package it points to is still up-to-date.

http://www.allacrost.org/wiki/index.php/Programmer_Main
Here's a page with a lot of different information for programmers. I know it can be overwhelming joining a project like ours with such a long history and large code base, but hopefully the information here will help you make sense of how everything works together.


I know that "make it build" isn't terribly exciting, but you have to start somewhere and obviously it's hard to work on code if you can't build it. :) Plus in this case, it would be a huge help to us if you can just get updated OS X build files committed. After that, we can talk about where we need you the most and figure out what you can get started on. Sound good? Feel free to ask any questions or for help if you get stuck.
Image
CJ_COIMBRA
Newbie
Posts: 3
Joined: Sun Dec 28, 2014 1:46 am

Re: Want to be a developer? Want to submit a patch? Begin he

Postby CJ_COIMBRA » Wed Dec 31, 2014 11:09 pm

Hi, I checked out but didn't have time yet to sort out the warnings/errors. Hopefully I'll do that this weekend. Happy new year!
User avatar
Roots
Dictator
Posts: 8665
Joined: Wed Jun 16, 2004 6:07 pm
Location: Austin TX
Contact:

Re: Want to be a developer? Want to submit a patch? Begin he

Postby Roots » Thu Jan 01, 2015 12:39 pm

Cool, thanks for checking in. Hope you can find time and get things sorted out. Happy new year! :)
Image
MinionProcyk
Newbie
Posts: 4
Joined: Tue Jun 23, 2015 5:56 pm

Re: Want to be a developer? Want to submit a patch? Begin he

Postby MinionProcyk » Wed Jun 24, 2015 3:51 am

Alright I gave up on trying to compile this on windows (for now). I loaded up linux, installed all the dependencies, run autoreconf ./configure and then when i compile using make I get booboos.

/src/luabind/luabind/config.hpp:27:28 fatal error: boost/config.hpp: no such file or dircetory.

PS: This is a fresh clone from bitbucket.
User avatar
Roots
Dictator
Posts: 8665
Joined: Wed Jun 16, 2004 6:07 pm
Location: Austin TX
Contact:

Re: Want to be a developer? Want to submit a patch? Begin he

Postby Roots » Wed Jun 24, 2015 3:58 am

You're missing one of the boost libraries on your Linux system. I'm using Mint Linux and on my system I have the package "libboost-all-dev" installed. I'm not sure which particular part of the boost library that config.hpp file comes from though.
Image
MinionProcyk
Newbie
Posts: 4
Joined: Tue Jun 23, 2015 5:56 pm

Re: Want to be a developer? Want to submit a patch? Begin he

Postby MinionProcyk » Wed Jun 24, 2015 8:18 pm

That's strange that ./configure couldn't find a missing dependency. Anywho I installed the package and it compiled!

Return to “Programming”

Who is online

Users browsing this forum: No registered users and 6 guests