New features since Clonk Rage: Difference between revisions

Newton (talk | contribs)
Created page with '== New features since Clonk Rage == This section is written for all those, who know Clonk Rage and would like to know what's new in OpenClonk. Since the project went open source…'
 
Sven2 (talk | contribs)
Line 55: Line 55:
* TODO Proplists, actmaps [Günther explain here]
* TODO Proplists, actmaps [Günther explain here]
* DescXX.txt, Names.txt are not used anymore. The name is set in the script and translated in the StringTblXX.txt. A description is only needed for some objects and also defined in script and translated in the stringtable.
* DescXX.txt, Names.txt are not used anymore. The name is set in the script and translated in the StringTblXX.txt. A description is only needed for some objects and also defined in script and translated in the stringtable.
* PlayerControls have been revised. Scenarios and objects can now use and overload arbitrary keys, mouse buttons and gamepad events. The Clonk script uses a new script interface (see ControlUse) for object interaction.

Revision as of 20:56, 4 September 2010

New features since Clonk Rage

This section is written for all those, who know Clonk Rage and would like to know what's new in OpenClonk. Since the project went open source, quite a few new experimental features have been introduced. In this newest installment of the Clonk series, we've left behind the old shackles and created something more advanced than anything you've ever seen in Clonk.

General

New in OpenClonk is the possibility to zoom in and out. Now, the clonk can be displayed in a proper size, larger than a mouse cursor ;-). Use the scroll wheel on the mouse or F5/F6 to zoom.

Also new is the possibility to add 3D models to be rendered ingame. As opposed to the classic sprite graphics, 3D models are much more versatile: First, the models don't get blurry and the animations don't seem edgy when zoomed in. Animations are directly saved in the model, they don't need to be pieced together from single renderings in different animation phases and then exported into a big Graphics.png anymore (goodbye, anigrab.exe). This allows to add a lot more animations than before. Currently, the clonk has more than 100 different animations.

The renderer loads models in the Ogre 3D format, a lightweight format for 3d models tailored to be rendered in realtime. Models in the landscape are projected orthographically and pictures of objects perspectively. Apart from the basic stuff, the renderer supports:

  • UV mapped textures (including multitexturing)
  • Transparent textures / alpha maps
  • Texture animation
  • Skeletal animation including blending of multiple animations
  • Backface culling
  • Live script-controlled mesh transformations and attachments

See the Artists Guide for how to create models that will be rendered in realtime. Our repository for resources already encompasses many such models.

However, most of the changes we made and are making were and are only possible because we decided to drop the backwards compatibility towards Clonk Rage and created all game content from scratch. This is why the game content of OpenClonk is far from having reached the extent of that of Clonk Rage.

The controls have been overhauled completely and are now completely controlled by script. With the new control system, it is much easier and intuitive to control your clonk. For new players, learning the unusual and unintuitive controls of Clonk has always been a huge obstacle to overcome before they could appreciate the bustling gameplay of clonk.

The controls are now completely customizable and can be adjusted in any scenario/mod. The standard controls are based on a well known scheme from many other games: Movement with WASD, throwing, aiming and using tools with the mouse. Space for interacting with objects in the landscape (like entering a building or grabbing a vehicle). The new controls fully utilize the mouse control, giving you precise control over all the items and weapons. The new shovel for example can be used also from climbing or hangling and the clonk just digs into the direction of the cursor while the mouse button is held down. Details of the new controls are explained in the first tutorials in the game.

Apart from the keyboard+mouse control, it is also possible to use a gamepad. However this feature is still experimental and does only work for one gamepad. It is also not possible yet to customize the controls but this is planned in the future. A early version of the gamepad controls were introduce in a blog post.

An extensive documentation of the custom controls feature can be found in the C4Script documentation

Overall, the clonk has been made more agile than before: He can not only move and use stuff while jumping, he can also make use of a number of tools that help him scramble around the world - like grappling hooks, rope ladders, the improved shovel and many others.

Closely related to the controls is the inventory system of the clonk. Every clonk has a backpack now, in which he can carry five items (which can be adjusted for any scenario). He can open the backpack and easily exchange any object in the backpack with one of the items in his hand.

There is a big focus on tools in OpenClonk. The clonk needs a shovel to dig, an axe to chop and a hammer to build. In exchange, the clonk can not only carry more than the classic clonk, but he can also use any item: A sword, a bow, a shovel, a musket, a magical staff, etc.. There is no need for special clonks anymore, the abilities of a clonk are defined by his equipment. By making use of the mouse, tools have become more versatile and easy to use.

The new control system goes hand in hand with the complete overhaul of the HUD. The minimalistic HUD was a thing that was repeatedly critized on Clonk.

Now, the HUD is completely controlled by script (rather than controlled in the engine) which allows more flexibility for scenario and mod authors. The default HUD shows all clonks in the players team on the upper edge, all with an energy- and breath-bar right below their picture. This picture shows the actual clonk live, so if he is attacked or drowning, you see it in the picture.

On the lower edge of the screen, the two items that the clonk is carrying in his hands which can be used with left and right-click are shown. Also, all other objects that can be interacted with in the landscape are shown there.

All buttons that are shown in the HUD can be clicked to be used or to be selected and items can be dragged and dropped around the HUD where it makes sense. This feature is also interesting for mod makers.

Since all game content has been created from scratch, the many new or remade tools, weapons, items, buildings, vehicles and animals, rules, goals and environment objects must be mentioned. So actually, the question should rather be, what is not new? Well, regarding the game content, nothing. Instead of listing all the new or remade objects here, you should just play the game and see by yourself :-P.

For developers

Many changes have been made to C4Script.

  • #strict is not used anymore. All scripts are considered to be strict.
  • All functions have been stripped of the parameter which defines for which object this function is called. For example, now it is clonk->GetX(); instead of GetX(clonk).
  • Some functions have been removed or replaced. For example FindObject() now works like the FindObject2() from Clonk Rage and FindObject2() was removed. Also, some engine callbacks have been added. Refer to the documentation.
  • The ID of an object is now not limited to 4 big letters anymore. For example CreateObject(Musket); instead of CreateObject(MSKT);
  • All functionalities, like climbing ladders, rope physics, bases, workshop or clonk controls have been written in unitized library objects which are then included by the concrete objects. This makes it easier to include functionalities of other objects without having to inherit everything. For example, all production buildings #include Library_Workshop to inherit the basic workshop functionality.
  • TODO Proplists, actmaps [Günther explain here]
  • DescXX.txt, Names.txt are not used anymore. The name is set in the script and translated in the StringTblXX.txt. A description is only needed for some objects and also defined in script and translated in the stringtable.
  • PlayerControls have been revised. Scenarios and objects can now use and overload arbitrary keys, mouse buttons and gamepad events. The Clonk script uses a new script interface (see ControlUse) for object interaction.