SFB Software

Star Fleet Universe Discussion Board: Company-Conventions-Stores-Ideas: New Product Lines Development: GENERAL PROJECTS: ANCILLARY PROJECTS: SFB Software
  Subtopic Posts   Updated
Archive through May 15, 2007  25   05/15 09:10pm

By Jeff Laikind (J_Laikind) on Wednesday, May 16, 2007 - 12:39 am: Edit

I have a copy of a very involved program written by a friend (in BASIC) in the 80s. It:
runs the impulse chart
tracks movement (including turn modes and EM) of all units
tracks seeking units with secret targeting
launches multiple units (fighters, drones) in the hex of the launching unit
moves units for black holes and nebula
runs damage for ships and PFs
runs minefields, both random and player set up, including size class settings and detection
runs weapon charts allowing for EW, LWO, atmosphere, and Tholian web
tracks damage for up to 4 dragons
has the monster effects from Basic and Advanced Missions
many other functions

I don't know if it is possible to decompile it. I'm not sure if he's still around anymore.

By Steven Pow (Asmoridin) on Wednesday, May 16, 2007 - 07:10 am: Edit

John, what do you mean by 'plug and go'?

By Tim Longacre (Timl) on Wednesday, May 16, 2007 - 10:25 am: Edit

I e-mailed SVC about helping out with this, as well as suggestions for a product (I'll paraphrase the e-mail later during my lunch break). I could write/help to write a program in Java to do a number of useful things, but my free time is lacking (I am a software engineering major in college).
Does anyone else who wants to help with this know Java? Perhaps collaboration could get a working product finished faster.

By Tim Longacre (Timl) on Wednesday, May 16, 2007 - 01:44 pm: Edit

O.K., to paraphrase what I sent to SVC, "An event tracking application that incorporated the sequence of play, movement chart, DAC, and record keeping would be most useful."
If anyone can think of anything else that would be good to include, I would be interested in knowing.
If it is done in Java, it would be cross-platform so long as the JRE (Java Runtime Environment) for the appropriate OS is installed.

By Erik Underkofler (Eunderko) on Wednesday, May 16, 2007 - 03:19 pm: Edit

I have a simple DAC implemented in Java. It keeps track of the single hit columns and also columns that were skipped (due to nothing of that type left). I want to expand it someday to actually have a visual representation of the DAC, since the current one just displays stuff as text in a list, but that isn't critical for function.

I also did a simple impulse chart where selected speeds could be highlighted (to make it easy to follow certain speeds). Basically each ship and its current speed is entered and the chart shows visually the current speeds and current impulse.

I think the tool described for determining damage would be cool too. Basically select a weapon, a range and how many were fired and have the damage calculation happen automatically.

One other tool I have is a tool for creating SSDs. I basically built a drawing program customized for drawing SSDs. Makes drawing the boxes, labels and marks in boxes (for fighters, weapons, etc.) very easy. It has some minor issues with the drawing of the outlines around the ships, but I have recreated most of the SSDs I have in the program (makes it easy to print out copies and the copies look neater to me than photocopies). This tool may make it too easy to pass around electronic copies of the SSDs, though.

Basically if Java is acceptable, and I can get reasonably detailed requirements, I don't mind trying to create just about any program that might be of use. I can only test the programs on Windows, but they should be reasonably easy to port to other platforms that support java.

By Andy Vancil (Andy) on Wednesday, May 16, 2007 - 08:03 pm: Edit

I am learning Java and have thought about trying to port my programs to it.

By Tim Longacre (Timl) on Wednesday, May 16, 2007 - 08:18 pm: Edit

Erik, I would be interested in seeing that if there are no objections by anyone (I can wait until SVC says yea or nay).

By Michael Bennett (Mike) on Wednesday, May 16, 2007 - 08:38 pm: Edit

I am curious as to how a program would be able to determine DAC results in such a detailed way to figure which columns should be skipped as a game progresses. Wouldn't a lot of the weapons hits be determined by the direction the direct fire was coming from? Does the program prompt for the direction, too?

By Michael Bennett (Mike) on Wednesday, May 16, 2007 - 08:42 pm: Edit

I had an impulse chart in one of my program's incarnations, but with mid-turn speed changes and emergency deceleration, it was more than I could handle from the programming side. One other difficulty with it was the need to constantly go back and forth between the impulse chart screen, another screen with the weapons menu, and another screen with the DAC results. It was too much for me!

By Tim Longacre (Timl) on Wednesday, May 16, 2007 - 10:12 pm: Edit

Michael, as far as DAC results go, you could build the chart items as a class with a bool/boolean component that would indicate once per volley (bool opv for example). Also, I believe that determining volley damage by direction can be done, but it will require a solid programming methods and good knowledge of how damage volleys work.
As far as going back and forth between screens goes, that should not be necessary so long as several things are taken into consideration:
It must loop through the events/impulses with an impulse counter that will accumulate (which should fix most of the issues).
It would be best to have a GUI interface, with player generated actions and regularly occurring impulse activity shown in separate areas of the screen.
A database interface will most likely be useful, with a permanent part/table devoted to the rules generated impulse events.

BTW, what language did you code your program in?

By Gary Bear (Gunner) on Wednesday, May 16, 2007 - 11:35 pm: Edit

One of the true problems with a DAC or even a damage generator is the creation of truly random numbers. It's not an easy thing for a computer to do and I don't think you can trust stock programs like Excel. Just ask Paul Franz about the discussions regarding that for SFBOnline.

By Jeff Laikind (J_Laikind) on Thursday, May 17, 2007 - 12:26 am: Edit

There are two ways to run a DAC program: human response and stored ship data. Each way has a different method of dealing with directional hits.
Human response works the same as rolling dice by hand. For each hit, the victim responds yes or no to whether the ship can take the hit.
For stored ship data, the program should ask, for example, "how many phasers are in arc?" And then only damage that many phasers until they start getting zapped by Any Weapon hits.

I have seen a couple of programs that couldn't handle Center Hull. The program forced you to put half as Forward and half as Rear.

By Tos Crawford (Tos) on Thursday, May 17, 2007 - 01:03 am: Edit

Near random numbers are close enough for me if there is no intelligence guiding a particular result.

By michael john campbell (Michaelcampbell) on Thursday, May 17, 2007 - 08:02 am: Edit

My TRS-80 kept giving me the same random numbers.
I put a GOSUB routine in with an INKEY$ command to get out of the loop and a RND command to keep picking a new number every time in the loop.
Thus all the random numbers were being generated by the opperator based on the randomness of how long (to the milisecond) it took him to press "S" to start after reading;" Press S to start."


Not sure if you can do that as an EXCEL command.

By Andy Vancil (Andy) on Thursday, May 17, 2007 - 11:48 am: Edit

Excel's random numbers are fine. The problem is purely psychological - if you get a suspicious looking string of numbers, then players want to blame the program.

By Andy Vancil (Andy) on Thursday, May 17, 2007 - 12:00 pm: Edit

I have a VB form-based DAC that just duplicates what you would do by hand - it rolls the dice, references the chart, keeps track of which column you're on, keeps track of once per volleys, etc. It skips columns where the system is gone, and appropriately handles center hull, any warp, and so on. It can handle multiple volleys. It's simple, but it really speeds up damage allocation, especially when you start getting deep in the DAC.

It does not, however, know anything about the ship taking damage or remember anything about available systems between uses. It also doesn't work for unusual damage cases, like Qari turret armor, Dark Matter Damage procedure, single volleys with multiple phaser directions, etc. Some day I'll update the program to handle those special cases.

I also have a damage analysis program. This one stores data about the ship systems, and can handle phaser direction and damage priority. In cases where there is a choice of systems to hit, it will either give you a choice (like SFBOL, except it knows phaser direction) or assigns it automatically according to its logic. While this system could be used to do the DAC, it's actually more cumbersome than the simpler program. Its primary purpose is to simulate how ships take damage

By Erik Underkofler (Eunderko) on Thursday, May 17, 2007 - 02:52 pm: Edit

My DAC works similarly. For the single-hit columns, once a hit is scored, it automatically moves to the next column. For other columns, the user tells it to skip a particular hit type and it will continue to skip that column until a new volley is scored. One other thing about it that I like is it lists all the alternatives (i.e. mine racks and barracks) for the hit location. Means you don't need to look up the more esoteric ones.

Having it actually track damage on individual ships (ala SFBOnline) would be very nice, but also a whole lot more work.

I don't mind sharing my programs, but obviously the final decision on that rests with SVC.

By Glenn Hoepfner (Ikabar) on Thursday, May 17, 2007 - 04:17 pm: Edit

My DAC, since we are sharing features, is in excel. It displays the full DAC on the screen. On the left of the DAC displays how many hits remain, how many hits were scored, total hits involved, the two dice numbers and their total (in case you can't add). On the right of the DAC is a list of systems which you check off when they are no longer available. If the system is checked off, that system is visually erased from the DAC, fun to see when the DAC is down to a near blank grid. There is a pull down menu for race specific DACs, and to add new races to the permanant database will take only about 10 minutes per race.
And, of course, a reset button to automatically restore to normal. AND, its pretty to look at. When the dice are "rolled", the sum highlights the number on the DAC for easy view. Each one-time hit can be checked on the DAC to remind you that it has been hit and can be ignored on that volley.

By Tos Crawford (Tos) on Thursday, May 17, 2007 - 05:21 pm: Edit

Since the DAC for SFBOL is already written and Paul has a working relationship with ADB it would be possible to clientize that interface.

By Tim Longacre (Timl) on Thursday, May 17, 2007 - 05:50 pm: Edit

I'm not concerned about random number generation. In Java, the Random Class seeds off of the systems' clock with a precision of 1 millisecond. In C++, there is a way of doing the same thing, but you must code it (otherwise you will get the problem MJC was describing).
As far as where the hits are taken, you can set up the program to include everything that can be hit on that particular damage type, and track it.
It would be good to mention that a lot of this can be handled well with the cousin of the Array Class known as the ArrayList Class (if anyone is interested in seeing its specs, click here). And I should mention that check boxes for selecting units might be a very good thing...

By John Pepper (Akula) on Saturday, June 07, 2008 - 01:56 am: Edit

Without getting too technical, you can use SecureRandom in Java which is better than Random. Random might not have a 1 millisecond precision "the granularity of the value depends on the underlying operating system and may be larger. For example, many operating systems measure time in units of tens of milliseconds. "

By Brodie Nyboer (Radiocyborg) on Sunday, February 21, 2010 - 01:40 pm: Edit

Firefox version 3.6 offers Firefox Personas, which are simple to use themes for the browser. I have no idea how these things are made, but I thought it might be cool to come up with some kind of Star Fleet Universe persona that players could use.

By Brodie Nyboer (Radiocyborg) on Sunday, February 21, 2010 - 05:11 pm: Edit

Someone called Hyperdesk has created a handful of Trek personas. Apparently they have them for Windows and Playstation as well, and they have some kind of "promote your brand" thing.

By Michael Bennett (Mike) on Monday, February 22, 2010 - 04:26 pm: Edit

I tried a couple of those personas and thought they were too dark to see the menus properly.


Add a Message


This is a private posting area. A valid username and password combination is required to post messages to this discussion.
Username:  
Password:

Administrator's Control Panel -- Board Moderators Only
Administer Page | Delete Conversation | Close Conversation | Move Conversation