Currently Online

Latest Posts

Topic: Widelands Editor issues

einstein13
Avatar
Topic Opener
Joined: 2013-07-29, 00:01
Posts: 1118
Ranking
One Elder of Players
Location: Poland
Posted at: 2015-05-09, 02:50

Hi!

Yesterday & Today I was making a map. And I've noticed few bugs/ problems/ anything face-wink.png Please answer, which issues you think are bugs and which aren't. I don't want to create dozens of bug reports and mess Launchpad.

To be specific, I used:

Host machine: Windows 7, 64-bit with 12 GB RAM, 8-thread processor
Virtualization on VMware® Player 7.0.0 build-2305329
Virtual machine: Windows 7, 64-bit, 4 GB RAM, 3 virtual processors, 40 GB HD (enough for everything)
Virtual machine only for games,
Widelands, tino's build for Windows x64, bzr7454[trunk](Release)

So what are the issues?

1. Secondary tool

I've noticed that if you use secondary tool, it will fix and not go back to the primary tool. For example, when you want to make hills, you use primary tool, but if you want to make flat terrain, you should hold SHIFT and then the tool will make flat terrain. Instead of holding you push SHIFT and then secondary tool is fixed. I had problem with reseting the tool to primary state. So the basic idea is to change something about the tool: any changing value will reset the tool to primary state. I didn't check the third type of tool (ALT). I am not sure if somebody changed the behaviour of tools in purpose, but it is not intuitive any more. Second SHIFT-push is not reseting the tool. No idea how to reset the tool now.

2. numeric Keypad

When I wanted to use numeric keypad (with NumLock enabled!) from the right of standard keypad. And the keys were working like arrow keys: moving the map. I wanted to write some numbers in a window, but I coudn't. Instead I had to use uncomfortable numeric keys from the top of keypad. I understand that those keys can work like arrow keys, but when NumLock disabled. Also I don't know if the issue about that keys is still on: I remember that few months ago I wanted to write IP addres on direct Internet play and I coudn't use 4-key, because it was working as both "<-" (arrow) and "4" key. The rest of keys were working properly, because there was no possibility to move top/down or right (when you have only one row and you are on the right-end of text.

3. unstable window

Also few months ago I've noticed that, but today it was terribly annoying. While Widelands were working, my Host machine had problems with menu bar (program icons and start button). I couldn't leave virtual machine window clearly. It was corrupted all the time. Only breaking the window manually worked (with CTR+ALT+DEL, then go back with ESC). I understand that it is very hard to track for most of you (don't have 2x Windows 7, especially with virtual machine), but for me it sounds like new fullscreen/window mode switch feature code is a bit messy and unstable. Ok, this don't affect standard game, but when I have to switch between virtual game and host windows (for example Excell, where I write tested values from the game) it is very annoying. If you blame Windows itself I will defend it with only one sentence: any other game is not affecting in that way.

4. new maps upload

When I finally created the map (after few hours of work!) I wanted to upload that into the Widelands' page. But I wasn't able to do that. Why? "The map file could not be processed." Ok, but why? Go to the editor-> everything is fine. But when I tried to open that map in older version, I've failed: "map objects: [(...)/src/logic/immovable.cc:810] immovable type unknown/unhandled version 6". But I didn't add any new immovable to my map face-smile.png Common things like stone, basic trees, only 3 types of animals. Nothing special. So I am very confused. I understand that something could change inside the file, but why it is not changed on Widelands' site?

5. Old discussion- opening editor

I know that it was changed to current state about half of year ago, but I complain about it one more time: I don't like the idea of opening the Editor right after click "Editor" on main menu of game. I misclicked few times this week and then I had to wait about 5-10 seconds till the editor will start and then close it. Old idea was much better: you could browse mapfile before you opened the editor, open plain editor map or simply go back to main menu. After misclick you don't have to wait valuable seconds, especially when torunament game is beggining. So I vote to go back with editor menu on main menu of the game. New idea of direct opening the editor is very bad for tired people, who misclick very often.

6. pure complain

I am programmist too. I hate C++, so I don't complain that you are trying to write in that language. But I am complaining that you are not basicly testing new features before pull requests! I check every branch before I write "release #X" to commit and then my boss knows that he can merge the branch. Everything (what I can check) is checked. Not always it is working- I understand- but some of issues spotted in the game are very simple to check. Why it wasn't checked?

Last sentence

You can download my new map from the link: http://student.agh.edu.pl/~rak/widelands/files/Maps/TheNile2rc1.wmf


einstein13
calculations & maps packages: http://wuatek.no-ip.org/~rak/widelands/
backup website files: http://kartezjusz.ddns.net/upload/widelands/

Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 15:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2015-05-09, 08:59

For 4. Please file a bug against Widelands-website: https://bugs.launchpad.net/widelands-website We changed the programming for immovables lately to fix a bug, so we had to increase their packet version number. We have compatibility code so you can load old maps in new version, but that can't work the other way around. Probably the Widelands instance that the website is using just needs an update.

For the other bugs, please add bug reports at https://bugs.launchpad.net/widelands/ I think they should all be investigated. Thanks for reporting face-smile.png

As to 6. I always compile and test when doing a code review, and we have a test suite for unit tests that gets run. Things like the alt tool aren't covered by the test suite though and at some point whoever tested it forgot them - my hunch is that the bug crept in when we did the switch to SDL2.


Busy indexing nil values

Top Quote
kaputtnik
Avatar
Joined: 2013-02-18, 20:48
Posts: 2433
OS: Archlinux
Version: current master
Ranking
One Elder of Players
Location: Germany
Posted at: 2015-05-09, 10:45

einstein13 wrote:

1. Secondary tool

See bug https://bugs.launchpad.net/widelands/+bug/1392215 and the following bug https://bugs.launchpad.net/widelands/+bug/1418050

5. Old discussion- opening editor

See bug https://bugs.launchpad.net/widelands/+bug/1390794

6. pure complain

It's a bad ting to dismiss others while working with a pre release state of game. It's just a working release and because of this it consists of failures. As i can see widelands has only a few active developers and i think they're doing a great job. And i am sure before build 19 is released to "official" there are many bugs fixed. In the end its an open source game, and with my experience with such softwares they do all have the same problem: Lack of (good) developers and lack of good testers which make good bugreports.


Fight simulator for Widelands:
https://wide-fighter.netlify.app/

Top Quote
Tibor

Joined: 2009-03-23, 23:24
Posts: 1377
Ranking
One Elder of Players
Location: Slovakia
Posted at: 2015-05-09, 21:41

It is pity that it is too complicated* to build a widelands or specifically develoment branches, because much more people would be able to comment new code before merging. I dont mean like looking into code, but things like user interface and so on.

* mainly on windows, it is quite easy on linux


Top Quote
einstein13
Avatar
Topic Opener
Joined: 2013-07-29, 00:01
Posts: 1118
Ranking
One Elder of Players
Location: Poland
Posted at: 2015-05-10, 02:15

@ GunCheloc: unit tests is one side, but standard alpha tests are second side. If you want to create something well, you have to check everything twice. Or use child or student face-wink.png

@kaputtnik: I apperciate very much good work here. But I hate making something bad. With no imagination and thinking. Most of things are well done, but there are some very bad too.

@Tibor: Even Linux has some problems. For sure it is easier than on Windows, but still it is complicated. You should have remembered that I had lots of troubles with compiling your branch. But finally I did managed to compile with your help! (that was very good).

Edited: 2015-05-10, 02:17

einstein13
calculations & maps packages: http://wuatek.no-ip.org/~rak/widelands/
backup website files: http://kartezjusz.ddns.net/upload/widelands/

Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 15:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2015-05-10, 07:10

einstein13 wrote:

@ GunCheloc: unit tests is one side, but standard alpha tests are second side. If you want to create something well, you have to check everything twice. Or use child or student ;)

Instead of a child or student, we are using our users that play development builds. We have no money to pay a child or student, since we aren't being paid ourselves. So, we depenend on you guys being part of our team as testers and bug reporters, and we do appreciate your help face-wink.png

I never submit a branch for merging without testing, and no code review is done without testing, and nothing gets merged without code review. So, everthing does get tested at least twice. However, being a good software tester is also a separate skillset from being a good programmer, so sometimes we do miss things. WIth bigger branches, we also make a call for testing on the forum, but we can't do that for everything.

Edited: 2015-05-10, 07:11

Busy indexing nil values

Top Quote
Tibor

Joined: 2009-03-23, 23:24
Posts: 1377
Ranking
One Elder of Players
Location: Slovakia
Posted at: 2015-05-10, 19:35

einstein13 wrote:

@Tibor: Even Linux has some problems. For sure it is easier than on Windows, but still it is complicated. You should have remembered that I had lots of troubles with compiling your branch. But finally I did managed to compile with your help! (that was very good).

Of course for a person who is complete stranger to linux is even an installation a problem - if he runs into some weird issues.

Maybe if somebody prepared VirtualBox disk with working system - what do you think? Would people download and use it? Then they would only need to download new branch and run install script... It is only couple of commands....


Top Quote
hjd

Joined: 2011-06-12, 20:24
Posts: 164
Ranking
At home in WL-forums
Location: bugs.launchpad.net/widelands
Posted at: 2015-05-10, 21:40

einstein13 wrote: 2. numeric Keypad

When I wanted to use numeric keypad (with NumLock enabled!) from the right of standard keypad. And the keys were working like arrow keys: moving the map.

Took me some time to find it, but there is an existing bug report on NumLock not working as it should.

3. unstable window

It was corrupted all the time. (..) I understand that it is very hard to track for most of you (don't have 2x Windows 7, especially with virtual machine), but for me it sounds like new fullscreen/window mode switch feature code is a bit messy and unstable. Ok, this don't affect standard game, but when I have to switch between virtual game and host windows (for example Excell, where I write tested values from the game) it is very annoying. If you blame Windows itself I will defend it with only one sentence: any other game is not affecting in that way.

When you say "corrupted", do you mean graphically?

Ok, I won't blame Windows directly. face-wink.png However, are the other games also using SDL2? It might be something in the library where it follows a slightly different code path on Windows, but I don't know. If it is a graphical problem, the virtual machine its graphics driver might be an additional layer of complexity. I am not saying that Widelands is free of guilt, but it can be hard to track down where things are breaking. face-smile.png Have we seen similar reports from others running Windows, either virtualized or bare metal?

6. pure complain

(..)But I am complaining that you are not basicly testing new features before pull requests! (..) Everything (what I can check) is checked. Not always it is working- I understand- but some of issues spotted in the game are very simple to check. Why it wasn't checked?

There's two steps here; there's the automated testing and the manual testing. Others have touched a bit on this, but AFAIK (feel free to prove me wrong face-smile.png ), we don't have any dedicated testers which goes through the merge proposals and verify things are working as intended and no regressions will be introduced by merging it. This is something we could consider adding to the process, i.e. before marking a bug as fix committed, someone (not the person providing the fix!) verifies the bug is indeed fixed and light-weight regression testing in surrounding parts touched by the code changes. At the moment this basically happens over time as development builds are rolled out and bugs uncovered. More pro-active testing when a bug report is closed would probably mean such bugs are discovered sooner.

As for the automated testing, I think it's too little of it at the moment. The good news is that this seems to be improving. There's four unit test suites which are run at build time, and there's a growing set of integration tests which orchestrate maps in different scenarios to verify certain features still work as intended.

The benefit of a good automated test suite is two-fold. First of all, you have a specification for what the code is supposed to do. This makes it easier to add new functionality or fix bugs, knowing that existing features still work as intended. It also gives a great safety net when refactoring and replacing code. If something breaks while changing the code, you'll know immediately.

Secondly, unlike manual testing it doesn't require a person sitting by the computer, the tests can be run more frequently. This means bugs will be caught sooner, so they can be fixed long before the code lands in trunk.

Since humans are always the limiting power in most projects, I think the logical conclusion would be to focus more on writing test suites for new features added and bugfixes. It can look like an intimidating task, starting with a handful of unit tests and some integration tests, but if we work on it gradually I think we can see some improvements in the near future.

Unfortunately I don't think my c++ skills would be quite up for this task, but I would love to see good test suites for the various functionality in Widelands. It has puzzled me a bit why there's not more widespread use of testing in Widelands. I get that some aspects of the game, especially edge cases are really hard to set up and verify, but there should still be a great potential to get test coverage on the majority. So is it just the habit, is it hard to set up the test suites/writing the tests? (Granted, if a code base hasn't been written with testability in mind, it can be hard to retro-fit. Though, it might be something to consider when introducing a new feature where you basically start with a blank slate.)


Ships!

Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 15:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2015-05-11, 09:03

It would certainly be great to have more automated tests. If I add something to the Lua interface, I usually write a test for it too. For other tests, I don't know how to write them. Somebody will have to teach me how.


Busy indexing nil values

Top Quote
einstein13
Avatar
Topic Opener
Joined: 2013-07-29, 00:01
Posts: 1118
Ranking
One Elder of Players
Location: Poland
Posted at: 2015-05-11, 14:20

I know that I don't have much time in my life, but I want to make something to Widelands community. Not only complaining and writing about bugs on this forum. So I am open to be a tester for new features. Also I need somebody else to test multiplayer then face-wink.png (@king_of_nowhere: Are you In? Do you have will for that? Linux probably too?) I was testing some Tibor's work in the past and I have one virtual machine only for Widelands on Ubuntu 14. So if anybody want to test manually (by playing the game) a feature- I am in face-smile.png Just contact me and then I will do my best face-wink.png

@Tibor:

I will not use that. I use VMware player and I am very happy with that commercial (but free for users) product. For sure Virtual Box is more known and easier to get, but I don't like their way of virtualization. But if anybody do have Virtual Box installed, you can try that face-wink.png I can also test if it is working (you will be laughing at me, but I have Virtual Box installed on one of my virtual machines :P)

@ hjd:

"corrupted": Did you have any problem with you OS, when nothing was responding? I do have sometimes (also with Linux!). The behaviour is very simple: your mouse is moving, but nothing happens. It is OS side. I guess that in this case my virtual machine is saying to OS: "Hey! I am on full-screen mode. Nothing should happens with your side! Mouse is mine." but after "Ctr+Alt+Del" my host OS has smash on the face and "Wake up!". Then everything is going well again. Before that keyboard is also not responding in a standard way: every button goes to the hosted machine. So there is also a possibility that it is the issue of VMware player, not Widelands.

SDL2? How old is that? face-smile.png Probably none of my games is going with that. I have only old games and very little newer ones face-wink.png (Warzone, Dwarf Fortress & Widelands). If you have any good game which uses SDL2, I can check it working too face-wink.png If it still fails- I will blame the virtual machine, not Widelands face-tongue.png

And to add two more things:

I can't host on my virtual machines. I was trying to forward port from host machine, but I failed. I can play only multiplayer games withing my computer: one virtual machine is hosting, second is playing with direct connection. But I can join other people face-smile.png

Also I need to know that exact information will need the contributor(s). I can put almost anything inside the text, but It is hard to think what somebody wants (I am not psychic face-grin.png . Yet face-tongue.png .)


einstein13
calculations & maps packages: http://wuatek.no-ip.org/~rak/widelands/
backup website files: http://kartezjusz.ddns.net/upload/widelands/

Top Quote