diff --git a/vikto_dev/Textures/devil.png b/vikto_dev/Textures/devil.png
new file mode 100644
index 0000000000000000000000000000000000000000..a00e4a27d6530564d48ac7edb810145fc371bf4c
Binary files /dev/null and b/vikto_dev/Textures/devil.png differ
diff --git a/vikto_dev/main.cpp b/vikto_dev/main.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..52dbe16ec7ada9104a1bca9223ad4ff2283bbac9
--- /dev/null
+++ b/vikto_dev/main.cpp
@@ -0,0 +1,111 @@
+#include <SFML/Graphics.hpp>
+#include <vector>
+#include <iostream>
+
+int main()
+{
+    // VARIABLES
+    sf::Clock movementClock; // delta Time for movement
+    sf::Clock gameTime; // Total game run time
+    sf::Clock spawnTime; // delta time for spawning objects
+
+    // WINDOW
+    sf::RenderWindow window(sf::VideoMode(640, 640), "SFML works!");
+
+    // TEXTURE AND SPRITE
+    sf::Texture devTex;
+    sf::Sprite devSprite;
+
+    if (!devTex.loadFromFile("Textures/devil.png")) {
+        std::cout << "Image not found" << std::endl;
+    }
+
+    devSprite.setTexture(devTex);
+    devSprite.setScale(0.4f, 10.5f);
+
+    // SHAPES
+    sf::RectangleShape shape(sf::Vector2f(200.f, 50.f));
+    shape.setPosition(window.getSize().x / 2 - shape.getSize().x/2, window.getSize().y + shape.getSize().y); // A the center of the window
+    shape.setFillColor(sf::Color::Green);
+    // Vector storing all the shapes
+    std::vector<sf::RectangleShape> shapes;
+    shapes.push_back(sf::RectangleShape(shape));
+
+    while (window.isOpen())
+    {
+        sf::Event event;
+        while (window.pollEvent(event))
+        {
+            if (event.type == sf::Event::Closed)
+                window.close();
+        }
+
+        // UPDATE
+        // moving the shapes
+        if (gameTime.getElapsedTime().asSeconds() < 3)
+        {
+            if (movementClock.getElapsedTime().asMilliseconds() > 1.f)
+            {
+                // FOR MOVING THE SHAPES INSIDE THE VECTOR OF SHAPES
+                /*for (size_t i = 0; i < shapes.size(); i++)
+                {
+                    shapes[i].move(0.f, -0.4f * movementClock.getElapsedTime().asMilliseconds());
+                    if (shapes[i].getPosition().y < 0 - shape.getSize().y) {
+                        shapes.erase(shapes.begin() + i);
+                    }
+                }*/
+
+                devSprite.move(0.f, -0.4f * movementClock.getElapsedTime().asMilliseconds());
+                movementClock.restart();
+            }
+        }
+        else
+        {
+            if (movementClock.getElapsedTime().asMilliseconds() > 1.f)
+            {
+                // FOR MOVING THE SHAPES INSIDE THE VECTOR OF SHAPES
+                /*for (size_t i = 0; i < shapes.size(); i++)
+                {
+                    shapes[i].move(0.f, -0.1f * movementClock.getElapsedTime().asMilliseconds());
+                    if (shapes[i].getPosition().y < 0 - shape.getSize().y) {
+                        shapes.erase(shapes.begin() + i);
+                    }
+                }*/
+                devSprite.move(0.f, -0.1f * movementClock.getElapsedTime().asMilliseconds());
+                movementClock.restart();
+            }
+        }
+
+        // FOR SPAWNING SHAPES
+        /*if (gameTime.getElapsedTime().asSeconds() < 3)
+        {
+            if (spawnTime.getElapsedTime().asMilliseconds() > 300.f) {
+                shapes.push_back(sf::RectangleShape(shape));
+                spawnTime.restart();
+            }
+        }
+        else
+        {
+            if (spawnTime.getElapsedTime().asMilliseconds() > 1000.f) {
+                shapes.push_back(sf::RectangleShape(shape));
+                spawnTime.restart();
+            }
+        }*/
+
+
+        // DRAW
+        window.clear();
+        
+        // FOR DRAWING THE SHAPES INSIDE THE VECTOR OF SHAPES
+        /*for (size_t i = 0; i < shapes.size(); i++)
+        {
+            window.draw(shapes[i]);
+        }*/
+
+        window.draw(devSprite);
+
+        window.display();
+    }
+
+    return 0;
+}
\ No newline at end of file