Jump to content
XCOMUFO & Xenocide

Xna Progress Release?


dteviot

Recommended Posts

Hi David!

 

I was wondering, if we shouldn't start thinking about preparing a Progress Release. Not tomorrow and not next week, but maybe as soon as the item buy/sell system and funding as well as intercept is working - that should be doable within the next two months or so, right? So I was thinking about what would be nice to have becides the mentioned things. Maybe you could have a look if you got the time and we could work out a list of needed features and what is needed to complete those features.

I thought of the following:

 

Sound and Music - It would be nice to have sound, as far as I know, this shouldn't be too difficult to integrate - the sounds are available already, and XNA comes with everything needed for this - right? Having Sound would add greatly to the value of a PR.

 

UI - maybe a little polishing of the UI would be nice - I know this is very difficult. It would be very nice to one day have the old UI back, because I really think this looked pretty damn nice, but as far as I understand this, we'll have to use whatever we get for now since CeGUI++ is not compatible with CeGUI#. So I was wondering if it would be possible to polish your UI a little bit. E.g. get rid of the blue frame in Geoscape and extend the starbox to lay under the button-panel on the left side. Plus it would be nice if the frames and boxes wouldn't be movable anymore but fixed and had some kind of glue-greyish background so they are readable more easily. What's with SupSuproe? Could he be motivated to work on this?

 

Models - I have no clue whatsoever how difficult it would be to import the old models. This is a very low priority, but it sure would be nice to have rotating models at least in the XNet.

 

So these would be the things I think are important for someone interested in playing our PR. Maybe you could give me some feedback about what is doable/realistic and what timeframes you would estimate for this. Again, no pressure - let's keep this between us and those who really need to know (e.g. maybe Rincewind since he is the only one working with you right now) for now so noone gets dissapointed and there'll be less pressure - especially on you guys. I just thought it might be good to have a reachable far goal, maybe within the next three months.

 

Best wishes

 

Mad

 

I assume you're suggesting a progress release of the XNA branch. My first response is that the XNA branch is still experimental, and we haven?t decided yet to continue with it. So, unless we?re going to go this route, building a PR is a bit pointless.

 

Assuing we want to do a PR, taking your points, somewhat out of order:

  • UI. I'm reluctant to spend any time polishing this. The reasoning is as follows. The exising CeGui# library, while adequate, is going to need significant work (months) to get it to a "polished" state we will desire for a finished work. As the XNA branch of xenocide (for XeNAcide as I like to think of it) is probably going to take 2 to 3 years to finish the basic engine at the current rate of progress. I'd rather spend the time working on the engine in the hopes that over this period, either others will work on the CeGui# library, or an alternate widget library will become available. That said, grabbing the background artwork for the screens from the C++ branch and putting it into the XNA branch is probably doable. I've got some notes on how I think it could be done in ToDoList.html in the docs directory of the XNA branch. If you can find someone willing to do the work, I will be happy to give them some additional pointers.
  • I haven't even looked at sound. I suspect it is a simple task, but as with CeGui, it's not core to my main objective, getting a working engine. My priority is "get it working."
  • Importing models. Is a bit like the CeGui# story. I've spent some time investigating this. The big problem at the moment is XNA only has 2 types of models it can import .x and .fbx. .x files loose a lot in conversion. They only have mesh and diffuse colour maps. .fbx work better, but getting an export we can import is a problem we have yet to solve. RK is investigating. That said, others are working on a Collda import pipeline, and I think this is the way to go. However, it?s a matter of waiting a bit for their work to finish. (Perhaps a year.)
    That said, a number of the existing models can be imported into XNA. Of the blender files we have, I know the two missiles convert, the XC-33, and grenades. (note, the XC-33 is missing the diffuse texture maps.) The X-Caps can also be imported with a bit of manual fixup. The laser rifle also converts, but there?s some weirdness with the scaling ? which I haven?t looked into. Rotating the models in X-Net is trivial. Right click on the image, then move the mouse. Right click again to stop the rotation. As in the geoscape. Mouse wheel changes the zoom.

Timetable:

I'm working on funding at the moment. The big bit here is the statistics screen. Which I estimate will take 2 to 3 weeks. Depends on how much time I spend fighting Rincewind. And answering e-mails:-)

 

Items/Buy Sell. Based on how much effort this took to implement last time, I'd guess about 2 months.

 

Edit: Ignore this bit about XNA being dead, we're still going to continue with XNA.

Finally, I think it's time to admit that the XNA branch is a dead end. The fundamental problem is XNA doesn't run on Linux. And I can?t see this being rectified within the next two years.

 

And this really annoys me, because I think XNA/C# allows us to make good progress. The only way I can justify continuing on the XNA branch is assuming that we can use C# as a prototyping environment. Build an engine that works, then backport it to the C++/Python codebase. As such, spending time on cosmetics such as polishing the UI, Sound, importing models etc. are a complete waste.

Edited by dteviot
Link to comment
Share on other sites

About .fbx I have been investigating the issue and found out that the original exporters that comes from Autodesk in 3D Max are flawed, you have to download the new SDK of FBX with its new importers from here:

http://usa.autodesk.com/adsk/servlet/index...&id=6839916

 

Noneless I heard too that Blender 2.44 has already FBX exporters, so if you are doing models in blender the exporting should be easy:

http://msmvps.com/blogs/mykre/archive/2007...fbx-export.aspx

 

So if anyone can try those excelent, I have to give my first mid term exam in 4 years :S on Thursday (knew 1 week ago about it), I am basically screwed. As Dteviot said, XNA version is still Xperimental; even though it is the most active branch of development (thanks dteviot and rincewind for that).

 

Greetings

Red Knight

Link to comment
Share on other sites

Noneless I heard too that Blender 2.44 has already FBX exporters, so if you are doing models in blender the exporting should be easy:

http://msmvps.com/blogs/mykre/archive/2007...fbx-export.aspx

 

So if anyone can try those excelent

Greetings

Red Knight

I've tried out Blender 2.44.

Yes, it's got FBX exporters. And of the 3 bender files I exported and then imported. 2 failed completely, and the one that worked only imported the mesh, not the diffuse (color) map.

On the good news front, the .x file exporter included in 2.44 contains my patches, so the .x file exporting works better.

Link to comment
Share on other sites

People,

First off, I must apologise for failing in my duties as team leader (or whatever my title is) of the programming team. Specifically, I have not been looking ahead and trying to plan Xenocide's progress in an organized manner. Sorry, that came out wrong. What I meant was figuring out what we want to do, and who does it so that we're not "treading on each other's toes." In my defence, until recently, it was just me working, so it wasn't really a problem. But that's just an excuse.

 

At any rate, I'm now going to try and rectify this error.

Mad has (very wisely) suggested that we should look at putting together a demonstration release, within the next two to three of months. And I'm thinking that might just be possible. At least in terms of putting together a game engine that is at least minimally playable. So I'm now going to try and list what I think that would be, the tasks that would need to be done to get there, and possibly assign order to do them and who will do them. (In order to minimise conflicts.)

 

So: What I think a demo release has to be able to do:

At the moment, we're trying to get the Geoscape working, so I'm thinking we should be able to implement the "stopping the UFOs" part of X-Com.

  • Alien AI will launch controlled missions against earth.
  • X-Corp (player) will try and stop the UFOs. Player will be able to:
    • Build bases (done) ? to provide radar "listening posts" and "airfields"
    • Build facilities in bases (done)
    • Purchase craft and assign to bases.
    • Purchase ammunition and weapons for craft.
    • Arm craft
    • Order craft to attack UFOs

    [*] At end of month, X-Corp funds will be adjusted depending on success of missions.

    [*] Radar visibility of UFOs will be honoured.

So, we tasks do we need to do to be able to do this?

  • Craft need further implementation, weapons, damage, etc. Having different types of UFOs and Aircraft. Repair of craft etc.
  • Aircraft should actually fight UFOs. Even if it's just a simple D&D style, aircraft fires, and rolls to hit, then if hit, rolls for damage. Then it's UFOs turn. Repeat until one is dead/crashes/user aborts.
  • Read (at least) UFOs, aircraft and craft weapons from items.xml.
  • Buy aircraft, craft weapons and ammo.
  • Sell aircraft. (weapons and ammo is optional, but probably comes with little extra development cost.)
  • Optional: be able to transfer aircraft. (plus weapons and ammo if extra development cost is tiny.)
  • Arm aircraft.
  • Order aircraft to attack UFOs, patrol areas.
  • Radar visibility.
  • Probably need a cheat mode to make UFOs always drawn on Geoscape, for testing of Radar visibility.
  • Way of setting reward for X-Corp/Aliens when an alien mission is foiled/succeeds.
  • Track Alien/X-Corp score and display to player (so knows where Alien activity is)
  • Alien AI needs to launch missions in a controlled fashion. That is, each month, the Alien AI will choose a number of missions and start them. Note that according to MISSION.DAT, a mission can involve multiple UFOs, launched over a period of several weeks.
  • As a mission will target a region, we need a mechanism for converting a region to a position on the globe.

Alien AI notes:

  • According to MISSION.DAT, each month there should be 2 randomly chosen missions, one terror mission, a supply mission to each established base, and possibly retaliation missions against X-Corp bases, if X-Corp starts getting successful killing UFOs.
  • However, I suggest that for our initial target, we ignore Alien bases, their supply missions, and retaliation missions. If we also ignore terror missions, then the remaining missions are essentially identical. UFO appears, flies to a location, wanders around a bit, then flys off. (I'm open to implementing terror missions as well.)
  • So, as starting point, we just have the Alien AI launch 3 multi UFO missions per month.

OK, we've now got a ToDo list. Let's get some feedback. What have I missed? What errors have I made? Any other suggestions?

Link to comment
Share on other sites

OK, here's my plan for what I intend to do over the next 2 months. (So no-one else work on this)

  • Read UFOs, aircraft, weapons and ammo from items.xml
  • Connect these items with the craft classes.
  • Aeroscape dialog box
  • Allow aircraft, weapons and ammo to be stored in bases.
  • Dialog to allow player to arm aircraft.
  • Buy/Sell/Transfer aircraft/weapons/ammo

If anyone plans on working on the other parts, please post here, so that others know what you're doing and we don't duplicate our efforts.

Link to comment
Share on other sites

What about getting some actual model loaded in game to represent the UFO and X-Corp craft?

 

Or some cities/country borders to be displayed on the globe?

 

Is the aeroscape dialog the dogfighting UI ?

 

I can look into handling that part with getting a random coordinate within a region if you don't mind

Edited by Darkside
Link to comment
Share on other sites

What about getting some actual model loaded in game to represent the UFO and X-Corp craft?

 

Or some cities/country borders to be displayed on the globe?

 

Is the aeroscape dialog the dogfighting UI ?

 

I can look into handling that part with getting a random coordinate within a region if you don't mind

Link to comment
Share on other sites

What about getting some actual model loaded in game to represent the UFO and X-Corp craft?

 

Or some cities/country borders to be displayed on the globe?

 

Is the aeroscape dialog the dogfighting UI ?

yes.

 

I can look into handling that part with getting a random coordinate within a region if you don't mind

Please do.

Link to comment
Share on other sites

UI - maybe a little polishing of the UI would be nice - I know this is very difficult. It would be very nice to one day have the old UI back, because I really think this looked pretty damn nice, but as far as I understand this, we'll have to use whatever we get for now since CeGUI++ is not compatible with CeGUI#. So I was wondering if it would be possible to polish your UI a little bit. E.g. get rid of the blue frame in Geoscape and extend the starbox to lay under the button-panel on the left side. Plus it would be nice if the frames and boxes wouldn't be movable anymore but fixed and had some kind of glue-greyish background so they are readable more easily. What's with SupSuproe? Could he be motivated to work on this?
I have no idea how CEGUI# works, nor does there seem to be any documentation on it, or even anything on their website.

 

We should consider looking into alternatives. The main reason we used CEGUI was because it worked great with OGRE. CEGUI# doesn't seem to be all that developed, and there might be simpler better alternatives for XNA. We don't even use half of the controls and features it provides, and it's "reskinned Windows UI" approach isn't very gameish. Heck, all X-Com used was basic buttons, lists, texts and scrolls.

Link to comment
Share on other sites

Doing a quick search at the xna forums revels a couple still in development

 

Microsoft will be making their own guicode in xna

 

"We're not releasing anything like that in April, if that's what you mean. It is something we're considering for a future version, but it's not in the ballpark of, say, the next six months. We probably won't announce what might be coming next (after the update in April) until about then.

Note the careful use of the words "probably" and "might". ;-P

--Stephen

Stephen Styrchak, Software Design Engineer - XNA Community Game Platform Team

"

Edit:

 

This one looks much better but I can't read it.. didn't try a translater but look at the screenshots

 

http://msmvps.com/blogs/valentin/default.aspx

 

-------------------------------------------------------------------------------

Thrust

 

http://jsedlak.org/taxonomy/term/32

 

and http://www.codeplex.com/thrust

 

screenshots an info

 

hope this helps some if you do feel like straying from cegui but doesn't look like there is much better then cegui for xna yet

Edited by Darkhomb
Link to comment
Share on other sites

this one lets you use flash to make your ui..

 

http://groups.google.com/group/fluix

 

That looks pretty interesting. Seems like a quick easy way to get a decent looking UI going. Just wonder how it's performance would be on the geoscape screen? The demo video they have only shows them using it for a game menu occupying full screen and not as a UI together with a 3D scene

Link to comment
Share on other sites

Finally, I think it?s time to admit that the XNA branch is a dead end. The fundamental problem is XNA doesn?t run on Linux. And I can?t see this being rectified within the next two years.

 

And this really annoys me, because I think XNA/C# allows us to make good progress. The only way I can justify continuing on the XNA branch is assuming that we can use C# as a prototyping environment. Build an engine that works, then backport it to the C++/Python codebase. As such, spending time on cosmetics such as polishing the UI, Sound, importing models etc. are a complete waste.

 

There just might be a glimmer of hope in this Mono XNA project in development. I really hope it works out because I really am enjoying working with XNA C#.

Link to comment
Share on other sites

Edit:

 

This one looks much better but I can't read it.. didn't try a translater but look at the screenshots

 

http://msmvps.com/blogs/valentin/default.aspx

I tried a translator: http://www.google.com/translate?u=http%3A%...=en&ie=UTF8

 

It seems to enable you the skin standard windows controls. Might take a look, if I can get over the automated translation.

 

-------------------------------------------------------------------------------

Thrust

 

http://jsedlak.org/taxonomy/term/32

 

and http://www.codeplex.com/thrust

 

screenshots an info

 

hope this helps some if you do feel like straying from cegui but doesn't look like there is much better then cegui for xna yet

Wow, Thrust seems pretty cool, but it's still pretty early in development.

 

 

this one lets you use flash to make your ui..

 

http://groups.google.com/group/fluix

I don't know if our art department uses Flash though.

 

 

 

Red Knight pointed me to this: http://www.codeplex.com/xnastage

 

It's pretty developed and allows you to have UI animations and lots of other cool stuff, though it hasn't been updated for the Refresh version yet.

Link to comment
Share on other sites

Finally, I think it?s time to admit that the XNA branch is a dead end. The fundamental problem is XNA doesn?t run on Linux. And I can?t see this being rectified within the next two years.

 

And this really annoys me, because I think XNA/C# allows us to make good progress. The only way I can justify continuing on the XNA branch is assuming that we can use C# as a prototyping environment. Build an engine that works, then backport it to the C++/Python codebase. As such, spending time on cosmetics such as polishing the UI, Sound, importing models etc. are a complete waste.

 

There just might be a glimmer of hope in this Mono XNA project in development. I really hope it works out because I really am enjoying working with XNA C#.

OK, I should have updated this earlier. After some discussions with the rest of the programming team, XNA is NOT DEAD.

The plan is to continue with XNA, building a working game engine, but with the minimum graphics work we can get away with.

That is, in 6 to 12 months, we should have a fully working geoscape, with all the features found in X-COM EU (give or take a little) but the graphics will be about the quality you currently see. Then I start work on the Battlescape. Not sure how long that will take to do, a pure guess is another 12 months.

 

Once we've got a fully working engine (in 18 - 24 months time) we then have a decision to make. My hope is that by that time, we will be able to run XNA on platforms other than Windows. My suspicion is that Cegeda will be able to run XNA by then. Another possiblity is that someone will have got Mono.XNA working. And of course, there should be a decent UI system available by then.

 

The backup plan is to keep working on the C++ code base, having it track the XNA engine. (That is, we try stuff in XNA, and once it works, it gets implemented in the C++ code base.)

 

Note, the above time estimates are my best guess, and while I'm reasonably confident on the 6 to 12 months for the Geoscape, I can't guarantee it. (Note, 12 months is probably the more realistic estimate.)

Link to comment
Share on other sites

OK, I should have updated this earlier. After some discussions with the rest of the programming team, XNA is NOT DEAD.

The plan is to continue with XNA, building a working game engine, but with the minimum graphics work we can get away with.

That is, in 6 to 12 months, we should have a fully working geoscape, with all the features found in X-COM EU (give or take a little) but the graphics will be about the quality you currently see. Then I start work on the Battlescape. Not sure how long that will take to do, a pure guess is another 12 months.

 

Once we've got a fully working engine (in 18 - 24 months time) we then have a decision to make. My hope is that by that time, we will be able to run XNA on platforms other than Windows. My suspicion is that Cegeda will be able to run XNA by then. Another possiblity is that someone will have got Mono.XNA working. And of course, there should be a decent UI system available by then.

 

The backup plan is to keep working on the C++ code base, having it track the XNA engine. (That is, we try stuff in XNA, and once it works, it gets implemented in the C++ code base.)

 

Note, the above time estimates are my best guess, and while I'm reasonably confident on the 6 to 12 months for the Geoscape, I can't guarantee it. (Note, 12 months is probably the more realistic estimate.)

That sounds very good. But from a PR point of view, I would like to ask/suggest the following: if possible, a little polishing in the GFX would be beneficial to prevent people from saying: "you have made a large step backwards" before they even look at the implemented features. That is of course if there is no manpower wasted on it. What do I want to say with this? Until now, AFAIK you SupSuper always worked on the UI only (more or less), right? So my question is: Wouldn't it be a good thing if SupSuper plays around with the GUI while everyone else continues as if nothing was changing? Is that even possible? That idea is of course based on an assumption of which I don't know if it's right: SupSuper prefers coding GUI to a point that he doesn't want to code other stuff.

Link to comment
Share on other sites

If you get it working first I can probably pull together what you need to polish it. Edited by Vaaish
Link to comment
Share on other sites

That sounds very good. But from a PR point of view, I would like to ask/suggest the following: if possible, a little polishing in the GFX would be beneficial to prevent people from saying: "you have made a large step backwards" before they even look at the implemented features. That is of course if there is no manpower wasted on it. What do I want to say with this? Until now, AFAIK you SupSuper always worked on the UI only (more or less), right? So my question is: Wouldn't it be a good thing if SupSuper plays around with the GUI while everyone else continues as if nothing was changing? Is that even possible? That idea is of course based on an assumption of which I don't know if it's right: SupSuper prefers coding GUI to a point that he doesn't want to code other stuff.

I'll drop a PM to SupSuper and ask him.

In theory, it shouldn't be a great deal of effort to re-skin the CeGui# controls that we're using to make them look similar to the ones in the C++ codebase.

All it should require is this:

  • Change the images in http://svn.projectxenocide.com/xenocide/xn...TaherezLook.tga
    to match the xenocide buttons, scroll bars, etc.
     
  • Put backgrounds on the screens. That is, currently screens and dialogs use a set of CeGui Widgets to make
    a MSWindows like "frame" around each window. Replace the frame with a static image widget, and load the widget
    with the screen's background from the SVN trunk. (Note, most of the backgrounds have been drawn as 2 square bitmaps
    with sizes a power of 2, to handle old graphics cards. - I'd suggest saying don't worry about that, and composite them into
    single, non-square bitmaps. (The earth texture I'm currently using is neither square nor a power of two, so obviously
    that's not a problem for most people.) The CEGUIBuildDialog from the Ogre Wiki shows how to put bitmaps into a button.
    The modifications to do same with a static image widget are trivial.

Of course, if anyone else wants to have a go at that, feel free.

And post a note here if you have problems.

Link to comment
Share on other sites

The start screen is:

http://svn.projectxenocide.com/xenocide/tr...startscreen.png note that while is is a 1024 x 1024 image, we only need the 800 x 600 part of it.

 

http://svn.projectxenocide.com/xenocide/tr...k_button_v2.png has most of the pieces for the buttons and scrollbars. If search for xenolook_button_v2.png on the forums, you should find more detail on them.

 

The X-Net background is made from http://svn.projectxenocide.com/xenocide/tr...et/xnetleft.png and http://svn.projectxenocide.com/xenocide/tr...t/xnetright.png (or at least each of those bitmaps has part of the background.)

So, what I'd do here is cut out the pieces and join them together to make a 800 x 600 bitmap.

Note that the area of the bitmap where the 3D model will be drawn needs to be transparent. (Alpha value of 0)

 

The right hand column of the Geoscape is in http://svn.projectxenocide.com/xenocide/tr.../planetview.png

I'd create an 800 x 600 bitmap, leave the left hand side transparent (so the 3D Earth can be seen) and put the column from planetview.png on the Right of the image.

 

A final note, I've sized the buttons in X-Net, Base layout & Geoscape all assuming a common layout. (Based on the C++ Geoscape screen)

There's a column of buttons down the right hand side, and a 3D image on the left.

So my thought was have a common background with these areas marked out, and draw the controls on top of them.

However, I've since discovered that on X-Net, the right hand column is wider than the Geoscape one.

Link to comment
Share on other sites

The X-Net background is made from http://svn.projectxenocide.com/xenocide/tr...et/xnetleft.png and http://svn.projectxenocide.com/xenocide/tr...t/xnetright.png (or at least each of those bitmaps has part of the background.)

So, what I'd do here is cut out the pieces and join them together to make a 800 x 600 bitmap.

Note that the area of the bitmap where the 3D model will be drawn needs to be transparent. (Alpha value of 0)

 

I put them together but about the scroll up down buttons? And all the left overs with planetscape Will these merge with the other set?

startscreen_2_.png

xnet.png

planetscape.png

fxnet.png

Edited by Darkhomb
Link to comment
Share on other sites

Wouldn't it be a good thing if SupSuper plays around with the GUI while everyone else continues as if nothing was changing? Is that even possible? That idea is of course based on an assumption of which I don't know if it's right: SupSuper prefers coding GUI to a point that he doesn't want to code other stuff.
It's not that I don't want to code anything else, I'm just completely useless at it. :P

 

 

That sounds very good. But from a PR point of view, I would like to ask/suggest the following: if possible, a little polishing in the GFX would be beneficial to prevent people from saying: "you have made a large step backwards" before they even look at the implemented features. That is of course if there is no manpower wasted on it. What do I want to say with this? Until now, AFAIK you SupSuper always worked on the UI only (more or less), right? So my question is: Wouldn't it be a good thing if SupSuper plays around with the GUI while everyone else continues as if nothing was changing? Is that even possible? That idea is of course based on an assumption of which I don't know if it's right: SupSuper prefers coding GUI to a point that he doesn't want to code other stuff.

I'll drop a PM to SupSuper and ask him.

In theory, it shouldn't be a great deal of effort to re-skin the CeGui# controls that we're using to make them look similar to the ones in the C++ codebase.

All it should require is this:

I'm pretty sure the problem we ran into when doing that in the C++ version was that the Xenocide UI doesn't fit in any way the Taharez UI (it's not even standardized) so it looked buttugly and we resorted to a Falagard-based widgetset instead. Edited by SupSuper
Link to comment
Share on other sites

The X-Net background is made from http://svn.projectxenocide.com/xenocide/tr...et/xnetleft.png and http://svn.projectxenocide.com/xenocide/tr...t/xnetright.png (or at least each of those bitmaps has part of the background.)

So, what I'd do here is cut out the pieces and join them together to make a 800 x 600 bitmap.

Note that the area of the bitmap where the 3D model will be drawn needs to be transparent. (Alpha value of 0)

 

I put them together but about the scroll up down buttons? And all the left overs with planetscape Will these merge with the other set?

 

Thanks for doing that.

The up and down scroll buttons should go into taharez.tga. The other artwork is probably not needed just yet.

Link to comment
Share on other sites

well my problem is that there is no transparency on the taharez and the xenocide widget is half the size as well. and nothing really matches

To be honest, when I wrote the notes on the files, I was thinking that information is more useful to someone who's also working on the code.

From an artwork perspective, my instructions probably aren't useful. No insult intended.

Link to comment
Share on other sites

  • 1 month later...

OK, looking at progress so far, the items that are left on the ToDo list are:

1. Radar visibility.

2. Improve Alien mission logic. (e.g. select region and hassle it)

3. Cheat flags

 

I probably also need to change the starting equipment list.

 

That said, I believe the game is actually playable in it's current state and would appreciate it if people could download, build, try playing, and give me feedback. So that hopefully I can remove the worst rough edges/bugs from the gameplay BEFORE we expose the progress release to the big wide world.

 

Edit: And I'd also like to say thanks to all the people who have chipped in to get the project to it's current state.

I'd name you all, but I'd forget someone, and that would hurt his feelings.

Edited by dteviot
forgot to say thanks
Link to comment
Share on other sites

OK, looking at progress so far, the items that are left on the ToDo list are:

1. Radar visibility.

Do you need these stats? If so, we did some decoding at the X-Com wiki about UFO Detection. Might come in handy. ;)

 

- Zombie

Link to comment
Share on other sites

OK, looking at progress so far, the items that are left on the ToDo list are:

1. Radar visibility.

Do you need these stats? If so, we did some decoding at the X-Com wiki about UFO Detection. Might come in handy. ;)

 

- Zombie

OK, looking at this part of the article,

Small Radars have a 10% chance of detecting UFOs within their range, and Large Radars have a 20% chance. If you have both Small and Large Radars built at the same base, their abilities are added together: you will have a 30% chance of detecting UFOs within 1500 nm and a 20% chance of detecting UFOs from 1500 nm to 2250 nm.

 

Hyper-Wave Decoders have a 100% chance of detecting any UFOs within their range.

 

I've got a couple of questions

  • Are those numbers correct? In which case, the figures in facility.xml need updating.
  • Am I correct in reading this as, every 30 minutes, a radar gets an opportunity (with 10% or 20% probability) to detect each undetected UFO that is within the radar's range.

Link to comment
Share on other sites

Project built well :), I tried all features I could find (building bases, playing with research and checking the X-Net, building+dismantling facilities at various stages, saving/loading, running "unit tests"??, funding statistics, interceptions, changing aircraft equipment, and these pop on my mind right now xD).

 

No crashes, no obvious bugs :). Maybe just 1 thing, at research, "cancel project" doesn't work, in order to cancel a project you have to assign 0 scientists to research it.

 

There are, of course, some tiny parts that could be improved a bit (for example, in order to edit a running research projecty, instead of "starting" the same project and setting a new number of scientists, you could just double-click the entry and change the number easily, which you could also accept with enter and not have to click OK. I hope you understood what I just said xD)

 

 

And I can't really think of any comments, except from "Good job!" :D

If you need me to test anything else, I'll be happy to help :O

Edited by kafros
Link to comment
Share on other sites

I've got a couple of questions
  • Are those numbers correct? In which case, the figures in facility.xml need updating.

Yes, the numbers are correct. The accuracies in facility.xml were, I believe, just junk values. The detection ranges in that file are in kilometers, not meters. Not sure if you wanted to update those or leave them be. ;)

 

  • Am I correct in reading this as, every 30 minutes, a radar gets an opportunity (with 10% or 20% probability) to detect each undetected UFO that is within the radar's range.

Correct. Though I consider the 30 minute radar sweep a severe limitation. See, an alien ship can potentially enter the detection radius of the Hyperwave Decoder (or any radar for that matter) at 1 second past the hour, fly around for 29 minutes and 58 seconds within that range and fly out again without ever being noticed. So the 100% detection probability of the HWD is true only on the 30 minute tick marks. The space in-between those instances is 0%. =p However, once the ship is locked in, the HWD never loses track of it - as long as the UFO stays within range and doesn't end it's mission. :)

 

- Zombie

Edited by Zombie
Link to comment
Share on other sites

I've got a couple of questions
  • Are those numbers correct? In which case, the figures in facility.xml need updating.

Yes, the numbers are correct. The accuracies in facility.xml were, I believe, just junk values. The detection ranges in that file are in kilometers, not meters. Not sure if you wanted to update those or leave them be. ;)

I can take care of the update. As regards meters/kilometers, it doesn't matter too much, so long as we pick a unit and document it. (As it will only be used within the file.

 

  • Am I correct in reading this as, every 30 minutes, a radar gets an opportunity (with 10% or 20% probability) to detect each undetected UFO that is within the radar's range.

Correct. Though I consider the 30 minute radar sweep a severe limitation. See, an alien ship can potentially enter the detection radius of the Hyperwave Decoder (or any radar for that matter) at 1 second past the hour, fly around for 29 minutes and 58 seconds within that range and fly out again without ever being noticed. So the 100% detection probability of the HWD is true only on the 30 minute tick marks. The space in-between those instances is 0%. =p However, once the ship is locked in, the HWD never loses track of it - as long as the UFO stays within range and doesn't end it's mission. :)

 

- Zombie

Hmmm. That brings up my next question, assuming I've got enough CPU to check each game minute, what rule do we use for radar coverage? Do we just dump the detection probability completely? i.e. It's always 100%. If not, what do you suggest?

Link to comment
Share on other sites

I can take care of the update. As regards meters/kilometers, it doesn't matter too much, so long as we pick a unit and document it. (As it will only be used within the file.

Gotcha, and thanks. :)

 

Hmmm. That brings up my next question, assuming I've got enough CPU to check each game minute, what rule do we use for radar coverage? Do we just dump the detection probability completely? i.e. It's always 100%. If not, what do you suggest?

Well, um, yeah. If (and this is a big if) you have the processor power and bandwidth to check every minute, great. I'd run a check every minute and if a UFO is within the detection radius, apply the probability. If no UFO's are going to be within range, no need to run a check and eat up precious processor power. We can still keep the probabilities, it's just that we are applying them in a shorter intervals. And even if you can spare a detection sweep every 5 minutes, it's still a whole lot better than the original game. Besides, a UFO can't go too far in that time frame. ^_^

 

- Zombie

Link to comment
Share on other sites

How about scaling the detection of UFOs according to the speed the game is running at? Say, every 30 minutes at the 1-Day speed, every 15 minutes at the 12-hour speed, every 5 minutes at the hour speed, every minute at the 5-minute speed? (I can't remember the speed settings... :P)

 

Maybe the UFO detection rates should just be tied to game-ticks? (I hope I'm being clear...)

Edited by Astyanax
Link to comment
Share on other sites

I can take care of the update. As regards meters/kilometers, it doesn't matter too much, so long as we pick a unit and document it. (As it will only be used within the file.

Gotcha, and thanks. :)

 

Hmmm. That brings up my next question, assuming I've got enough CPU to check each game minute, what rule do we use for radar coverage? Do we just dump the detection probability completely? i.e. It's always 100%. If not, what do you suggest?

Well, um, yeah. If (and this is a big if) you have the processor power and bandwidth to check every minute, great. I'd run a check every minute and if a UFO is within the detection radius, apply the probability. If no UFO's are going to be within range, no need to run a check and eat up precious processor power. We can still keep the probabilities, it's just that we are applying them in a shorter intervals. And even if you can spare a detection sweep every 5 minutes, it's still a whole lot better than the original game. Besides, a UFO can't go too far in that time frame. ^_^

 

- Zombie

Actually, it's the distance calculation that's expensive. It looks like this:

			double dlon = position.longitude - longitude;
		double dlat = position.latitude - latitude;
		double a = Math.Sin(dlat / 2.0f) * Math.Sin(dlat / 2.0f) + Math.Cos(latitude) * Math.Cos(position.latitude) * Math.Sin(dlon / 2.0f) * Math.Sin(dlon / 2.0f);
		return (float)(2.0 * Math.Asin(MathHelper.Min(1.0f, (float)Math.Sqrt(a))));

 

The random number generator is (in comparison) cheap.

x = (x<<13) ^ x;
return ( 1.0 - ( (x * (x * x * 15731 + 789221) + 1376312589) & 7fffffff) / 1073741824)

Link to comment
Share on other sites

There is space for improvement on that function (calculating Sin and Cos for only 2 of those) or using a faster table version of Sin if really required. If I can finish with damned university course I will do a profiling run to find the hotspots.

 

Greetings

Red Knight

Link to comment
Share on other sites

There is space for improvement on that function (calculating Sin and Cos for only 2 of those) or using a faster table version of Sin if really required. If I can finish with damned university course I will do a profiling run to find the hotspots.

 

Greetings

Red Knight

Actually, last night I realized I was asking the wrong question.

It's not "what is the distance between these two points"? It's "Is the distance between these two points less than X?"

Which means I can do some fast checks to see if I even need to calculate the distance.

 

 
if (distance < abs(PointA.Latitude - PointB.Latitude)) 
|| (distance < abs(PointA.Longitude - PointB.Longitude) * cos(max(abs(PointA.Latitude) - abs(PointB.Latitude)))
{
  // can't be inside distance
  return false;
}
else
{
 // do distance calculation
}

 

Note that we keep distances in radians.

Hmm. I need to add some unit tests to the Geoposition class, to double check the calculations.

 

Anyway, with earth having a diameter of 6000km, and the tachyon detector a radius of 4400km, just this part of the test "distance

It works much better for aircraft however, 86% of the time the test will be short circuited.

 

Anyway, shouldn't be hard to set up a unit test to generate 1000 random points (which are compared to each other) and see what the effect of different rule optimisations is.

Link to comment
Share on other sites

  • 2 weeks later...

OK, I'm almost ready to release the XNA Progress release.

Steps to install are .

  • Make sure you have Direct X 9.0c runtime installed.
  • If Microsoft.Net framework 2.0 isn't already installed, download and install it. You can check if it's installed by looking to see if the directory C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 exists. If it does, you've got .Net 2.0 installed. If directory doesn't, then download and install.
  • Download and install XNA runtime (1.9 megs). Here's the link for the English version: http://www.microsoft.com/downloads/details...;displaylang=en
  • Download the XNA Xenocide package. (it will be a ZIP file of 1.9 Megs size).
  • Unzip the package, and run Xenocide.exe

One question guys, where do I upload the Xenocide package to? I assume we don't want it on the forum, to keep the load down.

 

PS, I've just got to tweak the textures in the package. I changed a couple for testing purposes. So package should be ready in about 14 hours.

Link to comment
Share on other sites

OK, I'm almost ready to release the XNA Progress release.

Steps to install are .

  • Make sure you have Direct X 9.0c runtime installed.
  • If Microsoft.Net framework 2.0 isn't already installed, download and install it. You can check if it's installed by looking to see if the directory C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 exists. If it does, you've got .Net 2.0 installed. If directory doesn't, then download and install.
  • Download and install XNA runtime (1.9 megs). Here's the link for the English version: http://www.microsoft.com/downloads/details...;displaylang=en
  • Download the XNA Xenocide package. (it will be a ZIP file of 1.9 Megs size).
  • Unzip the package, and run Xenocide.exe

One question guys, where do I upload the Xenocide package to? I assume we don't want it on the forum, to keep the load down.

 

PS, I've just got to tweak the textures in the package. I changed a couple for testing purposes. So package should be ready in about 14 hours.

 

I can easily make an MSI with everything from the zip file, if you would like to package it that way. (Using Windows Installer Xml, AKA the free WIX tool set).

 

-D

Link to comment
Share on other sites

I can easily make an MSI with everything from the zip file, if you would like to package it that way. (Using Windows Installer Xml, AKA the free WIX tool set).

 

-D

Thanks for the offer. However, in order to keep the bandwidth down, we'd rather people get .NET and the XNA runtime from elsewhere. Besides, it becomes even more of an issue as people need to get the version of .Net (and possibly XNA) to match the language their OS is using. (e.g. English, German, Spanish, etc.)

And once DirectX, .NET and XNA are installed, all that remains is unzipping a file and running an executable. That hardly needs an MSI installer.

 

And now, with some pride, and a great deal of trepidation, I announce the escape into the wild of XNA Xenocide 0.1.0.1684.

(The version number goes ....)

 

I won't ask you to be nice to it, I want it abused, to find the issues. But I would appreciate knowing the problems people find.

 

xna.Xenocide.0.1.0.1684.zip

Link to comment
Share on other sites

Isn't running :(

 

1st error message (click for full image):

http://www.picport.gr/t/20070815/Fe4MrALidzk37v1mlqIo.png

 

2nd one:

http://www.picport.gr/t/20070815/Wjmk7z93LtUqVPDxRfJe.png

 

And the 3rd one was like the 2nd, but the problem was "unspecified exception" (in greek)

 

DirectX 9.0c (august update), .Net framework 1.1 and 2 installed, and XNA Framework installed : /

Link to comment
Share on other sites

Isn't running :(

 

1st error message (click for full image):

http://www.picport.gr/t/20070815/Fe4MrALidzk37v1mlqIo.png

 

2nd one:

http://www.picport.gr/t/20070815/Wjmk7z93LtUqVPDxRfJe.png

 

And the 3rd one was like the 2nd, but the problem was "unspecified exception" (in greek)

 

DirectX 9.0c (august update), .Net framework 1.1 and 2 installed, and XNA Framework installed : /

Sorry, can't really make out the text of the images, and clicking on them doesn't work.

You may be able to copy the text to the clipboard by left clicking on the dialog, then going ctrl-c.

It looks like problem is there's a file missing. Unfortunately I don't know which one. Will investigate.

Link to comment
Share on other sites

Sorry, can't really make out the text of the images, and clicking on them doesn't work.

You may be able to copy the text to the clipboard by left clicking on the dialog, then going ctrl-c.

It looks like problem is there's a file missing. Unfortunately I don't know which one. Will investigate.

Hopefully fuslogvw.exe can indicate the missing file(s).

Edited by dteviot
Link to comment
Share on other sites

Sorry, can't really make out the text of the images, and clicking on them doesn't work.

You may be able to copy the text to the clipboard by left clicking on the dialog, then going ctrl-c.

It looks like problem is there's a file missing. Unfortunately I don't know which one. Will investigate.

Hopefully fuslogvw.exe can indicate the missing file(s).

Something funny going on here. I've installed and run the Xenocide package on 2 PCs using the steps I've detailed, and it worked both times.

Link to comment
Share on other sites

×
×
  • Create New...