All Projects → LostTrainDude → zfrag

LostTrainDude / zfrag

Licence: other
Zen Game in which you can manually defrag a virtual Hard Disk, Made with Unity.

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to zfrag

Godot 3 2d Crt Shader
A 2D shader for Godot 3 simulating a CRT
Stars: ✭ 183 (+112.79%)
Mutual labels:  2d
Delaunator Cpp
A really fast C++ library for Delaunay triangulation of 2D points
Stars: ✭ 244 (+183.72%)
Mutual labels:  2d
footile
A 2D vector graphics library written in Rust
Stars: ✭ 32 (-62.79%)
Mutual labels:  2d
Webgl Plot
A high-Performance real-time 2D plotting library based on native WebGL
Stars: ✭ 200 (+132.56%)
Mutual labels:  2d
Rustarok
Multiplayer, fast-paced Moba style game
Stars: ✭ 223 (+159.3%)
Mutual labels:  2d
Mathnet Spatial
Math.NET Spatial
Stars: ✭ 246 (+186.05%)
Mutual labels:  2d
3d Bat
3D Bounding Box Annotation Tool (3D-BAT) Point cloud and Image Labeling
Stars: ✭ 179 (+108.14%)
Mutual labels:  2d
drawingwithcode
Drawing with code 😘
Stars: ✭ 28 (-67.44%)
Mutual labels:  2d
Graphics32
Graphics32 is a graphics library for Delphi and Lazarus. Optimized for 32-bit pixel formats, it provides fast operations with pixels and graphic primitives. In most cases Graphics32 considerably outperforms the standard TBitmap/TCanvas methods.
Stars: ✭ 238 (+176.74%)
Mutual labels:  2d
glider
Generative music using conway's game of life
Stars: ✭ 38 (-55.81%)
Mutual labels:  2d
Pencil.js
✏️ Nice modular interactive 2D drawing library
Stars: ✭ 204 (+137.21%)
Mutual labels:  2d
Pixieditor
PixiEditor is a lightweight pixel art editor made with .NET 5
Stars: ✭ 210 (+144.19%)
Mutual labels:  2d
Physicsexamples2d
Examples of various Unity 2D Physics components and features.
Stars: ✭ 250 (+190.7%)
Mutual labels:  2d
Godot 3 2d Destructible Objects
A script that takes a sprite, divides it into blocks and makes them explode 💥!
Stars: ✭ 186 (+116.28%)
Mutual labels:  2d
BlazorCanvas
Simple 2D gamedev examples using Blazor and .NET 5
Stars: ✭ 99 (+15.12%)
Mutual labels:  2d
Visvis
Visvis - the object oriented approach to visualization
Stars: ✭ 180 (+109.3%)
Mutual labels:  2d
Strife
a simple 2d game framework
Stars: ✭ 246 (+186.05%)
Mutual labels:  2d
MonoGame.Primitives2D
Easy-to-use 2D primitives
Stars: ✭ 44 (-48.84%)
Mutual labels:  2d
rusty engine
2D game engine for learning Rust
Stars: ✭ 283 (+229.07%)
Mutual labels:  2d
Gg
Go Graphics - 2D rendering in Go with a simple API.
Stars: ✭ 3,162 (+3576.74%)
Mutual labels:  2d

zFRAG

zFRAG is a little Zen Game in which you can manually defrag a virtual Hard Disk. You can also turn on the AutoDefrag and sit back and watch.

Developed in Unity, the game is available on itch.io

Things to know

I strongly suggest you to download the project as a whole and run it in Unity yourself. Although I did my best to make the logic self-explanatory, there are things that are only understandable by looking at how they are implemented in the Editor.

Examples being: initial values for some variables, Button Events and Graphics, AudioClips.

Resolution

The game's reference resolution is 640x400. I made use of the 2D Pixel Perfect package.

Font

I only used TextMeshPro components. The Atlas for the specific font I used (PxPlus_IBM_VGA9) has been set up in such a way to include all of the "special" characters (i.e. Block Elements to represent sectors) I needed.

Audio

To handle AudioClips volume I use Audio Mixers. If you want to know more about Audio Mixers I suggest you to give a look at these tips.

Button Graphics

As you can tell, I tried my best to emulate a DOS-like interface. Each Button in the game has a MoveTextOnClick script that shifts the Button's Text component to the right upon click, so to follow the Pressed Sprite and the default one.

Game States

The main game logic makes use of a Finite State Machine with 5 states: START, DEFAULT, AUTODEFRAG, FREEPAINTING, COMPLETE. When Players either hit ESC to display the Exit Menu, or are in the Options Menu, time doesn't advance.

START

START state

Only available upon starting the game. This switches to DEFAULT once players close the Start Menu.

Time doesn't advance.

DEFAULT

DEFAULT state

The default state in which players can operate, after closing the Start Menu and when AutoDefrag and Free Painting modes are switched off.

Here players can drag and drop sectors in order to form a continuous line from the first cluster of the grid. After placing a sector, the game will update the grid and the Progress Bar to check if there are new sectors to be considered defragmented. If there are, the game "paints them" yellow and makes them unmovable.

Time advances.

AUTODEFRAG

AUTODEFRAG state

The grid is updated in the same way as in the DEFAULT state, but here the game does so automatically at a given speed (modifiable in the Options Menu).

Here players can't interact with the grid.

Time advances.

FREEPAINTING

FREEPAINTING state

Here players can freely drag and drop sectors wherever they want without having the game preventing them to do so, as this time it won't check for defragmented sectors.

COMPLETE

COMPLETE state

Defragmented sectors are all in a row. Players can't move sectors again unless they Reset or switch to FREEPAINTING.

Time doesn't advance.

Credits

Hard Disk Sound Effects

The hard disk sound effects have been edited from a small recording I took of the wonderful audio of the TwitchDefrags stream.

The "clack" sound

The sound you hear when dragging and dropping sectors on the grid was made using Bfxr by Stephen Lavelle.

Font

The font - PxPlus_IBM_VGA9 - is part of the Ultimate Oldschool PC Font Pack © 2016 VileR, and is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

UI Drag and Drop

I modified, according to my own purposes, the code provided by this tutorial by Omnirift.

Special Thanks

Thanks a lot to the Multimedia HyperGuide community who have been the first people to know of this little project of mine and provided feedback, support and suggestions along the way.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].