|
KKND 2: Krossfire Development
Diary - 4
This
week I checked out what some of the programmers have been up to.
Programming seems to be the great unsung end of computer games creation
in that its results are not very tangible without the more spectacular
graphical side of things. As a programmer you can bang your head
against a problem for literally months and not have too much to
show for your time at the end (except to other programmers who are
probably going to be completely blown way by the neat piece of code
you've wrought).
Andrew has implemented unit pathfinding, and it
is markedly improved over the original game, especially for the
bigger units. It checks methodically for clear line-of-sight in
all of eight compass directions, retracing its steps when it hits
an obstruction. It also checks the path width to ensure those large
vehicles don't get stuck in narrow corridors that foot troops pass
through with no trouble.
Paul has been working on the Fog
of War. In KKND2 you now have the option to choose to obscure terrain
you've covered but aren't currently occupying. The distant terrain
appears as your units last saw itthe landscapes onlybut
grayed out to indicate that you can't be sure if anything new has
appeared there. Fog of War mode obviously makes the game harder,
but it's optional. The way in which the terrain is revealed is more
aesthetically pleasing too. In the original KKND, terrain was revealed
in a kind of a square. In KKND2 it's more even and circular.
In the original KKND the landscape started off blackened
out, and you could reveal the lay of the land only by heading out
to explore it. Now that black "shroud" is an optional
feature, so you can make the game easier as well as more difficult
with these new options.
Line
of sight is now a fact of life, making 3D terrain a reality. Obstacles
and undulations in the landscape can block a unit's view of the
surrounding areaareas the unit can't see directly are fogged
out and any movement in those areas is undetectable. You can see
and fire down from cliffs but you can't fire up from below them,
unless you have special artillery. Holding the high ground is now
an advantage that needs to be seized!
Louis is working on the network code to improve
the response of network or Internet games so that KKND2 can be played
effectively over a TCP/IP link as requested by KKNDers everywhere.
It's not easy coding but everyone's confident that if anyone can
do a good job of it, Louis can. Keeping the packet size small is
not a problemit was latency that tripped us up in the original
KKND. KKND2 will stream packets so that it always has a queue of
them to process. This way missing packets are more likely to arrive
before their absence affects the performance of the game, even on
slower networks. It's missing packets on a slow network that causes
the gameplay to become jerky and slow. Louis and Justin debated
about whether KKND2's latency solution amounts to loose synchronization
over KKND's tight synchronization. Louis says no. I conclude that
Louis' solution be deemed an original solution and no more textbook
comparisons be made.
Programmers Matt and Alex have been pulled off other
projects to work on the KKND2 Mission Editor, which has been the
most-requested addition to KKND since we first released the game.
You will be able to fiddle with the staples of the game using the
mission editor, which is designed to be comprehensive and easy to
use. You can create your own maps, place units and buildings, import
your own map tiles, and set start and victory conditions on your
own missions. Everything, in short, that the imaginative and enterprising
real-time strategist could wish to play around with in the game.
Matt, ever enthusiastic, assures me that it's almost completeanother
few weeks at most and it will be done. It will be a separate utility
from the main game, so you would run it, save your new parameters
and then run KKND2.
For a brief while this week, the name "Industrial
Revolution" was considered for KKND2. "Agricultural Revolution"
might have been more appropriate
.
|