Development Diary of EVILEG - TD Strategy - 001

TD, TowerDefense, EVILEG, RTS


Finally got around to do what I wanted to try for a very long time. Namely, the development on the Unreal Engine 4. I will try to throw the site and highlight the evenings to finalize the site itself. But nevertheless I will try my hand at GameDev.

Several conditions came together at once:

  • The professional level in programming already allows you to quickly understand even unfamiliar libraries.
  • There is sufficient technical equipment and the ability to buy some devices.
  • Appeared free time and desire.

Well, now closer to the idea of the game. Personally, I prefer RPG games. But it seems to me that such a game is quite difficult to implement, at least in my view. Therefore, the first project will be a game in the style of Tower Defense, the only question is that the conceived game does not become a classic RTS. Although it may even be for the better?

First steps

Development and development of the project will be at the moment chaotic, without any far-reaching plan. That is, it will be a common hobby, as the site was originally for me, but it still remains.

Therefore, I will not write documentation for the future idea, although all adult Game Studios usually write dizdok. And I will solve minor tasks that in my opinion need to be solved at the moment, and I will talk about the results. I also think that the result of such research will be articles by Unreal Enigne 4 .

So, the result of four evenings of studying UE4 and Blender (Who does not know, this is a 3D modeling program that is a free analogue of 3DMax) has become:

  • Two prototype buildings:
    • Main building to be protected
    • Battle Tower, which will destroy opponents
  • RTS camera, which is responsible for moving around the map. It implements the following:
    • Camera movement left, right, forward, backward along the keys W, A, S, D
    • Zoom
    • Rotate with the mouse
  • Health bar over buildings and hiding it with the Alt key
  • Grid

I think that the camera is available in a separate article, as well as the Health Bar.

As for the chosen technology, I have so far focused on using BluePrints in UE4, and if optimization is needed, I will be writing classes in C ++. Well, or if I am very tired of the verbosity of BluePrints. In fact, indeed, some things in C ++ can be written in one clear line, which describes everything with the help of a block diagram.

Also, as I noted, BluePrints easily uses inheritance, which is good, because the same HealthBar can be added to the base class, while in other classes you can only adjust its location above objects, or under objects. This is for your taste.

Work done

Main building

One of the tasks at each level will be that it will be necessary to protect the main building so that the hordes cannot be destroyed by the enemy. Otherwise, the game will end. This building is a prototype and the final version will change. Moreover, it was my first full attempt to make a 3D model in Blender, as well as draw a texture for it.

Defensive tower

And here it was a little easier. I modeled the tower faster, and the texture worked in more detail. However, quite simple textures would be suitable for the prototype. But I wanted to try out the Wacom graphics tablet.

Health Bar

For him, I did not paint anything specially, although it is possible that it would be worth it. But this will be worked out much later, when the enemy’s model and combat logic will appear.


The grid you have already seen on the images above is the blue square under the cursor.


It has long been no rest. Sometimes a change of activity is required. And it seems I have found a way to distract even from the development of the site, although the site itself is a way for me to escape from the main work.

It turns out a funny situation.

  • The main work - development of a CAD system - using Qt/C ++
  • Site - hobby project - use Django/Python - rest from work
  • GameDev - a hobby project - using UE4/Blueprints/C++/Blender - rest from all other projects.

ВI ask, do I get into the thick of it? In general, time will tell?

Also, Friends, this is the first article in the development diaries section, and you can also talk about your projects on the EVILEG pages. And I hope that you will find your audience here that will support your initiatives!

Thank you for your attention to the project EVILEG !!!

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
Support the author Donate


Only authorized users can post comments.
Please, Log in or Sign up
How to become an author?

Contribute to the evolution of the EVILEG community.

Learn how to become a site author.

Learn it

Good day, Dear Users!!!

I am Evgenii Legotckoi, developer of EVILEG. And it is my hobby project, which helps to learn programming another programmers and developers

If the site helped you, and you want also support the development of the site, than you can donate by following ways


Let me recommend you the excellent hosting on which EVILEG is located.

For many years, Timeweb has been proving his stability.

For projects on Django I recommend VDS hosting

View Hosting Timeweb
May 29, 2020, 2:32 p.m.

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:40points,
  • Rating points-8
May 26, 2020, 11:29 a.m.
Artem Sun-Dun-Chan

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:50points,
  • Rating points-4
May 25, 2020, 11:33 a.m.
Mitja Nagibin

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:50points,
  • Rating points-4
Last comments
May 31, 2020, 8:15 a.m.

Как установить OpenCV на Qt под Windows

Добавлю от себя: на Windows 10 x64 с MinGW 7.3.0 в CMake надо установить флаг OPENCV_ENABLE_ALLOCATOR_STATS=OFF, тогда всё скомпилится нормально.
May 29, 2020, 1 p.m.
Evgenij Legotskoj

Django - Tutorial 023. Like Dislike system using GenericForeignKey

Думал так, но похоже что нет. {{ post.votes.likes.user.username }} Это же QuerySet будет, а не отдельный единственный объект {% for vote in post.votes %} {{ vote.user.username …
May 29, 2020, 11:43 a.m.
Vladislav Melenchuk

Django - Tutorial 023. Like Dislike system using GenericForeignKey

А как получить имя пользователя, который поставил лайк? Думал так, но похоже что нет. {{ post.votes.likes.user.username }}
May 29, 2020, 6:30 a.m.
Evgenij Legotskoj

Qt/C++ - Lesson 039. How to paint stroke in QSqlTableModel by value in the column?

У меня работает. Исправлял в проекте, который приложен к статье. А что происходит в вашем коде, с учётом места вызова этого кода, я знать не могу ;) Дебажьте и добавляйте условия, кото…
Now discuss on the forum
May 31, 2020, 6:57 a.m.
Aleksej Vnukov

Минимальный размер Item

считайте по размеру включенных элементов, чтоб все помещалась. например у вас всего 2 кнопки, тогда минимальный размер итема будет ширина 1-й кнопки + ширина 2-й кнопки + отступы, и точно также …
May 31, 2020, 2:24 a.m.

Можно ли сделать в QML таблицу как в Excel?

Можно ли сделать в QML таблицу как в Excel или как сделано в QTableView? Что бы можно было выделять диапазон ячеек, переключатся по таб, изменять размеры строк и столбцов. В QT 5.14 по…
May 30, 2020, 11:49 a.m.
Ruslan Skljuev

QML Как при нажатии на кнопку изменить название окна?

У меня три файла: 1. QML - это Loader и Window 2. QML вход в программу - страница Loader (там есть Switch) 3. QML - MainMenu. Мне нужно в (1), чтобы если на (2) Switch.enable, то …
May 29, 2020, 1:27 p.m.
Dzhon Kofi

QMap<> какой ключ лучше

это ясно. Вопрос в том, как быстро мапа будет отрабатывать, если ключом будет QModelIndex. Какой параметр индекса возьмет за ключ. И вот насколько это будет медленнее или быстрее, чем QString пр…
© EVILEG 2015-2020
Recommend hosting TIMEWEB