Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
Updates

This is not a visual update... it's more of an update on my thought process.
Formerly in the ship data, there were system modules, 2 shield modules, 3 weapon modules, and 3 miscellaneous modules (for other tech). I realized upon looking over things that this format, in spite of the ability to upgrade individual modules, was still very standardized and the point of this game is to allow sweeping variations in play style.

I have scrapped that setup and now split modules into two categories... main and tactical. Main modules are core systems and the modules are locked, meaning that these modules cannot be changed to any other type of module (a locked module can be swapped for another of the same type, but not another type). Tactical modules are compatible with any non-main module. This means you can put a shield, an armor module, a weapon, a Time Drive, or any other type of tech into any of those slots. This allows players to favor a mostly defensive ship, a mostly offensive ship, or some other form of tactical combat.

Additionally I made some decisions about the function of two of the modules. I have added a hull integrity stat to the Ship structure. This is just a health structure, not a full module. The hull integrity contains the total amount of damage the ship can take before destruction, but it also serves a very important secondary purpose. The structural integrity main module serves to reduce incoming damage to internal systems from any source, and the amount of damage it prevents depends on hull integrity. Also, installed armor modules serve to increase the amount of damage the structural integrity system can mitigate, and they absorb any damage the hull would incur.
Can this work on the CE?
I'm pretty sure it's only for the CE
Well how could I use it? I tried running the program but it just exited
TimmyTurner62 wrote:
Well how could I use it? I tried running the program but it just exited

This program is VERY early access. The most current version is available on http://clrhome.org/startrek/downloads.php
You'll want to grab the alpha (version 0.84)
Please note that this game doesn't actually have much functional, it's a very early access testing setup.

I also HIGHLY advise against running this on actual hardware (your calculator) while it's in pre-alpha or alpha state.

Also, yes this is a CE only program.
@TimmyTurner62 If you are able to send it to your calc or an emulator, then it is most definitely only for the CE.
Now all I need is the appvars...
Without them, prgmSTARTREK doesn't work.
TimmyTurner62 wrote:
Now all I need is the appvars...
Without them, prgmSTARTREK doesn't work.

The appvars are shared to the downloads page. They're listed under graphics.

Edit:
Transitioning the main work on this project to server-end coding. Login/logout to start. Need to take some time to actually learn Python beyond the basics, so spending some time in tutorials and working with ppl who have some experience with it.
Update

Investing in a Raspberry Pi 3 B+ to run as a Python/[web/git server]. Once it arrives and is set up, I will deploy the simple components of the Python test server -- receiving connections, logging into the game account, logging out. I'm not quite sure how to test this functional without a working calculator => USB => server bridge software, so I'll have to look that up as well.
Hey All! Been a while since I posted an update. Summers are quite busy for me and after work, i just don't have the motivation to get much coding done. That being said, some things have seen some progress.

1) EaghanScarlette has been helping out with some graphics (artwork) and will later help with formulae and concept for the movement and activity of celestial bodies in the game.

2) beckadam and Greg are part of a team working with me on the server-side scripting of the server while we await the completion (or at least function) of the TI-84+ CE USB device library. Funnily enough, we have a daemonized UDP server that should (theoretically) log in, log out, register. This has not yet been tested bc we don't have a USB device lib to test with (although we could probably use terminal and raw packets to test).

3) Have begun work on a web frontend that will allow you to access your own player info, upload ship schematics, and for admins, control over server configuration, stop and start, and more.

4) Teaching myself how to interface with JSON using PHP, as the player data (and possibly the ship data) will be saved as JSON. Anyone have any experience with this/know of any good tutorials?

5) Looking into upgrading the server from a RPi 3+ to a RPi 4. The RAM increase will enable us to support more users, more web features, etc. Anyone interested in supporting, head to http://titrek.us/contribute.php.
Wonderful!!! I am quite excited about this project!

If you need any further help, I can possibly assist you with artwork, I love star trek and I like pixel art :3

If you don't want my help, it's okay <3
Pieman7373 wrote:
I can possibly assist you with artwork, I love star trek and I like pixel art :3
If you don't want my help, it's okay <3

I will never say no to assistance, mostly because this project has been coming up for way too long, and really needs some progress. That being said, you might end up having a throw-down with Eaghan over whose doing pixel art :p. I will also at some point need to create a web UI that allows players to design their own ship in some interface, and save it. While a lot of this I can now do, and much of it I will be able to with some effort to learning stuff, there are some things still beyond me... like 3d modeling interfaces, a calc-side 3d rendering engine, etc.
UPDATE

Not much forward-facing to talk about, but a bit under the hood.
1. I've moved a bunch of the defines to more sensibly-named files.

2. Defense and Offense tabs merged into Tactical.

3. The Tactical and System Stats tabs will be streamlined. Modules will only have an overview on the status screens... Icon, name, health, and online/offline indicator. You may press [Enter] to bring up a layover that shows detailed stats... power configs, other module-specific data, and to configure the module, or change the module assignments.

4. Popover box done via mask. Screen ID (to determine what tab you are viewing) is now a 16-bit value. The low byte indicates the screen. The upper byte is masked to indicate whether or not the popover is active.

Code:
enum ScreenEquates {
    SCRN_OFF = 0,
    SCRN_SENS,
    SCRN_TACT,
    SCRN_MAINS,
    SCRN_TRANSPORT,
    SCRN_CARGO,
    SCRN_INFO = 0xff00
};

When the popover box is set to appear, the mask SCRN_INFO is OR'd onto the screen value. To determine the active screen, the value is AND'd with 0xff. To determine is the mask is active (in the show status screen code), a simple if(value > 0xff) is run. To unmask the screen (remove the popover), the screen value is XOR'd with the mask. This system is tested and verified working.

5. UI elements (backgrounds, alert icons, etc) and module icons (icons, identifying each module type) will now be in the same appvar, indexed in order. The module icons will be indexed by ID and have the ID, the sprite pointer, and the name of the module, for quick reference when rendering the Stats overviews. [b]Users will be able to customize their UI by exporting their own appvar file of the same time and installing it, just as long as they respect the order of the sprites.)

6. Beckadam has contributed some code towards a space-terrain renderer.
UPDATE

Progress has been made on the User Interface for TI-Trek. Here are some screenshots:
The Main Systems module overview screen


The Tactical Systems module overview screen


The module configuration/info popup, accessible by pressing [Enter] on chosen module


Some changes to the power system setup also. Module efficiency (how well it performs its task) will be a function of module battery charge (current power level * 100 / max power storage) multiplied by power draw setting (set power draw / base power draw). Power draw meaning how much power a module will take from its source (core, auxiliary, or internal reserve) every power cycle. Each module will also have a maximum draw, which is the maximum amount of power a module may be set to draw before the module incurs a damage penalty every power cycle. For instance, if the module's max draw is 8 and you have it set to 10, the module will take 2 points of damage every time it draws power. This means you can set a module to use as much power as you want, to super-boost it, but keep in mind the higher you set this, the faster the module takes damage.
I really love the improvements to the menus! I also like how you highlight the active/selected row. It's all very clearly presented. Keep it up!
That looks really nice Smile
Oh it looks so good now! I can't wait to see what this becomes in the future!
Update
Work on the GUI Customizer function (accessible through the Web Deck) is now underway.
As of now, you have a form where you can select from a drop down which image you would like to modify. You can then upload a new image, which will be saved into your own user folder. As of right now, the form doesn't actually submit yet.
Underneath the form, you also get to see the current UI spriteset for the game, with any modifications you make to your UI reflected in the spriteset. As of right now, that isn't programmed yet, but it should be done in a day or so.

There will also be a "Build GUI" button. This button, when pressed will process the assets.json file within your folder, and build a convpng.ini file, filled with your custom graphics. Any null indexes (sprites you have not changed) will be filled with the defaults, carefully ordered such that the sprites will be in their correct sequences. After building the .ini file, convpng will be run on the server, which MateoC has kindly allowed me to put up there. This will generate you a TREKGUI.8xv file for you to replace the default one with, which will install your custom GUI.

Update

Attempting to invoke convpng using PHP, after generating an ini script. This is the PHP script...


Code:

 if(isset($_POST["build_gfx"])){
        $makefile = "users/".$_SESSION["user"]."/assets/convpng.ini";
      $dropfile = "/users/".$_SESSION["user"]."/downloads/"; // dir to output appvar to
        // generate the convpng.ini file
        $fp = fopen($makefile, "w");  // open file, overwrite if exists
        $string = "#GroupC : guiicons" . PHP_EOL . "#Palette : xlibc" . PHP_EOL . "#TransparentColor: 0, 0, 0" . PHP_EOL . "#Style: rlet" . PHP_EOL . "#OutputPaletteArray: false" . PHP_EOL . "#PNGImages:" . PHP_EOL;
        fwrite($fp, $string);
        if($custom_string = file_get_contents($custom_assets_file)){
            $json = json_decode($custom_string, true);
            foreach($json["images"] as $image){
                $dir = "assets/ui/";
                if(isset($image["custom"])){
                    $dir = "users/".$_SESSION['user']."assets/";
                }
                if($image["file"] != ""){
                    $img_file = $dir . $image["file"];
                    $line = $img_file . PHP_EOL;
                    fwrite($fp, $line);
                }
            }
            $string = PHP_EOL . PHP_EOL . "#AppvarC : trekgui" . PHP_EOL . "#TransparentColor: 0, 0, 0" . PHP_EOL . "#OutputPaletteArray: false" . PHP_EOL . "#OutputWidthHeight : false" . PHP_EOL . "#Compression : zx7" . PHP_EOL . "#PNGImages:" . PHP_EOL;
            fwrite($fp, $string);
            foreach($json["images"] as $image){
                $dir = "assets/ui/";
                if(isset($image["custom"])){
                    $dir = "users/".$_SESSION['user']."assets/";
                }
                if($image["file"] != ""){
                    $img_file = $dir . $image["file"];
                    $line = $img_file . PHP_EOL;
                    fwrite($fp, $line);
                }
               
            }
            exec("/home/trek/www/includes/components/srv/convpng -i ".$makefile . " >> convpng.log", $var);
            echo $var;
        }
    }


The ini file generates properly, yet the convpng refuses to launch properly. I have tried it with passthru(), system(), exec(), and shell_exec(). Some it hangs, others it outputs the return code 0 or 2, yet the appvar never creates. Any idea why this isn't working?

Code:
$makefile = "users/"
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 6 of 7
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement