📜 ⬆️ ⬇️

Online shooter on Unreal Engine 4 for 90 hours (video creation + source)

Hello harb! About a year ago, I laid out an article about how I live created a survivor for 150 hours . This time I want to introduce you to a network shooter that I created in 25 visits of 3-4 hours. In total, it took about 90 hours and as a result we created an online shooter, which we played together with the audience.

image

As in the last series, the goal of the project is to show beginners how to work with the network in UE4 using the example of a shooter. In the streams, we looked at how to organize communication between the server and clients, where some logic should be and to execute, and also looked at various side aspects of development, such as creating maps, setting up animations, and so on.
')
Despite the sheer time, this project took about 10 months. I took long breaks in the streams, but nevertheless, I finished the development and now it is available to everyone for free and without SMS.
If you are interested in details, recordings of streams, source codes or a build of the game with the server in a set, I suggest reading further under the cut!

In the streams, we considered almost the entire process of creating the game (except for its release). From planning, to importing and customizing graphics and testing with real players. However, due to the tight deadlines, we missed a few important points, such as balancing, prototyping, and a couple more moments.

Most, of course, went to the logic of the game. Initially, we implemented the character's behavior, we made the manager and weapon classes, then we made game modes and rounds.

Almost the entire project is written in blueprint. The reasons are quite simple:


We also worked on the graphics. There was no time for realistic or any special graphics, so we made simple, cartoon graphics with a stroke. Weapons and characters left standard. We even made two cards, so that after the end of the round we would have a vote for the next card and, accordingly, the transition itself.

A list of all that we have implemented during these 90 hours
Character
  • Basic character management
  • Gamepad support (tested on Xbox 360 Wireless Controller)
  • Component of lives and armor
  • Running and Stamina System
  • Animations of the character from the third and from the first person

Weapons
  • Weapon manager (storage, switching, throwing, etc.)
  • Weapon Class with Logic
  • Near weapon (bat and knife)
  • Firearms (Automatic, pistol, auto-pistol, shotgun, sniper)
  • Grenades
  • Special weapon (Turret, mine)
  • Support for secondary action on the PKM (for example, the sniper's sight)
  • Recoil and spread of firearms
  • Reloading and registration of the cartridge in firearms
  • Various advanced settings (Amount of cartridge, rate of use)

Game modes and rounds
  • Basic game mode with basic logic (death, respawn)
  • Deathmatch mode - "Every man for himself"
  • Command mode
  • Round system
  • Points of the round on points and on time
  • Waiting for players and counting the beginning of the round
  • End the round with voting for the next card.

Content
  • Closed Card - Hangar
  • Open Card - Warehouse
  • Static stage lighting
  • Various models taken from personal projects or from Epic Games demo projects.
  • Sounds of shooting and walking
  • Effects of a shot and bullet hole

User interface
  • The main HUD with information about the character and weapons, as well as information about the round
  • Minimap
  • Tab menu with match and player statistics
  • Chat
  • Kill chat (panel where recent murders are shown)
  • Pre-round window with a list of players and team selection
  • The window after the round with the results of the match and the vote for the next card
  • Sessions search window (without a master server, only the LAN server is working)
  • Main menu with settings and search. It is the pause menu


Here is a video review of all that we have done:



Of course, this does not look like a finished product, but I hope that the project has completed its work. We considered a lot of useful things, used all the basic features of the blueprint for client communication with the server. As a result, we collected a dedicated server and played it all together in 8-to-8-player team mode.

In addition, I want to say that outside the stream, I put together a build for an android. The game worked and connected to the server normally. My friend and I were able to run together (he is on the phone, I'm on my computer). Of course, we didn’t control for the sensors, but I still wanted to add this fact to the article. So if you need a session shooter for phones, welcome.

Records of all parts

Content of parts
  1. We plan tasks and create a project. Create a character management and begin to make weapons.
  2. Add a new weapon (including a cold one), switch weapons and reload.
  3. We make picking, switching and throwing weapons.
  4. Create a basic game mode, respawn players and the spectator at death. Make the projectiles.
  5. Add the "Dedmatch" mode, create a round limit in time or kill, make the Tab menu.
  6. Added a minimal interface on the HUD and on the spectator window. Fix some bugs.
  7. Create a team game mode.
  8. Create a window "Before the start of the round" with a timer and the window "After the end of the round" with match statistics.
  9. Create a selection and auto-balancing teams. We are also starting work on the minimap.
  10. We finish the minimap and create a chat.
  11. We recall our project after a two-month break. Create grenades and mines.
  12. We support the gamepad, squats, run with stamina and turret.
  13. We collect the server, as well as make the menu for searching sessions and connected. Added wait.
  14. Create a vote for the next card after the round. Add a prototype of another card.
  15. Add a new weapon, make the spread and return. Refractory weapons for work on the client.
  16. We supplement the logic of shooting, add effects. We also make a prototype card for playing over the network.
  17. We play with subscribers, fix different bugs with weapons and interface.
  18. Customize character animation.
  19. Customize reload animations. We also fix various other errors.
  20. Create holes from the shots and a trace of them, as well as synchronize the scatter.
  21. We create the effect of taking damage and the effect of causing damage to the sight.
  22. We fix various errors in our project.
  23. We make our closed level, as well as create a post-processing effect with stroking objects.
  24. We make our second, open level.
  25. We fix the latest mistakes, add sounds and play with the audience.


Sources on Git
Sources on YaDisk
Build a game (server in MultiplayerShooter / Binaries / Win64 folder)
License

According to the plans, I want to create an arcade in C ++, and behind it will be a series of streams to create an RTS strategy.

Source: https://habr.com/ru/post/350124/


All Articles