February 5th, 2020, 22:53
Posts: 5
Threads: 1
Joined: Feb 2020
(February 5th, 2020, 22:34)RefSteel Wrote: Welcome, Caplin! It's great to hear that command line 1oom is making the game accessible to you! I haven't learned to do the necessary coding myself, but I'll try to offer suggestions if I can! I actually tried the command line version of 1oom myself, though briefly and long enough ago that I don't remember many of the details. I certainly agree the implementation could be improved.
First, the easy question: Specials and Missiles are both on by default. The first time you toggle them (for a given ship) you are turning them off. Missile bases are a bit more complicated when you have both Scatter Packs and more-powerful single-payload missiles available, since the default is whatever the game thinks will do the most damage. (The planet info should indicate which is currently selected though.)
Now for suggestions, in case they're useful:
At the beginning of a battle, and when you choose a "list fleets" option, presumably the basics are and should be listed for everything. If I were designing the interface, I might use letters and numbers to designate columns and rows, like Chess notation on a slightly larger board. For instance:
Human Planet Sol at B4: 15 missile bases.
Human Courier fleet at A4: 94 small ships.
Mrrshan Colony fleet at A5: 1 large ship.
Mrrshan Tiger fleet at J4: 22 large ships.
Asteroids at C2.
Asteroids at G5.
I would then suggest an option to get quick, basic information on a specific stack without going into the full details of a Scan. For instance, "Examine Tiger" or "Examine J4" might each give the response:
Mrrshan Tiger fleet at J4: 22 large ships; 150 of 150 armor.
But if the Mrrshan fleet has initiative and moves first, the display might follow the starting list with a description of their move:
Mrrshan Tiger fleet to I5.
Mrrshan Tiger fleet to H6.
Mrrshan missiles fired from H6: About 40.
Human Courier fleet's turn.
(I'm not sure how best to describe the missiles' location and numbers on the command line interface. The game tracks the missiles' location more precisely than the ships', and the visual game's combat screen does give at least a rough idea of where missiles are relative to the center of a given ship tile. The number of missiles is also shown approximately in the visual display: Each stack of missiles is represented by between one and ten missile icons, representing roughly one tenth of the number of actual missiles in the stack - or one missile icon for as few as one actual missile, or ten missile icons for a stack of more than 100. At least, I think that's the way it works.)
Continuing the example, if you "Examine H6" you would get something like:
Mrrshan Tiger fleet at H6: 22 large ships; 150 of 150 armor.
Mrrshan missiles: About 40.
Then if you move your Couriers to B5, you might get the message:
Mrrshan missiles to G6.
Mrrshan missiles to F6.
Human Planet Sol's turn.
And if you want to hear about where everything is again, you can use a "list fleets" command.
Similarly with the star map, if the problem mostly arises as the map grows larger, breaking it up into more limited areas might help. Would it work to examine the map in quadrants, or in sections a set number of parsecs across, or even for the player to have the option of defining a rectangle by its coordinates and listing only the stars within that? Another improvement might be the option to list stars according to the distance from the currently-selected star, (e.g. "nearest Klackon colonies to Proxima" listed with coordinates and distance-in-parsecs). Thes solutions might involve a lot of coding though; I realize I'm just brainstorming here; hopefully some of it might be useful?
On the threatened-worlds question, I think a command-line equivalent of F8 would be simplest and most natural.
I'd love to hear more about where you take this, and how you're enjoying the game!
Thanks for the warm welcome.  These suggestions are very much appreciated. THe most pressing issue is probably the combat display, as that seems to cut off an entire dimension of game play at the moment.
THe proper code is in uibattle.c. FOrtunately it already mostly accepts chess-style notation, though obviously all the line drawing bits will be superfluous and can probably be axed. I guess a good first step is to try and get it to produce a list of stacks instead of a grid.
THis is my first "real," coding project, so I guess in a sense I'm diving in at the deep end, though no more so than the people who reverse-engineer this kind of thing in the first place.  I'll keep everyone posted. FOr now I"ve taken to playing around with the game and code during super slow periods at work, which is perhaps not ideal for productivity but so it goes
February 6th, 2020, 02:01
Posts: 5,151
Threads: 113
Joined: Nov 2007
Cool - that sounds promising! Also, I just realized the issue I was trying to address with the star map was the opposite of the one you mentioned - to such an extent that one of my suggestions took a simpler solution for granted! So:
It shouldn't be hard to quickly learn where you are in the galaxy, since the game stores all the star and ship locations as coordinates. There's no reason you couldn't add a command that just returns the coordinates of a given star. You could also add a command that returns the galaxy's total width and height in parsecs for comparison, though at least for the unmodded game, I believe the overall dimensions of every galaxy depend only on which "galaxy size" was selected when setting up the game. That is, all "small" galaxies have the same dimensions as one another, all "medium" galaxies have larger dimensions than all small galaxies but the same dimensions as one another, and so on.
February 8th, 2020, 00:05
Posts: 100
Threads: 3
Joined: Nov 2006
(February 5th, 2020, 22:53)Caplin Wrote: THis is my first "real," coding project, so I guess in a sense I'm diving in at the deep end, though no more so than the people who reverse-engineer this kind of thing in the first place. I'll keep everyone posted. FOr now I"ve taken to playing around with the game and code during super slow periods at work, which is perhaps not ideal for productivity but so it goes 
Out of curiosity, what sort of setup do you use to help you read the code? Is it just regular text-to-speech, or something more intricate? Whatever the answer, I'm sure it will impress the snot out of me. If I went blind, given the difficulty I'd probably give up on programming entirely and just do music or something.
February 8th, 2020, 00:26
Posts: 5
Threads: 1
Joined: Feb 2020
(February 8th, 2020, 00:05)Jeff Graw Wrote: (February 5th, 2020, 22:53)Caplin Wrote: This is my first "real," coding project, so I guess in a sense I'm diving in at the deep end, though no more so than the people who reverse-engineer this kind of thing in the first place. I'll keep everyone posted. For now I've taken to playing around with the game and code during super slow periods at work, which is perhaps not ideal for productivity but so it goes 
Out of curiosity, what sort of setup do you use to help you read the code? Is it just regular text-to-speech, or something more intricate? Whatever the answer, I'm sure it will impress the snot out of me. If I went blind, given the difficulty I'd probably give up on programming entirely and just do music or something.
It's text-to-speech, I have a fancy setup for Emacs which can do a sort of audio syntax highlighting. I also often just use TextEdit on Mac OS and take my time scanning each line to figure out what it does. Actually comprehending the code on a higher level is a bit harder, of course, but I guess that's true for everyone.
Today has been reasonably productive, I've put aside combat for now and am working on fixing smaller issues in the command line UI. For instance, it doesn't currently identify worlds in nebulas, which I gather is kind of important. FOrtunately that's a trivial fix. I've been alternating playing one-off games with looking at the code, and am profoundly glad saves are compatible despite my fumblings
February 8th, 2020, 01:19
Posts: 100
Threads: 3
Joined: Nov 2006
I just want to say... that's incredibly impressive! Coding isn't the same as reading a book, or even writing a book. It's so far above and beyond that in terms of needing to reference other parts of the whole, not to mention syntax, debugging, and so on. I'm curious to what extent you need a great working memory to do what you're doing, and whether the process has helped you to develop one.
April 8th, 2020, 16:06
(This post was last modified: April 8th, 2020, 16:21 by justaddchalk.
Edit Reason: Added P.S.
)
Posts: 1
Threads: 0
Joined: Apr 2020
Hello,
I have been amazed by the work that has gone into 1oom, many thanks to everyone who has contributed!
I have a few questions about it that I hope you can help with:
1. Looks like there are more than a dozen forks of the original 1oom repository by KilgoreTroutMaskReplicant, and the @RFS-81 fork or the @ignatius fork are among some of the prominent ones (sorry if I missed some!). What are the features of these forks? I'm having trouble figuring out what makes them different.... Can someone explain it?
2. I am trying to compile 1oom from source, and hoping to create a development environment (maybe residing inside a Docker container!) that can build 1oom for both Windows and Linux. Has anyone had success in cross-compiling to Windows on a Linux host and can provide some pointers?
3. I see in the INSTALL file in the repositories that there is experimental support for static builds with the `--enable-static` `configure` option. However, that doesn't work for me at all. It fails with:
Quote:...
checking for SDL.h... yes
checking for SDL_CreateTexture in -lSDL2... yes
checking for the SDL2_mixer library... pkgconf: unknown option -- static-libs
no
configure: error: SDL2_mixer not found! Either install it or use --disable-hwsdl2audio to disable audio for the SDL2 binaries.
This is strange because I've installed all Linux build dependencies successfully and am able to compile the non-static (i.e. shared) build. How do I solve this so static builds are possible?
If I manage to figure out how to set up a build environment that can target multiple platforms, I'd be happy to share instructions here in return for your help! Thanks in advance.
P.S. I've commented in this Gitlab issue about this, too.
Posts: 6,774
Threads: 60
Joined: Apr 2004
The renewed activity in this forum rekindled my interest in MOO, and I've been using this program since it's windows friendly. Unexpectedly, the thing I like most is having the mouse wheel work on the Fleet and Planets screens. Nice job, thanks for your effort.
December 15th, 2020, 12:50
(This post was last modified: December 15th, 2020, 12:51 by Ajaja.)
Posts: 3
Threads: 0
Joined: Dec 2020
December 22nd, 2020, 04:32
(This post was last modified: December 22nd, 2020, 04:34 by RefSteel.)
Posts: 5,151
Threads: 113
Joined: Nov 2007
(December 15th, 2020, 12:50)Ajaja Wrote:
I think it depends on what you're looking for. The one you linked is the last before it branched, but RFS-81's fixes some additional bugs, improves the interface, and offers some additional set-up options; and ignatius's branch is a little more ambitious: It creates a number of options for alternative AI behaviors, loophole-closing game rules, and (I think?) including your game options in the save file.
December 22nd, 2020, 08:32
Posts: 3
Threads: 0
Joined: Dec 2020
Thank you, I'll try them too.
BTW, I compile 1oom for myself for Windows x64 using MSYS2, and can share executables (static, both SDL1/SDL2) if someone needs.
|