Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Should we release a new version? #76

Open
stephanemagnenat opened this issue Apr 13, 2023 · 15 comments
Open

Should we release a new version? #76

stephanemagnenat opened this issue Apr 13, 2023 · 15 comments
Labels
build Related to the build and release infrastructure question Further information is requested
Milestone

Comments

@stephanemagnenat
Copy link
Contributor

Recently @Quipyowert2 fixed several bugs. So I wonder whether we should officially release a new minor version?

Also, if so, should we add a changelog to highlight the key changes?

@Quipyowert2 do you have more changes in your pipeline?

@stephanemagnenat stephanemagnenat added question Further information is requested build Related to the build and release infrastructure labels Apr 13, 2023
@Giszmo
Copy link
Contributor

Giszmo commented Apr 13, 2023

I'm all for bugfix releases! I guess I could compile and test over the weekend maybe.

@Quipyowert2
Copy link
Contributor

Quipyowert2 commented Apr 15, 2023

Maybe #44 should be fixed first; that way the game won't crash on the user when they finally complete the tutorial.

After fixing #74, I found a few more places where the game crashes because it tries to increment an iterator that is pointing at the end of a container. I guess I should make another pull request to fix those bugs. Also, I committed a change that fixes a memory leak when opening the chat input box but forgot to push the change.

#64 isn't quite ready for merging; the game seems to redraw slower than the live resizing on Windows. Also, it doesn't implement MapEdit redraw (needs factoring out the draw code from MapEdit::run into a separate method Done.) or Screen redraw (just need to call dispatchPaint?).

@stephanemagnenat
Copy link
Contributor Author

So now #44 is fixed. While testing I found that LAN game didn't work for me (see #90), but YOG works. Otherwise I think we could do a release. Maybe we should migrate the change logs ? (#91).

@stephanemagnenat stephanemagnenat added this to the 0.9.6 milestone May 1, 2023
@Giszmo
Copy link
Contributor

Giszmo commented May 1, 2023

I'm struggling to compile. On Debian, how should I proceed?

sudo apt install libsdl1.2-dev libsdl-ttf2.0-dev libsdl-console-dev libsdl-image1.2-dev libsdl-net1.2-dev libsdl-sound1.2-dev libboost-thread-dev libsdl2-dev libsdl-ttf2.0-dev libsdl-image1.2-dev libsdl2-net-dev libspeex-dev libsdl2-ttf-dev libsdl2-image-dev libvorbis-dev libogg-dev

is clearly too much but it works to get scons CXXFLAGS="-g" -j24 to terminate successful but now I get:

Settings::load("preferences.txt") : error, can't open file.
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  151 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  107
  Current serial number in output stream:  108

after running either ./build/src/glob2 or scons install; glob2.

@stephanemagnenat
Copy link
Contributor Author

I assume you are using latest master, right? Note that you only need SDL 2, so 1.2 can be left out.

Personally I'm compiling using that command: scons --build=/home/$USER/build/glob2 -j16 to build, then I'm launching the binary with /home/$USER/build/glob2/src/glob2 from the source directory.

Given my hardware, graphics drivers and screen setup, sometimes I need to disable GL and/or fullscreen, in that case, these flags can be used: -G -F. Looking at the X error you got, it might be a GL-related issue.

@Giszmo
Copy link
Contributor

Giszmo commented May 2, 2023

$ glob2 -G -F
Settings::load("preferences.txt") : error, can't open file.
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  151 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  107
  Current serial number in output stream:  108

@stephanemagnenat
Copy link
Contributor Author

stephanemagnenat commented May 2, 2023

Very strange. I confirm that the lack of preferences.txt is not a problem, so most likely it is a X/graphics problem. The error comes from the X server, and it seems that despite the -G flag, SDL attempts to create a GLX context. Maybe SDL2 always does that?

I would try also these additional flags: -l -s 800x600 for low-speed graphics and a limited resolution, in case the auto-detection of the resolution is broken. Also, do other SDL2 games run properly on your machine? And glxgears?

@Giszmo
Copy link
Contributor

Giszmo commented May 2, 2023

glxgear throws the same error. See you after a reboot.

@Giszmo
Copy link
Contributor

Giszmo commented May 2, 2023

Ok. That's embarrassing. I had changed my system and deferred to reboot and it only bit me with glob2 now. (I did install nvidia drivers to make another app work and it actually did start working so I forgot about the need to reboot.)

@Giszmo
Copy link
Contributor

Giszmo commented May 2, 2023

So playing with much fun against two AIWarrush :D Looks to work great. Will report back later.

@Giszmo
Copy link
Contributor

Giszmo commented May 2, 2023

I must say, after not playing for a long time, I quickly found my way around but - and I think that was a topic of content earlier - the fruits dynamic is awkward. To start with, my globules don't collect fruit. I put a market next to the fruit trees - big pond has them on an island far from anything else - and they don't go work for them. Only sometimes units get assigned and before they reach the fruits, they get un-assigned.

@stephanemagnenat
Copy link
Contributor Author

stephanemagnenat commented May 2, 2023

If I remember correctly the fruits need to be visible to be collected, but I'm not sure whether a unit subscribed to a fruit tree should unsubscribe if it becomes invisible (I would say not). We could compare with an older version. Maybe there is a bug and maybe it is related to the one I've seen with starving and damage maps update (#94).

@Giszmo
Copy link
Contributor

Giszmo commented May 2, 2023

The birds are quite stupid, too. They appear to cluster once the map is explored. I think they should "repel" each other to keep more area covered. Maximize distance between all viewing units.

Sorry for dumping random thoughts here. A bug-fix release has little to do with all this but I think it's valuable to be said somewhere as it's only confusing until I figured it out, after which it will be hard to report these things ...

  • markets are really like just one building once constructed. Units should never walk past one market to drop fruits into a market further away, which they do a lot.
  • markets show stock in multiples of 10 while units carrying fruit don't declare how much they carry. That is a bit confusing.
  • In the editor, the fertility map is hard to see with the clouds on. Maybe the editor should have no clouds by default/ever.
  • Some maps have no papyrus. What was that good for again?
  • Map names could be nicer
  • Map picker should have filters by size and player count
  • The globule colored cursor is hard to see
  • Later in the game, building level 2 or level 3 buildings should be easier. Allow the user to upgrade while under construction so the building takes up the increased space right away and doesn't need to get repeat attention.
  • Units should not get destroyed with the buildings
  • Instant planned destruction should be possible and not be delayed by units leaving the building
  • What was "prestige win enabled" again?
  • Units forget their job briefly: A unit standing between swarm and wheat could grab left drop right without walking but it walks after every drop.
  • Schools train different units, restaurants feed different units. Instead of showing a pipe that has them running through, maybe even at different speeds, show one icon per unit with a timer each and the empty slots visualized, too, instead of "Inside 7/9"
  • Pause should pause clouds and smoke, too
  • The whole "Objectives" menu is obsolete in a custom game when there are no hints and the primary/only objective is to "defeat your opponent"
  • The first in-game menu being gray as opposed to the other two menu buttons being red looks like it's a disabled button
  • The del key should work just like "d".
  • It would be nice to show the time in full screen mode and the battery charging state on a laptop
  • When taking on the job of collecting resources for a building, consider the distance of the building to the desired resource before running to the resource. If the building is 5 squares closer to the resource than the unit itself, always head to the building before heading to the resource. Do this evaluation regularly and the unit will find more adequate units of the resource to collect. It always annoys me when the Inn was optimally positioned but the unit runs off in the opposite direction.
    Wheat - - - - - unit - - - - - - - Inn - wheat
  • Greedy assignment of slots usually leads to abysmal performance when working at capacity. It would probably be very beneficial if units could swap their assignments. A very simplistic approach would be to optimize frequently for big gains or less frequently for any gains at all. For example, once per second take all the hospital reservations and free hospital slots and re-match them optimally with the units that are heading towards them. Same with all the other assignments. To avoid oscillation between two solutions, a more frequent update might require a threshold. If paths in total 5 shorter, swap assignments.
  • Win condition: Playing on a giant map against for example 7 Numbis can end very boring when the enemy has some unit trapped in an enclosed building. Or I assume that's what happened. Check win conditions assuming over-growth, especially when playing against AI. Maybe count them as near the entrance and not inside the building, meaning they starve eventually if they can't leave the building.

@Giszmo
Copy link
Contributor

Giszmo commented May 3, 2023

I now remember how fruits need to be in line of sight and not merely explored but that is definitely a flaw in the game logic as units magically know where there is wheat and wood even before exploring it if I remember correctly. This is also resulting in stupid unit behaviour (groups collectively jumping at this task and forgetting about it just because some explorer randomly flew over a tree) but fruits being optional, it also is a necessary mechanism to switch fruit collection on and off. Maybe that should be more explicit like the fV or fM option which are also way too hidden. Two ideas how to accomplish this:

  • A diplomacy menu that allows the user pick one of "compete for fruits: no / collect / offer in inns (so units don't desert) / show and offer to enemies / show and offer to select enemies". Only if the last was selected, let the user specify, which enemy to target for conversion.
  • Turn the market into a processing plant so that fruits can only be collected by a market which then offers its products. No market, no fruit collection. Then, above options could go into the market: no market or no assigned workers = no fruit collection. The market could have a switch to process/release fruit. Inns could get the option to show/offer to enemies (none/this/all).

@ryandesign
Copy link

So I wonder whether we should officially release a new minor version?

Please, release something. The last release was in 2009 and it does not build when scons is using python 3. This was fixed years ago in 3dd1b31 but the patch is large and has conflicts when applying it on top of the last release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Related to the build and release infrastructure question Further information is requested
Projects
None yet
Development

No branches or pull requests

4 participants