<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ivan Dubashinskii</title>
    <description>The latest articles on DEV Community by Ivan Dubashinskii (@dubashinski).</description>
    <link>https://dev.to/dubashinski</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1190038%2Fc6ca3e0c-31e4-4334-a1ca-a7bce1976824.jpeg</url>
      <title>DEV Community: Ivan Dubashinskii</title>
      <link>https://dev.to/dubashinski</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dubashinski"/>
    <language>en</language>
    <item>
      <title>7 days as a Game Developer: Enterprise Software Engineer Experience</title>
      <dc:creator>Ivan Dubashinskii</dc:creator>
      <pubDate>Fri, 20 Oct 2023 16:03:00 +0000</pubDate>
      <link>https://dev.to/dubashinski/7-days-as-a-game-developer-enterprise-software-engineer-experience-3pkg</link>
      <guid>https://dev.to/dubashinski/7-days-as-a-game-developer-enterprise-software-engineer-experience-3pkg</guid>
      <description>&lt;p&gt;I’m a&amp;nbsp;“regular” enterprise programmer, but recently tried my&amp;nbsp;hand at&amp;nbsp;Epic MegaJam 2023. The experience was vivid and emotional. I&amp;nbsp;immediately wanted to&amp;nbsp;share&amp;nbsp;it. Probably, a&amp;nbsp;professional will read the article with his hand to&amp;nbsp;his face, if&amp;nbsp;at&amp;nbsp;all. But the text is&amp;nbsp;more for those of&amp;nbsp;us who are involved in&amp;nbsp;related industries and are partial to&amp;nbsp;games.&lt;/p&gt;

&lt;p&gt;Before that had some experience with Unity around 2015, and later in&amp;nbsp;2018&amp;nbsp;I did a&amp;nbsp;small 2D&amp;nbsp;game on&amp;nbsp;LibGDX, it’s a&amp;nbsp;small Java engine. Java is&amp;nbsp;my&amp;nbsp;primary language. It&amp;nbsp;was interesting to&amp;nbsp;evaluate a&amp;nbsp;familiar tool in&amp;nbsp;a&amp;nbsp;new role. I've been wanting to get acquainted with the Unreal Engine since the Unreal Development Kit came out, but it never happened.&lt;/p&gt;




&lt;p&gt;At the appointed hour, I watched the broadcast that revealed the rules, special categories, evaluation criteria, and prizes, of course.&lt;/p&gt;

&lt;p&gt;The theme became known as the Antiquated future.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day&amp;nbsp;1: Finding an&amp;nbsp;idea
&lt;/h2&gt;

&lt;p&gt;I&amp;nbsp;made a&amp;nbsp;mind map and started writing whatever came to&amp;nbsp;mind.&lt;/p&gt;

&lt;p&gt;I&amp;nbsp;instantly associate “antiquated future” with stymie-diesel- and other punks. At&amp;nbsp;first, it&amp;nbsp;is&amp;nbsp;the setting that comes to&amp;nbsp;mind. It&amp;nbsp;turns out, we&amp;nbsp;set the setting and make a&amp;nbsp;game in&amp;nbsp;any genre. Maybe&amp;nbsp;so, but&amp;nbsp;I found it&amp;nbsp;boring.&lt;/p&gt;

&lt;p&gt;I&amp;nbsp;organized the ideas: to&amp;nbsp;the left, what&amp;nbsp;I like less, to&amp;nbsp;the right, what&amp;nbsp;I like more.&lt;/p&gt;

&lt;p&gt;On&amp;nbsp;the right were ideas that had to&amp;nbsp;do&amp;nbsp;with the paradoxes of&amp;nbsp;relativity. You can sort of&amp;nbsp;mix up&amp;nbsp;the order of&amp;nbsp;events, like the pole and barn paradox. But how do&amp;nbsp;you turn that into a&amp;nbsp;game, and in&amp;nbsp;a&amp;nbsp;week?&lt;/p&gt;

&lt;p&gt;Armed with a&amp;nbsp;pencil and paper, I&amp;nbsp;began to&amp;nbsp;think how it&amp;nbsp;would look in&amp;nbsp;the game.&lt;/p&gt;

&lt;p&gt;I&amp;nbsp;came up&amp;nbsp;with this idea:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Act&amp;nbsp;1: A&amp;nbsp;terrible danger® is&amp;nbsp;looming over the solar system, it&amp;nbsp;is&amp;nbsp;urgent to&amp;nbsp;accelerate to&amp;nbsp;near-light speed. At&amp;nbsp;that point, a&amp;nbsp;wormhole to&amp;nbsp;the past will open, where...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Act&amp;nbsp;2: ...it is necessary to collect a&amp;nbsp;powerful artefact or&amp;nbsp;energy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Act&amp;nbsp;3. Trying to&amp;nbsp;go&amp;nbsp;back in&amp;nbsp;time. There must be&amp;nbsp;a&amp;nbsp;chance to&amp;nbsp;miss, then it’s on&amp;nbsp;to&amp;nbsp;the next round&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Day&amp;nbsp;2: Fear of&amp;nbsp;the blank page
&lt;/h2&gt;

&lt;p&gt;Opened the editor, didn’t know where to&amp;nbsp;start. This proved more difficult than with other projects because of&amp;nbsp;about zero knowledge of&amp;nbsp;the subject.&lt;/p&gt;

&lt;p&gt;The stupor ended only when&amp;nbsp;I found suitable video tutorials, just about creating a&amp;nbsp;space simulator. Unreal Engine 4&amp;nbsp;offered the Flying Game template, but it’s not available in&amp;nbsp;the fifth version and&amp;nbsp;I found out about it&amp;nbsp;too late. Now I&amp;nbsp;understand what to&amp;nbsp;do. I’m going through the tutorials. My&amp;nbsp;anxiety has decreased.&lt;/p&gt;

&lt;p&gt;Blueprints liked&amp;nbsp;it, I&amp;nbsp;wanted to&amp;nbsp;try it&amp;nbsp;for general development, plus figure out whether to&amp;nbsp;recommend it&amp;nbsp;to&amp;nbsp;non-programmers I&amp;nbsp;know.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day&amp;nbsp;3: Adaptation
&lt;/h2&gt;

&lt;p&gt;After the course, the first thing&amp;nbsp;I did was the space itself, the sky sphere. A&amp;nbsp;search brought up&amp;nbsp;video tutorials on&amp;nbsp;the free program Spacescape, which is&amp;nbsp;sharpened for creating such textures.&lt;/p&gt;

&lt;p&gt;As&amp;nbsp;soon as&amp;nbsp;the lessons were over, anxiety rose again&amp;nbsp;— nothing worked.&lt;/p&gt;

&lt;p&gt;Figuring out how&amp;nbsp;to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Accelerate the ship to&amp;nbsp;99% of&amp;nbsp;the speed of&amp;nbsp;light, but no&amp;nbsp;more;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Slow acceleration towards the end;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gather resources to increase power.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Final Linear Damping growth curve as&amp;nbsp;it&amp;nbsp;approaches light speed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R5ZiZVOd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bi4bcq5obzlfyd14fli1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R5ZiZVOd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bi4bcq5obzlfyd14fli1.png" alt="Final Linear Damping growth curve as&amp;nbsp;it&amp;nbsp;approaches light speed" width="800" height="745"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I&amp;nbsp;don’t remember math very well. I&amp;nbsp;was experimenting with function graphs in&amp;nbsp;Wolfram Alpha with hints from ChatGPT. The idea is&amp;nbsp;that Linear Damping grows to&amp;nbsp;infinity as&amp;nbsp;we&amp;nbsp;approach the speed of&amp;nbsp;light, i.e. the speed of&amp;nbsp;light is&amp;nbsp;an&amp;nbsp;asymptote. At&amp;nbsp;the same time,&amp;nbsp;I changed the physics of&amp;nbsp;the ship to&amp;nbsp;a&amp;nbsp;more “space” one, i.e.&amp;nbsp;the ship is&amp;nbsp;accelerating and not slowing down because there is&amp;nbsp;no&amp;nbsp;atmosphere.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day&amp;nbsp;4: Solid
&lt;/h2&gt;

&lt;p&gt;I&amp;nbsp;found out that it&amp;nbsp;becomes&amp;nbsp;extremely difficult to&amp;nbsp;collect resources after the ship’s physics changes. You just can’t get to&amp;nbsp;the right place. It&amp;nbsp;blows past. I would like to have ship control and feel similar to Outer Wilds, but there is&amp;nbsp;no&amp;nbsp;time for this stage. I&amp;nbsp;work with what I&amp;nbsp;have.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Planet material&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LgB0TY0E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zwzbuhopkpa262li2aau.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LgB0TY0E--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zwzbuhopkpa262li2aau.gif" alt="Planet material" width="240" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For space setting, we&amp;nbsp;need stars, planets, asteroids and the background. The background is ready. Let’s add planets, for starters&amp;nbsp;— as&amp;nbsp;a&amp;nbsp;visual filler-orientation, where to&amp;nbsp;look for resources. I’m not the first with such a&amp;nbsp;task; there are many instructions. The planet turns out to&amp;nbsp;be&amp;nbsp;alive. Clouds fly. I&amp;nbsp;liked the material editor, looks like the same blueprints, all elements and relationships in&amp;nbsp;plain sight. To&amp;nbsp;make it&amp;nbsp;easier to&amp;nbsp;break at&amp;nbsp;the planet, made a&amp;nbsp;field of&amp;nbsp;“gravity” of&amp;nbsp;the planet, the properties&amp;nbsp;— the atmosphere. The ship gets inside, it&amp;nbsp;has increased Linear Damping.&lt;/p&gt;

&lt;p&gt;Faced with a&amp;nbsp;situation: I&amp;nbsp;repeat the actions from the lesson one to&amp;nbsp;one, in&amp;nbsp;the original&amp;nbsp;— works, my implementation&amp;nbsp;— not. I&amp;nbsp;redid it&amp;nbsp;three times, and restarting the editor helped. All I&amp;nbsp;could do&amp;nbsp;was throw up&amp;nbsp;my&amp;nbsp;hands. A&amp;nbsp;week of&amp;nbsp;work in&amp;nbsp;Unreal Engine&amp;nbsp;5.3 showed that the tool is&amp;nbsp;reliable, but sometimes it&amp;nbsp;crashes with an&amp;nbsp;error or&amp;nbsp;behaves unexpectedly. The software's complexity makes it impossible to achieve absolute reliability. Especially with the continuous addition of new features like Nanite.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day&amp;nbsp;5: Time to&amp;nbsp;scatter rocks
&lt;/h2&gt;

&lt;p&gt;Around the planet, let the asteroids roll around. I&amp;nbsp;like them a&amp;nbsp;lot, as&amp;nbsp;you can see from my&amp;nbsp;previous experience with LibGDX.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An&amp;nbsp;unreleased asteroid game&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R6K4YIHL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w96eimp3n01rg7yow03c.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R6K4YIHL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w96eimp3n01rg7yow03c.jpeg" alt="An&amp;nbsp;unreleased asteroid game" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Found a&amp;nbsp;tutorial on&amp;nbsp;how to&amp;nbsp;create lots of&amp;nbsp;randomly scattered asteroids using an Instanced Static Mesh. This thing adds a&amp;nbsp;bunch of&amp;nbsp;instances of&amp;nbsp;the same model while saving resources. The result, in&amp;nbsp;static, looks as&amp;nbsp;intended. I took the boulder from the Quixel Megascans library, free to use in&amp;nbsp;Unreal Engine.&lt;/p&gt;

&lt;p&gt;Now the animation, the asteroids should rotate. Together, in&amp;nbsp;orbit, rotation turns out, but not separately. Again found a&amp;nbsp;video, and articles on&amp;nbsp;the forum, but still not working. Another 3&amp;nbsp;hours disappeared, the asteroids are rotating, but... After spinning half a&amp;nbsp;turn, the asteroids froze. The reason was the frame-by-frame increment of&amp;nbsp;the Rotator, the maximum value of&amp;nbsp;which is&amp;nbsp;360. The solution was to&amp;nbsp;use the Combine Rotators function.&lt;/p&gt;

&lt;p&gt;To&amp;nbsp;interact with specific objects in&amp;nbsp;the scene, there must be&amp;nbsp;a&amp;nbsp;way to&amp;nbsp;place a&amp;nbsp;reference to&amp;nbsp;the object in&amp;nbsp;a&amp;nbsp;variable. Okay, google&amp;nbsp;it, and look for instructions. In&amp;nbsp;Blueprint, we&amp;nbsp;create a&amp;nbsp;variable of&amp;nbsp;the desired type and select the default object for&amp;nbsp;it. But when the variable type is&amp;nbsp;“Object Reference”, the object selection in&amp;nbsp;the drop-down list is&amp;nbsp;not available. I&amp;nbsp;got it&amp;nbsp;when the variable type is&amp;nbsp;“Soft Object Reference”.&lt;/p&gt;

&lt;p&gt;I increased the distance between planets for resource gathering to&amp;nbsp;add acceleration and deceleration. Now you can’t see them, it’s not clear where to&amp;nbsp;fly.&lt;/p&gt;

&lt;p&gt;Now it is the time to&amp;nbsp;light the stars. I&amp;nbsp;added a&amp;nbsp;sphere and overlaid the material with the texture of&amp;nbsp;the sun. Turned down the brightness of&amp;nbsp;the glow of&amp;nbsp;the material, next to&amp;nbsp;fly now difficult, even burns the eyes, but lets the player suffer a little.&lt;/p&gt;

&lt;h2&gt;
  
  
  Day&amp;nbsp;6: Issue with collisions. Removal of&amp;nbsp;the main blueprint.
&lt;/h2&gt;

&lt;p&gt;There is&amp;nbsp;no&amp;nbsp;time for the second and third acts, and even the first one has to&amp;nbsp;be reduced. The end of&amp;nbsp;the first act is&amp;nbsp;the appearance of&amp;nbsp;a&amp;nbsp;wormhole and flying through it&amp;nbsp;to&amp;nbsp;the next level. According to&amp;nbsp;the idea, this happens at&amp;nbsp;near-light speed. You need to&amp;nbsp;create an&amp;nbsp;object in&amp;nbsp;front of&amp;nbsp;the player and accelerate it in&amp;nbsp;the appropriate direction. Otherwise, the player will not have time to&amp;nbsp;notice anything. This is the speed of&amp;nbsp;light, yeah. How to&amp;nbsp;get the direction is&amp;nbsp;already clear from the work on&amp;nbsp;the ship, and vectors with turns are remembered from Unity. It&amp;nbsp;was not so difficult to&amp;nbsp;instantiate objects from Blueprint. For debugging,&amp;nbsp;I made a&amp;nbsp;spawn on&amp;nbsp;the middle mouse button and forgot to&amp;nbsp;turn it&amp;nbsp;off.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;From the depths of centuries:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I tried to rotate coordinates with matrices in Pascal in 2006, but it didn't work. About 5 years after that I read an article on the Internet, and it "clicked" - I got it! But I had already lost the source code, and I didn't want to remember Pascal again.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Next is&amp;nbsp;the momentum. We&amp;nbsp;take the speed of&amp;nbsp;the ship and give acceleration to&amp;nbsp;a&amp;nbsp;fresh wormhole. The speed of&amp;nbsp;the ship multiplied by&amp;nbsp;1.0001 to&amp;nbsp;appear. It&amp;nbsp;slowed down a&amp;nbsp;little and “crawled” on&amp;nbsp;the ship. Put the Linear Damping at&amp;nbsp;the wormhole a&amp;nbsp;little higher than the ship, so&amp;nbsp;that it&amp;nbsp;could catch&amp;nbsp;up.&lt;/p&gt;

&lt;p&gt;Now it’s just a&amp;nbsp;matter of&amp;nbsp;getting the event of&amp;nbsp;the ship crossing the object. It’s not so difficult, as&amp;nbsp;it&amp;nbsp;is&amp;nbsp;already familiar with the collection of&amp;nbsp;resources. I&amp;nbsp;run&amp;nbsp;it; it&amp;nbsp;doesn’t work. There is&amp;nbsp;no&amp;nbsp;intersection. Or&amp;nbsp;there&amp;nbsp;is, but right at&amp;nbsp;the creation of&amp;nbsp;the object... After spending four hours and trying dozens of&amp;nbsp;combinations, I&amp;nbsp;got the desired behaviour. I&amp;nbsp;used a&amp;nbsp;special channel (Object Channel) to&amp;nbsp;filter events. Without&amp;nbsp;it, either impulse or&amp;nbsp;intersection worked.&lt;/p&gt;

&lt;p&gt;At&amp;nbsp;one “beautiful” moment,&amp;nbsp;I removed an&amp;nbsp;extra node from Blueprint. I&amp;nbsp;don’t know how, but I deleted the main Blueprint! I&amp;nbsp;decided not to&amp;nbsp;use a version control system for jam because of&amp;nbsp;lack of&amp;nbsp;time, not to&amp;nbsp;deal with Git LFS or&amp;nbsp;even more so&amp;nbsp;Perforce. Did a&amp;nbsp;backup 2&amp;nbsp;days ago. That’s great. It’s not in&amp;nbsp;the recycling garbage can. I&amp;nbsp;tried to&amp;nbsp;restore with file restorers&amp;nbsp;— no&amp;nbsp;file, and another deleted file was&amp;nbsp;found and restored. Looks like it was a glitch at&amp;nbsp;the level of&amp;nbsp;the file system or&amp;nbsp;the SSD itself.&lt;/p&gt;

&lt;p&gt;Having already resigned myself to&amp;nbsp;it, I&amp;nbsp;went to&amp;nbsp;look in&amp;nbsp;the project folder. Autosaves, by&amp;nbsp;default, save the last 10&amp;nbsp;changes in&amp;nbsp;the Saved folder of&amp;nbsp;the project... I&amp;nbsp;went to&amp;nbsp;drink some water (and, of&amp;nbsp;course, more coffee).&lt;/p&gt;

&lt;h2&gt;
  
  
  Day&amp;nbsp;7. Time to&amp;nbsp;collect rocks
&lt;/h2&gt;

&lt;p&gt;Last day,&amp;nbsp;I added a&amp;nbsp;stub to&amp;nbsp;the second level describing the idea and got to&amp;nbsp;work on&amp;nbsp;the&amp;nbsp;UI and sound. There were no&amp;nbsp;problems with the text and a&amp;nbsp;couple of&amp;nbsp;customization buttons. I&amp;nbsp;finished the gameplay and tested the build by&amp;nbsp;7 pm.&lt;/p&gt;

&lt;p&gt;Sent it&amp;nbsp;to&amp;nbsp;my&amp;nbsp;brother. He&amp;nbsp;also tested and asked to&amp;nbsp;add a&amp;nbsp;third star and make them different colours; have a possibility to invert the Y-axis in&amp;nbsp;the control layout and change the reverse to&amp;nbsp;“brake”, because it&amp;nbsp;is&amp;nbsp;too difficult to&amp;nbsp;fly to&amp;nbsp;the planet, too much inertia. The first two things did: the inversion of&amp;nbsp;the axis brought to&amp;nbsp;a&amp;nbsp;separate button. Now everyone can fly as&amp;nbsp;he&amp;nbsp;is&amp;nbsp;used&amp;nbsp;to. But I kept the reversal:&amp;nbsp;without it game completely loses the challenge. I only increased the gravity field of&amp;nbsp;the planet three times as&amp;nbsp;a&amp;nbsp;quick solution. Initially wanted to&amp;nbsp;add the gravitational field of&amp;nbsp;the star, weaker, but bigger.&lt;/p&gt;

&lt;p&gt;Need a&amp;nbsp;model of&amp;nbsp;the ship, as&amp;nbsp;before I used someone else’s. I’ve run Blender a&amp;nbsp;couple of times before. It’s installed. Let’s try&amp;nbsp;it.&lt;/p&gt;

&lt;p&gt;I&amp;nbsp;open&amp;nbsp;it, my&amp;nbsp;mind is&amp;nbsp;blank&amp;nbsp;— I&amp;nbsp;don’t remember what to&amp;nbsp;do&amp;nbsp;here at&amp;nbsp;all. Okay, back up. The web version of&amp;nbsp;SketchUp, I&amp;nbsp;was designing my&amp;nbsp;dream house there. It’s not working again, emotional overload. Sighing, I&amp;nbsp;open a&amp;nbsp;dusty virtual machine with a&amp;nbsp;20-year-old 3D&amp;nbsp;package.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Flying brick&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1iKCgM2S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x92098l87l4pgt6350kb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1iKCgM2S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x92098l87l4pgt6350kb.png" alt="Flying brick" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With closed eyes: close the curve, extrude into the volume, mirror, and adjust the edges&amp;nbsp;— flying brick is&amp;nbsp;ready. Separate elements made engines and inserts in&amp;nbsp;them. Inserts are needed to&amp;nbsp;make it&amp;nbsp;easier to&amp;nbsp;assign the material of&amp;nbsp;the included engine. I&amp;nbsp;don’t know how to&amp;nbsp;do&amp;nbsp;it&amp;nbsp;with a&amp;nbsp;whole model; there’s no time to&amp;nbsp;figure it&amp;nbsp;out. Exported to&amp;nbsp;FBX, Unreal loads everything in&amp;nbsp;IKEA format, i.e., individual elements. I combined everything except the engine inserts into one model and manually placed it inside the ship blueprint. Assigned materials and made slight adjustments to the gas pedals. The result was a successful test flight. Almost successful, again there are problems with collisions, and the time before the deadline is&amp;nbsp;7&amp;nbsp;hours. Instead of&amp;nbsp;one resource-gathering event, we&amp;nbsp;now have three. Of&amp;nbsp;course, one is the ship and two engine elements. I&amp;nbsp;disabled collisions&amp;nbsp;— the collection is&amp;nbsp;fine, as&amp;nbsp;it&amp;nbsp;should&amp;nbsp;— one event for everything.&lt;/p&gt;

&lt;p&gt;The sound remains. In&amp;nbsp;the jam’s description, found a&amp;nbsp;couple of&amp;nbsp;jam's sponsors, one gave to download sounds pack, and the second offered to&amp;nbsp;watch online. I&amp;nbsp;spent 10&amp;nbsp;minutes on&amp;nbsp;the selection&amp;nbsp;— time pressure — but&amp;nbsp;I planned to&amp;nbsp;spend at&amp;nbsp;least a&amp;nbsp;day on&amp;nbsp;the sound. Materials about game development broadcast the idea that sound is&amp;nbsp;almost half of&amp;nbsp;the experience in&amp;nbsp;the game. And I&amp;nbsp;appreciate the good sound, but no&amp;nbsp;luck. Customized for an&amp;nbsp;hour, the quality&amp;nbsp;— on&amp;nbsp;the principle of&amp;nbsp;“at&amp;nbsp;least some sound is&amp;nbsp;better than no&amp;nbsp;sound”.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;From the depths of centuries&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;18 years ago, I sounded a passing spaceship (in a vacuum, of course) with a vacuum cleaner. Couldn't find it, alas.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, 2 am, I&amp;nbsp;think I’m done. With a&amp;nbsp;sigh of&amp;nbsp;relief, started the build... And got an unknown error. WHAT?! Restarts, reboots, searches, reading logs. The problem is&amp;nbsp;with the MSBuild version. Was installing modeling software and broke&amp;nbsp;it, probably. I&amp;nbsp;updated it&amp;nbsp;in&amp;nbsp;Visual Studio Installer&amp;nbsp;— it&amp;nbsp;worked. I&amp;nbsp;exhaled.&lt;/p&gt;

&lt;p&gt;Assembled, tested, passed. It&amp;nbsp;works. It&amp;nbsp;remains to&amp;nbsp;figure out how to&amp;nbsp;send. There were almost no&amp;nbsp;problems here. I&amp;nbsp;made a&amp;nbsp;description, page, archive, etc. A&amp;nbsp;couple of&amp;nbsp;screenshots. A&amp;nbsp;short video on&amp;nbsp;YouTube 30-60 seconds&amp;nbsp;— no&amp;nbsp;problem, flew, recorded through the built-in Windows overlay Xbox. Have used it&amp;nbsp;for screen recording many times, but this time is&amp;nbsp;special. So&amp;nbsp;the video appears as&amp;nbsp;a&amp;nbsp;black square with the actual video as a square inside. I&amp;nbsp;didn’t understand the reasons why, so&amp;nbsp;I cropped it&amp;nbsp;in&amp;nbsp;the video editor. It&amp;nbsp;turned out crooked, but&amp;nbsp;I don’t care anymore. It’s too late. In&amp;nbsp;the end, I met the submission requirements at&amp;nbsp;3:40. I&amp;nbsp;can sleep now.&lt;/p&gt;

&lt;h2&gt;
  
  
  Epilogue
&lt;/h2&gt;

&lt;p&gt;The jam session provided a pleasant and refreshing experience, helping me temporarily forget about chores and global concerns.&lt;/p&gt;

&lt;p&gt;No&amp;nbsp;surprise happened. It&amp;nbsp;was not possible to&amp;nbsp;make the Interstellar alone in&amp;nbsp;7&amp;nbsp;days. I&amp;nbsp;won’t give you any advice on&amp;nbsp;how to&amp;nbsp;participate in&amp;nbsp;game jams. There are plenty of&amp;nbsp;them on&amp;nbsp;the Internet.&lt;/p&gt;

&lt;p&gt;I&amp;nbsp;suggest that everyone can&amp;nbsp;try Blueprints, it’s a&amp;nbsp;cool thing. Next time&amp;nbsp;I will do&amp;nbsp;it&amp;nbsp;myself in&amp;nbsp;C++.&amp;nbsp;Unreal Engine uses a garbage collector&amp;nbsp;— I&amp;nbsp;hope it&amp;nbsp;will be&amp;nbsp;clear to&amp;nbsp;the Java developer.&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>unreal</category>
      <category>unrealengine</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
