Not logged inOpenClonk Forum
Up Topic Development / Developer's Corner / 5.3 Release Tasks
- - By Newton [de] Date 2012-10-01 20:02 Edited 2012-10-13 21:42
This is one came out of our preparation meeting in Hamburg. We can start working on it right now, the deadline however would be the on the openclonk weekend. If you feel that we missed out something important, post it here.

(cursive: in progress; crossed out: done)

What Must be done


Stuff that we must do before a release

Scenarios: Reorganize scenarios into more self-descriptive categories (arena, parkour, settlement). Move scenarios that are not mature yet into Test (Mt. Brane, Skylands).

Rendercode: Adapt the mesh loader to the newest version of the OGRE mesh format to be useable with the newest exporters again. At least, fix the FIXMEs that turn up while loading the models. (Clonk-Karl)

Script engine: Fix the crash(es) on the end of a round. The crash is only regularly reproduceable on Windows, however, it also turns up using valgrind.

Controls customization dialog: While it does not work properly, hide it in the release version.
Instead, create a control set for the US-keyboard. (Newton)


Tutorials: check if the new controls are sufficiently explained in the tutorials and add any missing explanations

What Can be done


Still important but shouldn't be the reason to delay the release

Documentation: Fix the automatic documentation builds (if they are really broken)


Automatic release: Create a method with which the other developers can automatically create a release version with a press of a button. (Clonk-Karl, Newton)

New Control changes: Test Günther's changes to the controls and change what's not good yet

Scenarios: Create more uniform infos (descriptions, titles?) for all the scenarios in both German and English


GUI: Clean up the main menu - Remove Splash.c4v, adapt some strings for OpenClonk, ... (Newton)

Settlement concept: Finish it or at least advance it since this is the content for the next release. What f.e. has to be done in the art department is the cotton plant (see Fungiform's sketch), texture for the kitchen, armory and shipyard. More info what is left to do should be linked [url=]here[/url]. Also, contact Dragonclonk in that matter as he seems to be quite able as his environment pack for OC shows.

Controls customization dialog: What seems to be missing is localisation, setting mouse controls and a way to set multiple controls with one item (example see Collect). Interview Sven2 what has to be done and where the difficulties are, how we can reach a version that can be finalized for now. (Sven?)


Player controls: It must be possible somewhere to look up the controls in OpenClonk. If the above task cannot be completed, at least the controls explanation should be linked from the FAQ. Also, showing an image/text on the controls page instead of the configuration dialog that shows the default controls is possible.

What Should be done for the next release (5.4)


Important but too much of a hold-up to be included in this short-term release

Rendercode: Find out what is the bottleneck in Clonk (rendering) performance and optimize the code

Shader: Landscape lighting and landscape normal mapping (Peter)

What Could be done somewhen in the future


Interesting stuff but nothing that should hinder OC development

Engine ropes: A better and performant implementation of ropes and lines (Clonk-Karl)

Player controls: A next iteration of new controls (boni)

Rendering engine: Scout out if it would be feasable to use OGRE3D for parsing and rendering the ogre meshes. Interview Isilkor in that matter.

Script engine: Use floating-point (JCaesar)

Documentation: Write a tutorial for how to add lokalisation to the c4script-documentation
Parent - - By PeterW [gb] Date 2012-10-01 20:07

>  Shader: Landscape lighting and landscape normal mapping (Peter)


Uhm, what is the intended time window here? There's still some really tricky stuff left - such as handling the sun.
Parent - By Newton [de] Date 2012-10-01 20:11
Well, I hope that it is mature enough to be included in the next release (so not the upcoming one) but we didn't mention your work to hurry your but to both acknowledge it and note that it makes no sense to wait for a release until you finish your implementation.
Parent - - By Clonk-Karl [de] Date 2012-10-03 22:59

> Automatic release: Create a method with which the other developers can automatically create a release version with a press of a button.


Here is a website: http://londeroth.org/~ck/oc-release/oc-release.cgi

If you want to be able to schedule releases, send me a message with a passphrase and I'll add you. For now the system only copies the release files to http://londeroth.org/~ck/dry-release, but does not upload them to the openclonk.org webpage. This allows easy testing of the system for now -- I'll activate the proper upload later. Please don't request a release of version 5.2.2 or earlier, since this would confuse the update generation for future 5.2.90 and newer releases. The revision field can handle both revision IDs and branch names.
Reply
Parent - - By Newton [de] Date 2012-10-04 20:01 Edited 2012-10-04 21:19
What is the reason for having a password per user instead of one password?

Does the updating of the database (masterserver, autoupdate) also work already?

Also, will there be some kind of feedback whether everything went as planned? At least PHP has some kind of timeout that will abort script execution if it takes longer than X seconds. Is it possible that your python script also hits some timeout?
Parent - - By Clonk-Karl [de] Date 2012-10-04 22:32

> What is the reason for having a password per user instead of one password?


It fits nicely in the current authentication system, and it allows to see who started the release. Maybe also some paranoia since you can easily blacklist a single user.

> Does the updating of the database (masterserver, autoupdate) also work already?


Yes, it should. A request to boom.openclonk.org is sent.

> Also, will there be some kind of feedback whether everything went as planned? At least PHP has some kind of timeout that will abort script execution if it takes longer than X seconds. Is it possible that your python script also hits some timeout?


The script does not wait until the release process is over. You can reload the page and see the progress in the log output (that's why it is there) -- this allows also to spot possible problems.
Reply
Parent - By Newton [de] Date 2012-10-04 22:56

> The script does not wait until the release process is over. You can reload the page and see the progress in the log output (that's why it is there) -- this allows also to spot possible problems.


How about this: When the release process is over, a file is created with the contents of either OK or ERROR. With a small script on the server, the contents of that file can be queried, if the file does not exist yet, it returns IN PROGRESS or something. After the release button has been pushed, the page starts a javascript delay and after that queries every few seconds this small script on the server. If the output finally is ERROR, the log file is queried from teh server and also written in the window. This way, one doesn't have to reload the page all the time.
Parent - - By Newton [de] Date 2012-10-04 22:11
Also, created a nice interface :-)
I thought that would be the best place to put a checklist what has to be done after the release.

http://westnordost.de/misc/bigredbutton.html
Parent - - By Clonk-Karl [de] Date 2012-10-04 22:35
When I hover the button I see another image of the button slightly displaced -- I think this is not how it is supposed to look?
Reply
Parent - By Newton [de] Date 2012-10-04 22:56
fixed
Parent - - By Zapper [de] Date 2012-10-05 06:52

>Update our releases on desura.com through the link at the bottom of the linked page.
>Not registered? At least Newton can add you to the group of OpenClonk Developers on Desura.


I am registered there but I don't think I am in the group yet - "Zapper_"
Parent - By Newton [de] Date 2012-10-05 09:40
This forum is really missing a "mark post" feature. Could you send me a PM? This way I won't forget it until I get to a PC with my login data.
Parent - By Newton [de] Date 2012-10-04 23:10

> GUI: Clean up the main menu - Remove Splash.c4v, adapt some strings for OpenClonk, ...


done.
Parent - - By Newton [de] Date 2012-10-07 00:23

>Controls customization dialog: What seems to be missing is localisation
>Controls customization dialog: Instead, create a control set for the US-keyboard.


I'm on it
Parent - - By boni [at] Date 2012-10-07 09:03

>>Controls customization dialog: Instead, create a control set for the US-keyboard.


Didn't I already do that?
Parent - - By Newton [de] Date 2012-10-07 12:50
I don't see anything like that in the PlayerControls.txt. Only German and DVORAK (TypeII?)

Also, the file seems to be quite untidy as in that many control definitions are not mentioned in the comments, certain defs are superfluous (e.g. Forcedthrow, several hotkeys etc). I can tell you all that I found when I am done if you are interested.
Parent - - By boni [at] Date 2012-10-07 13:21
Well, given, I haven't cleaned up the PlayerControls.txt yet as I wasn't finished with them.. and it all started as a prototype anyway.
Most of the superfluous things are used in Gamepad-Stuff I found. What is not mentioned in the comments?

As for the US Layout.. I must've forgotten that then (:/) but it should be quickly implemented.
Parent - By Newton [de] Date 2012-10-07 20:47

>Most of the superfluous things are used in Gamepad-Stuff I found. What is not mentioned in the comments?


You sure? what do you mean exactly?
Parent - By Newton [de] Date 2012-10-08 12:13

> Controls customization dialog: What seems to be missing is localisation, setting mouse controls and a way to set multiple controls with one item (example see Collect). Interview Sven2 what has to be done and where the difficulties are, how we can reach a version that can be finalized for now. (Sven?)


An update on the control customization dialog: It turned out that it is pretty functionable already, so my goal is to achieve a fully working control dialogue until the weekend so that the tasks related to showing the player his controls can be removed. Whats left to be done for the dialog is...
+ tooltips with descriptions for the assignments and what they are for (done, working on the descriptions)
+ fix this bug (Sven2 is on it)
+ do the localization (I am doing that)
+ implement a way to disable the possibility to change certain assignments but still show them for looking them up (f.e. mouse controls)
+ implement a way to hide assignments because assignments that have not a real key as their key inherit their key anyway -> hide them
Parent - - By Caesar [de] Date 2012-10-09 18:46

>Script engine: Use floating-point (JCaesar)


Basically, I'm done. I'd prefer serious tests before I merge it, though.
Parent - - By Zapper [de] Date 2012-10-10 07:19
cool! that calls for neuronal networks!
Parent - By Caesar [de] Date 2012-10-10 19:08
I still don't understand how that's connected, but C4Script is not exactly the system you want to use for neuronal networks anyway.
Parent - By B_E [de] Date 2012-10-15 09:49 Edited 2012-10-20 19:30
Concerning infrastructure, could the stable sources please still be pushed to http://hg.openclonk.org/openclonk/archive/? I can then notify the maintainer to update the stable package for Arch/do it myself.

Edit: Thanks!
- - By Zapper [de] Date 2012-10-01 22:43 Edited 2012-10-01 22:46

>Rendercode: Find out what is the bottleneck in Clonk (rendering) performance and optimize the code


Guenther gave me the idea today to run Clonk through a OpenGL profiler program (gDEBugger GL).

random output (where is the "export warnings"-button :/ ):

You draw 0.0122% of your vertices with 1.51% of your batches
You draw 2.9116% of your vertices with 90.33% of your batches
You draw 65.7666% of your vertices with 0.84% of your batches

It is good practice to draw as many vertices using as few batches as possible. Doing so will usually improve the application's rendering performance.

-A lot of warnings like:
Deprecated Feature:  Fixed Pipeline Vertex Processing

-And a lot of warnings like:
This function has a very high percentage of redundant calls
[see export file]

-warnings about GLBegin and GLEnd

-Using glGetError and similar functions slows down render performance and are unneeded for purposes other than testing.

-Functions that retrieve data from OpenGL are considered Get functions
Using "Get" or "Is" functions slows down render performance. These commands force the graphic system to execute all queued OpenGL calls before it can answer the "Get" or "Is" query.
-An OpenGL render context is a huge state machine. OpenGL offers many commands that manipulate state variable values. Setting a state variable to the same value it had before the set operation is considered a redundant state change.


That program also allows me to export the call history of all OGL calls (but the file from my test is too huge) :o

here is an export from the statistics tab, it shows f.e. the redundant calls:
Attachment: clonk-gDEBuggerExport.ods - Clonk export from OpenGL debugger (18k)
Parent - - By PeterW [gb] Date 2012-10-01 23:38 Edited 2012-10-01 23:45

> You draw 2.9116% of your vertices with 90.33% of your batches


Those are probably simply the 2D "blits" with 4 vertices each - which (outside of particles) pretty much have to be done individually. They have also been fast enough for CR, so that's unlikely to be the bottleneck here.
Parent - - By Zapper [de] Date 2012-10-02 07:08
In the export you can see that calls to certain functions are 100% redundant and never change a state, that's what I found most interesting :)
Parent - - By PeterW [gb] Date 2012-10-02 14:34
I had actually written a suffix to my post on that but wasn't too sure I was in the right position to comment. That's probably mostly the non-mesh code as well, due to the pretty awkward transitions the whole gfx system has gone through during the years.

The new mesh code is actually relatively clean as far as those things go - we have a serious noise problem here, I fear :/
Parent - By Zapper [de] Date 2012-10-02 14:41
Mh, what I could actually do is to just run CR with that program, too
Parent - - By boni [at] Date 2012-10-02 15:03
Cleaning the graphic code up would probably mean a complete refactor of the gfx code.. and at the same time transitioning from fixed pipeline to shaders.
Parent - By PeterW [gb] Date 2012-10-02 15:22 Edited 2012-10-02 15:26
Yes, it would probably mean a rewrite. But why should we want to do that? The 2D portions had acceptable performance (outside of particles), and shaders don't really have any advantages when all you want to do is copying a few bytes from a surface to the screen.

That being said, lights support will probably force me to shader-ify a good amount of stuff. But I probably will try to somehow cast that into the existing structures. After all, the color mod stuff will have a lot in common structure-wise, so it shouldn't be impossible.
Up Topic Development / Developer's Corner / 5.3 Release Tasks

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill