Welcome to Open Carnage

A resource for Halo 1 modding and tech, with unique means of rewarding individual content creation and support. Have a wander to see why we're worth the time! EST. 2012

WaeV

Quickbeam

371 posts in this topic

[in Progress] Interactive Shell

[ ] Settle on an already-existing shell for Python

[ ] Ensure the shell and Python are both fully portable

[ ] Bundle Halolib with the above

Working on this task, and I'm having to make some tough decisions (mostly because of download size). Ideally I'd like Quickbeam/Halolib to be ~30MB or smaller. Unfortunately I'm pretty far from that goal.

 

Halolib + Python 3.4 + Spyder Shell = 105MB

Red = Spyder shell -- Python code (8.5 MB) and supporting QT libraries (57 MB).

Blue = Halolib -- Python code and XML plugins (2.4 MB)

Green = Python -- Standard library (20 MB) and dll/exe files (16.3 MB)

 

SGm0S3P.jpg

 

There are some minor things about Spyder which annoy me, but I don't know if there's enough to break the deal. Syntax highlighting could be better, though autocomplete does work to an extent. I like that you can have multiple REPLs open in tabs.

 

The best feature of Spyder is that it's free/open-source (so I'm allowed to use it), and it works *today*, so I don't need to muck around perfecting my WPF GUI. If I can add some measure of syntax highlighting, I might consider this good enough for the barebones release.

JCwikOJ.jpg

Tucker933 and NeX like this

Share this post


Link to post
Share on other sites

Members of Open Carnage never see off-site ads.

New logo! =D

h2AinN0.png

"I should have finished this damn thing years ago"

After struggling with the Spyder shell for some time, I snapped and said "screw it, I'm just embedding Sublime Text like I did for the demo video". I want Quickbeam to be something *I* enjoy using, and every other option just sucked too much.

Fortunately, this means that we'll get loads of features with essentially zero effort on my part: lightning fast auto-completion, great syntax highlighting, and a kickass scrollbar thing (one of Sublime's signature features). Also it's way fewer megabytes than Spyder.

Unfortunately, Sublime Text isn't totally free software. It's a free download (nagware), and strictly speaking I don't think I'm allowed to redistribute it without asking permission. However, it's easy enough for each of you to download it individually (I may require you to do this in the future). You'd just have to extract it and drop the folder somewhere.

Ironically, the (nearing) final product hardly looks different from the demo I showed off in September 2013. <_< (It's improved internally though, trust me)

JFpewyU.png

September 2013 for comparison

rh2ldCY.jpg

I have a few more things I'd like to fix up. (And bring back, such as the docking I had before. Fortunately it's easier to revert code than to write it from scratch :D ) Docking Example:

dfqTlFJ.png6dqcQl6.png

And there's some stuff to do on the backend, too. :wacko: Unfortunately converting Sparky's plugins didn't work out. I mean it worked, but the names all suck after I'm done converting them.

"projectile_projectile", "camera_collision_and_autoaim_collision_ground_friction_scale_modifier", "unit_new_hud_interfaces_defaultsolo_player_hud_multiplayer_hud", "alpha_outputs_output_ab_cd_mux_sum", and "_z" are among some of the resulting names.

However I will be including Sparky's plugins (original, converted, and the converter program) as a reference. The default plugins will be neat, tidy, and officially supported.

It looks like a lot, but notice there are fewer red tasks, at least!

Todo List

[in Progress] Sublime Text enhancements

[ ] Author a plugin which, upon launch, closes all old tabs and opens a fresh REPL.

[ ] Augment SublimeREPL to append Halolib's location to the hosted Python's sys.path

[ ] Color scheme enhancements?

[in Progress] Plugins -- Only the coolest and/or most common parts of popular plugins

[bipd] model, collision, weapon references. run speed, jump height, misc flags.

[Effe] spawned object references.

[Proj] model, collision, effect references. speed.

[Vehi] model, collision, flashlight references. driver string, speed, misc flags.

[Weap] model, collision, projectile references. magazine size, rate of fire, misc numbers.

[in Progress] Find missing offsets

[ ] WMKillHandler for Halo PC

[ ] WMKillHandler for Halo CE

[Planned] Mirror Edits to Disk

[ ] Open the map in memory, then also open its counterpart in the MAPS folder. Mirror changes from memory to disk.

Postponed until after first release

[Planned] Tag Research

[ ] Reference detector (for mapping purposes; don't rely on this alone)

[ ] Reflexives detector

[ ] Extract known locations from Sparky's plugins

[ ] Chart accounted-for areas, identify missing reflexives (if any)

[ ] Rebuilding?

[Postponed] Plugins -- Parts that were too hard to implement quickly

[ ] TBD

[in Progress] Main window enhancements

[ ] Finish Dockability

[ ] Rearrange Halo viewport to support PC/CE and dockability

[ ] Change REPL to support dockability

[Postponed] Embedded-window enhancements

[ ] Fix clipping when the window is really small (hard, but it will be fun :) )

Skeezix the Cat, Kavawuvi and nil like this

Share this post


Link to post
Share on other sites

For ease of use by less competant users, during installation a dialogue box should pop up with info regarding the necessary sublime download with an easy to follow link. Maybe even make a quick registry edit so that the default install location for sublime is the same as quickbeam


KsqHutE.png

Share this post


Link to post
Share on other sites

That's a good idea. I could try to make it look like the install process for OS X apps:

pastedgraphic_med.png

Quickbeam doesn't have to be installed, though -- there is only a portable version. Sublime Text also has a portable version, so they just need to be sitting next to each other.

NeX likes this

Share this post


Link to post
Share on other sites

Quickbeam doesn't have to be installed, though -- there is only a portable version. Sublime Text also has a portable version, so they just need to be sitting next to each other.

 

Oh I misunderstood. Either way, automating even such a relatively simple process would definitely take the "learning curve" out of the picture for people who don't understand or may mess it up. 

WaeV likes this

KsqHutE.png

Share this post


Link to post
Share on other sites

Some of the sublime stuff was harder than I thought! Still, I have accomplished a good deal in the past couple weeks. It will be a lot more comfortable to work on this once the REPL situation is completely ironed out.

Todo List

[✔] Sublime Text enhancements

[✔] Augment SublimeREPL to append Halolib's location to the hosted Python's sys.path

[✔] Author a plugin which, upon launch, closes all old tabs and opens a fresh REPL.

[✔] Upon launch, open a fresh REPL.

[✔] Upon launch, close all old tabs.

[X] Color scheme enhancements?

[in Progress] Plugins -- Only the coolest and/or most common parts of popular plugins

[bipd] model, collision, weapon references. jump height, run speed, misc flags.

[Effe] spawned object references.

[Proj] model, collision, effect references. speed.

[Vehi] model, collision, flashlight references. speed, driver string, misc flags.

[Weap] model, collision, projectile references. magazine size, rate of fire, misc numbers.

[in Progress] Find missing offsets

[ ] WMKillHandler for Halo PC

[ ] WMKillHandler for Halo CE

[Planned] Mirror Edits to Disk

[ ] Open the map in memory, then also open its counterpart in the MAPS folder. Mirror changes from memory to disk.

Postponed until after first release

[Postponed] Tag Research

[ ] Reference detector (for mapping purposes; don't rely on this alone)

[ ] Reflexives detector

[ ] Extract known locations from Sparky's plugins

[ ] Chart accounted-for areas, identify missing reflexives (if any)

[ ] Rebuilding?

[Postponed] Plugins -- Parts that were too hard to implement quickly

[ ] TBD

[Postponed] Main window enhancements

[ ] Finish Dockability

[ ] Rearrange Halo viewport to support PC/CE and dockability

[ ] Change REPL to support dockability

[ ] Embedded-window enhancements

[ ] Fix clipping when the window is really small (hard, but it will be fun :) )

Edit: Aha! Done and done with Sublime Text. Here's the code that finished the job:

 

def plugin_loaded():
    window = sublime.active_window()

    # first close all open tabs
    for index in range(0, window.num_groups()):
        for file in window.views_in_group(index):
            window.focus_view(file)
            window.run_command('close_file')

    # then open a REPL
    window.run_command("repl_open", {
        'encoding': 'utf-8',
        'type': 'subprocess',
        'syntax': 'Packages/Python/Python.tmLanguage',
        'external_id': 'python',
        'cmd': ['python', '-i', '-u'],
        'extend_env': {
            'PYTHONIOENCODING': 'utf-8',
        },
        'cwd': '$file_path'
    })

Share this post


Link to post
Share on other sites

15? I didn't even spend that much on the game, and I actually purchased it.

Not trying to be a dick that's never my goal, but what does it do? It's a memory editor yes, and it saves the changes to file as well which is sweet. But a lot of those "features" listed either use free tools, or have free tools that do the same job.

I'm all for convenience and if that's the goal I can understand that. It's not like 15 is a huge number at all, but I can't ever think of a time I saw someone trying to charge for a modding tool or project, at least in the Halo community. Even the legendary Prometheus project wouldn't have cost anything.

NeX likes this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.