Version 1 "Pigs and Wolves" - Detailed Release Notes
22 May 2022
You can also consult a shorter summary.
Moving around and basic item handling
- The player can walk, run, or jump. Running can be accessed by pressing the toggle key 'Q'.
- The player can examine all entities and pick up most of them.
- The player can hold the items in the left or the right hand. He can swap the hands by pressing the 'F' key. This will impact both held items and prepared spells. The modified default action, if any, will remain selected.
- The player can use the held items by using Left Click (for the main hand) or Shift (for the off hand), or access alternative actions (for the main hand) by using the Right Click.
- The actions depend on the item the player is holding, as well as on the direction of his line of sight and on the distance to the nearest entity or terrain block. Some actions are available even for bare hands.
- The player can put on a backpack, and put items into the backpack or take them out in the inventory menu, whether the backpack is being carried or simply put on the ground. When carrying a backpack, the default action for items around the player becomes "pick up and pack".
- The hotbar allows quick access to the items in the player's inventory or to his spells. Its ten slots can be accessed by pressing keys '1' to '0'. Pressing the corresponding key once will select the spell or make the player take the designated item into the main hand. The player will need to use either the spell or the equipped item explicitly (by Left Click or another trigger). The selected hotbar slot is indicated by a green frame. Pressing the same key twice will unselect the spell or pack the item into the backpack, if any.
- It is also possible to quickly pack the held items by using the 'Backspace' key.
Actions and combat
- The player can use the dagger to attack animals, butcher animal corpses, or damage any entity.
- The player can use the axe to cut down the trees in an efficient way, attack animals, or damage any entity. When cut down, the trees transform to four long wooden logs (all logs are identical). The logs can be used for construction.
- The player can use the shovel to transform the grass terrain to one or several "grass block" items. The tagreted terrain block is highlighted in white.
- Grass blocks can be put down one by one, thus creating various slopes. The targeted terrain block is highlighted in white. If grass block can not be put down at the chosen location (it is the case if it would create a collision with an entity or the player himself, for example), the highlight color changes to red.
- All items can be dropped or put down at a precise location. Dropping an item is instantaneous. When the player wants to put down an item, the item in question is shown at the target location, and it slowly blinks. The player must Left Click again to confirm the placement, or press 'Escape' to cancel the action. If putting down at the chosen location is not possible, the item appears back in hand. The item's orientation is based on that of the player (snapped to one of the 16 main directions), while its position is snapped to quarters of block (25 cm / about 10 inches) along both X and Z axes. It is also possible to change the general orientation of the item by pressing the 'E' key.
- The player can also try eating most of the items in hand or even in front of him. Success not guaranteed.
- Finally, the player can examine any entity in front of him. He can also examine weather conditions (which are constant for the moment).
- Many actions (but not all) take a small amount of time to complete. This amount does not depend on the action for the time being. When such an action is in progress, the HUD contextual action prompts have "..." appended to them.
- The context menu (Right Click) also allows to choose the default action for some items. For the dagger, the player can choose either "Pierce" (default) or "Slash" (only the latter action allows butchering animals). For the shovel, the player can choose either "Dig" (default) or "Pierce" if the player is suddenly under attack and he has no other weapons to defend himself.
Hunger and food
- All living creatures must eat regularly. If they do not, they will go through various levels of hunger until reaching the maximum hunger level, "Starving". At this point, the living creatures will start taking damage and can potentially die of hunger.
- Various creatures eat different things. The pigs are herbivores in the game, wolves are carnivores, and humans are omnivorous (but can not eat grass).
- There is only one item the player can eat at the moment: the slabs of meat (raw or cooked). Cooked slabs of meat can be obtained by setting the raw slabs of meat on fire. They are three times as nutritious as the raw ones. They also have a different color.
- There is no difference between the meat of different living creatures.
- Slabs of meat must be eaten a couple of times before they disappear. Each "bite" reduces hunger by itself.
- All living creatures are also capable of eating the edible entities directly in front of them (without taking them first). In particular, it is possible to eat (small parts of) corpses or even living creatures. Of course, it is also possible to eat plants (this is how the pigs eat grass).
- If the player eats too much, he will become satiated, and then bloated. It is impossible to eat in the bloated state.
Damage and healing
-
All entities can take damage from:
- wolf attacks (slash damage),
- weapons or tools (slash damage),
- extreme hunger, for living creatures only (hunger damage),
- violent shocks, such as falling from a significant height (hit damage),
- being eaten (also hit damage), and
- being on fire (burning damage).
- Entities of each type have different resistance levels to each type of damage.
- There is a special effect when burning slabs of meat. Instead of being damaged, they are cooked.
- All living entities (humans, animals, and plants) heal over time (each entity type at its own speed).
- When damaged above a certain level, all living creatures (humans and animals) will die and fall on their side.
- It is possible to further damage the corpses of the living creatures. If it is done by slashing (e.g., with a dagger), then such an action yields slabs of meat.
- Most entities disappear when fully damaged. The only exception are trees, which transform to logs.
The world and its creatures
- The terrain is based on 1 cubic meter (3.3 by 3.3 by 3.3 feet) blocks. The blocks can be full, have only the horizontal lower slab, feature half-slopes, single slopes, or double slopes, as well as various two-axis "angle" combinations thereof.
- There is only one terrain type: grass. It has the same grass texture on all sides.
- The generated terrain features mild hills with varying density of both plants and animals.
- There are two types of plants: trees and short grass. All plants of the same type are identical, but they have random orientation. The plants are not centered with respect to the blocks.
- The trees feature three branches with three sub-branches each. There are no leaves.
- There are two types of animals: wild pigs (called wild snorkelings in the game) and wolves.
- The pigs are herbivores and eat only grass. When hungry, they go to the nearest grass they can see and start eating it when they are close enoigh. They do not attack, retaliate, or flee.
- The wolves are carnivores and attack the closest animal they can see when hungry, unless there already is a corpse or slabs of meat nearby, in which case they will prefer eating the avalable meat to attacking. The wolves do not retaliate or flee.
- The animals have only one speed (the pigs are very slow, and the wolves are quite fast). They do not run or jump. If not hungry, they roam freely, stopping and changing direction from time to time. They can go uphill or downhill but, for the moment, they are unable to avoid collisions with trees or walls. If the player digs a pit, the animals will not be able to avoid falling into the pit (and taking the fall damage), either.
- World size: 4096 by 4096 meters (2.5 by 2.5 miles), 1024 meters (0.6 miles) high. It does not loop, and its borders behave as invisible barriers for both the player and other entities.
Simulation
- Simulated area: 112 by 112 meters (367 by 367 feet), 80 meters (262 feet) high, roughly centered on the player. The simulated area changes automatically as the player walks around. "Suspended" parts are saved in the background.
- Within the simulated area, the entities can move and otherwise evolve and interact with each other.
- The motion is subject to gravity and collision checks. The collision system ignores grass and grass blocks. It also ignores held and worn items, as well as the tree branches.
- The "moving" entities are simulated at 60 fps. The "stable" entities are simulated at the 1:64 throttled rate.
Save system and death
- There is only one save slot. The game progress is saved upon exiting, and can be loaded when the player restarts the game. It is impossible to save the game and continue playing, or to exit the game without saving the game progress first. Alternatively, a new game can be started from the start menu, in which case all previous progress will be erased.
- Upon death, the player is respawned at his original spawn location. The body of the previous incarnation, as well as all items the player carried at the moment of his death remain on the death site and can be retrieved.
Graphics
- Simple first-person 3D rendering.
- The held items are visible in the bottom corners of the screen. They move slightly as the player walks. However, there is no animation when using the items.
- Visibility: 32 meters (105 feet), with fog starting at 24 meters (79 feet).
- The legs of the moving creatures move when they walk in such a way that the motion matches their speed. There is a special animation for four-legged creatures that differs from the animation for humans.
- In the case of humans, the arms move as well, along with the items held in each arm.
- There are no other animations (such as turning heads, attacking, or jumping).
- When living creatures are wounded, some blood drops appear briefly in front of them (not animated).
- When entities are on fire, a fire texture appears around them (not animated).
- There are no shadows, but the faces of the terrain blocks have different brightness levels depending on their angle with respect to the sky.
- There are no light level variations, either local or global.
- There are no reflections.
- The grass texture is the only one that features transparency.
Sounds and music
- Stereo rendering taking into account the direction and the distance to the sound origin.
- Common sounds for steps, hits, weapon swoosh, digging, cutting the trees, eating, and burning.
- Specific sounds (different sounds for different living creatures) for pain, death, attack, jumping (human only) and "regular" (idle) sounds.
- Interface sounds for alerts and critical alerts.
- There is no music for the moment.
HUD
- The game features in-game heads-up display (HUD) showing various information and visual guides.
- The crosshair at the center of the screen allows precise targeting.
- The bottom left corner contains contextual information for the primary (Left Click) and secondary (Left Shift) actions, as well as a way to access the context menu (Right Click).
- Above it, optional status effects, such as wounded and hungry states, can appear.
- The bottom right corner contains the 10-slot icon hotbar for keys '1' through '0'.
- Above it, optional speed states, such as "running", can appear.
- Finally, the top left corner contains the mini-console output, i.e. certain textual information shown for a short period of time.
Inventory menu
- The main menu can be accessed by pressing the 'Tab' key and contains two tabs: "Inventory" and "Magic".
- The inventory tab shows both hands, worn/carried items (e.g., backpack), and the entities around the player.
- The inventory allows drag-and-drop operations to take items into one of the hands, put them on, or put them down on the ground.
- It is possible to open containers such as backpack if they are carried on the back of the player or if they are on the ground. In this case, a "container path" is shown on top of the corresponding pane. It can be used for closing the container.
- The inventory tab also allows to configure the hotbar, by dragging items to it.
Magic menu and spell editor
- The magic menu is the second tab in the main menu, accessible by pressing the 'Tab' key.
- It shows a list of the known spells. When the player clicks on a spell, its brief description is shown on the right.
- The player can select a spell for using it in the left or the right hand, drag it to the hotbar, or modify it.
- The player can also create new spells.
- When editing a spell, the existing spell steps (fragments) are shown on the left. If the player clicks on a fragment, additional information about this fragment is shown on the right side, such as the description of the fragment and its parameters, if any. The player can modify the values of the parameters by using an explicit value ("Custom value") or a global variable ("Expression"). One can also remove a fragment from the spell.
- If the player clicks on the "Definition" line, shown above the fragments, he can modify the general properties of the spell, such as its name and description. One can also delete a spell.
- The order of the existing fragments can be rearranged by dragging the fragment entries higher or lower within the list on the left side.
-
The player can also add entirely new fragments from the list of available fragments on the right by dragging them
to the desired position in the left list. The available fragments are grouped according to their
category:
- Flow control: add a delay or stop the spell.
- Messages: print numbers or messages to the console / the HUD.
- Magic: choose energy aspect, draw and transform the energy, create energy binders, push or anchor entities.
- Sensors: focus on entities, blocks, or positions in front of the player, focus on visible entities according to the provided filters and sort orders, transform the selection volumes, and more.
- Item handling: take, pack, or drop items, put items on (such as backpacks), or eat the items.
- Own spells: invoke already created spells.
Other menus
- The start menu contains the options to start a new or load an existing game, view or modify game options, show a simple credits crawler, or exit the game.
- The options menu includes a single option: "Invert Y axis (Yes/No)".
- The credits include information on the third party software and resources (especially, sounds), the end user license, tutorials, tools, sources of inspiration, and thanks.
- The in-game pause menu allows resuming the game, saving and stopping the game, and accessing the options menu.
Interface and widgets
- The game starts in a window about 2/3 the width of the screen. The window can be resized. The window has the game logo icon.
- The start screen contains the start menu, the version number and name, and a uniform color background.
- In the menus, the game uses the system mouse cursor. During the game itself, the cursor is hidden.
- All text on the screen is rendered using the same size, monospaced font: "Courier New".
- Graphical elements include basic text or "icon" graphical buttons (with an ability to show the selected graphical button using a green frame around it; this is used in the hotbar, for example), text labels, and simple background images for menus.
- Clickable labels and text buttons are highlighted on mouse hover or when selected using the keyboard.
- The menus can also feature advanced widgets such as simple dropdown lists (without scrolling), text input fields, and scrollable areas. The text input fields support 'Left Arrow', 'Right Arrow', 'Home', 'End', 'Backspace', and 'Delete' keys, but do not support scrolling, selection, or clipboard interaction. The scrollable areas do not have scrolling bars or buttons and can only be controlled by the mouse wheel.
- Many menus support simple drag-and-drop operations, but without any animation at all.
- Dynamic server-side menus (in particular, the main inventory / magic menu) can simulate tabs, as well.
Console
- The game features a command console which is accessible at all times by pressing the tilde ('~') key. Pressing the same key a second time hides the console. It can also be closed by the 'Escape' key.
- By using the same scripting language (MagicScript) as the game menus, hotbar shortcuts, and in-game magic spells, the console allows direct access to many in-game and meta-game operations.
- When open, the console occupies the whole screen. The normal game content, such as the 3D world and the menus continues to be rendered in the background. The console features a semi-transparent dark full screen background with a large dark "arcs in a double circle" logo in the middle. If running, the game is not paused.
- When closed, some (but not all) console output is briefly shown in the top left corner of the screen, with up to three simultaneously shown lines which disappear after a short period of time.
- The open console allows to enter commands and consult the output of such commands (if any), as well as the console output that is sent to the console by various events or magic spells in the game.
- The input line supports the same keys as the text input fields, plus the 'Escape' key to clear the whole line. Scrolling, selection, clipboard interaction, and multi-line input are not supported.
- The console supports history browsing by using 'Up Arrow' and 'Down Arrow' keys (limited to the current session only), but does not support console vertical scrolling.
- The commands can be sent to the client (using the "!" prefix), to the server (using the "$" prefix), or directly to the entity controlled by the player (no prefix).
- In all cases, the remainder of the line (after the prefix) must follow the MagicScript syntax. The client, the server, and the player entity each have their own set of commands (although they share some basic commands, too). In case of an error in the entered command, detailed error information is shown in the console.
Under the hood
-
MagicScript: a complete scripting language that is used for the AI of the living creatures, all
magic spells, and even for creating the player-facing menus.
- Assembler-like imperative programming.
- Support for integers, floating point numbers, and strings.
- Tests, labels, and conditional jumps.
- Local and global variables. Functions (scripts) with up to four passed-by-reference parameters.
- Optional icons and short descriptions for scripts.
- Error reporting and catching.
- Separate virtual machines with dedicated instruction sets for the client, the server, and the in-game "sentient" entities. All three machines are accessible by using the in-game command console.
- Over 200 built-in instructions available to the sentient entities ("spell fragments"). They allow analyzing the entity's surroundings (such as listing the visible entities of a certain type) and its own state (such as hunger), taking actions (such as moving, attacking, or other physical or magical actions), and, in case of the player, creating the menus or showing information on the HUD.
- A small portion of these instructions is visible in the in-game spell editor, with more to be made visible in the future versions.
- All game related constants are available as global variables.
- MagicScript is meant to be expanded even further (in particular, to the world generation) to allow full-feature modding later on.
- A powerful multi-scale world engine, allowing seamless procedural terrain generation in a huge world, along with loading-free roaming experience and background saving of the unused areas.
- A simple custom made 3D rendering engine using OpenGL 3. Custom made 3D models and animation.
- A simple custom made audio rendering engine with directional sound (stereo) support, using DirectSound.
- Client-server architecture, which helps separating the world simulation from the way a given player entity perceives it, and paves the way for the multiplayer game modes.
- The analytics & crash report module does not post data to the cloud yet, but saves them in local files instead.
- No installation needed (distributed as a simple .ZIP file).
- No built-in update logic, yet.
- Available as a direct download from the developer site, for Windows only.
Future versions
Interested in the future versions? Remember to visit the Roadmap section.