Why I Deleted My Roguelike Game
HTML-код
- Опубликовано: 24 ноя 2024
- In this devlog I am deleting my office-themed roguelike.
Not to worry though, the game will continue in a different project.
But I'll have to rewrite and recreate all of the code, systems (and art?) we had previously.
This devlog is where that journey begins.
=======================================
My discord server: / discord
=======================================
Programs I use:
-Unity
-Gimp
-Kdenlive
-Audacity
-Obs
=======================================
#devlog #unity - Игры
Join the Discord: discord.gg/27DWMcH
Add more enemies and maybe a boss or something
Egg
how much will it cost bro this game makes me want to play it so badly
@@mrfloaties This isn't final by any means, but when it comes out (which could be a long while away) I am currently thinking it'll be $5
@@Deynum :O i can afford it :DDDD
Starting again to make it better. Seems like a fair trade. Good luck deynum!:)
Finally someone who isn't completely freaked out by the situation lol, thank you
@@Deynum Good luck as well
@@Deynum Haha I'm with you too mate. Big refactor = big satisfaction!
I would swap the room look idea, the lore could be that you're starting at the top of the building(where everything is clean) and you try to escape it by going down(the levels get dirtier) and you eventually fight the last boss at the entrance - you could go for some creepy stuff in the lower levels, such as mutated employees. Add a secret bathroom level where you jump in the toilet for a loot room
-looking forward to the finished product
That’s a great idea!
I support this
underrated comment and idea
And you get an option to explore the basement with crazy mutated Workers.
It feels like the inverse of slay the spire in that sense. Instead of going up, you go down.
The final boss would be the secretary. Sound brilliant.
The art looks much better then before and I really like the extra detail you added to the office, it gives more depth to the game and I find it makes it look more polished overall
My suggestion would have been to create a new namespace and slowly build your new code within this namespace. That way you can have new scenes with new scripts without having rework sprites and other work done.
Plus you have the bonus of being able to see the difference within the same project.
I literally have never heard of a namespace before, but I've seen it commented twice, so I'm gonna look into it (probably too late now though)
@@Deynum Namespaces are mostly used to organise your code in a specific structure allowing for easy addition to your code base by simply using said namespace
Yeah, it allows you to use the same class name as your old script as well, so you can transition your old code into the new one seamlessly, once it done, you can just then delete your old code...
Can you elaborate on that?
@@ray_9211 which one, my comment? or the others?
Your devlog's quality is such a role model
I mentioned this during one of the Livestreams, but restarting my game was a fantastic decision!
Not only did it make the game easier to work on, but it also allowed me to more objectively reevaluate it and the direction it was heading!
Also, I tried the same things to get pixel perfect working, but ended up going back to the default pixel perfect when I couldn't figure it out. When I eventually try again, I'll keep this in mind.
It's really easy to get into a loop of "I'm better now, let's go back and rewrite that old code" only to have improved enough by the time you get back to the same place that you feel the need to go back and rewrite the earlier code again.
Congrats on having the motivation to (nearly) start over ! That's the problem with long projects, but that also allows you to see how much progress you made along the way ! :)
Love that you show examples of what the rewrite actually improved other than say "Its new, Its better". I personally rewrite my stuff so often because there a so many things to do better and learn from but I also know many people who are "scared" of redoing stuff, hope this video will make some people think about redoing stuff who never thought about it!
Oh, i had a mini heart attack because of the title-
Thanks god it's just clickbait! Can't wait to watch this devlog!!
I've never heard the words "I'm so glad its just clickbait"
I’m only a novice and you’re probably already doing it as a much more experienced dev than myself but I’ve found scriptable objects to help greatly reduce script dependencies. I’m still yet to see their full potential but my favourite use of them so far is to easily swap out all the variables on my weapon system without having to instantiate a new script. I assume you already used them in your old project at the very least for your weapon system but I guess it’s worth mentioning just incase. Scriptable objects are so cool. New art looks good btw!
Oh, i got scared for a moment 😅
Edit: after watching the whole video, i can make a more well rounded comment. It was a great decision to come back to the old code you made, and revamping it so I'll be better. I love seeing the same projects get upgraded throughout their making because of the new knowledge of the developer. It is very satisfying to see! As for the video, it's very well made, the new style of editing you chose for the past few videos is very eye catching. Well done.
Art, Noice. Programing, noice. Enemys converging into one, Extreimly noice. Overall i give it a noice/10. Seriously tho, game is looking great and as someone who also restarted due to old code breaking this looks amazing(well done)
Comment, noice
Units merging is quite a problem. Maybe some units that are semi transparant could do that for some weird in game behaviour?
I got SO scared seeing this on discord! I am also happy for a new devlog! Keep up the good work!
The new art is looking so good. It adds so much depth.
Just got recommended your channel, love your content already, good stuff
I was watching since 1k, its so cool watching you evolve, best of luck Deynum
I will dare to recommend you a book called Clean Code. Among other things, itt talks about how starting from zero is normally not the best idea, but the most pleasant. It's always better to refactore the current, well tested, codebase. I hope I'm not being too obtrusive !. I also want to say that your game looks wonderful and sounds like an awesome idea, good work and good luck with it!
As long as the end product is better, we dont really mind the wait
Wow! This is so much better! Im also impressed that you stuck with the reset, as usually, when I do that with my games, I abandon it in like 1 week.. anyways, I love the new artstyle!
Thank you for clickbaiting me with that title, otherwise i may have missed this masterpiece.
I did the exact same with my game about a month ago despite how much work would go into remaking it I am 100% glad I did. I recommend to anyone to try and remake their game (as long as it's not too far into development) to get a better understanding of their goal ideas they want to portray to their players!
PS. It will go a LOT quicker the 2nd time even if you add things as I did, because you know exactly what you are going to do.
Plus this is clearly going better for you just hearing over 300 lines in the shooting script was insane. Also your art style for the game has definitely improved :)
ok i love this editing style
Thanks (don't tell anyone but the editing for this video took like 50 hours lol)
excited for the new things you're planning to add!
Great Video! I ran into the same camera jitter problem in my game. In my 9th devlog for Ranger I came up with a modified upscale technique which allows for Zooming, Tilting, Rotating and basic movement all while keeping the pixel factor constant and unjittery.
I've refined it and simplified it quite a bit since that devlog. Later this month I'll be releasing an in-depth tutorial
I love the idea and the bravor needed from you to do a reset and restart from ground 0
and I also love your devlogs, your game looks so promising^^
Oh boy, time to delete it again! (thanks Unity, we hate you)
Of course we'd release our videos at the same time. 🤣
Cool to see the work/rework being done though. 👍
Like half of the video (the art section) was inspired by your video, so I guess thank you for also reworking your game
@@Deynum Well, I didn't take the plunge and go as all in as you did. I'm still building on top of my original terrible code. Fingers crossed it hold together. 🤞😅
I like the floor being textureless to make the action clearer but it might be cool to have a subtle checkered pattern to add some visual interest and to look like a carpet.
I've been fooled, FOOLED !
Cool devlog again, it seems like the good call, trying to build something over bad foundations can go very wrong.
Finally a sane person who gets what he gotta do
mojang should do the same in my opinion
tf why?
Edit: wtf how was this liked after 3 seconds?!
@@TheCreationKilnBlockbench minecraft is almost never geting updates with the last updates taking like a year but only bringing smaller things since mojang is just making their work harder rather than easier if that's what what you're wondering about
@@MHE202 I get that, but to start minecraft again would kill the modding community, and ruin so much work over the years
yeah youre right completely forgot about that sorry@@TheCreationKilnBlockbench
Also all of the servers
Bro i would not have any patience for this hands off to you
wow the improvement is SO GOOD! from the art style to the code cleanliness, chef kiss!
I wanted to give some reassurance on your solution to pixel-perfect cameras, since it's something I work with very very often. in case anyone is curious, the issue is that the position of your objects are themselves not pixel-perfect, so it causes the camera to approximate which pixel to put things on, which causes the jitter. this has given me lots of headaches in the past as well, so I'm glad you found a solution that works :D
if you ever want sub-pixel logic though (like bullets or super small enemies) you could have the physics objects free to be wherever they'd like, but make a custom script to restrict only the associated sprites to the pixel grid. just a quick idea!
I've came across this issue a few years ago and used the same solution. Felt like I was going insane until I figured it out though, lol.
Thank God you’re not deleting it.
I almost had a F**king Heart Attack
Just paused my TangoTek Decked Out stream to make sure this isn’t real
Apart from the rather clickbaity title, I absolutely l o v e everything you've added. The new art looks awesome and the pixel perfect camera is a nice touch stylistically. Redoing a project can be scary but you absolutely crushed it and I'm so happy for you
Thank god! (And I’m an atheist) I would have cried if you deleted the game.
Thank god! (Also an atheist) I would have cried if you weren't the top comment
Thanks God! (I'm Muslim.) I also would have cried if he deleted the game.
Thank God! (I’m a Christian) I would’ve cried if he deleted the game.
Thank god! (I'm god) I would have also cried if he deleted the game.
@@marvingreat2826Thank you! I would have cried if he deleted the game.
recently did the same thing for the game i'm making. if anyone is on the fence about doing a rewrite i highly recommend it. it's one of those tasks that seem like they would take forever but it's actually not that bad at all when you have your old code as a base, only took me a day to rewrite 5 months of code. it's crazy how fast progress is now that adding a new feature no longer feels like stacking a block on top of a leaning jenga tower.
I think the reset was a good idea! By doing this you can flesh out and modify fundamental systems with little basic non specific pieces of code that you can combine to make your workflow much easier in the future. Heck with that augment idea if you made it stackable and applied it to guns, bullets, enemies, etc. You could have a lot more freedom for how you approach the gameplay loop and game balancing. An example being, maybe an item that affect your shots, maybe they turn into bouncy bullets or something!
I love how much you improved!
I HATE IT WITH A PASSION THAT YOU USE camelCase INSTEAD OF PascalCase FOR CLASS NAMES
I'm quite a perfectionist about my projects, the "RESET" strategy is usual for me, so I 100% approve your decision...
It works for me, so keep up and good luck with your cool project :D
That's a great idea ! I did pretty much the same a year ago for my game, and it changed everything, making it like 4 times better and 16 times easier to work with... I'm sure you're already seeing how satisfying it is to remake something you've already done, but quicker AND better !
Good call, having a cleaner code space is always a plus! Game looks great…again lol
this was interesting:
first I was shocked that you would ditch the entire project
then I was annoyed that you weren't and it was just clickbait
but it turned out to be a really interesting video anyway! I love the buffed up artstyle on the enemies, looks fantastic
I love this project. So anyways random weapon idea: a bin the player carries around, taking paper balls out of it and throwing them at enemies. Maybe even with something like a charge attack where you can take out a paper plane or unfold a paper ball to become one? Rather basic but I think it could fit pretty well
i am so excited about this project!! the idea is just so cool and I have been loving the videos
I'm on my 3rd and hopefully final rebuild of my game, for the same reasons you have here.
it's good that this happens because you know you have grown a lot.
I think that was a really good move. I mean, I do it all the time with old stuff, so I may be a little biased. But it just gives that refreshing feeling when you do things like that, if you know what I mean.
I can strongly relate to that code written by a year ago feels super bad today. I just wrote everything to work back then, not be easily scalable and usable in the future. Its probably something every game dev struggles with, constantly wanting to start over or move to new projects. I am glad I just decided to improve the old code when I need it, as always starting over otherwise ends up in an endless loop.
I like this A lot, this is a big, if not the step to really understanding game dev. The amount of times I had to do this sucks looking back on it, but it really made me a better game dev at the end of the day
Great improvements! Loving the art style and looking forward to particle effects! One thing I’d say from my experience is that rewriting your entire game is fine but only once. Seems like it was much needed in your case but don’t get caught in a loop of rewriting everything too often, it happened to me and at some point I just realized my code was good enough even if it will never be perfect haha. Good luck on your development!
with the change of direction with the Art style, you could probably implement that into the enemies like a printer. It could shoot out paper slowly in lower levels then as more expensive and well-maintained printers are found in higher levels, it could shoot faster and get stronger.
I love how the game's changed, I just nearly got a heart attack when I saw the title of the video, but that's fine
Yeah, it happens sometimes. Don't feel bad about it. Sometimes life is just gonna be like that. I think that it'll be great though. You've gotten a feel for game dev and learned a lot, so you can improve in your next draft. I also suck at game dev, but I really hope I won't have to do that.
This video has introduced me to a few new concepts such as augment scripts which are almost perfect for doing things in an rpg such as a shop, an attack, and so on. This way I don’t write out a bunch of if statements creating a whole new spell with a different level of energy that it costs and how much damage it does if performed correctly.
if you dont want to snap everything to your in game pixel grid, you need to store the intended camera offset and add it in AFTER you upscale. the first camera will render at a smaller resolution and then upscale it, so 1 texel would be something like 5 pixels for example, so if you want to move your camera 14px to the right, it will get truncated to only 2tx instead of what you actually want, which is something like 2.8tx to the right, but you cant render that 0.8 in the native, pre upscaled resolution, so what you do is shift the camera by 2tx to the right, and have a 1tx outline that will get cropped out when you upscale, but you move the camera 0.8tx to the right which becomes (0.8 * 5)px in this example, and its not black because you have that 1tx (5px) buffer, and its smooth because its not locking to every 5px, but instead every pixel.
Yea this is a common issue with indie game development
when i was making my game i restarted it THREE TIMES.
all my programming buddies have also restarted their games over and over again.
I wouldnt be shocked if this reset happens again. Dont worry, its natural and we all gotta do it eventually.
wait whar 😨
ah nvm the title scared the hell out of me 💀💀
Restarting your project must've been a hard decision though I love the changes you implemented, it's looking great!
From what you said and showed, the re-set was the better and smarter option for you to move forward with. Game looks great by the way dude :)
Awesome work! It probably already has been commented here but the « augment » system you came up with is actually a software architecture principle called « dependency injection »! Really nice that you came up with it yourself ahah
Keep up the good work 🔥
My first game ever built was a Breakout clone. I wrote the game four times, and each time slashed the line count. First version was 400+ lines of code. Second version was already around 200 lines, and the last version of the game was under 80 lines of code.
Rewriting code is a good idea, especially when it's starting to affect the development with its clunkyness.
This was a fantastic upgrade! I'm going to go through and upgrade my project aswell!
A simple hack to the pathfinding causing overlaps is to make enemies leave invisible fields that are presented to A* as extra slow to move through. That means any opponent following another will attempt to walk around it, ending up actually walking side by side.
These "virtual obstacles" should disappear some short time after they're placed.
Also, reset is good.
The game looks very promising, but for the love of god make his leg moving animation as fast as his movement
Clever solution to the pixel perfect problem. I'm sure you only glossed over it at a high level, as I imagine it was difficult to get things to render in increments of the game resolution.
para você fazer com que o personagem não fique travando enquanto esta andando (7:00) você pode adicionar a opção "INTERPOLATE" do rigidbody, funcionara muito melhor! :D
if you figure out how to make enemies not overlap, I'd love to know how (and same for the pixel perfect stuff lol)
To unstack enemies, what I did is make enemies pushy, it's not the fastest, but with less than 100 enemies on screen there's no issues (I have 5k enemies on screen with no issues)
Basically each enemy has a weight, and you add a vector for each entity in the radius which is equal to this.radius +other.radius-distance
The main issue for speed is that you basically have to have each enemy check every other enemy (though you can subdivide the world to make it more efficient)
Avx2 helps a lot and makes your checks about twice as fast.
Especially lf you're using square collisions, you can check all the collisions very fast by having 2 prepared variables for the boundaries, one for when it's the one verifying and one for when it's being checked against, and you can just use a mask for each collision and then use the avx packed greater than, which does all the checks at the same time, so every collision check takes only a few instructions.
You’re really good at this stuff
Just don't get stuck in the trap you're almost certainly going to find yourself stuck in. Your programming skills will continue to grow as you program. That's how skill is gained. I've done this myself a thousand times: Start a longer project, then restart it because I became more competent along the way and could see many glaring flaws in my previous work. Yeah, that loop never ends.
It might remove some of the corporate vibe you are going for, but some rugs or patterns could definitely break up the flatness of the floor.
Making the sprites obey the pixel grid is the most authentic thing nobody does in games with pixelart graphics.
"Unity's partical system" Brings back so many memories..
One trick: Make the assets for the stuff that you are rotating high res - then when the camera pixelates everything they will look equally good in all angles whereas now they look correct in 0 degrees rotation and broken in any other rotation. Think about it this way: Your pixel art gun is already pixelated, so when it is rotated and pixelated again by the camera then you end up with pixelart of pixelart, but what you want is pixelart of a gun. hope it makes sense XD
it makes sense, but the reason the game is pixel art to begin with is because that's something I am (decently) good at, so making the gun art high resolution is not really an option for me
Also I personally think it looks fine, maybe not perfect, but that's kinda the whole point of pixel art
I understand, and I'm not saying to bring in all the details of a highres picture, it will get pixelated anyways, just take your pixelart and round of the corners. It doesn't really make sense to think about the gun as handcrafted pixelart anymore since it will almost always be rotated, maybe except when it's laying on ground, you can't really see the original pixelart when its rotated.
I'd actually argue that pixelart is usually more 'perfect' than higher res because every pixel is the result of an aesthetic choice - of cause you lose that when it gets rotated and re-pixelated but the best way to get close to your original design is by using a higher res version before it gets auto-pixelated. It does look ok with that color pen in your video butit might not with some of the other weapons. Every game is different and maybe you don't need it, It's just a little tip that helped me out in the past :) I also like pixel perfect cameras for pixel art games but I found that free rotation messes a lot with the art. Games like Noita and many pthers don't even have pixel perfect camera, they just rotate the pixelart which is also a valid solution I guess.
If you don't want the enemies to collide with each other, create a hitbox for the enemies
You were so calm when you said that you resseted but i know that it hurts
Adding some bobble to the gun when the player walks could provide a more bouncy move cycle
Scared at first, but then you used old sprites (but slightly better) so I think it was a good thing.
hi, im making my own pixel art game with pixel perfect camera, can you maybe explain how you used the pixel grid snapping. Thx Cybo
this is really cool! the weapon suddenly disappearing when you dodge feels slightly off though
Personally this is a very annoying task to do, but it will be worth it in the end.
my instant thought when the augments get mentioned: "interfaces and factory pattern"^^
Some possible solutions to the whole enemies stacking: Making the enemies have a collision hitbox so that they can't clip into each other, or you could flag other enemies as an obstacle in the pathfinding so that they actively avoid bumping into each other. There are probably multiple other solutions, but these are the two I tend to go with when working with pathfinding. I hope this helps 😄
I tried the "making enemies obstacles" method, but for that I need to update the navmech frequently and that causes a ton of lag
@@Deynum you could add a pseudo hitbox with its unique collision layer that will push out other enemies depending on how close they are to the center of the hitbox (better than making them simply collide as they can still be clumped together)
@@Deynum Try looking into "bodies"
@@Deynum wait I meant "boids"
Imo this was an amazing decision. I did the same thing with one of my own projects because the code was horrible. I’m not working on the project anymore, but overall I think it was a great decision in the long run.
And as someone who uses an equivalent to the pixel perfect camera in my game engine for pretty much every project, I can confirm that stuff like jittering and whatnot can be frustrating, but the effect is insanely rewarding if you can get it to look right! You just have to kind of babysit everything to make it look good.
Would love to see the protag have some more fleshed out animations. I love the game though!
This is gonna be sick. Can’t wait for it to be finished
2:15 Using that exactly same A* pathfinding asset, you can prevent enemies overlapping by local avoidance. This is done by adding the RVO simulation, check the documentation for that. Its very easy and fast.
I'll look into that, thanks
Great video as always, You should add floor tiles
(TL;DR at the end because i talk a lot about myself in this comment) as someone who has been developing a pretty simple and generic game for about 3 years now (and am close to finishing it), i can understand why you reset your game 50 seconds into the video lol
this is still my first project that i've started, and the first one im going to complete, but for the first 1.5 years i've been making it, not only did i only know the basics of what i was doing, i also wasn't really working on it consistently. And although the biggest issue with continuing development came from the fact that i lost the majority of the game files when transferring the project to my new PC about one and a half years ago, a lot of the complications were also caused by my old code just being bad and hard to work with if i wanted to make any changes. (also by me not working on it consistently)
last summer though, i've decided to try out Godot, as opposed to Unity which i've been using prior, and just as a placeholder i used art assets from that old project, and i've made so much progress in just one week, that i decided to start the project over.
now, after just about a year, i'm close to finishing the game, though i've not been working consistently on the "new" project either, i was at least more dedicated to it than i was before, and starting over helped with me feeling burnt out on making what is basically a mario clone for 2 years (even though its still basically a mario clone but with worse art assets and music, i at least have some basic functionality like button remapping). And now i look forward to working on other projects, as soon as i finish this one and complete the promise i made to myself of this being the first project i'd finish
TL;DR: starting over is good, can confirm
Great idea on the reset, as a programmer, I can totally relate to your situation.
for the issue with the enemies overlapping,
you can add a collider so the enemy won't walk over
Make sure to keep in mind that you will **always** be a better designer and programmer after a year of work, and it can feel very tempting to start over from the beginning equipped with your greater knowledge. Obviously, if you do this every time, the game will never be finished. At some point, you've just got to be content with the state of the code and release it out into the world.
I'm not saying you made a bad decision, though; sometimes you just need a fresh start. I think your game looks much better now than it did in the last devlog. I wish you luck on your project and look forward to seeing more progress!
Honestly, rebooting the project was definitely a good move considering the new code and systems in place.
This is the old saying "If I Had More Time, I Would Have Written a Shorter Letter" put into practice.
I think this new project will will be awesome when you finish it :)
Me seeing him name the project death inc 2 in the begginning: so this is why games are randomly released as the 18th of the series when theres only been one.
re: pixel perfect camera.
Why dont you have your normal camera capturing everything except effects like particles, then have another camera only rendering the particles and then smash it into one? You could then work around with layering stuff but I dunno how to do that