Not logged inOpenClonk Forum
Up Topic Development / Developer's Corner / Release 4.1
- - By Newton [th] Date 2014-02-02 07:56
At least because of #1029 Release includes Experimental.ocf and Issues.ocf (in my opinion) we will want to have another bugfix update soon. So, this is a roll-call for that. Specifically, we will probably need some help for this release from people who were busy during the 4.0 release and couldn't help with that. (See below)

All: Please have a look at the bugtracker, also, I created this list of bugs that should IMO at least be resolved for the update on the roadmap page.

I put my patches so far into the stable branch already.

Mortimer: You pushed quite a few mac-specific patches to master, please pick those that are eligible for the stable-5.4.0 branch.

Isilkor: Some build problems popped up, could you have a look into them? If a particular problem falls out of your expertise or you really got no time, could you comment on it that someone else should look into it? I didn't mark the build problems as a must for the update because I have too little knowledge about that to judge how fatal they are, you are free to do that of course, the current roadmap list is just a suggestion.
Parent - By Maikel Date 2014-02-02 12:51
I agree, and will finally fix the last bug assigned to me, and have a look at other stuff I could fix.
Parent - - By Pyrit Date 2014-02-02 14:26
Should we change the background of the ring menues from transparent black to transparent white?
Parent - By Newton [th] Date 2014-02-02 15:47
IMO the menu background should be made from transparent black to less transparent black only to keep the current GUI layout consistent where you find white text on black background everywhere. A redesign that includes the mentioned concerns for visibility is something for a redesign of the GUI and thus for a major release.
Parent - - By Isilkor Date 2014-02-03 13:06
I hate the library issues that cropped up. Mostly because I'm trying to get the autobuilds to run on default settings as far as possible, so the builds are actually reproducible outside of the build environment (this means no hard-coding library paths). I don't know whether the solution is to update the build environment to something that isn't Debian Stable (which we've used so far as a base-line), or just doing a build each for every distribution.
And people have the gall to complain about Windows library problems.
Reply
Parent - - By Newton [th] Date 2014-02-03 17:32
Yeah, regarding the freetype issue. I already presumed that the patch by pkern would just make the library be found by another set of distributions than it is now since it is working currently for the autobuilds and thus on your system. So, if freetype is not located in the same place on every linux dist (anymore), perhaps the issue can be solved with this freetype-config pkern mentioned?

Doing a build for each distribution seems overkill and something that needs far too much effort and maintenance work (for you). You probably had to keep half a dozen VMs with updated Linuxes around ... or what?

Otherwise, I see two solutions to the dependency trouble of the binary builds for linux:

1. Indeed update the build environment, to Debian testing. It makes sense to have a build system that more closely resembles the target build environment. Most people who have a Linux Desktop have something along the line (in terms of age) of Debian Testing or newer since Debian stable is usually used for server systems where the important thing is reliability, not so much for Desktop systems (where one would play games). If the autobuild build environment were more alike to what most desktop users have, there'd be less of these issues in the future.

2. Use more/only statically linked libraries instead of dynamically linked ones for the binary build we provide on our website. So, the Linux build we provide on our website would be compatible with most/all Linux platforms out of the box without the need of any additional dependencies. This'd be great, but goes against the ambition of at least the Debian philosophy to dynamically link as much as possible. So, whether to prefer static or dynamic linking should be an option in Cmake so that we can provide a monolitihic build that runs everywhere(TM) and at the same time packagers for distributions can be happy about dynamically linked binaries for their packages.
Parent - - By Isilkor Date 2014-02-04 04:05

> So, whether to prefer static or dynamic linking should be an option in Cmake


Haha, good luck getting CMake to cooperate with that.
Reply
Parent - - By Newton [th] Date 2014-02-04 05:25
I don't know much about CMake, so it is a missing feature there?
Parent - - By Isilkor Date 2014-02-04 13:19
It works in certain select Find*.cmake modules (most notably FindBoost), but everything that just calls find_library is basically out of luck. Maybe we can replace CMake's find_library with our own.
Reply
Parent - By Newton [th] Date 2014-02-04 17:06
We can't be the only CMake users who have trouble with dynamically linked libraries. Perhaps there is such a project already undergo within the CMake team?
Parent - - By Newton [th] Date 2014-02-04 13:07
So, what's your plan then?
Parent - By Isilkor Date 2014-02-04 13:18
I'll probably switch the Debian Stable to Ubuntu LTS.
Reply
Parent - By Maikel Date 2014-02-10 13:35
Added 1030 as well, this is a nasty and annoying one as well. Don't have time to look into this until the weekend , though.
Parent - - By Maikel Date 2014-02-17 20:57
Found a critical bug, assigned to Sven2.
Parent - - By Sven2 [de] Date 2014-02-17 23:10
Duplicate object creation in Initialize is a very old problem (and nothing new of Objects.c). There's even a warning message if you create objects in Initialize and then start the scenario.

I always try to make a delayed initialization triggered by the first player join. That means I can freely edit the scenario in unpaused mode without worrying about startup scripts.

I wonder if it would make sense to even add another Initialize()-like function to the engine that is triggered by the first player join. It would save some boilerplate code from every scenario.
Parent - By Maikel Date 2014-02-18 08:35
I know the feeling, and that is why I always Initialize my own objects and never use "save scenario" for anything else than saving the map.

But a delayed Initialize() seems also a good thing yes.
Parent - By Newton [eu] Date 2014-02-19 06:18
Instead of adding a new func I'd change the Initialize function to be what you said for scenarios. To have the old behaviour, one can have Construction or so. (Objects.c and/or? Construction callback being the construction of a scenario, on (just before) first player join, the initialization.
Parent - - By Caesar [de] Date 2014-02-19 10:47
If something like that is made a new engine callback, I'd think that a call after all starting players have been initialized would be more useful.
Parent - - By Zapper [de] Date 2014-02-19 10:54
Both would have its uses and its drawbacks:

Before player initialization: can safely place helper objects (spawners, rules, goals) that will care for player joins etc. BUT can not do stuff like looping over all players and starting the rule selection for the first player or something like that.
After player initialization: can do stuff do initialize the players (I usually used Script0 for that in the past) BUT spawning objects here might have weird effects (f.e. you possibly couldn't spawn certain helper objects that you need to use during player initialization)

so, *shrug*
func OnBeforePlayerInitialization()
func OnAfterPlayerInitialization()
Parent - By Sven2 [de] Date 2014-02-19 11:11
I would prefer before the first player initialization. If Initialize happens after player init, people are tempted to push player initialization into Initialize and then their scenario won't handle runtime joins properly.

Iiirc, Initialize happened after player joins in Clonk 4 and when the order changed, lots of poorly written scenarios broke.
Parent - - By Newton [th] Date 2014-02-18 05:52
Um, typical. Well, for the next bugfix update, I won't be available. You gotta take over.

I recently updated the release checklist: https://git.openclonk.org/openclonk-release-scripts.git/blob/master:/web/oc-release.cgi#l176
Parent - By Maikel Date 2014-02-18 08:38
Okay, we will wait for some more bugs to appear first... you can still play the scenario, but can't finish it.

Have a nice trip!
Parent - - By Newton [th] Date 2014-02-10 07:53
Good find!

They should be easy enough to fix for anyone who has time to do so.
Parent - By Clonkonaut [de] Date 2014-02-10 11:58
2/3 of the find's credit goes to Boshi!
Reply
Parent - By Maikel Date 2014-02-16 11:44
Fixed boomshire, and cherry picked into release branch
- - By Newton [th] Date 2014-02-16 08:20 Edited 2014-02-16 08:26
I'd like to release the bugfix release today. Isilkor finished the important part with the dependency issues already, whats left of issues that were marked as must-be-part-of-bugfixrelease should be quick to fix.

This goes to Sven2, Clonkonaut and Maikel of which I expect will be the ones who fix the remaining marked bugs: Will you be able to solve the last bugs today? Cause I think if you don't find time to do it this weekend, will you find time at all in the next weeks to do it? In bit more than a week I will be gone traveling for more than two months, so I won't be able to push a new release then.

Mortimer: You still need to merge the changes you made on master that should be in the stable branch.
Parent - - By Maikel Date 2014-02-16 10:10
I won't be able to fix what is assigned to me, but it is also not that relevant for this bugfix release.

What about this one? This is important to have fixed in my opinion.
Parent - - By Newton [th] Date 2014-02-16 11:13
There is nothing assigned to you
Parent - By Maikel Date 2014-02-16 11:20
Because I removed that, the linux editor bug was assigned to me
Parent - By Clonkonaut [de] Date 2014-02-16 11:45
I'll have a look into some bugs after showering!
Reply
Parent - By Maikel Date 2014-02-16 12:03
Fixed another one as well: last one on the Roadmap standing is #1034

I don't want to spend time on that one, since I have no idea how that scenario works. For me it is then fine to do the bugfix release with the current state of the stable=5.4 branch.
Parent - - By Clonkonaut [de] Date 2014-02-16 12:44
Added a note to #1034 (Dark Castle):

Scripts hits a null pointer at line 19:

Object(332)->SetNoPowerNeed(true);

After that about 10 lines of "Object(x)->" follow of which I assume will also be null pointers upon fixing line 19. This one's easy to fix in case you know which object is referred to.
I guess this came with the change from Objects.txt to Objects.c and scrambling object creation.


Isn't really nice to fix without any idea of the whole scenario, I'll try my best. Testing should be done by someone who has played the scenario before and knows who to do it.
Reply
Parent - - By Clonkonaut [de] Date 2014-02-16 12:53
As much as I can do:
  // Elevators
  // Top
  Object(190)->SetNoPowerNeed(true);
  Object(189)->CreateShaft(470);
  // Left
  Object(197)->CreateShaft(100);
  // Shrooms
  Object(15)->AddPoisonEffect(0,0); // floor left
  Object(19)->AddPoisonEffect(0,0); // ceiling left
  Object(23)->AddPoisonEffect(-20,0); // floor right
  Object(27)->AddPoisonEffect(10,-10); // ceiling right
  // Message when first player enters shroom area
  ScheduleCall(nil, Scenario.ShroomCaveCheck, 21, 0xffffff);
  // Scorching village
  Object(103)->AddScorch(-20,-10, -45, 50, 1500);
  Object(104)->AddScorch(-15,42, 90, 50, 1200);
  Object(105)->AddScorch(-12,18, 130, 80, 1300);


What I don't know is:
  if (goal) goal->SetVictim(Object(3816));
and
  DialogueCastle->MessageBoxAll("$MsgIntro1$", Object(2648), true);
  Schedule(nil, "DialogueCastle->MessageBoxAll(\"$MsgIntro1$\", Object(2648))", 250, 1);

As I don't know who's the victim and who plays the starting intro. Also, player spawn point seems to be off.
Reply
Parent - By Clonkonaut [de] Date 2014-02-16 13:00
Also, isn't this the kind of stuff that could be well better handled with Objects.c?
Reply
Parent - - By Sven2 [de] Date 2014-02-16 13:57
Dark Castle fixed. I'll have stuff to do now; will be back later in the evening.
Parent - By Maikel Date 2014-02-16 14:44
That completes the 4.1 Roadmap, don't forget to cherrypick into stable, whoever is releasing.
Parent - - By Newton [th] Date 2014-02-16 13:34
Is Sven2 available?
Parent - By Clonkonaut [de] Date 2014-02-16 13:37
He's in IRC right now, claiming to be stuffed with work.
Reply
Parent - - By Maikel Date 2014-02-16 14:06
Newton, why do firestones have this strange fuse sound?
Parent - - By Newton [th] Date 2014-02-16 14:08
They make this sound as a "warning", when it hit something at almost the speed it would take it to explode. (Explodes on Hit2, casts some sparks and makes the fuse sound on Hit)
Parent - - By Maikel Date 2014-02-16 14:09
We need a slighlty different sound for that later, since it looks like dynamite now, it should also be shorter I guess. More like cracking.
Parent - By Newton [th] Date 2014-02-16 14:29
Yeah, would also be fine. But it only sounds like dynamite because you got used to it ;-)
Up Topic Development / Developer's Corner / Release 4.1

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill