XCOMRL

Two Years of X@COM

by Kyzrati on 20130608 , under

Two years of development squeezed into "one" image. Imagine that. Okay, no imagination necessary--it's right there.

It might change at some point soon (if/when I move), so here's a shot of the X@COM dev station as it's remained since the game's inception:
For the curious.
The screen setup is me working on the 3D particle system yesterday, adding support for more dynamic map objects as a first step towards an improved battlescape UI.

The IDE scrollbars are especially useful, since they show the code formatting/indentation and other important information for reference. Here are some examples, because they just look neat by themselves:

X@COM source! Sort of.

Beginning tomorrow I'll be out of town for a couple weeks so there won't be much to show in the near term.


4 comments more...

4 comments

  • Kyzrati

    Yeah, the scrollbars are useful for quickly moving to relevant sections of code as long as you have a good grasp of the general structure, and in my case they can save a lot of time since some of the core classes/files contain 5000+ lines.

    It's Visual Studio 2010, with some modifications--it doesn't normally have such cool scrollbars.

    As for the breakdown, you can probably tell the blue line is the baseline, with everything to the right being nested code and/or loops. The purplish dots to the left are instances of whatever string/identifier/keyword/etc the caret happened to be focused on at the time (another awesome feature), and the red bars along the left side mark changes to the code that session. On this particular day I happened to be integrating dynamic map features like labels and animations into the battlescape map, which also required some modifications/additions to the particle system (hence the sections you see changed).

  • anatoly techtonik

    Very cool. Is patented? I'd like to see this implemented in Spyder IDE for Python projects some day. =)

    Why baseline is not continuous? Is it comments? Why is it red sometimes?

    In Spyder IDE purplish dots are yellow marks. We also have background linter marking doubtful code sections in real-time.

    There are no left red bars equivalent, because the only state that could be tracked here are unsaved changes, and these are saved very often - for every test run. This information should come from version control system though. How do you track when session starts - opening the IDE? Does reopening the IDE kills the session?

    What are the other colors on the right? Very interesting.

  • Kyzrati

    No, certainly not patented, just a free add-on developed by someone for VS. (I didn't write it, btw.)

    While I called it a "baseline", that essentially refers to (usually) function scope, so the breaks would coincide with empty lines between functions/methods (possibly comments, since the bars ignore those), and it's sometimes red (or other colors) when there are rather deep levels of indirection on the right side sort of pushing/squeezing everything to the left, so a major loop or switch could end up overlapping the baseline. (Have to deal with those cases somehow!)

    The colors on the right simply represent different types of scope, like a for loop, while loop, switch statement, etc. Green is for, red is switch, and I'm not really sure about the others since I've never actually examined the bars in this much detail--I just find it an easy way to skip to the section of code I want by knowing relatively how long and deep that section is (and where it's located). For example, the last consecutive blue line in the c_map file is the battlescape console's render() method, the first major group of for loops draws the environment, the second draws entities, etc.

    Other types of larger dots will mark what you describe as "doubtful code" in the scrollbars, but there aren't any examples of that above ;p

    A "session" would end when you restart the IDE. I'd have to say it's probably far more meaningful/useful to show the changes since the beginning of the session rather than the last save--in fact, the latter would be useless in my case since I save as soon as I stop typing, *every* time I stop typing (it's a habit from the good old days without autosaves/autorecovery; lost progress sucks!).

    You can learn more about the extension's features here. That's actually an updated version by a new dev--I'm still using the old one from a few years back (which is no longer available).

Post a Comment