Since it seems not to having been mentioned here, I post a link to a first attempt for a Cylon AI that got good comments on BGG:
https://boardgamegeek.com/thread/211...ylon-ai-posted
Since it seems not to having been mentioned here, I post a link to a first attempt for a Cylon AI that got good comments on BGG:
https://boardgamegeek.com/thread/211...ylon-ai-posted
Thanks was looking for something like this
Awesome. I’ll give it a few test runs.
Thank you for posting the link, Andrea.
Made an alternate attempt at running a solo match. Easier some special dice, but regular D6 can be used as well with a conversion key. Here's a demo: https://www.youtube.com/watch?v=1wAn...ature=youtu.be
Adam, thanks for the video of your solo system. Very smooth system you have created! If you could post your rules and the chart that shows the AI die rolls to maneuver choice that would be greatly appreciated. Many of us don't have local opponents to fly with so your solo system will give us a way to play BSG.
I've run BSG at gaming conventions and love it but sadly have no local players to enjoy this with.
I am taking a college course on Android App Development, and looking at doing an AI for BSG.
I will be using the BGG paper version as a starting point, but it will (I hope) be more comprehensive. I'm looking at the option of using the app for running a game for a group. Let's say two people are playing, but need three ships per side. One of the friendly ships could be run by an AI, and all the enemy ships could be AIs. Also, in this game, the Human players could be flying Cylons, not just Colonial ships.
The WIP, so far:
Battlestar Galactica AI Version 0.5
Inputs for Game:
-Select Altitude: Y/N
-Select Ship(s):
- Type (Viper MkII, Viper MkVII, Raider MkII, Heavy Raider, Raptor(Armed?))
. . Note: Different ships use different maneuvers and Acceleration rates
- Select Kinetic Energy: -1 to 6 (Starting Speed)
- Select Pilots: Number/Color/Name (To differentiate ships of the same type)
. . . . . . Enter Attack Bonus/Penalty
. . . . . . Talents:
. . . . . . . . . . Daredevil – Use Overboost after Difficult Maneuver (infinite uses);
. . . . . . . . . . Nimble Pilot – up to 5G maneuvers (infinite uses);
. . . . . . . . . . Resolute Pilot +1 Acceleration (5 uses)
. . . . . . . . . . Troubleshooter (1 Use)
- Select Obstructions Y/N
-------------------------------------------------------------------------------
Display Turn Counter(?)
Display Ships Remaining (Allow user to choose which ship to display for its next move)
On Individual Ship Display (For all ships in play):
- Ship Id;
- Previous KE;
- Rotation (If any);
- Altitude(If used);
- Difficult Maneuver Flag;
- Current Total Damage(?); and
- Any Special Damage Effects
Player Input - Beginning of Turn (for each AI ship):
- Target Location (Clock position: 1 – 12)
- Target Direction
- Elevation (If required – move up/down without Overboost)
- Distance: 21+ cms: High Speed (3) + Overboost)
. . 16-20 cms: High Speed (3) Manevuer(no Overboost)
. . 11-15 cms: Medium Speed (2)
. . 1-10 cms: Low Speed (1)
- Playing Area Edge(to keep ship from flying out of the game?)
- Input Talent Use: For Resolute Pilot (Up to 5 times in a game)
- Obstruction (Asteroids or Planets: Location and Distance to avoid? Input to adjust speed?)
- Execute Planning
Return to "Display Ships Remaining" (Player(s) input applicable info to each AI ship, skip over Player controlled ships)
[Edit] App Turn Moderation:
App Functions:
- Check for Difficult Maneuver Flag (Check for Daredevil Pilot, Check for Wounded Pilot)
- Check if Rotated Flag?
- If Overboosting (Hull/Wing Damage or Control System Damage?): Select the Overboost Card in the appropriate direction (hard left, left, drift left, straight, drift right, right, hard right).
- Check previous Kinetic Energy level for legal rate of change (adjust if necessary, Engine Damage?).
- Check for Obstruction, avoid selection (pick a clock position as a limit ‘not to exceed’) and/or lower speed.
- Consider Stop or Reverse maneuver, if close enough (and within Acceleration limits)?
- Consider Rotation maneuver (pick 0-12, Control System Damage?)?
- Else: Select the Maneuver Card (Check G total only if Overboosting, Check for Nimble Pilot). Reselect Maneuver to be under 4G combined. Check for Obstruction, select avoidance zone and/or lower speed.
- Set Difficult Maneuver Flag, if necessary.
- Provide Final Kinetic Energy and Shooting Modifiers (Own speed 5+).
[Edit]Player chooses which ship to display in rotation:
- First Maneuver Step - Display first card.
Once all ships are moved, Player conducts First Firing Step
Player Input - End of First Firing Step:
- Remove any Ships due to destruction or departure?
- Set Special Damage results on AI Ships (Maneuver Deck effects!)
. . Note: Troubleshooter Talent can remove the effect of one special damage chit.
[Edit]Player chooses which ship to display in rotation:
- Second Maneuver Step - Display second card.
Once all ships are moved, Player conducts Second Firing Step
Player Input - End of Second Firing Step:
- Remove any Ships due to destruction or departure?
- Set Special Damage results on AI Ships (Maneuver Deck effects!)
. . Note: Troubleshooter Talent can remove the effect of one special damage chit.
Next Ship/Turn/End Game?
------------------------------------------------------------------------------
End Game?
On the Shoulders of Giants:
Some previous WoG app development I'm borrowing to help plan my BSG app:
Direct of target travel: Universal Solo Software for all devices V1.0 out now!
Maneuver deck code: Solo software WIP
PS: Now working on Special Damage incorporation...
Last edited by OldGuy59; 02-07-2020 at 23:43.
Mike
"Flying is learning to throw yourself at the ground and miss" Douglas Adams
"Wings of Glory won't skin your elbows and knees while practicing." OldGuy59
Amazing, really. Thanks everyone for all you are doing!
Mike
"Flying is learning to throw yourself at the ground and miss" Douglas Adams
"Wings of Glory won't skin your elbows and knees while practicing." OldGuy59
They look good, Mike!
Oh! Oh! Idea.
Do we want to save a particular game? Is there any point? Do we want to record things like hit ratios, or AI Pilot victories? I might want to have a move sequence download for AI analysis as part of my app building process, so that might be a module that users could access, later, too.
Yeah, more complications. But, perhaps a campaign option, where AI pilots gain experience. Hmmm... Perhaps much, much later.
Mike
"Flying is learning to throw yourself at the ground and miss" Douglas Adams
"Wings of Glory won't skin your elbows and knees while practicing." OldGuy59
Mike
"Flying is learning to throw yourself at the ground and miss" Douglas Adams
"Wings of Glory won't skin your elbows and knees while practicing." OldGuy59
Tentative layout for the play screen, similar to Dan Ricci's WWI Solo app:
A very rough cut&paste design plan. The control panel will be graphic, not a photo, and the current maneuver will be a vector graphic, as well.
If there are more than one ship selected for the AI to run, they will appear below, and if there are a lot, you will have to scroll down. That's the plan.
For Android phones, the presentation may have to be landscape, with a single ship per screen, with scrolling to get to the other ships. We'll see how this works out.
Mike
"Flying is learning to throw yourself at the ground and miss" Douglas Adams
"Wings of Glory won't skin your elbows and knees while practicing." OldGuy59
The latest piece of silliness I'm thinking about putting into the app...
How aggressive will the AI be? I am using a modified "Over the Trenches" Campaign guideline for AI pilots.
For my app, if I get it working at all, I have chosen four levels.
Thoughts?Select how aggressive the AI ship will be:
10% Coward: Ship leaves if it suffers any damage.
50% Cautious: Ship leaves if it suffers any special damage, or up to 50% of Structure.
75% Courageous: Ship leaves if it suffers any second special damage a second time, or up to 75% of Structure.
100% Careless: Ship will not leave, and will fight to the death. Yours or its.
Mike
"Flying is learning to throw yourself at the ground and miss" Douglas Adams
"Wings of Glory won't skin your elbows and knees while practicing." OldGuy59
The 'rank and file' Cylons are robots. Is it right to assign them human characteristics? However, I suppose there may be machine reasons for a range of aggressive behaviour like 'our forces are thin in this sector, so minimize losses' or 'there is no resurrection ship nearby and this machine's A.I. has valuable information stored in it' up to 'exterminate the humans by ramming them'.
At the beginning of the latest series, the Cylons probably were all in for exterminating the humans, and would be "Careless" of injury or resurection. Later in the series, when the Resurection Ship was destroyed, who knows what an individual Cylon might consider?
However, besides that, I am attempting to cover a lot of ground with the app, even allowing the players to play a co-operative game (Colonial side or Cylon), or even a solo game with an AI winger. To that end, I am attempting to ensure that whatever I get accomplished up to the final course project, I have options available to expand the app to encompass all the possible options. The first iteration may only have a Cylon Raider as the available ship, with very basic options (no damage tracking, no KE tracking, no altitude, etc...).
A lot of my planned features might be hidden from view, awaiting a future update, or six.
I have a dream...
Last edited by OldGuy59; 03-15-2020 at 21:24.
Mike
"Flying is learning to throw yourself at the ground and miss" Douglas Adams
"Wings of Glory won't skin your elbows and knees while practicing." OldGuy59
So, I've sort of hit a plateau on information assimilation, and not progressing well on the programming side. However, I'm doing what I can. Graphics are not a problem, and whatever I get done will not look bad, even if it doesn't work.
This is still pretty much what I want for the opening set-up screen:
It may not have anything but the back camera switch, for now.
Note: Pilot Aggressiveness didn't belong here, so that is gone. That will now appear on the Pilot Select fragment, if a Player wants to customize a ship. See below.
The "Select Ships" button will take you to the ship selection screen (currently a brick wall, against which I am beating my head). This will be a scrolling list of all available ships in the game. The database is built, and ready, along with all the pilots. Once you select a ship, you will have the option of customizing the pilot. That is supposed to be a separate scrolling screen, where you will see all current pilots, plus some generic pilots of every level (Nugget to Ace) for each side. So, yes, you could have Cylon AI's flying Vipers or Raptors. That's my vision, anyway.
In the "Select Pilot" screen, you will be able to choose pilots, and perhaps even modify them for the game. Eventually, you might be able to save that pilot for future games. Some day.
All ships will be indicated with their published pilots as defaults (including any Talents that affect Movement or Planning). Pilot Aggressiveness will appear here, as well, a much more appropriate place. The default will be 100%, if you just choose a ship and don't come here.
Once the Ships (and Pilots) are selected, you will be taken to a scrolling ship planning screen, where each ship you selected will be presented with the below fragment.
The preliminary Planning fragment should end up looking like this:
First iteration will be text, with the pretty interface coming afterwards.
The Player will use the standard Richard Bradley Zone method of Solo Play to indicate the target location (could be an objective, if desired). I envision allowing input of the Target's speed (KE), the Target's Threat (is it really close, closing, or moving away), and eventually altitude options (if selected in Game Setup, otherwise hidden). This screen may show current Structure Damage and any Special Damage with which the ship is currently hampered. The Special Damage is something I'm trying to program in. We'll see how that goes.
There will be an "Execute" or "Plan" button to finalize the input and let the device calculate the maneuver. Once each ship has locked in a "Plan", the screen will change to the "First Movement Step" screen, showing the fragment below, again in a scrolling screen.
The Move fragment will look something like this on opening:
The Maneuver Deck back will be the graphic initially shown, until the Player "Taps" the image. Then, depending on whether there is an Overboost or not, the appropriate card will be displayed, with text confirmation below it (probably the first iteration will have a generic graphic but only the text will be appropiate, including the KE for the maneuver).
This screen will remain until the Player hits the "Destroyed" or "Next" button. There will be an option on the screen for entering any Structural or Special Damage taken in that Movement Step. Then, if it is only the First Movement Step, the screen will be presented again, with the Card Back graphic. If there was an Overboost presented in the First Movement Step, the second maneuver card will be presented when "Tapped". If there wasn't an Overboost card in the First Movement Step, there will be a greyed out image of the previous Maneuver card. There will be an option of entering more damage in this fragment, and the Player can then hit the "Destroyed" or "Next" button again.
Once all the AI ships on the screen have had their respective "Destroyed" or "Next" buttons touched, the screen should cycle back to the Plan Screen presenting any AI ships left, and allowing for more Planning.
That's the concept, so far. Now to get it to work...
Last edited by OldGuy59; 04-09-2020 at 11:32.
Mike
"Flying is learning to throw yourself at the ground and miss" Douglas Adams
"Wings of Glory won't skin your elbows and knees while practicing." OldGuy59
I like your planning ring setup better than the one we use for WGF and WGS.
I much prefer that 12/1, 2/3 etc. are not lumped together.
Pete,
You haven't seen the Maneuver Selection chart I've been working on. In MS Word, the chart is two pages long. It covers all the speeds possible, plus rotations and backing up. I may not be able to program that many options into a simple AI app. That's just for the Raider, too. If I can get the database to operate the way I plan, then individual ship type maneuver databases might interact properly with the app, or not.
That AI programming and option tree complextity may have me considering the reduced input options, too. I haven't gotten that far, yet.
Mike
"Flying is learning to throw yourself at the ground and miss" Douglas Adams
"Wings of Glory won't skin your elbows and knees while practicing." OldGuy59
Tonight, I submitted my busted and incomplete app for grading. I have run out of time on my College course.
I actually got quite a bit of learning accomplished, just not enough for the grandiose plans I had. Not only was I not getting to the Maneuver part of the app, the real purpose I wanted to achieve, what I did manage wasn't working. However, I have a foundation. As I wasn't getting the app to work today, I did more graphic support as a break from coding.
I now have a vector image for the Viper MkII Maneuver Card Back:
This would have been presented in the Move Fragment of the app, as shown above (Post #17).
I am working on top-down line drawings for all the ships (Started the Viper MkVII today, too), for the Plan Fragment, as well.
Also, as I was repairing the database that wasn't loading properly, I added all the Official "Points Values" to the database. These will be for the Complete Game, as I wanted something simple to throw in. For published pilots, I have added in their values, but only for their base ratings and the Maneuver Talents I have included in the App (Some Talents do affect the Planning, so I have tried to account for them). Eventually, I will add up all the Talents and Flaws, and put the full points on the published pilots. I have included some generic pilots for both sides, at all levels, so that a player can pick anything from a Nugget to an Ace for any ship. The entire list of Talents and Points Values may not end up being added, as the complexity of that won't add anything to the Solo App functionality, just give an overall point calculation.
We'll see how far this goes. Lots left to do, and I need a mentor to help out. COVID-19 really messed up the class and team learning opportunities, and I might have been able to get more done with collaboration with my fellow students.
Keep watching the thread, I am not giving up on this.
Last edited by OldGuy59; 04-22-2020 at 08:05.
Mike
"Flying is learning to throw yourself at the ground and miss" Douglas Adams
"Wings of Glory won't skin your elbows and knees while practicing." OldGuy59
Good luck on the app!
I think it would be fun
Is there still hope for this great project getting released sometimes? I would be happy to play BSG again with the App because I can't find any real players willing to play in my group.
I will have to go back and relearn everything. I thought I could step back in and start running. It wasn't that easy.
Also, I will be going back to some of the designs and redo graphics. Even though this will probably not be distributed through Google Play, I want to avoid any IP issues.
New version of game app logo:
Mike
"Flying is learning to throw yourself at the ground and miss" Douglas Adams
"Wings of Glory won't skin your elbows and knees while practicing." OldGuy59
Bookmarks