Star Wars: The Old Republic
I’ve not been posting here much lately because I just haven’t had time to evaluate my own frustrations to produce a meaningful rant, or working on anything I was able to share details of beyond what little I posted.
I did, however, get a couple of brief tastes of Star Wars The Old Republic
and figured it was worthy of a mention.
The game incorporates many aspects of various other games, and a very subtle learning curve. As a result, it gives different many people a sense of deja-vu of <insert some game here>. I heard people saying “it’s wow in space”, but personally I got more of a City of Heroes feel.
If you are looking for a Star Wars Universe Simulator, move along. This is a BioWare, KOTOR-setting, multiplayer game in the vain of WoW, EverQuest, Rift, etc… It will be accused of being dumbed down, plaguerising, the whole nine yards.
It does use its predecessors as templates to build upon, so WoW players will find it to be a lot like WoW while EQ players will find it to be a lot like EQ and SWG players will think it is SWG v2.0 or something…
But once you get past the fact that Character Creation and Inventory have been done before, and you get to what purposes and shapes your gameplay experience – that’s where the BioWare kicks in.
In obsessing about comparing with other games, people tend to miss out the story-telling element, and most importantly forget that BioWare story telling isn’t 1-dimensional.
Like I said a moment ago, this is a BioWare game integrated into an MMO platform…
Around Level 10 your quest line hooks you up with a companion, and things start to get interesting. The companions are part pet and part plot device. But you’ll recall the in BioWare games, companions also have a 1:1 storyline in terms of their relationship to your character.
Like LOTRO, SWTOR also has a sort of chaptering system. When you finish your first planet, you’ll encounter a “Flash point” – a hard-core instance that typically requires a group of 2 or more players (maximum group in SWTOR: 4 people). The flash points have a lot of dialog and storyline, I spent nearly an hour doing my first.
Best of all, the dialog introduces branch points, leading to multiple outcomes. I did the flash point twice and both encounters were completely different after we made different selections to the first dialog.
My first time playing all I could do was see the similarities to other MMOs and come away feeling ‘blah’.
But it is not a clone of anything and there is more than enough difference to make the gameplay more than just enoyable but actually fun.
After my second time playing, I was pretty hooked. I pre-ordered and, I have to tell you, I have been jonesing hard ;)
Good version control needs to be …
… topical.
CVS was a nightmare because it let you nest branches ad-nauseum: it simply created a new dot with a new numeral below where you were, e.g. if you branched 1.34.0.5 it became 1.34.0.5.x
SVN lets you create your own branch hierachy, just don’t count on anything to really understand it.
For many projects branches are significant ancestry points of the project. The version that supports Windows 8, 64-bit work, etc.
But this branching concept doesn’t help with agility, test management, feature management or anything but small projects.
A “topic” has a relatively short life time and is supposed to comprise a subset of changes, e.g. a particular feature, being prepared for addition to a branch. You might consider two types of topic, branched (that is, they are based on a specific revision of the branch they descend from) and floating (that is, they are represent a change set to the head of the branch they are descended from, whenever you refresh the working copy, the changes are shelved, the head is updated, and then the changes are re-applied).
The sole purpose of topics is for them to be merged upwards, e.g. when they’ve been tested and sanctioned.
There must be a VCS (aside from Torture-force, I mean perforce) that does this?
October line count revisited
As a result of the analysis behind the Oct 4th post, I actually found several chunks of code that had been discontinued but not entirely removed during 1.34 development. Quite significant, too.
osmith@luciddev:~/pn$ date && linecount Fri Oct 7 12:02:48 CDT 2011 647767 total
That’s another 9,860 lines eliminated (well, more accurately, it appears to be about 13,000 lines of client code replaced by a little over 3000 lines).
Windows gets viruses, but who lets them in?
Kind of interesting article linked from Slashdot, finds 37% of infections are via the Java JRE (I’m not surprised, Java is secure, not impenetrable, but average Java developers don’t understand the difference), 32% via Acrobat/Reader and 16% via Flash. 85% in we finally get to the usual suspect, MS Internet Explorer: 10%.
Of course, if you look at the other stats, it should be fairly clear that many of the infections are happening during browser usage, and they give a breakdown of browser exposure (to attacks: 66% IE, 21% ‘Fox, 8% Chrome).
But next time we are mocking Windows security, remember: 85% of infections via Sun/Oracle and Adobe.
October line count
[Edited: Corrected my numbers for C&P errors]
Previous line count, in May, 628,681 lines.
osmith@luciddev:~/pn/ww2/src$ date && linecount
Wed Oct 5 10:57:21 CDT 2011
657627 total
Or +28,946 lines.
That seems fairly significant. If you assume an average of 4 words per line, that’s 48, solid, hours of typing at 40 words per minute.
Of course, programming is a little more than just typing, so chances are that while the coders here can probably type at 40 words per minute or higher, they very likely generate code at a rate of 5-10 words per minute while working. Which means more like 10 weeks of typing. Divide by the 5 programmers we have, that’s a solid 2 weeks each of inputting new code – no distractions, no breaks, no meetings…
The surprising number, though, is the number of lines of code that have changed. Ignoring white space changes and lines with changes to only one word or less than 8 characters difference: 143,385 lines.
Secret reveal of Microsoft’s iTunes killer
Working with traits…
URGH!
I’m trying to write something along the lines of:
template<typename _ItrType>
static size_t countThings(_ItrType begin, _ItrType end)
{
size_t numThings = 0 ;
for ( _ItrType it = begin ; it != end ; ++it )
{
Entity& entity = getEntityFromIterator(it) ;
numThings += entity.numThings ;
}
}
// Handle associative iterators.
template<typename _KeyType>
Entity& getEntityFromIterator(std::pair<_KeyType, Entity&>& it)
{
return it.second ;
}
template<typename _KeyType>
Entity& getEntityFromIterator(std::pair<_KeyType, Entity*>& it)
{
return *(it.second) ;
}
template<typename _KeyType>
Entity& getEntityFromIterator(std::pair<_KeyType, Entity>& it)
{
return it.second ;
}
// Handle sequence iterators.
template<typename _ItrType>
Entity& getEntityFromIterator(_ItrType& it)
{
return *it ;
}
I.e. something that will allow me to write a function that will take an iterator range and worry about whether the iterators are sequence or container for me at compile time.
But it always falls thru to my last case. The error from GCC indicates that I need to specifically look std::_RB_tree_iterator<std::pair<_KeyType, Entity>> etc, but I’d rather not. I’m wanting to do something to peel back until we get to an Entity, e.g.
template<typename _Outer, typename _Inner>get(_Outer<_Inner>& container) { return *container ; }
template<typename _Key, typename _Value> get(_Key, _Value entity) { return get(entity) ; }
get(Entity& entity) { return entity ; }
get(Entity* entity) { Return *entity ; }
Cannot seem to find a way to get this to work, and I’m starting to think I probably need to do some traits jiggery-pokery. Grr.
QuickPath owns
When Gophur was building my desktop workstation about a year ago, there were various considerations. While it was fun having multiple PCs, it gets old when it comes to moving stuff around between them. I could also better justify a heavier-hitting machine by having one PC to run not only my desktop but also my other machines virtually.
Somehow, though, I let Goph talk me down to an i3 or i5 – I don’t even remember. What I do know is that it is not an i7.
The i-core CPUs feature Intel’s new QuickPath technology. Short version? Replace the single-lane, cobblestone paved connection between processor and memory, disk, etc with a 2 or 4 lane highway.
If you remember AGP, QuickPath is kinda AGP for everyone and AGP on steroids.
Before QuickPath your processor had a single pipeline (“bus“) for talking to memory, disks, etc.
QuickPath provides a way for the CPU to have multiple conversations going on with different hardware devices (sound chips, graphics card, disks, memory, etc) etc. It also allows the chip to have an onboard memory controller so that the CPU can talk to multiple sticks or banks of memory at the same time.
Which is handy for the CPU if it plans on, say, multi-tasking.
W8DP (Windows 8 Dev Preview) Continued…
This has to be really early days for the UI; the phone UI heritage screams at you. For example: There’s no clear and evident “shutdown” or “reboot” interface.
If you click on your “User tile” on the start screen/menu/page you get an option to log off.
Sometimes, right-clicking screens works and you get an app-wide context menu. But it doesn’t seem consistent.
The lack of a close-app button is bothering me greatly, hehe.
Windows 8 (Dev Preview)
I’m in the middle of moving house, we just finally got into our apartment properly last night. For my test of Internet connectivity, I decided to download the Windows 8 Developer Preview. This morning, while waiting for the carpet guy to come collect his ozone machine (they cleaned the carpets but that didn’t remove the dog-pee stains or the smells of smoke, weed or dog), I gave it a very quick spin.

Recent Comments