Fractal Block World
Version 1.01.10
Back
We updated the Creation Manual and the API
between Lua game scripts and the C++ game engine.
The engine now supports the ability to create
and destroy blocks.
Now the default game difficulty is "curved".
See below for a discussion of this.
See the patch notes below for more
about Version 1.01.10.
Patches
Version 1.01.21:
- Date: June 2024
- Rat monsters now follow the player.
They cannot move through walls and are pushed
away from each other.
- Pool ball monsters now follow the player.
Moreover they are able to follow the player around
corners using the game's new pathing system!
- Many types of monsters (marines, menaces, slivers,
lampreys) are now part of a "Hive Mind".
Once monsters part of the hive start attacking the player,
there is a two second delay before they actually start
damaging the player.
Once the player is safe for 3 seconds, this resets.
So if the player is on the boundary of a bunch of monsters
that are part of the hive,
the player can chip away at the edges safely.
However if the player tries to fly through all the monsters,
the 2 second grace period will be used up and
the monsters will damage the player.
- Many monsters now have a "personal delay".
Once they hit the player with a warning shot,
they only deal damage after that amount of time.
This resets after not seeing the player for 3 seconds.
- Certain monsters only hurt you when you are smaller
than them.
For these monsters, now when you are the same size as them,
there will be a red letter S on your screen
(to show that if you shrink,
you will need to worry about them).
- The chaining cannon ball now does a visibility test
before locking onto a target.
- Most basements and cellars now have a waypoint
in their treasure room.
- Made the Lua to C++ API faster by using
more aggressive "string interning".
- Added grid labels to buildings in the Mylantis Top City.
This makes it easier to find the House of 5 Lampreys
and the Secret Farmhouse.
- There is now a brick design in
Richmond Cities, Small Yellow Flowers Cities,
and Williston Cities (where the player can shrink into).
- The fundamental "line segment intersects sphere"
function now checks if the line segments starts inside
the sphere.
The rest of the engine and Xar package were updated accordingly.
Version 1.01.20:
- Date: May 2024
- Replaced several white box devices with "arcade doors".
An "arcade" is an area where when you go in it records your ammo,
then you are given infinite ammo, and when you leave the area your
ammo is reset to what is was when you entered.
Examples of arcades are
1) The Richmond Library Arcade,
2) The Central Burlington Tower,
3) Rail Caves (just outside Burlington Cities) and
4) The Inner Crust of Oranges.
- Added waypoints (and save points) to I3 Mahogany Treetops
(on the way to the inner tree).
- Added Colchester Cities to Mahogany Bark,
along with more nuke ammo, savepoints, and a map room.
- Added more waypoints and ammo to Carrot and Turnip caves.
- The cost to respawn (keeping all ammo) now maxes out at 400 gold.
- It is now cheaper to enter and exit Montreal and Colchester Cities.
- EMP immune monsters can now instead be stunned for exactly 2 seconds.
- Laser Freeze immune monsters can now instead by stunned for
exactly 1 second. The exception is the Pool Ball type monsters,
which are truly Laser Freeze immune.
- Now when the Xar package (or any package that depends on Xar)
is loaded, it checks that all built in (Xar) basic entity
and moving entity names are valid.
That is, for each basic entity and moving entity Xar name
(that can be referenced in the C++ procedural world generation code),
the system automatically checks that there is a Lua script
with that name.
- Created a python program (a "linter") which reads the C++ procedural
world generation code and finds any incorrect block type names.
This, together with the system that checks for basic entity
and moving entity names, will ensure that there will be no crashes
due to incorrect block, basic entity, or moving entity names.
So, a crash like the one fixed in 1.01.19
or a crash like the one fixed in 1.01.17 will not happen again.
- New weapon mode added: Nuclear Pulse Propulsion.
This is equivalent to a normal nuke blast at your location,
however it also propels you forward.
- New weapon mode added: The Tommy Gun.
This is designed to replace your normal cannon fire.
It has a high DPS and can attack enemies long range.
It can be found in Huntington and in the Toronto Maze.
- New weapon mode: The Rapid Railgun.
It has the same damage per ammo as the normal railgun,
but it has a much higher damager per second.
- New weapon mode: The Super Vampire Railgun.
It has the damage per ammo and damage per second as the normal railgun,
but it has the health stealing capability as the Vampire Railgun.
- Now in Jericho you can pay 1000 gold so that short markers
(that you do not buy ahead of time) cost 5 gold instead of 10 gold.
Version 1.01.19:
- Date: May 2024
- Removed the white box device at the start of
Large White Flowers.
- Added trophies in I2 for Willow Trees,
Dark Willow Trees, and Mystic Vines.
- Added more Upgrade Stations,
where you can buy upgrades for gold.
- Fixed a crashing bug in the Mahogany Inner Tree.
Version 1.01.18:
- Date: May 2024
- The nuke now makes a flash when it hits.
You can disable this in the package menu.
- Made Mystic Vines in I2 better for farming.
Version 1.01.17:
- Date: May 2024
- Apple Trees are now better for farming.
- The secondary laser now has the following effect:
if the secondary successfully
kills a monster, then this will
fire primary laser beams
(from the killed monster)
at all nearby monsters of the same size.
- Made Montreal city easier to enter and exit
with a 300 gold toll door.
Made Danville towns easier to exit
(and reenter later) with a 1 gold toll door
that can only be opened from the inside.
- Telekinesis (an ability to pick up items)
now is cheaper.
The cost is between 5 and 10 gold.
Here is how it is computed.
The number cost1 is between 5 and 10 inclusive, depending on
how much gold is picked up.
The value of cost1 grows linearly until the amount of gold
picked up is 200, at which point cost1 maxes out at 10.
The number cost2 is between 5 and 10 inclusive, depending on
the number of items (including gold) that were picked up.
The value of cost2 grows linearly until the amount of
items picked up is 25, at which point cost2 maxes out at 10.
The gold cost of telekinesis is the max of cost1 and cost2
(so it is between 5 and 10 inclusive).
- Now the player can choose to respawn but keeping
all their health, armor, and ammo.
The cost is the min of 500 and 8% of the player's gold.
- Added more to the story in the Botany Lab.d
- Certain monsters now emit a poison gas cloud to indicate
that they will damage you where you are too close to them.
- The attack display (showing were attacks come from)
now by default uses a cylindrical model instead of a spherical model.
However the player can choose which model to use.
- You can how grow out of the Desert area,
and the Oasis in the desert has an easy to find waypoint.
- Fixed a crashing but in Small Minigun Planets.
Version 1.01.16:
- Date: April 2024
- The youtuber MarriedToMyChair made a youtube video with many
suggestions, some of which we address in this update.
See here for a discussion of some
of his suggestions and how we deal with them.
- The intended difficulty (the purple cat)
is now called "Normal".
All harder difficulties require a password.
The difficulty that was before called "Normal"
is now called "Gateway".
- Increased the rocket and nuke baseline velocity.
- Increased the rocket baseline max ammo.
- Now getting a rocket max ammo upgrade increases the
ammo capacity by 4 (previously it was 3).
- There is now a new kind of shrinker: the "dangerous" shrinker.
This is functionally identical to a normal shrinker.
However, it has a skull and crossbones which indicates that once
you shrink there, it will be either difficult or impossible
to enlarge there again.
- There is now a box which when you pick it up it gives
you experience.
Previously you only got experience by killing monsters,
and mainly the monster called rats gave you significant
experience.
This experience box has been added to some of the treasures rooms in the
early part of the game.
- There is now a box then when you use it, it causes you to respawn.
This is placed in the Quicksand grass where the only way out
is to respawn.
- The sounds the player makes when he is hurt now have a
cool down period.
So, if you have not been damaged in a while and then suddenly
get hit, it will make noise.
However it will not spam the noise as you continue to get hit.
- Added more rocket and nuke upgrades earlier in the game.
Although I3 is the place where the rocket and nuke start to get really good,
we want to make sure they are at least usable earlier on.
- Added new dungeon area in Small Yellow Flowers.
Now there are towers growing on the side of towers
and so on which have upgrades and ammo.
This allows the player to get rocket and minigun upgrades
earlier in the game.
- Added ammo that does not respawn.
This allows for the placement of more two-way waypoints.
- Change the price of long markers from 30 gold to 20 gold.
In a later version of the game we might make the price depend
on the game difficulty the player has chosen.
- Added a "toll door" type block which goes away once
the player pays a toll.
This is the first time we have used the mechanic
of blocks changing in the game!
These toll doors replace both one way doors and
corridors with white box devices (that take all your ammo).
In some place, we let the player choose whether to go by
a white box device or pay a toll to open a toll door.
- Added story elements to I1 and I2.
- Put Wells in Ying Caves Islands in the deepest areas.
Now it is possible to get railgun upgrades in the Ying World
(at a slow rate).
- You can now (slowly) grow in Stoney Air.
- The secondary laser now only deals the player 50 damage
instead of 100.
- The DPA and DPA (damage per ammo) of the
High Velocity Rocket and the Big Radius Rocket
have been modified.
Version 1.01.15:
- Date: April 2024
- New weapon modes added: High Velocity Rockets
and Big Radius Rockets.
- New area in I3: The tops of Mahogany trees.
Inside the tree tops there is a smaller tree
(the Inner Tree) which is challenging.
- New area in I3: Red Mushrooms.
- Now in addition to being able to enter
commands by pressing tilde, the player can
enter commands by pressing slash.
Pressing slash does not pause the game.
We also simplified the way commands are handled:
now given any command X, the system will try to execute
"X" and if that fails
the system will try to execute "game_input X".
- Added the ability to cap the frame rate.
- The system that tracks which chunks a moving
entity intersects is faster.
We do not allocate and deallocate memory as often.
Also, this system associates a moving entity
to the coarsest level possible.
- Changed the way the game responds to OpenGL errors.
- Updated the game's pointer class.
- Made it faster to convert positions
between different levels.
- The EMP weapon is no longer hard coded into
the engine: it is now soft coded.
As a result, EMP blasts are saved when the player
saves the game.
Also EMP blasts remain when the player
detonates their EMP, teleports far away,
and then teleports back.
- Now the information displayed on the
upper left and upper right of the HUD is
specified by Lua scripts.
The user can create their own Lua scripts
to display whatever information they want.
This is done by adding Lua scripts to the
directory Input/HUD/SideDisplays.
The Lua scripts that are built in are
found in Data/Packages/base/Windows/HUD/SideDispalys.
- Added a way for a package to keep
specified dynamic variables when the player
choose to "reboot" their game.
- The engine now has integer IDs for "chunk changes" objects.
- Now key bindings are saved for each package
in a new directory called PackageState.
This way when the player changes back and forth
between different packages, they do not
need to constantly reset their key bindings
for each package.
- Procedural world generation can now set block
variables of the chunk being created.
- Procedural world generation can now get the
block variables of the chunk being created and its parent
chunk.
- New saved games that are created store the version
of the engine that was used when the user first
created that player.
When the player "reboots" their game,
this version number is updated.
Now the procedural world generation looks at this
version number and if the version is at least
1.02.00 or more, then the world seed is used
when generating random numbers.
So, new games created after 1.02.00
will look slightly different.
Version 1.01.14:
- Date: November 2023
- New areas in I3: Turnip Caves and Beet Caves.
Turnips can be found in Tegan's Garden and in
the center of Mahogany Trees.
Under the ground of Turnips are Turnip caves,
which contain monsters, treasure, more
Turnips, and Beets.
Under the ground of Beets are caverns
where you can find the city of Essex.
- The package_tutorial1 and package_tutorial2
packages are now included
with the game on Steam.
These can be played by the user
and they describe step by step how
the user can create their own package
(a world with its own game rules and entities).
- Block variables can now be set
from procedural world generation scripts.
Version 1.01.13:
- Date: October 2023
- Added a new 3D red/blue glasses mode.
The user can customize the distance between
the player's eyes.
- Part of the red/blue glasses mode is the
player can choose to make the HUD "diegetic",
meaning the HUD is an object in the world
being rendered in front of the player.
The user can customize the width and height
of this HUD as well as the distance from
the player's eyes to the HUD.
- Made menus that require the inputting of a number
more friendly by having slider bars.
This makes the game easier to customize
while using a controller.
Also made other parts of the GUI easier to use
with a controller.
- Updated the engine to use more modern
OpenGL functions
(now the game uses vertex and fragment shaders).
Version 1.01.12:
- Date: August 2023
- Made it so there can be more than two "modes" per weapon.
Now there are 3 additional modes for the plasma weapon:
"Plasma Shotgun", "Hyper Rapid Fire", and "Lightning Rifle".
The original two plasma weapon modes are "Basic High DPA"
and "Rapid Fire".
The player can choose which two modes to use
(with left and right clicking) by opening the weapon mode
window by pressing F7.
A library for all weapon modes can be found in Danville.
- One of our community members configured a setup
to play the game with an Xbox controller!
To help facilitate this, we have made it so the escape and
grave (tilde) keys can be rebound.
Also, it is no longer true that the escape key must be bound to
to the PACKAGE_OPEN_MAIN_MENU action.
Similarly the grave (tilde) key
no longer needs to be bound to the action PACKAGE_OPEN_CONSOLE.
Also, we made it so more in game menus can be used with
only the up and down arrow keys and the enter key.
- Capped the player's experience level at 500.
Also, the bonus upgrades from level 200 to 500 are less strong
(more comparable to the bonus upgrades from levels 0 to 200).
- Made the I2 area more friendly by adding more places to hide
and more stores.
- The primary laser must now hit an enemy in order for the
player to get the recharge shield effect.
- Short and long markers can no longer be removed by hitting
them with plasma.
Version 1.01.11:
- Date: July 2023
- Made is so loading the game when not changing the player
is much faster.
We reuse various loaded data such as
moving entities, windows, game scripts, etc.
- Blocks now have variables associated to them:
bools, ints, floats, etc.
- Moving entities created from procedural world
generation can now move from chunk to chunk.
- Now in addition to the old static global variables that must
be declared in the configuration of the package,
there are dynamic global variables
that can be created and destroyed at any time by the package.
- Waypoints are now stored in the new dynamic variable system,
instead of an older system where there was one file
dedicated to storing waypoints.
- Made a tracking marker: any long marker can be set to be
the "current tracking marker".
The heads up display will show the direction to
the tracking marker and the distance to it.
- New area in I2: Fanatic Rings.
These can be found at the top of Fanatic Weeds.
- New area in I3: Tangerines. These can be found in Rivers.
- Added growth on the floor of Montreal Mazes.
- New area in Space/Mylantis: Edge of the world.
- New area in Mylantis: Ivory Museums.
These can be found inside Iolite Gems.
Version 1.01.10:
- Date: February 2023
- We updated the Creation Manual and the API
between Lua game scripts and the C++ game engine.
- We changed the default
game difficulty so that now everything is "curved".
The player no longer gets more powerful at an
exponential rate.
We curve the strength of both the player and monsters.
This increases the size of the "Goldilocks Zone"
(the part of the world that is not too easy and not too hard).
- The engine now supports the ability to create
and destroy blocks.
When a block is created or destroyed, this is saved
in a chunk file.
- Emeralds are now finished
(these are inside Mylantis layer 8).
Inside of them are Emerald Cities.
- A new area of I3 has been added: The River.
This area has many Yellow Mushrooms and many places
to get EMP max ammo upgrades and also
minigun fire rate upgrades.
- Previously there were many "Lua states".
One for basic entities, one for moving entities,
one for windows, etc.
These have now been merged together.
- CC (ChunkChanges) objects are objects that buffer the changes
made to a chunk. Now we discard more of these that
are not relevant.
This decreases memory usage and decreases saving time.