Jump to content
XCOMUFO & Xenocide

Short Term (next 3 Months) Development Plan


dteviot

Recommended Posts

  • I'm hoping to have a progress release of 0.2 out by 1st November. There are several reasons for this.
  • Firstly, 0.2 is nearly done (as far as I am concerned.) The major feature left to do is manufacturing, and that should be done within a week. Red Knight has taken Bump mapping the geoscape, so that will be done when it's done. And I'd like to defer swapping the geoscape bitmaps on zoom for the time being. (Mostly to keep down the size of the download.)
  • Second, if we get 0.2 out by end of October, I feel that we have a good chance of 0.3 being done by Christmas. The reason for this is that I'd like 0.3 to implement (even with sucky UI) the remaining non-battlescape features. So for 0.4, we can start on the battlescape.
  • So, as I've said before, for 0.3, the features required are:
    • Assign soldiers to craft
    • Psi training of soldiers
    • Equip soldiers with hardware.

    What have I missed?

Final comment, for the 0.2 progress release, I propose splitting the download into 3 pieces.

  • The game engine itself, with a minimal set of resources, say 1 or 2 X-Net models, the sounds, and the into music.
  • A package holding the rest of the music
  • A package holding the rest of the X-Net models.

The intent is to reduce the download load on the Xenocide website. The game engine will be around 10 meg, and will allow people to exercise all the engine's functionality. For those who want all the bells and whistles, they can download the extra resources. About 15 meg of music files, and 30 meg of models. (This does mean X-Net will need to be modified to work when models are missing (like the sound system does) but I suspect this won't be difficult.

 

What do the rest of you think about this?

Link to comment
Share on other sites

Very nice :)

And far nicer to hear that release 0.3 will be complete geoscape-wise, gj

(after reading your post an idea popped: could gui improvements be made "in-house"? you could start a related thread for recruits)

 

P.S. Don't know if you already knew about it, but I just found these:

http://www.cegui.org.uk/wiki/index.php/Overview_of_GUI_files

http://www.cegui.org.uk/FalDocs/

Edited by kafros
Link to comment
Share on other sites

We'll also need to keep track / display soldier stats, as well as implement armour equipping. Can't see any other vital features missing. Maybe have a recruit task to add a "Center on Site" button to the "Site Detection" window, and add strings for the items.

 

Though this brings me the question: what's the Transactions button in the Planetscape supposed to be for?!? :wacko:

Link to comment
Share on other sites

We'll also need to keep track / display soldier stats, as well as implement armour equipping. Can't see any other vital features missing.

Armour equipping comes under " Equip soldiers with hardware". Stats should probably go there as well.

 

Maybe have a recruit task to add a "Center on Site" button to the "Site Detection" window, and add strings for the items.

Feel free to add them to the tasks forum. Note strings can be done by CTD, but requires us cleaning up the enumerations in basic.xsd and propoagate the changes. The problem is that C# uses the enumerations as String names, so we can't have colon or hyphen characters in the enumerations.

 

Though this brings me the question: what's the Transactions button in the Planetscape supposed to be for?!? :wacko:

I've been wondering that myself. I think it was meant to be transfers or maybe purchace/sell. But it makes no sense being there.

Link to comment
Share on other sites

Though this brings me the question: what's the Transactions button in the Planetscape supposed to be for?!? :wacko:

I've been wondering that myself. I think it was meant to be transfers or maybe purchace/sell. But it makes no sense being there.

Maybe used to see the progress of current transfers?

"20 Pistol Clips - ETA 2d 4h" ;)

Link to comment
Share on other sites

I'd just like to see a version of Xenocide that isn't two years old... Geez.

 

And why is the forum main forum broken?!

 

edit: wow, seems like a new version did come out. Well, that's what happens when it's so hard to read the forums. If you could just make a version that works, then maybe there could be some progress.

Edited by mikker
Link to comment
Share on other sites

I'd just like to see a version of Xenocide that isn't two years old... Geez.

 

And why is the forum main forum broken?!

 

edit: wow, seems like a new version did come out. Well, that's what happens when it's so hard to read the forums. If you could just make a version that works, then maybe there could be some progress.

Might I suggest checking the website from time to time? :)

Link to comment
Share on other sites

Final comment, for the 0.2 progress release, I propose splitting the download into 3 pieces.
  • The game engine itself, with a minimal set of resources, say 1 or 2 X-Net models, the sounds, and the into music.
  • A package holding the rest of the music
  • A package holding the rest of the X-Net models.

The intent is to reduce the download load on the Xenocide website. The game engine will be around 10 meg, and will allow people to exercise all the engine's functionality. For those who want all the bells and whistles, they can download the extra resources. About 15 meg of music files, and 30 meg of models. (This does mean X-Net will need to be modified to work when models are missing (like the sound system does) but I suspect this won't be difficult.

 

This is not a bad idea! Though I would like to see a "complete" download as well. Maybe we could also re-initiate the torrent downloads, then site would not matter.

How much work would it be to code a simple installer which would load the desired features from the web? So you download one installer one time, you can choose which features you want to load and install and hit the install button. A big benefit with this would be, that you could "update" the engine or some other package with this very easily to a new version without visiting the website again.

This of course only makes sense if something like this could be constructed in a matter of hours, maybe something for a recruit task?

Edited by Mad
Link to comment
Share on other sites

Maybe have a recruit task to add a "Center on Site" button to the "Site Detection" window, and add strings for the items.

Feel free to add them to the tasks forum. Note strings can be done by CTD, but requires us cleaning up the enumerations in basic.xsd and propoagate the changes. The problem is that C# uses the enumerations as String names, so we can't have colon or hyphen characters in the enumerations.

 

 

I have a programming trick for this. Add the "illegal" characters as a meta description. I have the full code for this on another computer and I can upload it monday if you want to see. You have to have a "normalize" function you always call on the enums to figure out what they should be, but the code is pretty short.

 

The enum looks like this the following. Just add a description tag for any or all the items that need characters you can use in the enum.

 

enum things

{

thing_one,

[description("thing;two")]

thing_two,

thing_three

}

Link to comment
Share on other sites

Well, more or less everything has changed already

I don't understand. Can you please elaborate.

Oh nothing special, just tried to express to Mikker the idea that almost everything concerning Xenocide has changed to a degree (i.e. the PRG progress, AWD/SND status etc), as he seemed a bit uncertain :)

 

In addition, the current C++ and C# branches may have the same features more or less, but the way both sources are organised and worked on is different.

 

That's it, just tried to say that the project isn't as it was 2 years ago ^_^

Link to comment
Share on other sites

Maybe have a recruit task to add a "Center on Site" button to the "Site Detection" window, and add strings for the items.

Feel free to add them to the tasks forum. Note strings can be done by CTD, but requires us cleaning up the enumerations in basic.xsd and propoagate the changes. The problem is that C# uses the enumerations as String names, so we can't have colon or hyphen characters in the enumerations.

 

 

I have a programming trick for this. Add the "illegal" characters as a meta description. I have the full code for this on another computer and I can upload it monday if you want to see. You have to have a "normalize" function you always call on the enums to figure out what they should be, but the code is pretty short.

 

The enum looks like this the following. Just add a description tag for any or all the items that need characters you can use in the enum.

 

enum things

{

thing_one,

[description("thing;two")]

thing_two,

thing_three

}

OK, I think you misunderstood me, so I'll try to explain.

in the various .xml files we have entries like this:

<item name="ITEM_XENIUM-122" xsi:type="troopItemType" score="0.1">
<storage type="STORAGE_GEAR" units="1" />
<price buy="0" sell="5000" />
<size xSize="1" ySize="1" mass="3" equipable="false" />
<throw percentage="0.25" />
</item>

<item name="ITEM_ALIEN_COMPOSITES" xsi:type="itemType" score="1">
<storage type="STORAGE_GEAR" units="10" />
<price buy="0" sell="6500" />
<construct>
	<facility type="FAC_ENGINEERING_FACILITY" space="10" />
	<cost hours="100" money="3000" />
</construct>
</item>

where "ITEM_XENIUM-122" and "ITEM_ALIEN_COMPOSITES" are Xenocide's internal identifiers for these items.

Now, to ensure consistency between the XML files, these identifers have been defined as XML enumerations in basic.xsd. This is to stop accidents like using ITEM_XENIUM-122 in items.xml and ITEM_XENIUM_122 in research.xml.

 

However, these itentifiers are NOT what we want to show the users. So we want a way to convert from the identifier to the "display name". The naive approach I was taking was for each identifer, putting a string into the string resouces. (Strings.resx), setting "name" to the identifer and "value" to the string to display.

e.g.

  <data name="ITEM_XENIUM-122" xml:space="preserve">
<value>Xenium-122</value>
 </data>
 <data name="ITEM_ALIEN_COMPOSITES" xml:space="preserve">
<value>Alien Composites</value>
 </data>

The problem is, the C# build process generates a type safe resource to allow breaking string resource changes to be picked up at compile time. So the above string.resx entries generate the following code (which the build process then tries to compile)

		internal static string ITEM_XENIUM-122 {
		get {
			return ResourceManager.GetString("Xenium-122", resourceCulture);
		}
	}
	internal static string ITEM_ALIEN_COMPOSITES {
		get {
			return ResourceManager.GetString("Alien Composites", resourceCulture);
		}
	}

 

The problem is "ITEM_XENIUM-122" isn't a valid C# name. And we run into the same problem with any other string that has a hyphen or colon in it.

 

(Aside, in the C# code, we hold these identifers as strings, not enumerations. The reason for this is we want people to be able to add new items to Xenocide just by adding new items to the XML files. Tracking them as enums would require code changes every time we wanted to add a new item.)

Link to comment
Share on other sites

Final comment, for the 0.2 progress release, I propose splitting the download into 3 pieces.
  • The game engine itself, with a minimal set of resources, say 1 or 2 X-Net models, the sounds, and the into music.
  • A package holding the rest of the music
  • A package holding the rest of the X-Net models.

The intent is to reduce the download load on the Xenocide website. The game engine will be around 10 meg, and will allow people to exercise all the engine's functionality. For those who want all the bells and whistles, they can download the extra resources. About 15 meg of music files, and 30 meg of models. (This does mean X-Net will need to be modified to work when models are missing (like the sound system does) but I suspect this won't be difficult.

 

This is not a bad idea! Though I would like to see a "complete" download as well. Maybe we could also re-initiate the torrent downloads, then site would not matter.

How much work would it be to code a simple installer which would load the desired features from the web? So you download one installer one time, you can choose which features you want to load and install and hit the install button. A big benefit with this would be, that you could "update" the engine or some other package with this very easily to a new version without visiting the website again.

This of course only makes sense if something like this could be constructed in a matter of hours, maybe something for a recruit task?

 

Thinking about it some more, how about if we keep it simple, and just have 2 versions.

There's the "minimal content" version (I estimate around 10 megs) that is on the Xenocide website for download.

And the "full content" version that is available by torrent.

 

Second point. I suggested elsewhere that I believe that build 0.2.0.1732 (the current subversion head) is feature complete for a 0.2 progress release. So can I get other people's feed back if it's ready or not. (And yes, I know I need to add code to handle missing models, but I should have that done tonight.)

Link to comment
Share on other sites

Second point. I suggested elsewhere that I believe that build 0.2.0.1732 (the current subversion head) is feature complete for a 0.2 progress release. So can I get other people's feed back if it's ready or not. (And yes, I know I need to add code to handle missing models, but I should have that done tonight.)
Well, it would be wonderful (but probably not feasible at all) to wait for these (or some of these) features before releasing:
  • Mipmapping
  • Globe bump mapping
  • Automatic interception battles (that is not having to click the attack button all the time -.-)

I guess 1-2 are out of the question, but #3 would be nice :). Otherwise, I think 0.2 is good as it is!

 

Edit: Tasks done

Edited by dteviot
Link to comment
Share on other sites

One think that I think should be done is having the complete version downloadable on the SVN (that meaning that you will get the complete version from it), as a new developer downloading and see everything working as expected is ore than enjoyable. I wanted to put the music in there, but I couldnt download the version that Darkhomb posted even if I found the link because RapidShare was down for Free users (and the point is, I knew the link existed so I was able to look it up; new developers wont have to know it).

 

EDIT: It has been 2 heck of a weeks at work, and it will keep that way for a couple more weeks so dont wait for me to the bump mapping as when I come home I am wasted. However, if someone wants to code it I can give you very specific directions on how to achieve the required tasks (good chance if you want to learn shaders ;) ) like the needed CustomVertex and the effect changes. :) Let me know if someone is interested as I can upload the normal maps to SVN if you want it.

 

Greetings

Red Knight

Link to comment
Share on other sites

Second point. I suggested elsewhere that I believe that build 0.2.0.1732 (the current subversion head) is feature complete for a 0.2 progress release. So can I get other people's feed back if it's ready or not. (And yes, I know I need to add code to handle missing models, but I should have that done tonight.)
Well, it would be wonderful (but probably not feasible at all) to wait for these (or some of these) features before releasing:
  • Mipmapping
  • Globe bump mapping
  • Automatic interception battles (that is not having to click the attack button all the time -.-)

I guess 1-2 are out of the question, but #3 would be nice :). Otherwise, I think 0.2 is good as it is!

Huh? Point 3 is done. If UFO is airborne, and your attacking craft has weapons, you go straight to the aeroscape screen.

There's only a "do you want to do this" dialog for ground missions. Which X-Com 1 has as well.

Link to comment
Share on other sites

Huh? Point 3 is done. If UFO is airborne, and your attacking craft has weapons, you go straight to the aeroscape screen.

There's only a "do you want to do this" dialog for ground missions. Which X-Com 1 has as well.

I think his point was the aeroscape screen where you have to click "Attack" for every round.

Btw, I tried to compile the source to check if this still exists, but complilation failed with

Error	3	'Microsoft.Xna.Framework.Matrix' does not contain a definition for 'CreateFromYawPitchRoll'	...\XNASource\trunk\Xenocide\Source\UI\Scenes\XNet\XNetScene.cs	173	38	Xenocide
!

Link to comment
Share on other sites

Huh? Point 3 is done. If UFO is airborne, and your attacking craft has weapons, you go straight to the aeroscape screen.

There's only a "do you want to do this" dialog for ground missions. Which X-Com 1 has as well.

I think his point was the aeroscape screen where you have to click "Attack" for every round.

Ah. Got it. Yes, the Aeroscape screen is pretty minimal. As it will probably want large scale renovations: 3D scene, multiple aircraft, etc. I'm reluctant to do large scale work there at the moment.

However, if you can suggest simple changes I'll look at improving things.

Note, it I just hooked the screen to the timer and ran it at say one attack per second, I doubt most people could follow.

I suppose I could put a couple of buttons.

  • 1 attack per second
  • 1 attack per 5 seconds
  • Run until complete.

Any better ideas?

 

Btw, I tried to compile the source to check if this still exists, but complilation failed with
Error	3	'Microsoft.Xna.Framework.Matrix' does not contain a definition for 'CreateFromYawPitchRoll'	...\XNASource\trunk\Xenocide\Source\UI\Scenes\XNet\XNetScene.cs	173	38	Xenocide
!

Odd, The Matrix class definitely has it: http://msdn2.microsoft.com/en-us/library/m...wpitchroll.aspx

Also, that function has been in the code for almost 2 weeks now. So I assume you haven't tried building the code in at least that much time.

Final thought. Are you using the "Refresh" version of XNA? It's possible you're using the Nov '06 version of the XNA library, and Matrix.CreateFromYawPitchRoll() was added in the later XNA Refresh release.

Link to comment
Share on other sites

Odd, The Matrix class definitely has it: http://msdn2.microsoft.com/en-us/library/m...wpitchroll.aspx

Also, that function has been in the code for almost 2 weeks now. So I assume you haven't tried building the code in at least that much time.

Final thought. Are you using the "Refresh" version of XNA? It's possible you're using the Nov '06 version of the XNA library, and Matrix.CreateFromYawPitchRoll() was added in the later XNA Refresh release.

Yea, I didn't have Internet at home until Monday, since I moved to another place. So no svn downloading and hence no building in the last three weeks.

And that's a good idea. I'm using the Microsoft XNA Game Studio Express Version 1.0.61118.0, so this seems to be the nov 06 version. downloading refresh right now. thx for the hint

 

Edit: updated XNA, compiles fine now. thx

Edited by Mad
update
Link to comment
Share on other sites


  • 1 attack per second
  • 1 attack per 5 seconds
  • Run until complete.

Any better ideas?

Well as there are different loading times for weapons, I guess it would be normal to use these:

 

+ 1 real-life second = 1 interception second

+ 1 real-life second = 5 interception seconds

+ Instant fight

 

That would be very helpful, thanks :)

 

 

 

And something that popped in my mind yesterday:

At the craft equip screen, you first choose a ship, then click empty pod, then you also select a weapon, you press the equip button, and the weapon selection is lost, and you have to redo the process. BOOOORIIIIING

 

It would be wonderful if you could implement a double-click system like this:

You click and select a craft, double-click its weapon to empty the according pod, double click one of the available weapons below tou equip. Simple and fast!! :)

 

Edit, job finished

Edited by dteviot
Link to comment
Share on other sites

  • 1 attack per second
  • 1 attack per 5 seconds
  • Run until complete.

Any better ideas?

Well as there are different loading times for weapons, I guess it would be normal to use these:

 

+ 1 real-life second = 1 interception second

+ 1 real-life second = 5 interception seconds

+ Instant fight

 

That would be very helpful, thanks :)

 

 

 

And something that popped in my mind yesterday:

At the craft equip screen, you first choose a ship, then click empty pod, then you also select a weapon, you press the equip button, and the weapon selection is lost, and you have to redo the process. BOOOORIIIIING

 

It would be wonderful if you could implement a double-click system like this:

You click and select a craft, double-click its weapon to empty the according pod, double click one of the available weapons below tou equip. Simple and fast!! :)

Post it to tasks for recruits thread.

People, you can put stuff there as well as me.

Worst case, if I disagree, I'll just move it to the labs, or set up a wish list thread.

 

Edit, task done.

Edited by dteviot
Link to comment
Share on other sites

EDIT: It has been 2 heck of a weeks at work, and it will keep that way for a couple more weeks so dont wait for me to the bump mapping as when I come home I am wasted. However, if someone wants to code it I can give you very specific directions on how to achieve the required tasks (good chance if you want to learn shaders ;) ) like the needed CustomVertex and the effect changes. :) Let me know if someone is interested as I can upload the normal maps to SVN if you want it.

 

Normal Mapping has been already implemented, we will need refactor a little rendering code because there are a lot of effects that require access to specific operations and multipass rendering. So probably that would be something I will do soon starting with the Geoscape code. I am thinking into going directly to a Deferred Shading rendering pipeline but for that I need to research multitarget rendering on XNA supported video cards (I dont want to force Shader 3 to everyone) or a way to isolate rendering code for forward shading (what we are doing right now).

 

Greetings

Red Knight

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 attack per second
  • 1 attack per 5 seconds
  • Run until complete.

Any better ideas?

Well as there are different loading times for weapons, I guess it would be normal to use these:

 

+ 1 real-life second = 1 interception second

+ 1 real-life second = 5 interception seconds

+ Instant fight

 

That would be very helpful, thanks :)

Done. Sort of. If nothing happens in a round, rather than reporting "nothing happened" it goes onto next round.

Also, there's a "real time" button that runs at 1 round / second, and keeps running until fights over.

Unfortunately, I'm waiting for MindStormMaster to fix SVN so I can check in.

 

And something that popped in my mind yesterday:

At the craft equip screen, you first choose a ship, then click empty pod, then you also select a weapon, you press the equip button, and the weapon selection is lost, and you have to redo the process. BOOOORIIIIING

 

It would be wonderful if you could implement a double-click system like this:

You click and select a craft, double-click its weapon to empty the according pod, double click one of the available weapons below tou equip. Simple and fast!! :)

Done. Again, sort of. You can't double click on a pod to empty it. You click on craft, then click on the Empty Pod buttons. (Not difficult, as clicking on an empty pod button won't loose the craft selection.) But, you can double click on a weapon in the weapon grid to have it assigned to an empty pod on the selected aircraft.

Link to comment
Share on other sites

  • 1 attack per second
  • 1 attack per 5 seconds
  • Run until complete.

Any better ideas?

Well as there are different loading times for weapons, I guess it would be normal to use these:

 

+ 1 real-life second = 1 interception second

+ 1 real-life second = 5 interception seconds

+ Instant fight

 

That would be very helpful, thanks :)

Done. Sort of. If nothing happens in a round, rather than reporting "nothing happened" it goes onto next round.

Also, there's a "real time" button that runs at 1 round / second, and keeps running until fights over.

Unfortunately, I'm waiting for MindStormMaster to fix SVN so I can check in.

 

And something that popped in my mind yesterday:

At the craft equip screen, you first choose a ship, then click empty pod, then you also select a weapon, you press the equip button, and the weapon selection is lost, and you have to redo the process. BOOOORIIIIING

 

It would be wonderful if you could implement a double-click system like this:

You click and select a craft, double-click its weapon to empty the according pod, double click one of the available weapons below tou equip. Simple and fast!! :)

Done. Again, sort of. You can't double click on a pod to empty it. You click on craft, then click on the Empty Pod buttons. (Not difficult, as clicking on an empty pod button won't loose the craft selection.) But, you can double click on a weapon in the weapon grid to have it assigned to an empty pod on the selected aircraft.

 

 

Edit:

To my mind, this makes me think that 0.2 is ready to be packaged for release.

Or will be, as soon as the problem with SVN is fixed and I'm able to check in the latest changes.

Link to comment
Share on other sites

×
×
  • Create New...