Jump to content
XCOMUFO & Xenocide

Microsoft Xna


dteviot

Recommended Posts

  • Replies 212
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Come on, installing XNA is a breeze... If you can program in Modula-2 then installing XNA for compiling is very very easy. Nonetheless I will try in the weekend to take some screenshots.

 

Greetings

Red Knight

Link to comment
Share on other sites

Guest Azrael
Come on, installing XNA is a breeze... If you can program in Modula-2 then installing XNA for compiling is very very easy. Nonetheless I will try in the weekend to take some screenshots.

 

Greetings

Red Knight

So I take it it involves nothing of that "compile headers, compile xenoUI, compile this and that" stuff? I have no idea what headers even are, and my compiling experience relates only to single file compilations, only now I'm starting to check on what definition and implementation files are, dunno how it is in C#

Link to comment
Share on other sites

Come on, installing XNA is a breeze... If you can program in Modula-2 then installing XNA for compiling is very very easy. Nonetheless I will try in the weekend to take some screenshots.

 

Greetings

Red Knight

So I take it it involves nothing of that "compile headers, compile xenoUI, compile this and that" stuff? I have no idea what headers even are, and my compiling experience relates only to single file compilations, only now I'm starting to check on what definition and implementation files are, dunno how it is in C#

If I may redirect you over here? :)

Link to comment
Share on other sites

Progress update:

 

Added 3D model scene to XNet.

You can right click on the model and rotate it with moving the mouse, and the scroll wheel will zoom.

Unfortunately, the only Xenocide model (of the set of 4 Lars W exported) that XNA will accept is the Stun Launcher.

So if someone would like to try out the patched Blender .x export tool refered to hereXNA content pipeline, that would be really nice.

 

Also Updated ResearchTree to match X-Net work.

 

Screenshot:

xeno.xna.2007_04_01.JPG

Link to comment
Share on other sites

  • 2 weeks later...

Progress update:

 

Load Facility.xml.

Stats for facilities added to X-Net.

Facility selection dialog added to the Bases screen. (It doesn't actually do anything at the moment, I've got to do a lot of work to connect it up.)

 

Screenshots:

xeno.xna.2007_04_10.1.JPG

xeno.xna.2007_04_10.2.JPG

Link to comment
Share on other sites

:Hyper:

 

Awesome stuff, dteviot! Looks great. :)

 

- Zombie

Link to comment
Share on other sites

  • 3 weeks later...

Progress Report.

Firstly, not a lot of progress to report, it's been a bad couple of weeks.

  • I've been ill.
  • My house was burgled.
  • Detour while trying to figure out how to import models into XNA
  • Hackers hit xenocide site, making it difficult to upload work.

However, what I've done since last update.

  • Added dummy models for each of the facilities. (Actually, the dummies models are just 2 polygons marking out a square. But, in theory, we should be able to drop in the new models and have everything work. Once I figure out the necessary scaling. At momeent, models are 1 x 1, centered at 0,0,0.)
  • Added a scene to the basesScreen, that shows the layout of a base (with the new facility models.) The scene shows a grid marking out the positions of facilities, the facilities in the base, and the position of the facility that is currently being added to the base.
  • User can add facilities to a base.
    • Base starts empty.
    • Click on Build and you get to put a base access facility on the layout. (Move the cursor to the position you want it, and click.
    • Click on “Build Facilities” button and you get to put a base access facility on the layout. Move the cursor to the position you want it, and left click.
    • Click on “Build Facilities” button again, and you get a list of facilities. Select a facility, click OK, then position the new facility as you did with the base access.
    • Note that at the moment, there are no checks to make sure the position for the facility is legal.
    • I also don’t show under construction/complete state of facilities (or even update it with progress of time).
    • Nor do it track any increase in base’s capabilities as facilities are completed.

    [*]Facilities in a base are saved/loaded to/from file.

xeno.xna.2007_04_29.JPG

Link to comment
Share on other sites

Progress update:

1. Removed Util.ResourceFormat()

2. Enforce most rules for facility placement. (Still need to do only one instance of "only one of" facilities.)

3. Can remove facilities by clicking on them in BasesScreen. (Checks base is not split)

4. Added class YesNoDialog

 

No new screenshot (attachment still isn't working.)

Link to comment
Share on other sites

Progress update:

1. "Only one per base" limit for some facilities is now enforced.

2. Update Capacity Information for base as facilities start building/finish building/are destroyed.

3. BaseInfoScreen shows this capacity information.

 

 

4. Defense Strength is not calcuated at moment.

5. The Personnel figures are just a stub.

 

Screenshot attached, I hope

 

xeno.xna.2007_05_13B.JPG

Link to comment
Share on other sites

Progress update:

1. Check that each facility has an X-Net entry. (So you need to update to the latest xnet.xml file)

2. Player can set location of 1st base.

3. User can create new bases on the Geoscape.

 

I'm going to claim Stage 4 as completed, except for enabling Radar. Which I'm going to defer for the moment, and move on Stage 9, funding and Stats.

Please let me know if you find any bugs.

Link to comment
Share on other sites

It compiles nicely, but I can't run it. "JIT Debugger: Exception 'System.NullReferenceException' in Xenocide.exe..."

:(

Works fine for me.

Did you get the latest XNet.xml file? (this from the mainline trunk)

Also, when you get exceptions, if you could run under the debugger and let me know where the exception is thrown, that would make fixing the problem a lot easier.

To run under debugger:

1. Start Game Studio Express.

2. File menu -> Open Project -> Select file "Xenocide.sln".

3. Debug menu -> Start Debugging

 

edit. Added link

Edited by dteviot
Link to comment
Share on other sites

Xnet.xml is the newest. No idea what it could be. Attached two screenshots from the debugging session. I'll try downloading everything again. Maybe I messed sth up.

 

 

exception.jpg callstack.jpg

 

edit: It's working now - thanks to Rincewind! :) Apparently I had a corrupted facility.xml

Edited by Mad
Link to comment
Share on other sites

I'm sorry, I got a new problem with the new revision. Already asked Rincewind, he is not able to reproduce my error.

Ok, so here's the deal: I get an unhandled exception when trying to save a game. So what do I do? I start a new game, I place a base, I go back to geoscape, I klick save and the game crashes. Debug info is attached (unfortunatly in german, sorry - but I think you'll understand anyway).

 

System.OverflowException was unhandled
 Message="Die arithmetische Operation hat einen ?berlauf verursacht." (translation: arithmetic operation caused overflow)
 Source="Xenocide"
 StackTrace:
   bei Xenocide.UI.Screens.LoadSaveGameScreen.SaveGameHeader.ReadString(Stream fs) in E:\Downloads\PJxenocide\XNASource\trunk\Xenocide\Source\UI\Screens\LoadSaveGameScreen.cs:Zeile 471.
   bei Xenocide.UI.Screens.LoadSaveGameScreen.ReadHeader(FileStream stream) in E:\Downloads\PJxenocide\XNASource\trunk\Xenocide\Source\UI\Screens\LoadSaveGameScreen.cs:Zeile 350.
   bei Xenocide.UI.Screens.LoadSaveGameScreen.AddSaveGameToGrid(FileStream stream, String filename) in E:\Downloads\PJxenocide\XNASource\trunk\Xenocide\Source\UI\Screens\LoadSaveGameScreen.cs:Zeile 260.
   bei Xenocide.UI.Screens.LoadSaveGameScreen.AddSaveGamesToGrid() in E:\Downloads\PJxenocide\XNASource\trunk\Xenocide\Source\UI\Screens\LoadSaveGameScreen.cs:Zeile 247.
   bei Xenocide.UI.Screens.LoadSaveGameScreen.InitializeGrid() in E:\Downloads\PJxenocide\XNASource\trunk\Xenocide\Source\UI\Screens\LoadSaveGameScreen.cs:Zeile 116.
   bei Xenocide.UI.Screens.LoadSaveGameScreen.CreateCeguiWidgets() in E:\Downloads\PJxenocide\XNASource\trunk\Xenocide\Source\UI\Screens\LoadSaveGameScreen.cs:Zeile 83.
   bei Xenocide.UI.Screens.Frame.Show() in E:\Downloads\PJxenocide\XNASource\trunk\Xenocide\Source\UI\Screens\Frame.cs:Zeile 90.
   bei Xenocide.UI.Screens.ScreenManager.SwapScreens() in E:\Downloads\PJxenocide\XNASource\trunk\Xenocide\Source\UI\Screens\ScreenManager.cs:Zeile 110.
   bei Xenocide.UI.Screens.ScreenManager.Update(GameTime gameTime) in E:\Downloads\PJxenocide\XNASource\trunk\Xenocide\Source\UI\Screens\ScreenManager.cs:Zeile 185.
   bei Xenocide.Xenocide.Update(GameTime gameTime) in E:\Downloads\PJxenocide\XNASource\trunk\Xenocide\Source\Xenocide.cs:Zeile 203.
   bei Microsoft.Xna.Framework.Game.Tick()
   bei Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)
   bei Microsoft.Xna.Framework.GameHost.OnIdle()
   bei Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
   bei System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNative
ethods.IMsoComponent.FDoIdle(Int32 grfidlef)
   bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNat
veMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
   bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   bei System.Windows.Forms.Application.Run(Form mainForm)
   bei Microsoft.Xna.Framework.WindowsGameHost.Run()
   bei Microsoft.Xna.Framework.Game.Run()
   bei Xenocide.Program.Main() in E:\Downloads\PJxenocide\XNASource\trunk\Xenocide\Source\Program.cs:Zeile 41.

 

causing code snip from LoadSaveGameScreen.cs

 

  /// Read a string from a file at the current position
		/// </summary>
		/// <param name="fs">file to read from</param>
		/// <returns>string read</returns>
		/// <remarks>Used to read header from file</remarks>
		/// <remarks>Had to write this myself because StreamReader closes stream when it's done</remarks>
		public static String ReadString(Stream fs)
		{
			int count = fs.ReadByte();
			byte[] b = new byte[count];
			fs.Read(b, 0, count);
			UTF8Encoding temp = new UTF8Encoding(true);
			return temp.GetString(b);
		}

the bad guy here is

byte[] b = new byte[count];

 

Any ideas?

 

Thanks! :)

Edited by Mad
Link to comment
Share on other sites

Problem solved. Problem with corrupted savegames - deleted all savegames and everything went back to normal.

The issue is that due to the way save/load works, you can only load a game that you saved with the same version. I.e. each time you get a new update of the source, any old save games won't load.

Link to comment
Share on other sites

Problem solved. Problem with corrupted savegames - deleted all savegames and everything went back to normal.

The issue is that due to the way save/load works, you can only load a game that you saved with the same version. I.e. each time you get a new update of the source, any old save games won't load.

 

I see. That's a bit problematic for later updates isn't it?

Shouldn't we (hehe, uhm, you guys :rolleyes:) try to put a file check before the save/load module tries to load the savegames? So that the game doesn't crash but gives an errormessage?

Link to comment
Share on other sites

Problem solved. Problem with corrupted savegames - deleted all savegames and everything went back to normal.

The issue is that due to the way save/load works, you can only load a game that you saved with the same version. I.e. each time you get a new update of the source, any old save games won't load.

 

I see. That's a bit problematic for later updates isn't it?

Shouldn't we (hehe, uhm, you guys :rolleyes:) try to put a file check before the save/load module tries to load the savegames? So that the game doesn't crash but gives an errormessage?

I'll add it to my ToDo list.

However, as I don't see that as a big issue at the moment, don't expect a solution any time soon.

Link to comment
Share on other sites

Progress:

 

1. Rincewind has returned, and implemented some of research. (I'll let Mad provide some screenshots.)

2. Added classes FuelLowGeoEvent and ResearchFinishedGeoEvent

3. XML parser now does validation

4. Set up an AppDomain.CurrentDomain.UnhandledException handler to show any uncaught exceptions

5. Refactored ResearchGraph.ResearchableTopics() and .CurrentResearchProjects using yield, generics and anonymous delegates. (Yes, I'm just showing off.)

Link to comment
Share on other sites

Progress (XNA trunk)

1. Now tracks income and expenditure (at least for facility).

2. Monthly Report screen started. (Also doubles as Funding screen from Geoscape.)

3. End of month processing hookpoint.

 

Other notes:

1. To run, need to copy country.xml and country.xsd from ..\Xenocide\Content\Schema to ..\Xenocide\bin\x86\Debug\Content\Schema

2. Need to figure out

  • What are the possible attitudes of countries to X-Corp?
  • How attitude changes X-Corp funding?

Link to comment
Share on other sites

2. Need to figure out
  • What are the possible attitudes of countries to X-Corp?
  • How attitude changes X-Corp funding?

Countries have 4 attitudes (or ratings). 3 is happy, 2 is average, 1 is unhappy and 0 means they cut off funding completely. See the X-COM wiki's DIPLOM.DAT page for more info. If a country is happy it can fund a random amount from unchanged (0%) up to +20%. If it is unhappy, the reduction of funds is between 0 and -20%. Not sure what happens when their reaction is mixed, so I'll need to test this out sometime. I *think* it still follows the positive scale. Obviously, if a country is 0, they have signed a pact with the aliens and have withdrawn from the X-COM program so no more cash from them. Funding changes are based loosely off of the scoring difference between X-Com and the alien forces. Pity I don't have that info on me at the moment. Will get that up ASAP. :wink1:

 

- Zombie

Edited by Zombie
Link to comment
Share on other sites

Thanks muchly.

Implemented, updated code checked in.

If anyone's tracking, you will need to copy the updated country.xsd and country.xml files as detailed in my previous post.

Screenshot attached as proof.

 

Funding changes are based loosely off of the scoring difference between X-Com and the alien forces. Pity I don't have that info on me at the moment. Will get that up ASAP

As soon as you give me the details, I'll implement.

xeno.xna.2007_06_07.JPG

Link to comment
Share on other sites

Excelent.

 

Could you add those files to the build process so they get copied?

 

Greetings

Red Knight

I could, but I don't see much point in doing so.

You already have to manually copy the other schema xml/xsd files from the c++ branch.

So having to manually copy a couple more isn't much work.

And I don't want to put copies of the files from the c++ branch into the c# branch.

Having more than one copy of a file is a guarantee thay they will get out of sync.

 

Cheers,

David

Link to comment
Share on other sites

Hi,

 

I'm back from my ego-trip :-)

 

Seriously, I've been working on and off on the component-branch and I realized that two points:

 

1) I think there's still a lot of stuff to learn about XNA to use it to its full potential. Nevertheless, it also works with a more traditional programming style.

2) While some serious refactoring could prove beneficial, I don't have the time or motivation to work on this sufficiently. Maybe we can pick this up again when there are more large-scale experiences with xna out there and someone has the time and energy to tackle it.

 

So I decided to rather go back to trunk and implement smaller features that actually result in something on the screen being seen. First I decided to finally get to fixing all the stuff, dteviot mentioned about the Research part. Only to realize he already did most of it (so thanks a lot and I'll fix stuff faster next time :P ). At least I managed to add comments for the private members that where still missing.

 

There's still the issue about having the entire researchtree in the savegame or splitting it in two. A static part that holds the description from the xml and a dynamic part that holds what is researched (and some form of manager that handles the analysis and modification of the two). Actually this was mostly my first design (with the manager being part of the static-part, but nevertheless). I changed it to the current design because of two major reasons:

 

One is updatability: A new update is not going to change the researchtree in existing savegames resulting in potentially inconsistent state (e.g. some requirements no longer able to be fullfilled, player having weapons that he can no longer produce, etc). Of course this also implies that if there's a bug in the tree, an update won't "fix" old savegames. (So this "advantage" is at the same time a disadvantage, but I still think the benefits outweight the costs)

 

The other point is much more important I think: We can debug errors much more easily if we actually have the research tree in a savegame as we then just need a savegame from the user in order to reproduce his error (and not his current research.xml, etc as well).

 

Anyway, hope to hear some comments. Also: whats next on the wishlist to implement if these arguments prove valid? I could go into the production part as it should have some synergy effects with research.

 

Cheers,

 

Rincewind

Link to comment
Share on other sites

Hi,

 

I'm back from my ego-trip :-)

 

Seriously, I've been working on and off on the component-branch and I realized that two points:

 

1) I think there's still a lot of stuff to learn about XNA to use it to its full potential. Nevertheless, it also works with a more traditional programming style.

2) While some serious refactoring could prove beneficial, I don't have the time or motivation to work on this sufficiently. Maybe we can pick this up again when there are more large-scale experiences with xna out there and someone has the time and energy to tackle it.

 

So I decided to rather go back to trunk and implement smaller features that actually result in something on the screen being seen. First I decided to finally get to fixing all the stuff, dteviot mentioned about the Research part. Only to realize he already did most of it (so thanks a lot and I'll fix stuff faster next time :P ). At least I managed to add comments for the private members that where still missing.

 

There's still the issue about having the entire researchtree in the savegame or splitting it in two. A static part that holds the description from the xml and a dynamic part that holds what is researched (and some form of manager that handles the analysis and modification of the two). Actually this was mostly my first design (with the manager being part of the static-part, but nevertheless). I changed it to the current design because of two major reasons:

 

One is updatability: A new update is not going to change the researchtree in existing savegames resulting in potentially inconsistent state (e.g. some requirements no longer able to be fullfilled, player having weapons that he can no longer produce, etc). Of course this also implies that if there's a bug in the tree, an update won't "fix" old savegames. (So this "advantage" is at the same time a disadvantage, but I still think the benefits outweight the costs)

 

The other point is much more important I think: We can debug errors much more easily if we actually have the research tree in a savegame as we then just need a savegame from the user in order to reproduce his error (and not his current research.xml, etc as well).

 

Anyway, hope to hear some comments. Also: whats next on the wishlist to implement if these arguments prove valid? I could go into the production part as it should have some synergy effects with research.

 

Cheers,

 

Rincewind

Well, some things are:

    1. The "scheduled update queue" we've previously discussed.
    2. Update CeGui# InputInjector, to handle the number keys on the keyboard (and maybe some of the other keys like period, hyphen, underscore, space.
    3. Implement a mechanism for allowing UFO missions to pick a region/country, and then head for the right place.
    Zombie, can you highlight the difference between regions and countries with respect to score allocated to Aliens/X-Com?
    4. Start thinking about how we're going to implement people. Generator, classes, attributes, etc. Suggestion - do we want to not really distingish between soldiers/scientists/engineers? They all have the same skill sets, just different values for the engineering and research skills.?

Link to comment
Share on other sites

Well, some things are:
    1. The "scheduled update queue" we've previously discussed.
    2. Update CeGui# InputInjector, to handle the number keys on the keyboard (and maybe some of the other keys like period, hyphen, underscore, space.
    3. Implement a mechanism for allowing UFO missions to pick a region/country, and then head for the right place.
    Zombie, can you highlight the difference between regions and countries with respect to score allocated to Aliens/X-Com?
    4. Start thinking about how we're going to implement people. Generator, classes, attributes, etc. Suggestion - do we want to not really distingish between soldiers/scientists/engineers? They all have the same skill sets, just different values for the engineering and research skills.?

 

Just committed a fix for (2), so you can use the number keys. I tried to google a little if there's not a simpler solution to it, as I somehow think that there should be a simpler method for stuff like period, hyphen, etc. without resorting to a huge switch statement...

 

I'll try to get a proposal for (1) written and branch it into somewhere (branches are so cheap in SVN, that I think this makes for better discussions).

 

About (3), I'll wait for Zombie to explain the datamodel a little.

 

Concerning (4), I'm wondering if we should actually implement scientists/engineers as "real people" for now. It definitly deviates from the original game mechanics and I think we should go for replicating it for now, as this would probably introduce a whole lot of balancing issues, etc. Also, I think it's easy to later change the simple numeric assign in the ResearchTopic to a linked list of "real people" and a slight modification of the dayPassed handler.

One could of course argue that we could still implement the full model and for now, just always add people with full science attribute, but I think this creates a lot of code that for now is not needed which is not really in the KISS-line of development.

 

Tell me what you think,

 

Rincewind

Link to comment
Share on other sites

Well, some things are:
    1. The "scheduled update queue" we've previously discussed.
    2. Update CeGui# InputInjector, to handle the number keys on the keyboard (and maybe some of the other keys like period, hyphen, underscore, space.
    3. Implement a mechanism for allowing UFO missions to pick a region/country, and then head for the right place.
    Zombie, can you highlight the difference between regions and countries with respect to score allocated to Aliens/X-Com?
    4. Start thinking about how we're going to implement people. Generator, classes, attributes, etc. Suggestion - do we want to not really distingish between soldiers/scientists/engineers? They all have the same skill sets, just different values for the engineering and research skills.?

 

Just committed a fix for (2), so you can use the number keys. I tried to google a little if there's not a simpler solution to it, as I somehow think that there should be a simpler method for stuff like period, hyphen, etc. without resorting to a huge switch statement...

Thanks, I couldn't see a nice solution either, which is why I didn't do it. But now that we need to enter numbers, remembering that you need to use the numeric keypad to enter numbers is a pain. (And probably makes people who don't know that think the "add scientists to project" dialog is broken.

 

I'll try to get a proposal for (1) written and branch it into somewhere (branches are so cheap in SVN, that I think this makes for better discussions).

Excellent

 

About (3), I'll wait for Zombie to explain the datamodel a little.

I should expand a bit in this. What I was thinking of was trying to flesh out the craft/AI a bit more.

Specifically, what I was thinking of was implementing the different mission types discussed in the Alien AI thread, with particular reference to X-COM Wiki's MISSIONS.DAT page.

And updating the Overmind AI, at least to the point of at start of each month, picking a couple of missions and their associated targets.

Then plug-in scoring.

Then plug-in radar.

 

Allow user to buy craft, hire staff, and and we've acutally got ourselves a minimally playable geoscape.

 

Concerning (4), I'm wondering if we should actually implement scientists/engineers as "real people" for now. It definitly deviates from the original game mechanics and I think we should go for replicating it for now, as this would probably introduce a whole lot of balancing issues, etc. Also, I think it's easy to later change the simple numeric assign in the ResearchTopic to a linked list of "real people" and a slight modification of the dayPassed handler.

One could of course argue that we could still implement the full model and for now, just always add people with full science attribute, but I think this creates a lot of code that for now is not needed which is not really in the KISS-line of development.

I agree. Until we start work on the battlescape, there's no need for soldiers (and they're the really detailed people.)

So, to start with, let's go for simplest implementation to get geoscape/bases working. Which is an integer counter in each base for number of scientists and another for the engineers.

Link to comment
Share on other sites

About the country/mission part, I was mostly referring to the definition of country regions and trying to get some progress report on that. As I guess, that would be a feature we'll need for the AI missions.

 

On the other hand, I guess we can still get by with using real random positions for the time being. Nevertheless, anybody working on the country coordinates?

Link to comment
Share on other sites

About the country/mission part, I was mostly referring to the definition of country regions and trying to get some progress report on that. As I guess, that would be a feature we'll need for the AI missions.

 

On the other hand, I guess we can still get by with using real random positions for the time being. Nevertheless, anybody working on the country coordinates?

this forum is the latest work on the topic I'm aware of.

Link to comment
Share on other sites

About the country/mission part, I was mostly referring to the definition of country regions and trying to get some progress report on that. As I guess, that would be a feature we'll need for the AI missions.

 

On the other hand, I guess we can still get by with using real random positions for the time being. Nevertheless, anybody working on the country coordinates?

this forum is the latest work on the topic I'm aware of.

 

Ok, I'll see what I can come up with. About something else: I tried to get some fbx-models exported from Blender. Apparently, the Blender fbx-exporter adds some form of empty Video-Texture to the exported file. Since it's a ascii-file, I just removed it and the model loads (assault rifle).

 

This leaves two "problems":

 

1) Most models in the assets-directory are .max files which Blender can't import. So either someone exports them to fbx from max or puts them in some intermediate format (3ds for example). No idea what gets lost on the way, though. Maybe someone having access to MAX can post some results on this?

 

2) Currently, it only shows the diffuse texture, I'll try to investigate how to get a nice bumpmapping shader with per-pixel-lighting on there.

Link to comment
Share on other sites

About the country/mission part, I was mostly referring to the definition of country regions and trying to get some progress report on that. As I guess, that would be a feature we'll need for the AI missions.

 

On the other hand, I guess we can still get by with using real random positions for the time being. Nevertheless, anybody working on the country coordinates?

this forum is the latest work on the topic I'm aware of.

I should add, a new possible recruit (darkside) has just posted some code for converting positions on the geoscape to regions. With a bit of luck, it will be spruced up and integrated into the codebase in a couple of days.

Which reminds me, can you tell me how to promote someone to Recruit?

 

Ok, I'll see what I can come up with. About something else: I tried to get some fbx-models exported from Blender. Apparently, the Blender fbx-exporter adds some form of empty Video-Texture to the exported file. Since it's a ascii-file, I just removed it and the model loads (assault rifle).

Can you give me a couple more details, such as exactly what the problem line looks like?

 

This leaves two "problems":

 

1) Most models in the assets-directory are .max files which Blender can't import. So either someone exports them to fbx from max or puts them in some intermediate format (3ds for example). No idea what gets lost on the way, though. Maybe someone having access to MAX can post some results on this?

However models are not really needed until we hit the battlescape, so there's no hurry on this. I suggest posting this request to the art workshop.

Link to comment
Share on other sites

Which reminds me, can you tell me how to promote someone to Recruit?

You'll have to write a PM to stewart. He'll promote the forum member to applicant and send him the license PM. AS soon as the applicant signs the kicense PM stewart will promote him to recruit. Voila! If you want to promote a recruit to full member after some time, you'll again have to write a PM to stewart.

Link to comment
Share on other sites

Progress:

  • Fixed (some) FxCop warnings from the Util.GetAttribute() functions.
  • Now loads item.xml file. X-Net shows stats for Aircraft & Craft Weapons. (Screenshot attached as proof.)
  • Linked Craft properties to item.xml. (So aircraft is now a Gryhon, and UFO is a Recon UFO)
  • Aircraft and UFO are now armed. (With weapons from item.xml)

Other notes:

  • If anyone's tracking these changes, you will need to get the updated basic.xsd, item.xsd and item.xml from the C++ branch.
  • Can someone please tell me what stats are shown in Ufopedia for UFO entries?
  • (Mad) We may also want to add a statisticsLink entry to the UFO entries in X-Net.xml (remember, this file is generated, so patch the source file xnetCtFiles.xml)
  • (Mad) X-Net.xml, for craft missiles, set the statisticsLink to point to the missile launcher, NOT the missile, in item.xml
  • I'm now about to working on inventory; to put craft, weapons and ammo into human bases. Which will probabaly take a few weeks. So if anyone wants to work on an aeroscape dialog (hint hint) it shouldn't conflict with my work.

Changes to basic.xsd, item.xsd and item.xml

  • A craft weapon added for each UFO weapon. (I've plugged in random values for TUs and accuracy, so Zombie may wish to update them.)
  • Ufos refactored to use a craft weapon. (This means I only need one class to cover both X-Corp and UFO craft weapons.)
  • Updated damage types to track changes made when combatants.xml was last updated.
  • Condor carries 2 XCaps, not 4

xeno.xna.2007_06_18.JPG

Link to comment
Share on other sites

  • (Mad) We may also want to add a statisticsLink entry to the UFO entries in X-Net.xml (remember, this file is generated, so patch the source file xnetCtFiles.xml)
  • (Mad) X-Net.xml, for craft missiles, set the statisticsLink to point to the missile launcher, NOT the missile, in item.xml

This is probably best handeled by Zombie, since he is best familiar with the xmls already. Already PMed him.

Link to comment
Share on other sites

*waves* Hi again. Thanks for the PM, Mad. :)

 

Right, so I haven't had much experience with X-NET.xml. In fact, I don't think I actually saw the file yet. :blush1:

 

Well, some things are:
    1. The "scheduled update queue" we've previously discussed.
    2. Update CeGui# InputInjector, to handle the number keys on the keyboard (and maybe some of the other keys like period, hyphen, underscore, space.
    3. Implement a mechanism for allowing UFO missions to pick a region/country, and then head for the right place.
    Zombie, can you highlight the difference between regions and countries with respect to score allocated to Aliens/X-Com?
    4. Start thinking about how we're going to implement people. Generator, classes, attributes, etc. Suggestion - do we want to not really distingish between soldiers/scientists/engineers? They all have the same skill sets, just different values for the engineering and research skills.?

About point 3, I'll try to get back to you later today or tomorrow morning with the details.

 

Progress:
  • Fixed (some) FxCop warnings from the Util.GetAttribute() functions.
  • Now loads item.xml file. X-Net shows stats for Aircraft & Craft Weapons. (Screenshot attached as proof.)
  • Linked Craft properties to item.xml. (So aircraft is now a Gryhon, and UFO is a Recon UFO)
  • Aircraft and UFO are now armed. (With weapons from item.xml)

Other notes:

  • If anyone's tracking these changes, you will need to get the updated basic.xsd, item.xsd and item.xml from the C++ branch.
  • Can someone please tell me what stats are shown in Ufopedia for UFO entries?
  • (Mad) We may also want to add a statisticsLink entry to the UFO entries in X-Net.xml (remember, this file is generated, so patch the source file xnetCtFiles.xml)
  • (Mad) X-Net.xml, for craft missiles, set the statisticsLink to point to the missile launcher, NOT the missile, in item.xml
  • I'm now about to working on inventory; to put craft, weapons and ammo into human bases. Which will probabaly take a few weeks. So if anyone wants to work on an aeroscape dialog (hint hint) it shouldn't conflict with my work.

Changes to basic.xsd, item.xsd and item.xml

  • A craft weapon added for each UFO weapon. (I've plugged in random values for TUs and accuracy, so Zombie may wish to update them.)
  • Ufos refactored to use a craft weapon. (This means I only need one class to cover both X-Corp and UFO craft weapons.)
  • Updated damage types to track changes made when combatants.xml was last updated.
  • Condor carries 2 XCaps, not 4

Concerning the stats shown for UFO's, see here. If you could point me in the direction where to find basic.xsd and the two item files, I'll be happy to update item.xml to reflect the craft weapons. The Skyranger could carry 3 tanks, the Avenger could carry 4 and the Lightning was just for troops. Don't remember what X-COM craft the Condor is based off of, but it should follow those numbers. That is, unless the model doesn't allow it. :wink1:

 

- Zombie

Link to comment
Share on other sites

:OffTopic:

 

Hey lads, just thought you might like to know its fantastic to see some progress in the coding area of things. i have absoloutely no idea whatsoever as to how this happens :) but it is wonderful to see something that to us mere mortals looks like progress (as from what i had gathered the xna branch of things was coming to a complete halt and possible death). Already I have seen a greater interest in the site and how many users are currently online/surfing the site (guest and annonymous users:P) although the real stats may say differently. Keep up what looks to be an enourmous effort =b !

 

Merely a lowly ct's point of view, take no notice of the loud over excited boy in the corner.... :bdaybiggrin:

Link to comment
Share on other sites

[...]Don't remember what X-COM craft the Condor is based off of, but it should follow those numbers. That is, unless the model doesn't allow it. :wink1:

It's based on the skyranger, so this shouldn't be a model problem at all... :)

This contains all new and old names.

Link to comment
Share on other sites

  • (Mad) We may also want to add a statisticsLink entry to the UFO entries in X-Net.xml (remember, this file is generated, so patch the source file xnetCtFiles.xml)
  • (Mad) X-Net.xml, for craft missiles, set the statisticsLink to point to the missile launcher, NOT the missile, in item.xml

This is probably best handeled by Zombie, since he is best familiar with the xmls already. Already PMed him.

Actually, Mad, I think you are the best person to work on that.

xnet.xml is the xml that gives, well, X-Net. and if you recall, it's generated from the CTD texts by Rtf2Xml. (Using the instructions in xnetCtFiles.xml)

What I'm talking about is each entry in xnet.xml can have a statisticsLink entry, which points at an entry in item.xml, to get the actual stats for the item put into the X-Net text.

If you have a look at the (aircraft) cannon, and sidewinder missile entries in X-Net, you'll see that different sets of stats are given. This is because the missile entry's statisticLink points to the sidewinder missile clip item. It needs to point to the sidewinder missile launcher. (in item.xml) The same thing probably needs to be done for the other missile launchers.

The UFO entries are completely missing a statisticsLink entry. So that needs to be added so that X-Net can show the stats for each UFO type.

 

I hope this is understandable.

 

I would do this myself, but (and I hope this doesn't sound arrogant) but I believe I can make better use of my time writing code.

 

If you could point me in the direction where to find basic.xsd and the two item files, I'll be happy to update item.xml to reflect the craft weapons.

In Subversion, here

And thanks for the UFO screenshots.

Link to comment
Share on other sites

Actually, Mad, I think you are the best person to work on that.

xnet.xml is the xml that gives, well, X-Net. and if you recall, it's generated from the CTD texts by Rtf2Xml. (Using the instructions in xnetCtFiles.xml)

What I'm talking about is each entry in xnet.xml can have a statisticsLink entry, which points at an entry in item.xml, to get the actual stats for the item put into the X-Net text.

If you have a look at the (aircraft) cannon, and sidewinder missile entries in X-Net, you'll see that different sets of stats are given. This is because the missile entry's statisticLink points to the sidewinder missile clip item. It needs to point to the sidewinder missile launcher. (in item.xml) The same thing probably needs to be done for the other missile launchers.

The UFO entries are completely missing a statisticsLink entry. So that needs to be added so that X-Net can show the stats for each UFO type.

 

I hope this is understandable.

Yea, I got it the first time. That's why I said it might be best handled by Zombie, since he is familiar with the other xml files. Anyway I'll try to have a look at this as well.

 

Problem with the thing linking the XNET entries to the launcher is, that we do get accuracy etc etc, but not, and that always bothered me about X-COM, the destructive power of a weapon.

 

Anyway, it's done - at least I think so.

Edited by Mad
Link to comment
Share on other sites

Problem with the thing linking the XNET entries to the launcher is, that we do get accuracy etc etc, but not, and that always bothered me about X-COM, the destructive power of a weapon.

I believe I've fixed that.

Have a closer look at the screen shot I posted. :)

Link to comment
Share on other sites

Problem with the thing linking the XNET entries to the launcher is, that we do get accuracy etc etc, but not, and that always bothered me about X-COM, the destructive power of a weapon.

I believe I've fixed that.

Have a closer look at the screen shot I posted. :)

Oh. Sorry, my bad. I deducted only from xnet.xml and items.xml. Over there it looked like it would only be taken from the launcher - and the launchers don't have damage values - that's why I mentioned this.

Link to comment
Share on other sites

Progress Report

  • Renamed Xenocide namespace to ProjectXenocide. (Fixes FxCop warning)
  • Renamed Craft namespace to Vehicles. (Fixes FxCop warning)
  • Renamed HumanBases namespace to Outposts
  • X-Net entry for UFOs now gives their statistics (screenshot attached)
  • ResearchTopic.Apply() now works for ONE_OF collections. (It use to grant from last to first but one item. And would never grant the first item.)
  • Each UFO is given a unique name
  • Each Human craft is given a unique name

Other notes:

  • I'm also thinking I should rename the Model.Geoscape.Countries namespace to Geography, as this namespace will aquire countries, regions and terrain.
  • For display of X-Net stats, you need to get the xnet.xml Mad updated. Which lives at http://svn.projectxenocide.com/assets/Creative Text Department/XNet
    not to be confused with the xnet in the c++ tree, which lives at http://svn.projectxenocide.com/xenocide/tr...ame/data/schema
    Aside, we've now got a bit of a problem, with two copies of xnet.xml in subversion, and they're not in sync.
    MindStormMaster, is there any way we can fix up Subversion to tell it that when someone asks for the xnet.xml in the c++ tree they get the one from the CTD repository?
  • Also, to get UFOs to show in X-Net, you need to go to Research, and interogate an Alien Engineer. I wonder if we should change "Interogate" to "Torture"?
  • Reason you don't see much with this checking is because I did some major code refactoring, and checked it before I proceeded with inventory.
  • I didn't check in DarkSide's patch, because I'm wating on his final version, then I can integrate it in one step. (I hope)
  • Minor issue, in the XML files, we have a number of names with hyphens in them. e.g. "ITEM_XC-22_ECLIPSE". Unfortunately, the hyphen can be mistaken for a minus sign and screws up parsing. We may want to remove the hyphens.

xeno.xna.2007_06_24.JPG

Link to comment
Share on other sites


×
×
  • Create New...