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

For discussion of the code running behind the game

Moderator: Staff

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

Programmer Roll Call

Post by Roots » Mon Oct 23, 2006 2:55 pm

We have many more programmers on this team now than we've ever had I believe. So, I want to understand of what each of you are doing, would like to do, etc. There are a number of reasons for us to discuss this:
  • - We want to best distribute this workload among us
    - We want to work on the areas of code that interest us, personally
    - We want to be putting our skill sets to the best use possible
    - We want to understand where the bottlenecks are, and what areas of code are less important right now

If you would please, post the following info:
  • - What you are (supposed to be) working on right now
    - What you personally would like to be working on, either now or in the future
    - A rough estimate of your availability until January
    - Any other notes or remarks you'd like to make about this topic


Here's my responses:
  • - I'm supposed to be working on the map code right now, but I don't have any time

    - I would like to work on the map code with one other person, and also address general issues in the engine

    - My availability is very scarce until December. I now have one month to finish my thesis :uhoh:

    - I think the most important things to focus on right now are: the scripting engine, improving the video engine, and making tools available

Please bring any other programming-related issues forward as well. I really want to see some open discussion in this thread about what all of you are thinking in terms of the programming related problems/issues going on right now. :approve:
Image
User avatar
ChopperDave
Developer
Posts: 543
Joined: Tue Sep 05, 2006 10:07 am

Post by ChopperDave » Mon Oct 23, 2006 3:13 pm

-I'm supposed to be working on menu mode. However, I'm reaching a point with it now where I won't be able to do much. The two main features left to implement/test are item filtering and scrolling, both of which require more items. Since at this juncture we're focused on getting the tech right and haven't had time for content, I see myself having less to do.

-Personally, I'd love to work on the video engine. Problem is I don't know OGL (I have a good understanding of DX though), so I'm not sure if this would be a total waste of time or not.

-Until January, my schedule will be the same it always has been. I don't foresee any significant downtime (except for Thanksgiving, Christmas, and New Year's of course).

-There are several areas where Roots wanted to have a second coder (battle mode, map mode, etc.). If you want me to help out in any of those areas let me know. Bear in mind though that I don't know how those sections of code work, so I need some time to figure them out.
User avatar
Roots
Dictator
Posts: 8669
Joined: Wed Jun 16, 2004 12:07 pm
Location: Austin TX
Contact:

Post by Roots » Mon Oct 23, 2006 3:31 pm

Andy, why don't you take the baton for cleaning up the video engine code since you are stuck until you have the support you require for the menu code? The baton is kind of dropped right now as neither MindFlayer nor byaku have had the time to work on it, and by doing this you can also get an idea if you'd be able to help out on the video engine or not despite your lack of knowledge in OpenGL. (The code cleaning doesn't really require any OpenGL knowledge, so you'd be good there). :angel:
Image
User avatar
ChopperDave
Developer
Posts: 543
Joined: Tue Sep 05, 2006 10:07 am

Post by ChopperDave » Mon Oct 23, 2006 3:44 pm

Alright. I stoled it.

What are you looking to have cleaned up in the video engine? Anything in particular? Or is it just optimizing and removing garbage?
User avatar
Steu
Developer
Posts: 926
Joined: Thu Jan 05, 2006 3:41 pm
Location: Medicine Hat

Post by Steu » Mon Oct 23, 2006 4:10 pm

- What you are (supposed to be) working on right now
Right now I'm working on the scripting engine.
- What you personally would like to be working on, either now or in the future
I'll work pretty much on anything, right now scripting is at the top of my interest list.
- A rough estimate of your availability until January
same as always, been on a little downtime lately, with being sick, and my brother-in-laws wedding.
- Any other notes or remarks you'd like to make about this topic
User avatar
gorzuate
Developer
Posts: 2575
Joined: Wed Jun 16, 2004 9:03 pm
Location: Hermosa Beach, CA
Contact:

Post by gorzuate » Mon Oct 23, 2006 4:14 pm

ChopperDave wrote:Alright. I stoled it.

What are you looking to have cleaned up in the video engine? Anything in particular? Or is it just optimizing and removing garbage?
The code cleanup means making it adhere to the code standards. That's it. You don't have to optimize anything. Although if you come across some compiler warnings, those should be fixed.
Image
User avatar
gorzuate
Developer
Posts: 2575
Joined: Wed Jun 16, 2004 9:03 pm
Location: Hermosa Beach, CA
Contact:

Post by gorzuate » Mon Oct 23, 2006 4:21 pm

- What you are (supposed to be) working on right now
Right now I'm working on the editor, getting it working on Macs, and porting it to Qt 4. I'm also working on all the stuff assigned to me for getting this 0.1.1 release out.
- What you personally would like to be working on, either now or in the future
The editor and miscellaneous items here and there. Map mode bugs, make setup bugs, etc.
- A rough estimate of your availability until January
Not as available as I'd like. I have 2 semester projects to work on :| These will both clear up around Dec. 10 or so. As well as TA duties. So my availability will be a little sketchy. But I'll be around on the forums and IRC.
- Any other notes or remarks you'd like to make about this topic
Good topic.
Image
User avatar
byaku
Developer
Posts: 165
Joined: Mon Sep 11, 2006 12:45 pm
Location: Valencia, Spain
Contact:

Post by byaku » Tue Oct 24, 2006 1:53 am

What you are (supposed to be) working on right now
Working on the audio engine. It's almos done. To have it complete it needs to add a few features (hope to have it complete and working for these weekend)

What you personally would like to be working on, either now or in the future
I'd like to try with the video engine, with the possibility of changing sometimes to other areas, if boring or stucked.

A rough estimate of your availability until January
Limited due to work. I'm working on Hoa mainly on weekends right now. However I keep watching the forums (and attending the meetings).

Any other notes or remarks you'd like to make about this topic
User avatar
MindFlayer
Developer
Posts: 688
Joined: Fri Jan 06, 2006 5:55 am
Location: Kuopio / Tampere, Finland
Contact:

Post by MindFlayer » Tue Oct 24, 2006 2:29 am

What you are (supposed to be) working on right now
Currently, I'm working on the battle mode. I need to fix the crashing, which happens because none of the graphics are loaded for the characters. I also need to implement some new graphical features such as Claudius attacking , enemy attacking, scripting...

What you personally would like to be working on, either now or in the future
As you can see, the battle mode requires *a lot* of work so I'm practically tied to work on it. Anyway, I've begun to like it so it's not that big of a deal.

A rough estimate of your availability until January
It varies a lot. Sometimes I'm near-burnt-out and sometimes I'm barely doing anything. In either case, I think I should be able to squeeze the time needed, especially when it gets closer to Christmas. I hope. :uhoh:
User avatar
ChopperDave
Developer
Posts: 543
Joined: Tue Sep 05, 2006 10:07 am

Post by ChopperDave » Thu Nov 09, 2006 1:05 pm

I've been slacking off as of late, mainly because menu mode is on hold until more content gets put in the game (this is just a nice way of saying I've been incredibly lazy).

To get me off my ass, does anyone out there need help with anything? I develop on Windows, so if it's Linux or Mac stuff I can't help you there.

But if there's nothing, I don't mind slacking off some more...I have other crap I can attend to.
User avatar
Roots
Dictator
Posts: 8669
Joined: Wed Jun 16, 2004 12:07 pm
Location: Austin TX
Contact:

Post by Roots » Thu Nov 09, 2006 1:56 pm

I can't think of anything off the top of my head except for fixing all of the problems in the current svn so that the game compiles and runs well. That's very important to do soon. If you're interested in building on the global code, that's an option. Or you could work on the system code (thread support, timed functions..etc., there's a thread about it somewhere).


That's all that I can think of, but I'm pretty out of it right now. gorzuate might have a better answer.
Image
User avatar
ChopperDave
Developer
Posts: 543
Joined: Tue Sep 05, 2006 10:07 am

Post by ChopperDave » Thu Nov 09, 2006 4:37 pm

Yeah. I thought about adding some support to the skills global code, but I would have preferred we have one person managing the global code, so it doesn't end up being a huge clump of patches.

But I could modify it anyway.

Gorz, you have any ideas?
User avatar
gorzuate
Developer
Posts: 2575
Joined: Wed Jun 16, 2004 9:03 pm
Location: Hermosa Beach, CA
Contact:

Post by gorzuate » Thu Nov 09, 2006 9:50 pm

Would you be interested in making NPCs easier to talk to? There's a whole discussion on how to do so in the Shooting for 0.1.1 Demo release thread in the General Development forum.
Image
User avatar
ChopperDave
Developer
Posts: 543
Joined: Tue Sep 05, 2006 10:07 am

Post by ChopperDave » Thu Nov 09, 2006 11:28 pm

OK. I saw that. I'll give it a go.
User avatar
ChopperDave
Developer
Posts: 543
Joined: Tue Sep 05, 2006 10:07 am

Post by ChopperDave » Sat Nov 11, 2006 1:12 pm

OK. After tinkering around some, here's what I have come up with:

The NPCs are hard to talk to not because they walk to fast (they do, but that's not the main problem), but because wither they are in mid-transition between the tile we want to click on and their destination tile. Since their position is updated as soon as they want to move, technically they are no longer where you are clicking, even though it looks that way.

This explains why when you click on an NPC it seems like the confirm is not being registered, and why you can click OK on an NPC and they'll talk to you, even though they are still 1 tile off. My suggestion would be to update the NPC position after the animation has finished, this way the player does not have to lead the NPC and guess where they're going to trigger a conversation. They can click on where the NPC currently is.

Also, the SpriteDialogue destructor throws an unhandled exception when deleting the speaking_action. Since we check for !=NULL, I find this hard to believe. Any ideas on that one?
User avatar
gorzuate
Developer
Posts: 2575
Joined: Wed Jun 16, 2004 9:03 pm
Location: Hermosa Beach, CA
Contact:

Post by gorzuate » Sat Nov 11, 2006 6:18 pm

ChopperDave wrote:OK. After tinkering around some, here's what I have come up with:

The NPCs are hard to talk to not because they walk to fast (they do, but that's not the main problem), but because wither they are in mid-transition between the tile we want to click on and their destination tile. Since their position is updated as soon as they want to move, technically they are no longer where you are clicking, even though it looks that way.

This explains why when you click on an NPC it seems like the confirm is not being registered, and why you can click OK on an NPC and they'll talk to you, even though they are still 1 tile off. My suggestion would be to update the NPC position after the animation has finished, this way the player does not have to lead the NPC and guess where they're going to trigger a conversation. They can click on where the NPC currently is.
I believe the reason why a sprite's position is updated right away, before they've moved there, was for collision detection purposes. If you wait to update the sprite's position until after they finish moving, they could well move onto a tile that's already occupied (since their position determines a tile's occupancy).

Map mode needs to be rewritten, and some ideas have been thrown around about it. If rewriting map mode sounds like something you'd like to do, I'd suggest reading up on those threads (here, in this forum somewhere, probably titled Map Mode Code and such).

But you don't think the conversation trigger area of the NPCs could be enlarged? It seems like it could be...
ChopperDave wrote: Also, the SpriteDialogue destructor throws an unhandled exception when deleting the speaking_action. Since we check for !=NULL, I find this hard to believe. Any ideas on that one?
Not sure about this.
Image
User avatar
Roots
Dictator
Posts: 8669
Joined: Wed Jun 16, 2004 12:07 pm
Location: Austin TX
Contact:

Post by Roots » Sat Nov 11, 2006 6:45 pm

Yeah, map mode needs to be re-designed. The biggest design change is that we are going to move from tile based movement/detection to a more Chrono Trigger-style movement, where you can walk short steps instead of being forced to move across entire tiles. This is a really hard thing to do though, because the current movement system, draw system, event system, etc. are all designed with tile-based movements in mind.


If you want to go ahead and work on the re-design CD, I say go ahead. :approve: Keep me in the loop on it though, because I want to have a say in the new design too. Or if you want to just add the temporary fix, you can just enlarge the target area for talking to sprites. That should be pretty easy to change I think. :)
Image
User avatar
ChopperDave
Developer
Posts: 543
Joined: Tue Sep 05, 2006 10:07 am

Post by ChopperDave » Sat Nov 11, 2006 8:08 pm

Is anyone working on map mode right now? Or is assigned to it?

As far as the redesign, we could allow free movement and simply do collision using 2D bounding boxes (that are fitted as tightly as possible to the sprite). Then for confirm presses, we can simply project his bounding box 1 unit in the direction he is facing and see who's bounding box we collide with, and that's our target. If there is more than one hit, then we can just use the first one.

The only problem is for all of this to work we still have to decide on the units of measurement for movement. Pixels are obviously too small, and tiles are too large. How about using the current step size as our unit measurement?
User avatar
Roots
Dictator
Posts: 8669
Joined: Wed Jun 16, 2004 12:07 pm
Location: Austin TX
Contact:

Post by Roots » Sat Nov 11, 2006 8:37 pm

ChopperDave wrote:Is anyone working on map mode right now? Or is assigned to it?
No one is working on it right now. Technically its assigned to me (I wrote 99% of the code), but I haven't had time to work on it in quite a while unfortunately. :( So go ahead and take it if you wish. :)
ChopperDave wrote:As far as the redesign, we could allow free movement and simply do collision using 2D bounding boxes (that are fitted as tightly as possible to the sprite). Then for confirm presses, we can simply project his bounding box 1 unit in the direction he is facing and see who's bounding box we collide with, and that's our target. If there is more than one hit, then we can just use the first one.

The only problem is for all of this to work we still have to decide on the units of measurement for movement. Pixels are obviously too small, and tiles are too large. How about using the current step size as our unit measurement?

The step size is determined by how fast or slow the sprite is walking. :| I think its fine if movement is a continuous rather than discrete variable. For example, when I set a sprite's movement to "2.5" in the current map code, that basically means that a sprite takes 2.5 seconds to move from one tile to the next. So when I move my character, the way it works is it detects how much time has passed since the last frame, then adds that time to the sprite's walk variable (I forgot exactly what I called it). Then the current position is simply that value divided by 2.5, and that's the tile offset from the current tile that the sprite is walking on. I didn't explain that very well, but hopefully it made sense. :eyebrow:


There is a page in the wiki about this stuff here: http://allacrost.sourceforge.net/wiki/i ... xploration

Please feel free to add your thoughts to it, and then it can become the map mode "design document" that we follow when we implement the code. You'll notice that I have bounded boxes for collision detection there. Notice that the collision box only covers a portion of the sprite.


I was thinking that for map collision properties, we might want to divide each tile up into four parts and specify a collision variable for each. That might look/feel better than having map collision on a tile-by-tile basis only.


PS: We should probably move any further discussion of this to another thread ;)
Image
User avatar
Steu
Developer
Posts: 926
Joined: Thu Jan 05, 2006 3:41 pm
Location: Medicine Hat

Post by Steu » Sat Nov 11, 2006 9:15 pm

ChopperDave wrote: Also, the SpriteDialogue destructor throws an unhandled exception when deleting the speaking_action. Since we check for !=NULL, I find this hard to believe. Any ideas on that one?
This started with the lua scripting stuff I added. I'm still trying to figure out why. The code tries to delete more SpriteDialogue then is created.
Locked