It is currently 11 Sep 2025, 22:55
   
Text Size

Introducing myself

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Introducing myself

Postby SBeauchamp » 19 Mar 2012, 13:35

Hey devs, I've been told to introduce myself here in order to go on with my request to join the dev team, so here I am!


My name is Stefan, I'm 26 and from Canada. I had discovered Forge a couple months ago but didn't really bother looking into it at that time. I just recently started playing around with it, and got a little bit more curious. I haven't been playing Paper MTG in a couple years now (still have a strong grasp on the rules and the concepts), but it's always something I've thought of going back to. Forge seems looked like a good option to stay connected with MTG without the investment and the complication of building back a collection.

As for my programming background, I've been working in the video game industry for a couple years now (around 3 years of experience). Over those years, I've had a couple of different positions(Graphics, Gameplay, Tools Programmer). I've been using mostly C++ for around 6 years now, with some amount of C# as a Tools Programmer and scripting through Lua/Python here and there. I have some Java knowledge (3 years during college) but I haven't really played with it since the switch to C++.

I'd be interested in joining the dev team, working on polishing and adding new features in the areas of UI/Tools (mostly flow/looks/bug with the game itself), Gameplay & AI. Looking forward to meeting you guys!


I've got a couple of questions already (feel free to answer any of them :) ):
Is there anything I should read to get me started (I've already went through the setup, and I've got everything running)?
Do you keep track of who is currently working on certain features (appart from the bug tracking)?
Are there any big changes incomming?
How many people are actively working on the code and on the card scripting?
How's big or commmited is the userbase/community?
SBeauchamp
 
Posts: 5
Joined: 18 Mar 2012, 18:58
Has thanked: 1 time
Been thanked: 2 times

Re: Introducing myself

Postby Chris H. » 19 Mar 2012, 14:36

Good to meet you Stefan.

You are now listed as a group member and this will give you commit privs. It may take a few minutes to a day or so for this to take effect.

It looks like you found the getting started wiki and have followed the instructions. There are a number of topics on our dev forum that may provide useful info. And it never hurts to ask a question or two.

Currently we have Doublestrike working on the new UI. Max is refactoring portions of the quest mode. Fnoed is back after a break and is helping in a couple of areas. Skiera has made a few fixes to the draft mode. Rob was working on improving the AI portion of the draft mode last I heard. Dave put together our Maven based build and release system. Slapshot5 and Sloth have added a lot of scripting code. Sol created the initial AbilityFactory scripting code which in turn is an improvement over Rob's earlier keyword scripting system.

We have a number of people who chip in small pieces of code at times (myself included.)

We also have a good group of people who have studied the card scripting system and their contributions are welcomed. Jeff, Sloth, Marc, Sol and a few others have an excellent grasp of this card scripting system.

There are several thousand users who use Forge so it is popular to a degree. We have several dozen users who download the daily snapshot build and they provide us with useful bug reports.

The major big code changes that we can expect to see in the upcoming future involve the new UI and some code refactoring. People tend to discuss their projects here in the dev forum. It helps to read the new messages as they are posted.
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Introducing myself

Postby moomarc » 19 Mar 2012, 15:26

Well Chris beat me to pretty much everything I'd typed, so I'll just add a "Welcome aboard." :mrgreen:

One additional thing I can add. I've got the ftp details for uploading images to the Cardforge site which hosts all the images for download. So drop a post here somewhere and I'll put it up.
-Marc
User avatar
moomarc
Pixel Commander
 
Posts: 2091
Joined: 04 Jun 2010, 15:22
Location: Johannesburg, South Africa
Has thanked: 371 times
Been thanked: 372 times

Re: Introducing myself

Postby friarsol » 19 Mar 2012, 16:07

SBeauchamp wrote:My name is Stefan, I'm 26 and from Canada. I had discovered Forge a couple months ago but didn't really bother looking into it at that time. I just recently started playing around with it, and got a little bit more curious. I haven't been playing Paper MTG in a couple years now (still have a strong grasp on the rules and the concepts), but it's always something I've thought of going back to. Forge seems looked like a good option to stay connected with MTG without the investment and the complication of building back a collection.
That sounds pretty similar. I don't "actively" play anymore, but am interested in staying connected with the game. My friends who do still play convince me to goto a Prerelease once a year or so. More hands are always welcome, especially those with UI experience.

I'm not sure where you were looking to jump into the code, but one Feature that's been waiting for a dev for a while is upgrading the Multiple Blockers Combat from the old rules to the new rules. This would cover UI, Gameplay, with a touch of AI work.

Currently in Forge, when combat damage is ready to be assigned a popup Dialog shows up with the Blocking creatures (plus the Defending Player/Planeswalker if the creature has Trample). And you assign Damage however you like, and only to the Player if each Blocker has received Lethal Damage.

With the new system after Blockers are Declared but before any triggers, the Attacking player "Stacks" the blockers in the order that they will receive Combat Damage. Then when Damage is ready to be assigned the same thing happens as above, except the order needs to be followed while assigning damage.

Of course, you can jump in wherever you feel comfortable, I just know this is one area that hasn't been touched since I joined on the Dev team almost two years ago, so figured it might be a good place to look into as a starting point.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Introducing myself

Postby Doublestrike » 20 Mar 2012, 00:14

Hi Stefan, welcome aboard!

Would be great to have help with the UI, we can work together on that if you want. The UI design progress in the last six months has been pretty much a full blown massive refactor (Nov - Jan) and then performance fixes (Jan-Feb). Now that the core design is more or less in place, I'm updating the architecture for the various areas to better suit performance, gameplay, and remove poor code (of my own). The Home screen just finished this process, the Match UI is being worked on now ("big change incoming" flag).

You mentioned AI - that might be the best place to start. I don't think anyone is working on that (the last guy left?), so you could run pretty freely...I've seen some discussion here and there circling around this topic but it doesn't seem like anyone is ready to dive in and do it yet...not sure what the other devs think, I could be way off base.
---
A joke is a very serious thing.
User avatar
Doublestrike
UI Programmer
 
Posts: 715
Joined: 08 Aug 2011, 09:07
Location: Bali
Has thanked: 183 times
Been thanked: 161 times

Re: Introducing myself

Postby SBeauchamp » 20 Mar 2012, 14:30

Thanks for the information, and the welcome!

I like the idea of adapting the multiple blocker implementation to the new 10Edition+ rules. I think, like friarsol mentionned, that it'll give me the chance to look into different parts of the code. I don't know how good of an idea it is to work on that until the new match UI is in (at least the UI related part of the changes), but I can at least take a look and give myself an idea of what needs to be done. At the same time, I'll try to catch up on what's happenning (and what changes came in the last couple months).

On an unrelated note, from the "How to Get Started" page, I can see that you guys always run Checkstyle on every file you work with. What about FindBugs and PMD? I've played around with a couple of files and they already contained a couple of errors (found with these two plug-ins).

I've made some changes to the deck editors (standardization, scalable frame, added filters). Any chances of this clashing with your changes Doublestrike? I mostly made those changes to familiarize myself with the code, so I could just scrap the changes, but unless there's something else coming soon on the UI side, they're probably worth it.

Edit: This is actually part of what I've changed. Just taken this quote from a monthish old post, if you haven't attended this yet DoubleStrike, I'll be able to commit those changes.

Chris H. wrote:I would expect that all of the various deck editors and the card shop would receive the filters seen in the constructed mode deck editor. I also expect that the old style of filters seen in the quest mode deck editor would be brought up to date by using the graphical based check boxes as seen in the constructed mode deck editor. :)
SBeauchamp
 
Posts: 5
Joined: 18 Mar 2012, 18:58
Has thanked: 1 time
Been thanked: 2 times

Re: Introducing myself

Postby Doublestrike » 21 Mar 2012, 00:51

SBeauchamp wrote:I can see that you guys always run Checkstyle on every file you work with. What about FindBugs and PMD?
Checkstyle is a bit...controversial...at present. We're trying to find a happy medium where consistent code standards don't conflict with personal style. So, it's implemented, most of the time, and I think the general consensus is to do your best to conform to those flags.

I'm glad you asked about FindBugs and PMD, I'm curious about those myself. I played with them a month or two ago, and got some strange errors, much more controversial than the Checkstyle stuff. So, FindBugs and PMD are probably on the back burner for the foreseeable future. For now I think they're just helpful recommendations for people who haven't used them before.

SBeauchamp wrote:I've made some changes to the deck editors (standardization, scalable frame, added filters). Any chances of this clashing with your changes Doublestrike?
Wonderful! No. To help you out as you go, there's a package called forge.gui.toolbox that has all of the custom components used throughout the UI. The main ones in there are FPanel (allows for rounded corner panels), FLabel (uses the "builder" pattern to facilitate inline declaration, also has a few other bells and whistles) and FSkin (holds all styling info - colors, icons, etc.) FSkin uses an enum/interface structure to access all of these different styles, for instance to get the "Zeppelin" icon you'd use FSkin.getIcon(FSkin.QuestIcons.ICO_ZEP).

The deck editors are on my list but I haven't gotten around to them yet. It may be worth opening a thread to discuss the various ideas. I've got quite a few myself. The biggest change would be using pictures instead of text to view the cards. This would go hand in hand with a battlefield / hand refactor, since the code (a CardArea I think) is intentionally similar and could do with some upgrades.

The best sample of UI code that I'd prefer you follow is in the home screen, in forge.gui.home.*. These use singleton instances for everything, have split view/control files (denoted with Vfoo.java and Cbar.java), and a few interfaces (denoted with Ibaz.java). These packages are essentially finished, and the rest of the UI will eventually follow these standards (match UI is being updated now).

====

A huge move on the deck editor would be to put it into the same frame as everything else, without opening a new window. This would use forge.control.FControl.java#changeState() to actuate. The deck editors are the last thing that isn't using this function. After that's unified, we can start using the overlay layer to do all sorts of exciting stuff. Not to mention all of the other layers for card effects, animations, etc (some of which is already started in the match UI, but only on my machines).

OK sorry for the long post :rolleyes: but should give you enough meat to chew on for a while.
---
A joke is a very serious thing.
User avatar
Doublestrike
UI Programmer
 
Posts: 715
Joined: 08 Aug 2011, 09:07
Location: Bali
Has thanked: 183 times
Been thanked: 161 times

Re: Introducing myself

Postby Chris H. » 21 Mar 2012, 01:30

SBeauchamp wrote:I've made some changes to the deck editors (standardization, scalable frame, added filters). Any chances of this clashing with your changes Doublestrike? I mostly made those changes to familiarize myself with the code, so I could just scrap the changes, but unless there's something else coming soon on the UI side, they're probably worth it.
`
I think that it would be OK for SBeauchamp to merge his deck editor changes into the SVN. A minor upgrade at this time would be appreciated by the users.

Doublestrike wrote:The deck editors are on my list but I haven't gotten around to them yet. It may be worth opening a thread to discuss the various ideas. I've got quite a few myself.
`
I can make this new topic a "sticky" once this new deck editor topic is started.
User avatar
Chris H.
Forge Moderator
 
Posts: 6320
Joined: 04 Nov 2008, 12:11
Location: Mac OS X Yosemite
Has thanked: 644 times
Been thanked: 643 times

Re: Introducing myself

Postby Doublestrike » 21 Mar 2012, 03:08

Oh, @SBeauchamp, I forgot to add, if anything is wrong in the Wiki, edit away :)
---
A joke is a very serious thing.
User avatar
Doublestrike
UI Programmer
 
Posts: 715
Joined: 08 Aug 2011, 09:07
Location: Bali
Has thanked: 183 times
Been thanked: 161 times

Re: Introducing myself

Postby Max mtg » 21 Mar 2012, 07:50

SBeauchamp wrote:I've made some changes to the deck editors (standardization, scalable frame, added filters). Any chances of this clashing with your changes Doublestrike? I mostly made those changes to familiarize myself with the code, so I could just scrap the changes, but unless there's something else coming soon on the UI side, they're probably worth it.
Where can one see them? Though Doublestirke has patched the UI in the whole game, deckeditor has not changed much since I reforged them last summer.
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times

Re: Introducing myself

Postby SBeauchamp » 22 Mar 2012, 02:32

Max mtg wrote:Where can one see them? Though Doublestirke has patched the UI in the whole game, deckeditor has not changed much since I reforged them last summer.
I just commited the changes. Basically, I've just used the global deck editor, and applied a similar look to the Draft/Quest/Shop "deck editors".

I'll look into the new the combat damage rules next. At a later time, if you don't get to it before me Doublestrike, I'd be glad to look into a more serious refactors of the deck editors.
SBeauchamp
 
Posts: 5
Joined: 18 Mar 2012, 18:58
Has thanked: 1 time
Been thanked: 2 times

Re: Introducing myself

Postby Max mtg » 22 Mar 2012, 05:53

Fitlers in card shop for quest mode: as you choose a color, then return that filter to its original state, sealed products don't appear back into list.
Single class for single responsibility.
Max mtg
Programmer
 
Posts: 1997
Joined: 02 Jul 2011, 14:26
Has thanked: 173 times
Been thanked: 334 times


Return to Developer's Corner

Who is online

Users browsing this forum: Google [Bot] and 23 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 24 users online :: 1 registered, 0 hidden and 23 guests (based on users active over the past 10 minutes)
Most users ever online was 7967 on 09 Sep 2025, 23:08

Users browsing this forum: Google [Bot] and 23 guests

Login Form