Schlachtfeld

Der Stafflerblog von Warzone2100.de

01.05.2010

Modder interview #2: NTW/Delphinio

Filed under: English,Miscellaneous von Kreuvf um 16:57:13

At the beginning of 2000 Delphinio found a demo version of Warzone 2100 and eventually got the game. He started modding in 2003 with making maps for the GDT guild. His motivation was to play selfmade maps and breaking the monotony of Teamwar and New Teamwar maps. Due to a Warzone 2100 pause from autumn 2004 to autumn 2006 he forgot many things, but again started with mapping and was introduced to modding by Lordy, a warzone loyal Briton. Work on the NTW mod started in November 2006.

Delphinio was inspired by the DM mod, which enthused him with the many changes it did to Warzone 2100. At the beginning NTW mod did not contain any changes to the technology tree, which changed with the addition of the T1 balancer, another mod by Delphinio.

Kreuvf: What is the aim of NTW mod and to what extent has it been reached already?
Delphinio: If I just knew that… . The actual aim was to create a mod that’s improving the balancing and makes Warzone 2100 nicer. Plus some special things such as new weapons. I already announced for several times that it’s done now and then again I found something new. At some point there won’t be any further updates, I just don’t know when this will be.

Kreuvf: What was wrong about the balancing? And which new weapons are there?
Delphinio: There are some issues in 1.10. You get lancer too early, which renders other weapons useless, e. g. the MG. The heavy laser and the plasma cannon as well as the super-heavy bodies were too heavy in my opinion. Then the pulse laser for VTOLs was overpowered.

The new weapons are the Heavy Gauss Cannon, the Heavy Twin Cannon, the Super Cannon, the Condor Missile, the Plasma Artillery and the Twin Pulse Laser. Besides weapons there are new structures as well, but first to the weapons:
The Heavy Gauss Cannon is a plain extension to the Gauss Cannon. It’s got higher body points and does more damage, but is slower at reloading and costs more energy. As the super-heavy bodies are faster now and thus are more useful, you need something to tame them.
The flashlight laser has been removed from the lasers, with the pulse laser being the new first laser now. It’s followed by the Twin Pulse Laser, Heavy Pulse Laser and the fresh, new, enhanced Plasma Cannon. And don’t forget the Hyperfire Laser. This is a laser which is firing like a machinegun and is preferably used against tanks. But don’t take too fat tanks… it may be heavy ones, but get out, if a Vengeance’s coming.
You get Plasma Artillery when you’ve researched the Heavy Pulse Laser. It needs 1 – 2 shots to destroy an enemy structure. It’s comparable to the Condor Missile, but has a higher ROF.
While the Condor Missile does more splash damage and is stronger per se. It comes before the Archangel Missile and has replaced the Angel Missile. But I’d build Plasma Artillery anyways, because it can attack targets which are farer away.
The HV Cannon has been replaced by the Twin Heavy Cannon, because somehow you can never balance it right. It’s a stronger twin fire weapon, which of course comes with more body points and is heavier, does more damage and has a lower ROF. The Super Cannon (big twin fire weapon, in the cannon class) has got the same boni/mali except for the ROF, it’s the same.

NTW mod also contains special thermal armour bodies: Fish, Dolphin, Whale and Chimpanzee, Baboon, Gorilla. The Fish class is cheaper, lighter (= faster) and has less kinetic armour than the Chimpanzee class bodies. The thermal armour is the same for both. The abbreviations „SE“ and „SA“ stand for „Special European“ and „Special African“.
NTW-Rümpfe

Turning to structures now: You can build scavenger structures and build some of their units. Not all scavenger structures are available, but the most common ones you know from the campaigns are.

Kreuvf: Scavenger units? So you can also build these small foot soldiers, which run around and burn when hit by a flame thrower’s flame? How did you balance them?
Delphinio: Yes, you can. Their balancing is comparable to the campaign. So they take very very few hits only. If you know Star Wars and the Empire, then you know what I mean when I say: „Quantity before quality.“ They may be produced fast with a single unit using only 4 – 15 energy. Most notably you can produce them right away as the HQ is only available from minute 6 on. This means that self-designed units cannot be used prior to the 7th minute. Concerning firepower they are okay, you just must not make the mistake and think that they can shoot while they’re moving, because they cannot do this. NTW mod not only has scavenger buildings and units, but at last also rudimentarily good shields. There are 2 kinds: One for VTOLs and one for ground units.

Kreuvf: How do the shields look like, what do they do?
NTW-Schild
Delphinio: I wished I could create real shields, but unfortunately that’s not yet possible. Both send out EMP shocks. Always to the nearest unit. Shields have quite long a range, which makes shields some kind of weapon.
EMP Tank Traps work similarly, but they only shoot if you touch them. And they need much longer to reload. Maybe I’ll improve them.
If you’re out of energy, the best is to build a Nuclear Reactor. : ) But please don’t forget to build cooling towers. There must be at least 2 of them and as close to the reactor as possible. The Laser Satellite has the 1.10 balancing and the Nuclear Missile Silo not that from 2.3 ; ). But it’s stronger with a 10 min reload time. Additionally there are 8 mines.

Kreuvf: How do mines work in general? How do you mine? How do you disarm them? How can you see them?
Delphinio: When a unit drives over it, it goes boom. Mines have no friend-foe-recognition. You can warn your alliance of mines using the Mines Sign. These are signs which can be placed before mines.
Mines are built with trucks. Enemy mines are searched by the Cyborg Minesweeper, which automatically collects them, once it found some. It can remove own mines as well.

Kreuvf: There is one NTW mod version for 1.10 and one for the recent WZP versions. Are there differences and, if so, which?
Delphinio: I try to keep both versions the same, but of course that’s not always possible. There are not many differences. Essentially the 2.3 version contains both, mines and scavenger defensive structures in the technology tree, which is not possible in the 1.10 version due to internal limitations. The 1.10 version has a day night cycle which has been superseded by the skybox in the 2.3 version. The the 1.10 version uses Grim’s texture mod, which’ll be obsolete in 2.x soon.

Kreuvf: How to give feedback to your mod?
Delphinio: Well, register in the forum at http://www.warzone-2100.com/ and create a topic in the NTW area ^^ Or use the WZ2100.net forum. I also check if there are tickets in the bug tracking software of the developers for NTW, but recently there haven’t been any.

Kreuvf: Very good and with this the interview has come to an end as well. Thank you :D
Delphinio: You’re welcome ^^

This is a translation of the German original „Modder-Interview #2: NTW/Delphinio“.

Comment on this article (board-account required)

25.02.2010

Modder interview #1: DyDo AI/DylanDog

Filed under: English,Miscellaneous von Kreuvf um 13:46:16

DylanDog, author of the well-known DyDo AI, is the one interviewed this time. Plain and simple: He is a mod developer and no programmer. He used to play with JavaScript, PHP and AJAX in the past. Playing RTS games such as C&C, Warcraft or Empire Earth always have been one of his passions. Nowadays the amount of free time has been reduced a lot, which is why he’s developing DyDo mostly in the train, when going and returning to and from work. If there is some spare time in the evening, then he might use that as well for developing, while there is only a slight chance to find him developing on weekends.

Kreuvf: How did you get in touch with Warzone 2100 first? And how long ago is it?
DylanDog: I think I have found it at the beginning of 2009 with Google while searching for freeware RTS games. Then at some point in May 2009 I decided to take a look at BecomePrey AI, I do not remember why I did it. I started by improving few events, then I realized that the things I wanted to implement would have required a complete new AI.

Kreuvf: What was your reason to actually start trying another AI? Was the standard AI too weak? How is BecomePrey different? And what’s different in DyDo?
DylanDog: It was just curiousity! I started looking at the BP script because everyone thought it was the best AI. Then I soon realized that I was able to understand the scripting language and that it would have been a great thing working on an AI for an RTS game. The biggest difference between DyDo and BP? Everything!!! From harvesting (building derricks) to base building, from power management (BP has none) to droid-teams management (BP has no defending team, its base is basically undefended if I remember well). Research paths are also different… and DyDo is intended to have 4 different personalities even if the differences between them are not really pronounced yet. I have to thank Niker, BP developer, as he really made a great documentation about BP which really made things easier. Also some part of DyDo AI scripting code (few functions) is taken from both the standard AI and AIvolution, which I think is a better AI then both the Standard AI and BPAI.

Kreuvf: Among all those features, which one would you say is the one that a) is working best, b) is the one you are most proud of and c) is the most problematic one implementation-wise?
DylanDog: To a: I can’t really say which one’s the best as there are so many good working things. There are quite few features which work well:

  • DyDo manages well two droid defending teams and two droid attacking teams (plus the VTOL and the helping teams).
  • One of the teams is mixed (cyborgs + tanks).
  • It never sends two trucks to the same oil derrick.
  • Trucks are also organized in teams building (builds structures), defending (builds defences) and harvesting (builds derricks).
  • Target selection is not random: If the AI requires power, then enemies‘ derricks are attacked and not enemies‘ bases.
  • The number of structures to build is related to the number of oil derricks.
  • Research isn’t done randomly.
  • The power management is also working fine, I think.

To b: In all other AIs the decisions of what to do are mostly taken by various single events in the script, in DyDo not. I have introduced a centralized event to control the most important actions, I called it „AIbrain“. This event is executed every second, collects some statistics and decides which other events should be activated and which not. The power management is made here. I also like the fact I introduced the AI strength levels… and obviously I am proud of DyDo is not cheating! It does not get any more power, it does not make any research available to itself and it gets no gifts at all (droids or structures). The only thing it does which a human player cannot do is to collect statistics about the enemies.
To c: VTOL management could be improved a lot, and I will do it… problematic is also to give a real different behavior to the AI personalities. But really problematic is to meet the expectations of WZ players!!! Many think that an AI can act like a human player, but this will never be the case. A good WZ player is able to beat an AI by using different tactics. The capability to use multiple tactics (like the decision to choose a specific research path for a precise purpose) is difficult to implement. Concerning the AI strength: Playing a game 1 AI vs. 1 human player, the human player will always win, „all vs. all“ in a 4 game is a different thing (and even more difficult if the DyDo strength is set to 5).

Kreuvf: What do you think are limiting factors of the game’s AI engine for you as an AI developer? Which things would you like to add, but can’t due to those limitations?
DylanDog: I have no experience with other AI engines, but I have to say that the warzone AI engine is really great. As AI developer you almost have everything you need to develop a good AI. Surely there are few things which still could be implemented but they would not really make big changes. There is one thing which is a bit limiting: Distance calculation via real path-finding. What I mean is that actually I cannot know how long is the route that a truck would use to reach a certain point. There is a function which gives the distance between two points but this is „just“ the pure point to point distance „on the air“, this function does not make a path finding or calculates the route that a truck would take. A new function which would give the route distance to reach an object would be great but I think it is really difficult to implement.

Kreuvf: Summarised this does mean that the game itself has the requirements necessary for building a challenging AI and you try to build one, right? The developers are planning to replace Aivolution with DyDo AI. Aivolution was one of Troman’s projects and he wanted the AI to be able to learn. What do you think about AIs learning? What do you think are the chances of such an AI and what are its limitations?
DylanDog: Well… I am not trying to build one, I made it already! I couldn’t state that until November-December 2009 but now I am quite satisfied with the job done. I still have some ideas in mind on how to improve DyDo but I already consider it a real challenging AI.
As far as I know with the current Engine Interface you cannot deploy an AI which is learning, because there is no way to manage a database where to store permanent information (I mean also after the game is over). Troman was able to do this possibly because of some feature implemented „ad-hoc“ for AIvolution in Warzone 2100 „C“ code, in some way Warzone recognizes that AIvolution is loaded and saves some info. Learning capabilities would be a great thing for an AI for sure.

This article has been translated into German and is available under the title „Modder-Interview #1: DyDo-KI/DylanDog“.

Comment on this article (board-account required)

19.09.2009

Finding out the IP address

Filed under: English,Homepage von Kreuvf um 22:54:06

Playing via the internet without using the lobby server requires the game host’s IP address. Especially for non-tech-savvy users this can get frustrating. Warzone2100.de wants to help with ip.warzone2100.de. Just open that site to get the IP address of the computer that requested the site.

Also, there is a version with more output.

A German version of this article is available.

Comment on this article (board account required)

06.12.2008

Special interview #2: New widget system (betawidget)

Filed under: Development,English von Kreuvf um 14:12:01

Some time ago I had a special interview on 2.1 with devurandom. 2.1 is almost final, so it is time for another special interview. This time I talked to EvilGuru and Elio about the new widget system.

Kreuvf: First of all: What is a widget and what does a widget system do?
EvilGuru: A widget is something which the player interacts with. This could be a button, slider, colour picker or text box. A widget system is responsible for displaying these widgets on screen and managing them.

Kreuvf: What are the major advantages of the new widget system, betawidget?
EvilGuru: Betawidget has many advantages over the current widget system, both for developers and users.

For users it will

  • allow for a more attractive and lucid interface;
  • be able to adapt itself to the user’s screen resolution, making Warzone easier to play at higher resolutions, including those that are widescreen;
  • be significantly more customisable than the current system.

However, the primary motivation behind the development of betawidget was to make it easier for us (the developers) to add/change/modify the user interface. This is especially difficult using the current widget system, with even something as simple as adding a button taking a large amount of code.

For developers and modders it will

  • be significantly easier to work with;
  • allow the user-interface (UI) to be, firstly, scriptable and secondly modifiable using scripts;
  • require less code than the current widget system in order to complete the same task, resulting in fewer bugs.

Kreuvf: Will the new widget system be limited to Warzone 2100 only or do you plan to provide it for other applications as well?
Elio: Betawidget is intended to have a Qt-backend allowing the use in Qt-applications, such as Warzone Studio. An all-in-one solution covering every aspect of modding:

  • scripting
  • editing the tech tree
  • map making
  • editing the interface

EvilGuru: In fact, most of the development happens in an external simulator. Other Warzone-related applications such as map editors and mod editors may make use of it for parts of their interfaces. Of course, these applications are still very much on the drawing board, but it is nice to keep all avenues open.

Since betawidget is — like Warzone — open source there is nothing to stop others from taking it and integrating it into their own applications. However, it is important to stress that, as flexible as betawidget may be, it has been designed as a replacement for Warzone’s current widget system and not as a general-purpose toolkit.

Kreuvf: How can the UI be changed with the new widget system?
Elio: The whole UI is created from Lua scripts. This enables modders to include a UI without touching the source. Its class-like architecture is easy to understand and the API supports animations, too. So the new UI will be more dynamic and user-friendly.
EvilGuru: It will be possible to modify the UI in one of two ways. Firstly by using a Lua script to change an existing interface on-the-fly. So a mod developer might use a script to change the image/logo shown on the main title menu. This might look something like this:
widgetGetById(„warzoneLogo“):setImage(„myOwnLogo.svg“).

Although a trivial example (a modder could just override the current logo by placing a file with the same name in their mod) it does illustrate what is possible.

Secondly, since a large amount of the UI is planned to be implemented in Lua — as opposed to compiled C code — it will be possible for modders to simply open up and modify the script files (in the same way they would for unit/structure stats). By placing the modified script file in their mod they have the capability to customise the UI at a more fundamental level. Thus changing the interface will be only slightly more difficult than changing stats.

It is not just the modding community who benefit from having large portions of the UI written in Lua — developers do as well. This is because it is significantly easier to write and debug high-level Lua code as opposed to low-level C code.

Kreuvf: What are the advantages of having scalable vector graphics (SVG) and are there any pictures of a possible new UI?
Elio: There are some pictures of the new UI.New GUI and Twin Gauss Fortress

As you can see the base colour of the new UI is more blue-grayish, this gives it a modest and elegant appearance and brings gameplay into focus. There are also further sketches of possible new UI elements.New GUI and Commander interface

Additionally it looks sharp and nice on every screen resolution, because the UI adapts to it. So you can expect a wonderful, sexy UI no matter if it’s 640×480 (4:3) or 1280×720 (16:9). We can’t do this with the old raster graphics, which is why we need to get scalable vector graphics (SVG). In order to get those we need to ‚convert‘ the existing raster graphics into scalable vector graphics by hand and I have done most of this work already.New GUI and Unit design and comparison of two units
EvilGuru: Currently support for SVGs is done by way of the Cairo vector graphics library, which is also used by Firefox 3. Thanks, primarily to Elio, many of the games icons have been converted to SVGs. SVG is a vector graphics format which has good support by both Cairo and other 3rd party applications. (Inkscape and Adobe Illustrator are probably the most famous.) This will again aid customisability — as anyone can open up the icons and modify them in a way just not possible with bitmaps. This could allow for modders to create high-quality icon packs without having to start from scratch or pixel-edit pre-existing icons.

German translation available.

Comment on this (requires board account)

09.08.2008

Developer interview #4 – Buginator

Filed under: English,Miscellaneous von Kreuvf um 09:08:31

Buginator thinks that personal information is irrelevant, that is why it is excluded. If you look up his ’name‘ on Gna, it is ‚bugs buggy‘ which is a play on words for ‚bugs bug me‘.

Kreuvf: How did you find Warzone 2100 and since when are you part of the team of the Warzone 2100 Resurrection Project?
Buginator: I have been lurking around Warzone 2100 for awhile, I don’t really recall the exact date. It has been awhile though. As for when I started to be part of the team, if you mean started to submit patches, then a long time ago. I forgot the exact date for that also. If you mean as a ‚official‘ member of the Warzone 2100 Resurrection Project, then that is today (1st August 2008).

Kreuvf: Today? So you really officially joined today? If so, that is some nice coincidence. Did you decide to become an official developer just today or were there any other things that prevented you from becoming an official member?
Buginator: The only reason I became an ‚official‘ developer was to access SVN myself, and not having to keep nagging the other guys to apply my patches.

I was unofficial for awhile. The reason behind that was, I wanted to stay neutral between the two Warzone groups. However, one group did not release the code to the public yet, and so the choice was made for me more or less. Of course, there is lots of other stuff that went on ‚behind the scenes‘, that I left out. :) It would make for a good ’soap opera‘ (or perhaps a comedy?) though. ;)

I really think it is better to have all the source code and everything else available from day one. This is the way Pumpkin did it, and I firmly think that is the way to go. I don’t like the idea of working ‚behind closed doors‘, for an open sourced project.

Kreuvf: What do you think is a major disadvantage of working behind closed doors? And what do you think is the major advantage – as they surely did not choose to work behind closed doors just for fun?
Buginator: If you want to be secretive, then well, you get your wish. Nobody outside the group will know what you are doing, and nobody will (can) look at the source code, so you can’t expect help that way. That is a HUGE disadvantage. With this project, everything is open, and you can look at everything from day one. The only advantage I can think of, at this time, is that you don’t want others to know what you are doing. You can think of it like Duke-nuke’em Forever. That game will come out one of these days, but so far, it is vaporware. That is also why I was in a bind, since I could have also joined the other group, and seen the source code, but then, if one of my patches just happens to be like something they have already in the codebase, I would be accused of ’stealing‘. That is something I wanted to avoid, and that is one of the main reasons why I didn’t join up with the other group.

Kreuvf: We will stay tuned to that project nonetheless. Another topic: Now that you have commit-access you will – for sure – commit stuff. What are the main areas of the source code you are planning to work on?
Buginator: I don’t think there will be one area of the codebase that I will not touch at some point. :)

Kreuvf: So your name is an indicator for what you will be doing mainly?
Buginator: Not really. While I did lots of bug patches before, that was just because I wanted to play the game, and it was buggy and missing some of the features I want in a RTS. I don’t plan on only fixing bugs – that is REALLY boring.

Kreuvf: So, what is the feature you are keen on implementing most?
Buginator: At this time? Hmm. There is no one specific feature, I just go by what I don’t like, and how can I improve it. A very small example of this is the little tabs you see in the debug menu structure/unit button. I thought it was silly to limit to only 70 (or was it 80?) items in the list, so I basically made it so I don’t have to deal with those limitations.

Kreuvf: With 2.1 coming nearer and nearer: Which of the features of 2.1 are your favorites?
Buginator: To be honest, I don’t really know what is in the official 2.1. I don’t really play betas much, and usually stick to trunk. Guess I will have to check what made it into ‚2.1‘, and what didn’t. Then again, I don’t really have one favorite feature. Though, less bugs would be a feature I would like. :)

Kreuvf: So your philosophy of working on Warzone 2100 is that whatever seems wrong or should be fixed is changed by you?
Buginator: Not just by me, I think the rest of the members do that as well.

However, I usually ask in the forums about major changes (or even minor ones), so I can at least get some feedback. Lots of stuff is being held back because of the hardware people are using to play the game on. I wish everyone could upgrade to hardware that was made in the last few years, and also, wish the driver writers would release decent drivers for their hardware. Intel’s integrated gfx is bad enough as it is, but they seem to have even crappier drivers. Don’t even get me started on VIA/S3. People, stop buying crappy laptops with crappy chipsets, and expect the game to work on those! Argh!

Kreuvf: How much time do you spend actually playing Warzone 2100? And when you play, do you more or less actively search for bugs?
Buginator: That depends. If I am bored, then I play a bit. If I find a bug while playing, I tend to see if I can find a fix. I do read bug reports, but as I said before, hunting for bugs tends to get boring.

I also don’t really have the time to play the game properly (as in a full MP game, or a full campaign game start from the beginning, and going to the end, WITHOUT CHEATS!). That is why we need people to play for the developers, so we can know what works, and what don’t – and once they do find an issue, then they really need to start posting in the bug tracker. They can post about it in the forums, so they can see if anyone has the same issue, but it is much better to use the ‚official‘ method.

Kreuvf: How long do you think will you, the WRP, need in order to release 2.1.0? And what are the currently blocking bugs that make a release impossible?
Buginator: That is a good question. I don’t really stick to major/minor releases, since I work mainly from trunk. Which is the active development branch. Looking at some bug reports, we do (and I guess always will) have bugs.

What people don’t seem to realise is that the state of the code that Pumpkin released was more or less filled with bugs. Lots of them. Not all of them are apparent to everyone, but they are still there. This project made some of those bugs much more visible by changing the design of the program (like removing memory pools), and some other changes, but overall, the changes they have made were to make Warzone 2100 a better Warzone 2100.

I would rather see many more releases, then waiting for months between releases. As I said, the developers can only test so much, and things can and do slip by. If people want a more stable game, then start playing, and report those bugs – with all the information about said bug as you can possibly remember!

Sorry, got sidetracked a bit. To your original question of when will 2.1 be released, I dunno. It is always available to anyone who wants it, just without the ‚2.1‘ moniker on it. Remember, this is an open project, and people can get the latest & greatest whenever they want. They just need to compile it, or use one of the nightly builds that are available for Windows users (maybe Mac builds as well, if someone is up to the job of doing them – <HINT>we need Mac maintainer(s)!</HINT>).

Kreuvf: And what annoys you most when developing for Warzone 2100?
Buginator: The same issues that are present in most open source projects. There really is no leader, nor can there really be one, since most people are NOT paid for their skills, and they choose to do this on their own free time. Which can make it somewhat difficult at times to get things done, the way you would normally get things done.

Kreuvf: Could you give an example? Does not need to be WRP related.
Buginator: Well, in normal project, you have people working for you, and you have set goals. Like if you are building a house, you got a blueprint, and everyone follows that, and has specific task to do. If you don’t follow the plan, then you better have a good excuse, or you will get fired/sued or whatever.

In an open source project, people do what they want, and you can’t really force anyone to do what they don’t want. (Well, I take that back, you can force them, but I highly doubt they will stick around much longer. It doesn’t pay to be a jerk about how/what people can contribute, at least not without some hurt feelings involved. That being said, it also isn’t wise to allow just any code/gfx/whatever to be integrated into the project without at least some testing/discussion. It is a fine line between keeping everyone happy, or pissing them off.)

There is still a kind of a blueprint, (everyone has the same goal, to make the game better) but then you got people that keep adding/removing and even changing stuff that was just done. Sometimes this works out great, other times, it don’t, and usually, the developers don’t have time to test every nuance of the change, which just leads to another bug. Yeah, this is vastly over simplified, but oh well.

Kreuvf: So the driving force ‚money‘ is missing, right?
Buginator: Not really money, it is more of an attitude I think. It mainly depends on the person involved, and their motivation, and of course, how much time they can dedicate to the project. Kinda hard to juggle everything between real life stuff, and the project(s) they are working on, and people tend to ‚burn out‘ sometimes.

Kreuvf: Okay, that was my last question and I’d like to thank you very much for the interview, Buginator.
Buginator: meh. :) Ok… ok… your welcome.

Comment on this (board-account necessary)

Nächste Seite »