Globulation2 / glob2

A real time strategy game that aims to remove all micro management
https://globulation2.org
GNU General Public License v3.0
41 stars 10 forks source link

Should we release a new version? #76

Open stephanemagnenat opened 1 year ago

stephanemagnenat commented 1 year ago

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?

Giszmo commented 1 year ago

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

Quipyowert2 commented 1 year ago

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 commented 1 year ago

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).

Giszmo commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago
$ 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 commented 1 year ago

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 commented 1 year ago

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

Giszmo commented 1 year ago

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 commented 1 year ago

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

Giszmo commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 ...

Giszmo commented 1 year ago

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:

ryandesign commented 1 year ago

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 3dd1b31d90c7ad44baa67bdbfbfd8bbb1feff857 but the patch is large and has conflicts when applying it on top of the last release.