Posts mostly about WWII Online

Happy new year

To the random individual still tuned in, a happy new year to you.

I’m still at Facebook, no evidence of it being the evil empire folks want to believe it is. Rather, a collection of folks who worry about the same things you do, who care about privacy not least because their mom is on Facebook too.

I’ve been playing Crypt of the Necrodancer, Faster than Light (which I didn’t play when it was hot and new) and a lot of Kerbal Space Program.

I’m starting to feel I’m done with KSP now, though; I can launch to orbit, even recover small payloads from orbit with a recovery ship, I’ve built a (crappy) station.

I squeezed some extra longevity out of the game with mods including MechJeb (an autopilot, so I could focus on building rather than flying, because I just find the flying part tedious key-holding). But I haven’t flown a rover, built a base on another planet, manned mission to Duna etc.

It may be because I don’t feel “free” to experiment with stuff before I launch it into space. I’ve built rovers and driven around KSC with them but I’ve no clue how I would get it into space and drop it anywhere useful. (It doesn’t help that stock fairings are broken in 1.0.5 and turn any rocket into Tippy McSplodey).

Development-wise, nothing exciting to report at the moment. I’m building up a hankering to get my teeth into C++14 and ++17 properly, but I’m lacking a good project to work on and a good description of what the changes are to actually rustle up a project.

Talking with the new team at CRS/Playnet, I’m filled with a lot of confidence. I think the clean break is going to prove good for the guys, they’re clearing away the dead bodies that the old team — self included — were stumbling around. I’m really looking forward to them having a successful 1.35 launch. We left them a lot of landmines, so … be gentle on them.

Rapid Assault: “Up the Draw”

Busy squaring away portage of some of the major server rewrites from Rapid Assault to WWIIOL 1.35 at the moment, so haven’t had a lot of time for updates, and due to the down-low nature of what I’m working on, it’s not always easy to find ways to discuss it without touching on aspects of the code I’m not comfortable airing.

The Rapid Assault KickStarter project is ticking along, Update #4 is about the “Up the Draw” combined arms D-Day map (click for link to it)

Rapid Assault: Up the Draw map

Preview and explanation of the Rapid Assault combined arms map, “Up the Draw”

KickStart: Rapid Assault

We’ve just unveiled our “Rapid Assault” project on KickStarter. This is the project that’s spun out of several of our side-projects and we’ve also been using as a development platform for re-engineering some of the WWIIOL subsystems. We’re already in the process of in-house testing the results of porting those improvements back to Battleground Europe which should result in some awesome coolness :)

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).

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.

It makes me giggle

The first online game I played, Essex MUD circa 1982, gave it’s highest level players seemingly god-like powers. These were the Wizards. They differed from today’s GMs in that it was just a rank you could achieve.

I can’t begin to tell you what I imagined their powers to be… You’d have to think Matrix/Neo/Airbender or something.

When I finally met the game’s creator a few years later, I was desperate to see what it was like to be a “Wizard”; I actually expected to see the game represented with graphics rather than text.

Of course, it wasn’t anything more than gaining a few more commands when you reached a certain rank, and those commands were mostly pretty mundane.

So you’ll have to forgive me for the giggle/smirk that I break out into every time I read someone describing the evils beset upon them by the GMs in our game. Someone sent me an excerpt where a guy using a cheat had tried to justify his use by saying “I could see the GM screwing with me when I used it”.

More code, and more gone.

After finishing the cleanup I wanted to get done tonight, the line count is back down again:

  628681 total

That’s despite adding two new source files and five new headers :)

May 2011 Line Count

It’s been a little over a month, we’ve gotten a lot of work done.

  629099 total

Compared to March, we’re actually increasing the line count. While more chunks of old, unloved code have been discarded, I’ve also been adding quite a few new modules and while they are generally smaller than the systems they replace, the unit tests that accompany inflate the line count significantly.

Line Count

Been a while since I posted one, I think. That last count saw Client + Host Code — just the client and host, not including the network apis etc, at 629,208 lines of code (3 years ago).

Current count, including network apis and now also unit tests: 623,880.

We’re getting more from less by increasing amounts of code-reuse through good encapsulation, and we’ve also been forced to weed out chunks of code, of varying sizes, that were interfering with or preventing desired functionality.

Ramp and I have been working on the persistent map/mission connection system, and have been incorporating various ideas the two of us have had over the years, resulting in a fairly nice API at the coder level, that produces pretty efficient low-level code.

Also found various bugs that probably caused CTHLs over the years, and seem to be nailing them down.

The new grid: Sexy and short.

Yesterday I got the new cell host’s Grid System code integrated, up and running for the first time. Slight frame-of-reference whoopsie on the first run, I’d commented out some frame-of-reference code so if you weren’t at 0,0 you couldn’t see anyone :)

I’m stuck for words describing the elation this has induced in me and why.

I want to leap, gushing, into what it’s already allowed me to do, the immediate benefits and gains I can see as the cell host’s godfather. But I’m also aware that what I write here ends up in the forums and would likely get blown out of proportion :) So I’ll start with some obvious tech-head droolery.

$ for file in host/hostGrid.cpp updt/updtPackers.cpp
> do
>   wc -l pn-{1.32,1.33-newgrid}/WW2/src/${file}
> done

 1379 pn-1.32/WW2/src/host/hostGrid.cpp
  557 pn-1.33-newgrid/WW2/src/host/hostGrid.cpp
  2364 pn-1.32/WW2/src/updt/updtPackers.cpp
  1315 pn-1.33-newgrid/WW2/src/updt/updtPackers.cpp

And to give perspective…

1.32 host/hostGrid.cpp comments: 145
1.33 host/hostGrid.cpp comments: 275
1.32 updt/updtPackers.cpp comments: 163
1.33 updt/updtPackers.cpp comments: 209