Hello, we apologize but forum registrations are non-functional at this time. This issue should be fixed around mid-December. Until then, please stop by our Discord channel if you'd like to get in touch with the team. Thanks!

Programmer Roll Call - II

For discussion of the code running behind the game

Moderator: Staff

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

Programmer Roll Call - II

Post by Roots » Thu Jan 28, 2010 7:29 am

I think its time for a new roll call thread (old thread is here).

Purpose: This thread has the following purposes
  • To know how many programmers on the team are active and what parts of the code they are working on
  • To figure out how best to distribute the workload between all of us
  • To make sure we're working on things that interest us and not just things that need to get done
  • To figure out our progress bottlenecks and where we need to focus our team efforts
  • To discuss if we need to recruit more programmers on the team and what areas could use the new help
Use: You should post in this thread for any of the following reasons
  • You want to get to work, but don't know where you should start or where your help is most needed
  • You have finished work in one area of the code and plan to move on to another area
  • You think that we don't have our priorities straight (important coding tasks are being ignored or low priority tasks are receiving too much attention)
  • You are working in an area of the code that you don't find enjoyable and wish to invest your time in another area of code
  • Your availability changes significantly

In general, this thread helps us manage our people and resources and helps us to figure out how best to put them to use. We should also make sure the discussions here get reflected in the Progress Checklist page in the wiki, and likewise that the contents of that page guide our discussions.
Image
User avatar
Roots
Dictator
Posts: 8669
Joined: Wed Jun 16, 2004 12:07 pm
Location: Austin TX
Contact:

Re: Programmer Roll Call - II

Post by Roots » Thu Jan 28, 2010 7:44 am

Here's my status and plans.

I'm very close (1-2 days) to having the new shop code to be what I consider ready for our first internal release of demo 1.0. Its still going to be missing the trade function (swapping character equipment) but that feature isn't entirely necessary and can always be added later. I'm getting a little tired of the shop code and could use a break from it, so after I finish my current work from it I am moving on. Maybe I'll come back and implement the trade feature before we officially release demo 1.0, who knows.

What I plan on doing next is the following.
  1. Write up documentation on the wiki detailing the major design points of shop mode while its still fresh in my mind
  2. Go through the entire C++ code base and start employing the new font sets we decided on and removing the old ones
  3. Go through the global code and do some clean-up work in there. I've been dealing with it a bit from my work in shop mode and I've found it to be pretty sloppy
After that I might actually spend my time creating art for the next release and writing another story chapter. I also want to see if I can find some free sound effects that we can make use of in the game.
Image
rujasu
Developer
Posts: 758
Joined: Sat Feb 24, 2007 10:40 pm
Location: Maryland, USA

Re: Programmer Roll Call - II

Post by rujasu » Thu Jan 28, 2010 9:37 am

I'm going to try to get a working localization template for this release, so we can get some translators working on the dialogue we currently have, and test out Allacrost's localization support. I want this release to be our test-drive for multiple language support, even if we only get 1-2 other languages supported.

On a related note, there's a small amount of dialogue I need to add to the end of the game. Otherwise, most of the dialogue content is in there. Need to space out the enemies a bit better overall, particularly in the desert outskirts map. In general, I'm focused on Lua scripting for the forseeable future as I think we have just about enough support on the C++ end.
User avatar
prophile
Senior Member
Posts: 324
Joined: Fri Jan 27, 2006 12:18 pm
Location: Chaldon, Surrey, UK
Contact:

Re: Programmer Roll Call - II

Post by prophile » Thu Jan 28, 2010 4:52 pm

I am present, and at the moment am working on adding support for mouse control and various other improvements to the video engine.
Alastair Lynn / Resident Whinger / Allacrost
User avatar
gorzuate
Developer
Posts: 2575
Joined: Wed Jun 16, 2004 9:03 pm
Location: Hermosa Beach, CA
Contact:

Re: Programmer Roll Call - II

Post by gorzuate » Thu Jan 28, 2010 11:26 pm

Well I'm around, checking email and monitoring the forums, sometimes popping in on IRC. But I just can't seem to do any coding after coming home from work. Then I think about what it will take to get around this video engine singleton thing in the editor and get all bummed out and then hop onto Hulu :heh: So I don't get anything done.

I'll try to finish up the documentation on the wiki about localization before the release.
Image
User avatar
Roots
Dictator
Posts: 8669
Joined: Wed Jun 16, 2004 12:07 pm
Location: Austin TX
Contact:

Re: Programmer Roll Call - II

Post by Roots » Fri Jan 29, 2010 12:27 am

gorzuate: I suggest you start with something small. Its not easy to get back into coding and if the first thing you do is try to climb a really high wall, it will just demoralize you and you won't want to do anything. I had the same problem when I came back. There were about 6-7 times were I said "Okay, today is the day I get back to work on Allacrost" and it just didn't happen and I ended up playing games or watching videos. Try working on something that you can maybe finish within a couple hours or less and commit it, and see or feel some sense of accomplishment from doing so.

When I finally did get myself to get back to work one morning, I never looked back for a second. Suddenly I realized that it was fun again and it was more fun than playing games and watching movies. I think it was actually drafting up the shop interfaces in GIMP that got my motor started again. So it doesn't even have to be code that gets you started again. It can be anything. Hell, go make some pixel art if you think you'll enjoy it. ;)
Image
rujasu
Developer
Posts: 758
Joined: Sat Feb 24, 2007 10:40 pm
Location: Maryland, USA

Re: Programmer Roll Call - II

Post by rujasu » Fri Jan 29, 2010 8:17 am

gorzuate wrote:Well I'm around, checking email and monitoring the forums, sometimes popping in on IRC. But I just can't seem to do any coding after coming home from work. Then I think about what it will take to get around this video engine singleton thing in the editor and get all bummed out and then hop onto Hulu :heh: So I don't get anything done.

I'll try to finish up the documentation on the wiki about localization before the release.
Even if you can't help out a whole lot in terms of coding, the documentation on localization would help us out a lot. I've been having a little difficulty figuring it out; I know the code is there but I'm still figuring out how to use it.
User avatar
gorzuate
Developer
Posts: 2575
Joined: Wed Jun 16, 2004 9:03 pm
Location: Hermosa Beach, CA
Contact:

Re: Programmer Roll Call - II

Post by gorzuate » Fri Jan 29, 2010 1:36 pm

Ok, I'll try.

(side note: not sure what you're trying to do, Rujasu, but it sounds like you're making it harder than it is...)
Image
User avatar
Roots
Dictator
Posts: 8669
Joined: Wed Jun 16, 2004 12:07 pm
Location: Austin TX
Contact:

Re: Programmer Roll Call - II

Post by Roots » Fri Jan 29, 2010 3:26 pm

I agree with rujasu. We need to understand how our whole internationalization system works. I know we're supposed to put any text that should have a translation in a "Translate()" call, but I don't understand what happens if I move that function call to another line in the code. Or how the different string formats are represented. There's std::string and hoa_utils::ustring of course, and then I think gettext returns char* C-style strings, but do those C-style strings need any sort of memory management on our end? Why does the Translate() function return a std::string and not a ustring? Why is Translate() located in utils.cpp (I thought the SystemEngine was going to manage all gettext stuff and thus it would be in system.cpp)? Etc. These questions should probably be asked/addressed in another thread or a wiki page though to avoid taking this thread off-topic.

-----

I'm working through the boot code right now and I was just going to update the fonts used and such, but there's actually some bad stuff this code is trying to do, like constantly set the default font. Its pretty messy in some areas and isn't using a lot of the helpful/convenient features like TextImage (because when this code was written those features didn't exist). So I'm just going to do a day or so of clean up work here. I won't re-design the code or anything like that, although I do think that in the future boot mode should use Lua a little more heavily.
Image
User avatar
Roots
Dictator
Posts: 8669
Joined: Wed Jun 16, 2004 12:07 pm
Location: Austin TX
Contact:

Re: Programmer Roll Call - II

Post by Roots » Sat Jan 30, 2010 10:20 am

I got phuedx started this morning. He's going to be working on two different features of option boxes. First, he's going to make the scrolling look much better than it is currently. Second, he's going to work on the scroll arrows, enabling us to show/hide them and set the location where they are drawn. Shouldn't be too difficult to do and it will have an immediate and visible benefit for us.
Image
rujasu
Developer
Posts: 758
Joined: Sat Feb 24, 2007 10:40 pm
Location: Maryland, USA

Re: Programmer Roll Call - II

Post by rujasu » Sat Jan 30, 2010 12:18 pm

Roots wrote:I got phuedx started this morning. He's going to be working on two different features of option boxes. First, he's going to make the scrolling look much better than it is currently. Second, he's going to work on the scroll arrows, enabling us to show/hide them and set the location where they are drawn. Shouldn't be too difficult to do and it will have an immediate and visible benefit for us.
Sounds like a great idea. :approve:
phuedx
Newbie
Posts: 3
Joined: Sun Jan 24, 2010 9:23 am

Re: Programmer Roll Call - II

Post by phuedx » Sun Jan 31, 2010 7:59 am

Hullo! A quick status update (I'm posting it here, because I'm not entirely sure where to post it). I've sorted the vertical scrolling by:
  • Refactored some logic in the OptionBox::Draw() that belonged in the ::Update() function - the draw function now projects the pre-calculated vertical offset on to the coordinate system, rather than calculating and then projecting
  • Removed a small addition to the ::_DrawOption() call that offset the x position by the vertical offset
and I've also added several enumerations, OptionBox variables and functions to get and set the vertical and horizontal positions of the scroll arrows.
rujasu
Developer
Posts: 758
Joined: Sat Feb 24, 2007 10:40 pm
Location: Maryland, USA

Re: Programmer Roll Call - II

Post by rujasu » Sun Jan 31, 2010 7:32 pm

phuedx wrote:Hullo! A quick status update (I'm posting it here, because I'm not entirely sure where to post it). I've sorted the vertical scrolling by:
  • Refactored some logic in the OptionBox::Draw() that belonged in the ::Update() function - the draw function now projects the pre-calculated vertical offset on to the coordinate system, rather than calculating and then projecting
  • Removed a small addition to the ::_DrawOption() call that offset the x position by the vertical offset
and I've also added several enumerations, OptionBox variables and functions to get and set the vertical and horizontal positions of the scroll arrows.
Great! Can you create a patch for it? (You should be able to do this with the "diff" feature of SVN, just upload the text it outputs.)
phuedx
Newbie
Posts: 3
Joined: Sun Jan 24, 2010 9:23 am

Re: Programmer Roll Call - II

Post by phuedx » Mon Feb 01, 2010 2:01 pm

See attached. Sorry about not having finished the second task yet, my internship has been seriously hectic.

Addendum:
While I was peeking around OptionBox[.cpp,.h] I thought that perhaps we could also implement separate scrolling modes - spring, proportional (scroll velocity is proportional to the distance from the target), and normal. What do you think?
Attachments
phuedx.optionbox.patch.txt
(9.4 KiB) Downloaded 254 times
User avatar
Roots
Dictator
Posts: 8669
Joined: Wed Jun 16, 2004 12:07 pm
Location: Austin TX
Contact:

Re: Programmer Roll Call - II

Post by Roots » Mon Feb 01, 2010 2:30 pm

Took a quick look at the patch and it seems like it will do the trick. :approve: There are some parts that don't confirm to the code standard though, like your naming of the scroll direction enums. But it looks like you're not alone because a lot of the existing enums in option.cpp don't conform to the standard fully either. :heh: Don't worry about finishing everything all at once. Just take your time and do what you can when you can.
phuedx wrote: Addendum:
While I was peeking around OptionBox[.cpp,.h] I thought that perhaps we could also implement separate scrolling modes - spring, proportional (scroll velocity is proportional to the distance from the target), and normal. What do you think?
Sounds like a good idea to me. I don't know if we can or will make immediate use of such a feature though, so we might want to put the idea on the backburner and come to it later once the more important stuff is out of the way.


I did think of one problem with the scroll arrows yesterday as I was going through the code and updating it to use our new standard font sets. We have some interfaces that have a very limited amount of space. For example, the action menu in battle mode. As it stands, vertical scroll arrows will be drawn above and below the textbox (at either left, right, or center). We have very very little vertical space to work with in this window and we want to display as many items in the list at a time as we can. If things stay the way they are, we'll either have to draw those arrows on top of the menu border (yuck) or greatly shrink the vertical size of the option box to fit the arrows inside the window, which would leave a lot of empty space (also yuck).

For this particular case, the ideal solution would be to draw the vertical scroll arrows on the sides of the option box (to the left or to the right of the box). We haven't discussed this yet as a team, but I'm pretty damn sure this is going to be a mandatory feature we need to add. Don't go out and code it yet though. We should probably have a discussion somewhere (not here) and list all the possible locations/orientations in which we want to be able to draw our scroll arrows.
Image
User avatar
Roots
Dictator
Posts: 8669
Joined: Wed Jun 16, 2004 12:07 pm
Location: Austin TX
Contact:

Re: Programmer Roll Call - II

Post by Roots » Mon Feb 01, 2010 8:42 pm

At my request, shmoopy has agreed to work on boot mode for the foreseeable future. He made sure to let me know that his time is limited so he doesn't know how long it will take him to deliver on all of the necessary items so we might want to put a second person on there if we can spare one. But I've asked shmoopy to prioritize adding support for determining and selecting available languages so hopefully he can have that ready for us before the internal release is ready later this month.
Image
User avatar
Roots
Dictator
Posts: 8669
Joined: Wed Jun 16, 2004 12:07 pm
Location: Austin TX
Contact:

Re: Programmer Roll Call - II

Post by Roots » Mon Feb 01, 2010 10:54 pm

Roots wrote: What I plan on doing next is the following.
  1. Write up documentation on the wiki detailing the major design points of shop mode while its still fresh in my mind
  2. Go through the entire C++ code base and start employing the new font sets we decided on and removing the old ones
  3. Go through the global code and do some clean-up work in there. I've been dealing with it a bit from my work in shop mode and I've found it to be pretty sloppy
#2 on my list is now finished. I'm going to take a short break (1-2 days) from coding because I'm a little pooped out from that surprisingly. I think I'll work on my shop mode documentation (#1) during that time, or maybe even work on getting us some more art/sound/story.

As I had to visit nearly every game mode, I got a good summary of the status of the code for every game mode and made a mental list of work to be done in each area.
  • BootMode - code is very messy in boot.cpp and the options interface really needs a lot of work to make it look clean and improve functionality
  • MapMode - didn't notice anything needing improvement here
  • BattleMode - I think the victory/defeat screen needs to be improved in how it looks and presents information. There's also a lot of inefficient text drawing being done (rendering every frame instead of using a TextImage) all over the place. There's some annoying bugs with battle damage numbers as well, such as them appearing in odd places, floating upward too high and not fading away generally, and sticking around even as the victory screen remains
  • MenuMode - by far the worst I saw. Lots of messy code in the design and the interface really needs improvements as well. I think I'm going to address this one myself and do an interface discussion thread similar to how I did for shop mode a couple weeks ago
  • SaveMode - obviously its a placeholder right now and not anywhere near what should be its final state. Still I think it can be cleaned up a bit in its text layout and being more specific about what saved files are available to load and what ones already exist and would have to be overwritten by the player if saved to
  • PauseMode - needs no work at all
  • ShopMode - only work it needs is the trade interface implemented, which will be a lot of work.
So my new plans are as follows (in this order)
  1. Write up documentation on the wiki detailing the major design points of shop mode while its still fresh in my mind
  2. Start a discussion and interface design thread on menu mode
  3. Go through the global code and do some clean-up work in there. I've been dealing with it a bit from my work in shop mode and I've found it to be pretty sloppy
  4. Make menu mode look as clean as shop mode and pretty much re-write the underlying code so its not so messy and shaky
Image
User avatar
Roots
Dictator
Posts: 8669
Joined: Wed Jun 16, 2004 12:07 pm
Location: Austin TX
Contact:

Re: Programmer Roll Call - II

Post by Roots » Thu Feb 04, 2010 11:21 pm

Roots wrote: So my new plans are as follows (in this order)
  1. Write up documentation on the wiki detailing the major design points of shop mode while its still fresh in my mind
  2. Start a discussion and interface design thread on menu mode
  3. Go through the global code and do some clean-up work in there. I've been dealing with it a bit from my work in shop mode and I've found it to be pretty sloppy
  4. Make menu mode look as clean as shop mode and pretty much re-write the underlying code so its not so messy and shaky
#1. In progress
#2. In progress
#3. Done
#4. Cancel

I'm canceling #4 because its not a good time to do this work right now. It has a prerequisite of having #2 complete and its going to result in completely tearing apart menu mode. I don't want our upcoming internal/unstable release nor the final demo release to be held up by this. rujasu also pointed out this would be a good thing for a new contributor to work on, since the code isn't too difficult, they'll have a completed interface draft to follow, and they'll have the shop code as a great example of how to do it.


So I'm changing my plan again. :angel:
  1. Write up documentation on the wiki detailing the major design points of shop mode while its still fresh in my mind
  2. Start a discussion and interface design thread on menu mode
  3. Go through all text in C++ and Lua and add calls to Translate() where appropriate (required for the release this month)
  4. Migrate global code to new home in src/common/global/ as I proposed here
  5. Fix/improve minor issues in battle mode
  6. Fix/improve minor issues in map mode
Battle mode issues are things I've noticed lately such as: the movement/location of icons on the stamina bar, improving the battle damage text, fixing the damage text still in motion when the battle ends, changing character positions to their proper place, improving flow from battle start to begin (see if I can get the characters to run on the screen from the left and then go into the idle position with weapon drawn), improving flow from enemies defeated to victory/defeat screen (doing a gradual fade instead of instantly displaying victory/defeat), improving the look, feel, and location of the battle victory and defeat menus, etc.

Map mode issues include: fixing enemy sprites getting stuck on one another, adding in ability for dialogue manager to be used without a character name attached (ie for reading signs or events such as "Kyle joined the party"), improving flow from map to battle mode (playing an encounter sound, maybe a very primitive visual transition), etc.


I don't expect to get all of these things done because although each individual task isn't too difficult, collectively its a lot. But there isn't much else that needs to be finished in the way of coding for this next release. Most of the remaining work is scripting, text, and making sure profiles/languages work in boot mode. So I'm trying to focus on only small tasks that can still have an improvement on the release quality.
Image
User avatar
Drakkoon
Developer
Posts: 173
Joined: Wed Jan 10, 2007 5:54 pm
Location: Montréal, Qc

Re: Programmer Roll Call - II

Post by Drakkoon » Sat Feb 06, 2010 10:34 am

I'm still visiting the forums from time to time.

I don't know when I'll be able to work on the code again, but I do have the intention to come back at some point. I'm currently doing my second internship at Artificial Mind and Movement, so I'm really learning lots of stuff about game programming and I hope to be more useful when I become more active over here again.

In the meatime, keep up the good work guys and good luck with your next release!
rujasu
Developer
Posts: 758
Joined: Sat Feb 24, 2007 10:40 pm
Location: Maryland, USA

Re: Programmer Roll Call - II

Post by rujasu » Sat Feb 06, 2010 12:46 pm

Drakkoon wrote:I'm still visiting the forums from time to time.

I don't know when I'll be able to work on the code again, but I do have the intention to come back at some point. I'm currently doing my second internship at Artificial Mind and Movement, so I'm really learning lots of stuff about game programming and I hope to be more useful when I become more active over here again.

In the meatime, keep up the good work guys and good luck with your next release!
Thanks for the update, man! :)
Post Reply