kmart494 Posted December 15, 2021 Report Posted December 15, 2021 I would like to know how important the turn replay and historic movement track features are to your experience using SimPlot with Harpoon V. The upcoming issue is the complexity of not only the code to execute turn replay, but also the amount of data that must be stored in the way of historic movement tracks to support turn replay. The more features I add to SimPlot, the more coding that must be done and the more data that must be collected to support turn replay. Already I have eliminated range arcs/circles from historic consideration. That means the arcs/circles will not appear and disappear during the course of replay, but rather they will stay on/off based on their last status. I am in the process of expanding the formation editor features, but it occurs to me a formation will change its composition (units and their locations within the formation) over time. Even a change to the formation leader will cause the turn replay to not function right unless the changes are tracked by time. (Especially because all the formation bearings and distance are based on the leader.) This requires additional code and data storage (larger file sizes) to implement correctly. I have to admit I really like the concept of a live turn replay. It was originally a response to players of multi-player games that felt disconnected by the multi-player experience (processing multiple turns between player interactions). The replay would give a player an opportunity to "catch up" with the action since the last turn. Perhaps an alternative could be offered in the way of screenshots saved into Red, Blue, and All folders based on the referee "Show Side" setting. Movement tracks are s lightly lesser issue for coding, but they are a huge issue for file sizes. Already I have begun offering players the option to not save movement tracks in their turn files. The movement tracks do at least allow players to "turn back the clock" in case of an error during movement. That means tracking movement for at least one turn. But, I would like to know if displaying the total historic tracks during a scenario is useful to you. Kevin Quote
Admiral Spruance Posted December 19, 2021 Report Posted December 19, 2021 Is it possible to save the ending position of the turn as .jpg when you start the next turn? Would be useful as an after action graphic and still keep the game files smaller. Making the save files smaller is very important to me, as it has caused several games to come to crashing halt when we tried to resume the game. hope this helps. JK Quote
kmart494 Posted December 19, 2021 Author Report Posted December 19, 2021 Under the File menu there is a screenshot function. I am looking into ways to reduce the file size without sacrificing the data. Quote
ProfKDH Posted December 20, 2021 Report Posted December 20, 2021 I've just gotten started with the latest beta, but I like having that functionality available. I hope it remains part of SimPlot in some form. Quote
darthvader170 Posted December 27, 2021 Report Posted December 27, 2021 For me, replay and movement tracks are quite important, and visually is a blast, or least more than formations. From my point of view, I can do formations thanks to waypoints and personal effort, but I'won`t do replay if that function is deleted. Anyway, Are there any plans for formations, to code the program to allow ships to try to maintain stations, or will always be a turn the formation as a complete unit, so that outer and inner units within the formation will teleport to the new position when turning? By the way, is it possible to do NTDS symbols a bit thick (like janes fleet command, or command naval operations), right now they are too thin, and difficult to view against a blue water background. Also if possible, the background of numbers (such as range, bearing) is about 50% transparency, and when there are a few units closely, A lot of zoom is needed to separate the numbers (distances, degrees, names), I belive a complete flat color will be best as background, at least the forward unit numbers will be visible without zooming. Any way, it is your program, and it will be great game whatever you do. Quote
kmart494 Posted December 31, 2021 Author Report Posted December 31, 2021 The formation ships will have to "teleport" to their new locations since I am not going to code a movement AI. I actually researched how ships move in a formation, and it is very complicated (also depends on the type of formation). I don't want to sped any time on that right now. The NTDS symbols can be adjusted using F9. Try different Symbol Scale or Symbol Size settings I will reduce the transparency down to 25% and see if that helps. Otherwise, I will have to turn it off. Quote
gxclark Posted February 14 Report Posted February 14 Hello Kevin, I'm a Harpoon player, and Simplot user. I'm also a consultant in the IT industry. I would say that the turn replay is a wonderful feature that most if not all users will appreciate if they have played the game to any reasonable extent. Given that you will need to store the game history as it unfolded, and you are needing to store things "as it was at the time" in order to "time travel" back and render the replay, what you have is a problem very similar to a data warehouse problem, but limited in scope to only the current game. I would suggest that you consider storing data into a SQLite database, with tables designed to store the versions of the different objects (like a unit formation) as of a particular turn timestamp. This type of thing is my specialty, so I can assist if you are interested in taking this approach. Quote
kmart494 Posted February 15 Author Report Posted February 15 I am curious about this approach. I haven't messed with databases in a long time, but my language of choice XOJO does support SQLite. Do you think the game would be run from database inquiries, or should the entire database be loaded at app start? One very significant problem with multiplayer games is data security. In SimPlot1, I used home-spun text files to store and transmit unit data to players. Turns out, players were looking into those files to get information they would otherwise not see. The current .spscn files are actually JSON files with a bit of encryption (so gentle I bet you can figure it out). Is was necessary to include ALL unit history to make the replay work correctly, even units that had only been "recently discovered". I would appreciate your insight into this matter. Kevin Quote
gxclark Posted March 18 Report Posted March 18 On 2/16/2025 at 7:18 AM, kmart494 said: Do you think the game would be run from database inquiries, or should the entire database be loaded at app start? One very significant problem with multiplayer games is data security. In SimPlot1, I used home-spun text files to store and transmit unit data to players. Turns out, players were looking into those files to get information they would otherwise not see. The current .spscn files are actually JSON files with a bit of encryption (so gentle I bet you can figure it out). Is was necessary to include ALL unit history to make the replay work correctly, even units that had only been "recently discovered". Hello Kevin, Sorry for the delay in getting back to you. Let me take a crack at these two questions. 1) Can a game be run from database inquiries? Yes, I think sqlite is robust and performant enough to permit this kind of architecture. If you can get the proper information about "AS-WAS" at any point in time, then "AS-IS" is just a filtered set of "AS-WAS" for the current time. Reading and writing to sqlite at the scale of a H5 game, even a big one, should be OK. 2) How can we deal with security, so players do not cheat? Well, I did a bit of research on this. I'm used to user permissions in a database like postgres or mysql, but sqlite is much less capable in terms of users, permissions, etc. But I did find a way to basically encrypt the whole darn database, which seems to match what you are doing with the JSON files anyway. Please see link below. https://stackoverflow.com/questions/1381264/password-protect-a-sqlite-db-is-it-possible I'm happy to collaborate with you on this, I am not a software developer, but I am a database designer, and a command line hack with some experience. For example, one of my current tasks is to generate Simplot2 compliant JSON files for using SQL from a master Postgres database that contains all of the details on weapons, sensors, etc. So, dealing with the whole schema of the turns seems rather straight-forward. What I might do is take our current H5 game in Simplot2, and ingest the Referee.json files over several turns into Postgres, to model some tables for "AS-IS" and "AS-WAS" and the export the result to sqlite. I can send you that file and the documentation of how the metadata in JSON is mapped to the tables and columns in the sqlite database, if this helps you. Regards, Geof Quote
kmart494 Posted April 15 Author Report Posted April 15 Geof, Internally, SimPlot runs on objects. All ships, planes, etc are child class objects of the Unit class. Even the waypoints are objects of a Waypoint class, with two object arrays for each unit: FutureWaypoints (set by players in the Waypoints window) and PastWaypoints. When a unit moves and reaches a FutureWaypoint, the waypoint is then moved to the PastWaypoint array, then movement continues until the end of the turn. At the beginning of every movement phase, if no waypoint exists at that location, a new waypoint is added to the PastWaypoint array so players may iterate through the turn-based replay later. This way, the app need not calculate where every unit was at a given time. Each waypoint has a "time stamp" on it. Maybe for database purposes, that would be good enough to have only one table of waypoints per unit? Kevin Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.