Battletech Live

Online, Turn-Based Battletech – Development Logs

How would the development of an OmniMech actually work?

Lets say you have an OmniMech in real life.  The purpose is to have a modular design where various items could be switched out quickly.  You don’t want to spend a lot of time on refits.  Would you keep one basic chassis configuration that basically never changes, then switch out arms and pods or would you want to take the time to refit the torso each time?

Should a game-based OmniMech follow the same concept?  Would it be beneficial to have a method for configuring arms and pods, based on a given weight, and applied directly to existing Mech designs?

Advertisements

January 14, 2009 Posted by | Project Development | Leave a comment

Battletech Live – Weekend move completed, coding to resume.

Over the weekend, I moved from an apartment to a house, switched over the electric, transferred the gas, set up phone and DSL.  I still have boxes thrown all over the house and need to organize the kitchen, bathroom and put a lot of books away.  The house is now set up for wireless, which is fine but for performing backups, streaming media to the HTPC and a number of other things, hard lines are much better.  Over the next few nights I’ll be cleaning the old apartment and organizing the new house and over the next few weekends, will be working on network cabling.  I’ll be slowly getting back up to speed with development but it will probably be a month or so before I’m ready to publish the Mech Lab.

The house is pretty old.  If I remember correctly, it was originally a post commander’s home, part of the old Fort Sidney and may date as far back as 1878.

Dining room currently cluttered with boxes.

Dining room currently cluttered with boxes.

The unpopulated rack in the new server cubby.

The unpopulated rack in the new server cubby.

January 12, 2009 Posted by | Project Development | Leave a comment

Using Battletech Live to import / export documents.

Today, I was working on a method of accessing the local file system to import text files, to pull designs from The Drawing Board, MegaMek, Mechworks and such but I discovered a limitation of the system and came to the realization of the security benefits of the limitation.  Using Flash Player 10, users can load files from their local hard drive and push them to a web server or they can download files from a web server and save them to their local hard drive, but Flash is unable to manipulate those files directly.  A friend gave an example of a banking website with a flash-enabled loader.  You load an excel file to the server and the limitations ensure that no modifications have taken place. Thinking about it, the file interaction bit will provide solutions to several aspects.

So, here’s how it works.  On my development box, Battletech Live has an import link within The Mech Lab.  When the button is clicked, it displays a file browser where the user is given access to only the file types applicable to Battletech Live.  Upon file selection, Battletech Live takes that file and posts it to the server.  A php script is then called to parse the new file and after correct formatting is verified, it saves it to the database and displays the Mech data to the user.  If the design is found to already exist in the database, the user is told that the design already exists and asks the user if they want to display the loaded information.  After php has finished parsing the design, it deletes the stored file from the server.  Any time a design is submitted by Administrator, the design will be considered to be a base configuration.  Another php script will then be called to generate a PDF of the design, which is then stored on the server.  Submitted designs may be modified or deleted only by the owner of those designs, although existing designs may be referenced, modified and saved as new revisions as long as there exists a substantial dissimilarity.

The Mech Lab also contains a browse button, which allows the user to view all stored designs and provides them criteria to narrow the scope.  When the user selects one of the designs, the information is retrieved and displayed to the user.  If a user wants to export a PDF of a selected design, a script is called to determine if the design in question is of a base configuration.  If so, it can immediately be pulled from the server and present the user with a file browser to select a save location.  If the design is user-submitted, it is not considered base.  In this instance, a PDF of the design is generated and sent to the user.  Afterward, the PDF will be deleted from the server to conserve space.

The import / export methods will also be used to import avatars to be used by players and/or characters except these files will be stored long-term.  The player will be given the option of making the avatar public, private or guild.  When set to public, the avatar will be browsable by all registered users, who can then set that avatar as their own if they wish.  If the avatar is set to private, others will be able to see the avatar when the owner is referenced, but usage of the avatar will be reserved strictly for the owner.  Guild, will make the avatar available for anyone who is in the same mercenary guild as the owner.  Using the same rules as for designs, avatars can be deleted only by the user who owns the avatar, or by the administrator if the avatar is determined to be offensive.  Members of the community may flag avatars as offensive, sending an email to the administrator, who will then review the avatar and will either provide the image with an appropriate rating or remove it outright.

These methods also apply to the email and instant messaging system, allowing users to send files to other users as long as users understand that Administrator sees all and can moderate traffic sent through the system.

January 7, 2009 Posted by | Project Development | 1 Comment

Battletech Live Q&A

  1. Any chance of being able to step back in the history of the game and have it visually show you the progression up to the current action?  Like it saves a 3d screenshot of the last actions performed so you can review it? Perhaps with trace lines and icons to show where it moved from in the previous turn, and what it did?
    1. Probably.  Since everything is server-based, I planned on recording all of the game data
      so that battles could be played back in realtime with animations.  I can also add a
      history bar for battles in progress so that players can step back through the rounds to
      see how things progressed.  Good idea.
  2. Is there any way to add a value to the mech itself that indicates  its height, and use some sort of subtractive method to determine  obscuration of the mech?  Say Atlass has a height of 3, and when  pathing the shot along the terrain, it sees 1 level of elevation  from a small building between the target and attacker, so it takes 3  from the mech height, minus 1 for the terrain, and figure the  modifiers based on the 2 left over?
    1. I seem to remember seeing a chart somewhere that talked about that kind of thing.  It might have been how to deal with things when the attacker and target are standing on different elevations.  It provided guidelines for determining the distance of the segment from attacker to obstruction, height of obstruction and distance from obstruction to target to determine if and by how much the obstruction truly obscures the view.  I’ll probably have to do something like that, based on the center of each hex.  Finding the height of each Mech isn’t difficult.  I can find it from Lightwave and record the number when it’s brought into the game.
  3. Is there presently a source of pewter Mechs now that Ral Partha has gone away?
    1. Yes.  Check out Iron Wind Metals Online.  At the time of this writing, they have 76 Aerotech models available, 33 aircraft, 393 BattleMechs plus numerous ProtoMechs, infantry, vehicles and boxed sets.  Individual BattleMech prices range from $7.75 up to $13.95.  Their models are very well done, and in some cases, include specific variants of models, which have never before been reproduced.

January 4, 2009 Posted by | General | Leave a comment

Battletech-related Posters

btech-civilwar

btech-machinegun

btech-try

kurita_motivator_2_

rampagingmech

vtol_fighter

shadowhawk1

January 4, 2009 Posted by | Off Topic | Leave a comment

Further status of the Mech Lab

The Mech Lab is almost to a usable point and so far, I like the way it’s turning out.  After I finish work on Bipeds, it’s a short step to Quads and another short step to OmniMechs.  From that point, I’m not sure if I’ll do vehicles next or if I’ll set up the mtl import first.  In any case, that’s a few weeks out still.

On the main page of biped configuration, I have maybe half of the fields linked into the needed calculations.  I was initially having problems figuring out how to do the math for Gyro mass (engine rating divided by 100, rounding up), but ended up working it out like this:

  1. Engine Rating = BattleMech mass * walking speed.  (60 Ton Mech * 4 walking hexes = a 240 engine rating)
  2. var t1:int = engineRating % 100;     //  This returns the remainder of the rating divided by 100, in this case, 40.
  3. var t2:int = Math.round((engineRating – t1) / 100);     // Subtract the remainder from the engine rating, then divide by 100 to get 2.
  4. If(t1 != 0) { t1 = 1 }     // Convert whatever remainder there was to 1.
  5. t2 = t2 + t1;     // Adds the converted remainder back into the original.

setupconstructAs an overlay to all of the build panels, I’m using the following as a slide-out panel.  It will give a realtime status of the build process.  The panel will stay on screen as the player moves from one sheet to the next so they don’t have to hunt for as much information.  In order to name a unit, they need only to click on the line that says Unit Name and it will supply an entry field.  I’m undecided as to whether I want to have a user-selectable unit designation or if I want to have it automatically generated by the server.  Either way would probably be fine.

setupsummaryThe armor diagram is handled mostly through the sliders, adjusting numbers accordingly or by clicking the Max Armor button.  Regardless of space, the maximum armor factor for a unit is 307, but it will be set up so that it utilizes all free space up to the 307 number.  As you can see, I don’t yet have it tied in to reflect the tonnage used.  I will be adding in the ability to do patchwork armor, different types of armor on different body parts and the ability to be non-symmetrical with armor points.

armordiagramThe equipment sheet will allow the selection of armor and equipment.  A standard list of equipment will be available for units that will be created, saved and left for later.  Two other sources are also available because in order for the player to be able to use the design, they will need to either be able to buy the BattleMech from a merchant house or outfit the Mech from equipment and weapons from their character inventory.

equipmentSimilar to The Drawing Board, the next sheet provides for allocation of equipment.  Weapons will appear on the left panel and other equipment on the right.  The charts auto-fill for required components and list blanks for free space.  Items from either left or right panels are drag-and-drop enabled.  Compact Crits is used to shift everything up to consolidate free slots and the Clear Crits button is used if the player wants to wipe out all optional items and begin again.

allocationThe Capabilities, History and Recordsheet tabs aren’t finished yet but the last sheet, All Equipment, does exactly what it sounds like it does, providing a chart of all weapons and equipment available for use in the game.  In the end, I will have several charts available, one for BattleMechs, one for vehicles, one for aircraft and one for personal equipment such as rifles and first aid kits.

weaponchart

January 3, 2009 Posted by | Project Development | Leave a comment

Mech Lab – Front Page

I’ve been working on Battletech Live, pretty much all day.  I got part of the calendar portion sorted out.  The month, year and day positions work correctly, but the holidays have dropped out.  I haven’t taken the time to fix those yet, but will eventually.  The Mech Lab is getting better, pulling much of the text out of the main file and into sourced arrays.  It still has a long way before it’s done though.

Here is a sample of the front page.

labfront

January 1, 2009 Posted by | Project Development | Leave a comment

Event Calendar died

With the rollover of the new year, the Battletech Live event calendar died.  Since I put it together a few months ago, I suspected it might have problems with January and February, and yeah, it does.  So, I’m pausing on the Mech Lab to go back and fix the month calculation for the calendar.

January 1, 2009 Posted by | Project Development | Leave a comment