Welcome to DarkStride
· Home
· Downloads
· Forums
· Gallery
· Members List
· Private Messages
· Projects
· Your Account

 Google Ads
There isn't content right now for this block.

Stellar Lanes
A Legacy Realm Prequel

What is Stellar Lanes:
At its roots, Stellar Lanes is a glorified 2D game of asteroids. You control a ship which you pilot top down in a first person twitch type game. The world is persistent with a server/client game architecture. The game has an item collection system, so as you loot opponents you are able to upgrade your ship and weaponry. More than anything else, Stellar Lanes is based upon the old Star Control series. The default ship graphic is actually shamelessly stolen from the Ur-quan Dreadnaught of that game.

Why remake a classic?
Well my plan was not actually to remake it. Let me take you back to an older time, a more naive time. I envisioned a vast galaxy, where events moved of their own accord reacting to the players action. Each player controlled fleet of ships which they could configure to auto-trade between various routes. Players could control individual ships, which they would build by ‘gluing’ together dozens of hull pieces to make massive dreadnaughts. This grand game would be called “Legacy Realm”. Then came the morning… black Monday. I woke up and realized that I could never build such a system. Shoot, no one could. After my mental recovery, when I was able to eat solid food again, I started scaling back my projects. And I mean MASSIVLY scaling back. I decided to implement just the combat system for “Legacy Realm”, figuring that if I maintained my interested I could go on to add more to it. So I designed “Stellar Lanes”, the combat engine for my dream of “Legacy Real”. So why remake a classic? It wasn’t my original plan, my original plan (like all solo developers) was to exceed the original. Now I’m just doing what I can and enjoying the journey, not the destination.

The basis of Stellar Lanes is the modular design of the ships. All ship modules and all ship chassis are at their roots items (programmatically the Chassis class and Module class derive from the Item class). If your Chassis is very straight forward then all you have to do is override one or two simple methods and your all set, same with Modules. I hope to soon pull these very simple pieces from the Stellar Lanes DB instead of requiring them to be a class at all. The purpose of all of this is of course the non-simple pieces. You can create a Chassis that does almost anything, and likewise a Module that does just about anything. There are of course limitations. The piece system (modules and chassis) is at its heard grid based, each piece specifying which grid squares its using (though that is an override able method so you could create pieces that change shape or had no shape at all). There is also a shield, skins, energy and damage system that is shared between all pieces. So for example introducing a new form of energy, while doable for your specific piece, would not be usable by other pieces unless it fit into the standard energy framework.
Ok so blah blah blah, if you’re a non-programmer your probably ready to shoot me, if your still reading. What it means is that anyone could come along and add new items into the game at any time, without my permission or cooperation. Of course they would have to be added at the server level so there are no security concerns. But I hope you can begin to see the flexibility this adds for later development, which as I said above was the whole point of Stellar Lanes… a combat system for later use in another project. One interesting challenge from this modular design was the special item feature. Every Module or Chassis can have special abilities. But how can an engine module that someone else wrote possibly take advantage of a special engine afterburner special ability? The answer is a bit cheesy, basically there is a pre-defined list of abilities that all modules should implement. This of course means that if special abilities are added later then all existing modules won’t respect them. In the future I hope to add a version to the special features so that modules that are to old won’t show up as having a special feature that they don’t implement.

The entire game is written in C#, DirectX 9C April 2007 edition. The back end is the Darkstride Game Engine, though really “Game Engine” is the wrong term, it’s more of a DirectX wrapper. Stellar Lanes also makes heavy use of the Darkstride Gob file system to store and load its relevant graphics and data. An old form of UDP DirectPlay is used for the network layer.

So what can I do now? None of this “some day” junk.
Well, you can run around the map, which is basically a planet and some asteroids, and kill things. Other players, asteroids, even some small A.I. controlled fighters. As you kill things you will often see loot pop into space and start drifting around. If you pick this loot up you will acquire one of three things, a Chassis, a Module or a Skin. The Chassis are the hull pieces. In the editor (‘E’ key) you can drag and drop the Chassis together, think of it like spot-welding yourself a car with no internal parts. The Chassis have connecters however, so not all Chassis can be connected the way you may like. Once you have the car it’s time to attach Modules. Again dragging and dropping, put your Modules (things like weapons, power generation, engines) onto the Chassis frame you’ve created. You’ll want to make sure to have some essentials, such as…

  • Weapons

  • Main Engines

  • Turning Engines

  • Power generators

  • Power Storage

Without those basis you won’t be able to fly around. Of course you may have a Module that does all of that for you. For example someone could create an engine that has its own power generation system and storage. The sky is the limit and it depends on what you find. When you first go into the game you will be given a ship that has all the basics and some perks. You may notice that some Chassis or Modules may have special abilities, things like generating a trickle of free power, or self-repairing. Also you’ll notice that as you kill things you’ll gain experience (a small “+10 EXP” will roll off of your kill). The experience will accumulate on your character but currently has no effect. The ‘I’ key will bring up your character sheet.

Controls & how to play:
Once again our modularity comes back to bite us… the controls are for the moment implemented by each module. I would like to create a standardized DirectInput system, but haven’t gotten around to it yet. For current modules I have tried to stick to the following standards.

SpaceFire primary
MFire secondary (Missiles)
LeftRotate Left
RightRotate Right
EOpen Ship Editor
IOpen Character Sheet
EscIn Game Menu

The Problem:
Tim Znamenacek, a Microsoft product manager has been quoted as saying "“In every project, there is one stubborn bug that goes all the way to the wire". In Stellar Lanes that problem has been network syncronization. Three weeks into development I had Stellar Lanes up and running in a network environment. You could fly around shooting each other and asteroids, a phenominal milestone for so little development time. During my very first real world test the game was crippled by network syncronization problems. Player A was here when he fired, but in Player B's world he was over there, so the worlds desynced almost imediantly. So I began to research this minor network syncing problem I was having... only to discover there is nothing simple about network syncing at all. I won't go into the next three weeks of works, lets just say they were painful mixed with a dash of agony. I guarentee my next project will not have anything to do with twitch gaming and the network syncronization problems it causes. Is causing. The primary reason I am wrapping up the Stellar Lanes project is because I cannot come up with a satisfactory solution to the network sync problem. It runs fairly well now, thanks to endless hours of tweaking. But each and every change to the game requires careful consideration. A vast change from Metal Marines where the game was the main focus, the network was secondary.

  • Fully functional network capability
  • No practical limits to the number of players that can join a game
  • Persistant server based world
  • Auto-patching of clients from server
  • Upgradable chassis
  • Varying loot from kills based on monster settings
  • New snazzy borders and backgrounds
  • Chassis Skins
  • Multiple types of motions (including reactionless)
  • An enhanced the menu system
  • A.I. Opposition
  • Planets and asteroids as navigation risks
  • Ability to host your own server
  • Auto-patching of clients from server
  • Upgradable chassis
  • Varying loot from kills based on monster types
  • Multiple types of motions (including reactionless, or realistic)
  • A.I. Opposition
  • Planets and asteroids as navigation risks

Reported Bugs:
Problem: Problem description here
Notes: Notes here
Status: Status here

Warstrider (04/01/2008)

Copyright © by DarkStride All Right Reserved.

Published on: 2005-12-02 (4491 reads)

[ Go Back ]
Web site powered by PHP-Nuke

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2005 by me.
You can syndicate our news using the file backend.php or ultramode.txt
Web site engine code is Copyright © 2003 by PHP-Nuke. All Rights Reserved. PHP-Nuke is Free Software released under the GNU/GPL license.
Page Generation: 0.15 Seconds