hi there! Nothing about the engine right now couldn't be done in an existing game engine, I am just a big of zig, and you can't use zig in any of the game engines. Also, I prefer to use my keyboard as much as possible, and not have to drag things around in an editor all the time, which I just don't enjoy. Overall, a more fun process for me, which is what gets me to come back to it.
Could be cool to give special wood types more emphasis on the magic abilities while minerals would just have increased durability. So you'd have a reason to try incorporating both instead of just waiting to build out of purely durable materials. And you could soak wood in a certain elixir to add effects? Since minerals wouldn't absorb something like that.
I think I'll definitely be having different types of wood. I really like the idea of giving them magical abilities, or some kind of use for the elixir crafting/creation portion, I think that would go really well. Thanks for the suggestion!
Я сделал бы это по другому: Вместо разделения структуры на 3 части, я просто сделал бы разный тип башен и материалов, к примеру: 1. Материалы: камень, песчаник, дерево, сталь, золото (5 материалов) 2. Типы: лучники, арбалет, маги, баферы, дебаферы (5 типов) 5*5=25, !25(факториал 25), это очень много(Очень!) Идём дальше!!! Каждая игра - новая генерация материалов. Свойства материала - цвет, баф(для типов башен), название(сгенирировано). Вот пример: 5 видов деревьев, у каждого свой цвет и свойства, в башне это проявляется в виде белой текстуры дерева умноженной на цвет материала. Есть плохие сорта деревьев, есть покруче - смысл в том что бы их найти, а не заучивать комбинации крафта. Итог: Мой вариант - разнообразие, каждая игра уникальная, опыт исследования. Твой вариант - заучивание крафта/рецепта на одинаковых материалах, ты изначально хотел от этого уйти, в итоге ничего нового не сделал и просто повторил.
I used google translate, so I hope I got the idea of what you said down... You're correct, there will still be an element of memorization, the goal is more towards shifting the combinations of items together to create new structures and weapons, rather than farming for a specific drop or item. That being said, I do really like the idea you have for each game being a new generation of materials, I think something like that would add a lot of replayability, however I'm not sure how much I want to lean into randomness or at the moment, but something like that could be veeeeery interesting if worked in properly. Thank you for your suggestions!
What you want to do reminded me of a Minecraft mod called tinker's tools. You can use different materials for different parts to give your tool/weapon a different effect. If you look up a tutorial it might give you some inspiration
yeah! a few others have mentioned tinkerer's construct as being very similar, and I have it on my list of things to try! I did a bit of research on it, and the people that like seem to really like it, so I think the idea is worth pursuing.
Silent's tools was a slightly different take on that system too. Combining a pick blueprint with three ingots or cobbles or planks always makes a pickaxe head, but every material has its own properties, and every combination of materials has a different level of synergy. Mid game has me usually alloying an abundant material with a strong material for a low synergy but easily repairable tool, then late game has me alloying rarer things together to find the best in slot. Both mods add a lot of emergent player expression, both worth trying even as the only mod on the world.
if the game has a lot of alchemy inspirations them why not the seven planetary metals? those being Lead, Tin, Iron, Copper, Mercury/Quicksilver, Silver and Gold, and each one of them could hold different alchemical components, each one boosting the towers in different ways.
just wanna put an addendum here, if you think that procedural crafting is gonna spare you form work, oh boy are you wrong, you are just switching the work from designing items from progression to design parts for progression, and now you have to support and balance to a fair degree the procedural generation of those.
you're absolutely right, lol, that was just a joke for the sake of the video. That's a good point about balance, though, I imagine there will be have to be a number of iterations on that. Don't think the game will be anywhere close to balanced on release unfortunately.
@@mel0ndev well hardly any game is, thought it doesn't change the fact that balancing is miles harder, since you will need to also consider how things can synergize with one another, and if those synergies will become to broken.
@@ethanbuttazzi2602 Another good point. Unfortunately I think the tradeoff is worth it. Will just have to rely on player reporting and data, I suppose. Do you have experience balancing? If so, how would you/did you go about it?
@@mel0ndev it's just a observation from a design and managing standpoint, I did a professional get design course when I was finishing high school, and while it was about designing mechanics, it's also about managing resources, scopes and talent, and couple that with me currently coursing software engineering in college, making my own engine too(ala rpg maker), it's just a obvious observation I wanted to point out. But if you think the extra work is worth there's nothing wrong about, it's just a more demanding path than using a normal progression, as you noted, it's basically impossible to fully balance without player data, but a good start is setting a ceiling, maximum stats that any given tower can achieve, so you can more easily balance things around it that's how I balanced a table top rpg I was making a while ago.
ohh that's definitely something I can improve on. Any parts stick out to you in particular? I don't know much about audio, but will have to dig into it for other parts of the game and editing in the future, so please, lmk what stuck out to you, would love to fix this for later.
@@mel0ndev When I edit videos i make sure to set my voice's volume to between -12db and -6db over the entire recording(s). Once I've done that I move on to slicing it up etc. Sorry meant to mention that in previous comment
I have been following the series and the game looks cool. Sorry I don't play games, I am more interested in the development side. How was your experience with zig and raylib? for me it seems like zig is cool but there is a level of friction that is unnecessary for game dev (would be cool to have the ability for more programmable compilation like having the ability to write a compilation loop to add feature instead of using flags) as for raylib is seems to be in a sweet spot of convenience but I haven't used anything so I don't have a reference
Yeah, zig is a really special language, where it has modern conveniences like a build system, and fast compilation speeds w/o being super annoying to work with. I think it's worth the friction to learn if you have the time and energy. I have learned a ton about programming in general just from learning zig alone. I'm not sure what you mean by programmable compilation, but zig does have build files built in (written in zig), and that's really handy as well (no more make files). raylib is also super easy to use and get started with. You really just have to go through the example on the site and you can pick up pretty much everything you need. Both require a bit more effort as you have to basically "read the docs," but both are really nice. Raylib has the advantage of having bindings in pretty much every language you can think of. Hope that helps, happy to talk more about both.
@@mel0ndev thank you. I didn't want to bother you but I am excited about zig. with programmable compilation I meant something like having the compiler as a library, call tokenization then parse and compile on each file and have the ability to inspect the output mid way, like seeing if any variable is unused and deciding then to stop or continue based on some config or enforce a style in some files like the use of some fields. I know Jonathan blow has something like this in his language so it is possible. Just nerdy compilation, really hope you succeed with you game, good luck and gambari ❤️
@@salim444 ah I see. As far as I know, zig doesn't have that, but the compiler is fairly strict and you can't have any unused variables or constants. I'm pretty sure zig is compatible with most debuggers, so you can always use those to stop execution using breakpoints, although I don't know much about that since I don't use them (I really should). There are some good people in the zig discord who I am sure would be better at helping you find specific replacements if you're interested in that.
yo, man. This idea is reale exiting. I have no expirience of making game of any game engine/langueche but roblox studio and his luau, so i realy want to try realize the same idea, but with my additions in roblox( i never realize games and never did it to the end, so you can dont wait for it) And sorry for my english, im ukrainian and only in the 8th grade)
your english is great, man, don't worry about that. Lua is a great language to get started in, and roblox is great too! I started lots of projects when I was younger too haha, I don't think I finished a single one either. Keep grinding tho! The trick is just to be consistent, really. Good luck!
haha you're not the first person to say that lmaoo. The game actually has that feature already, though I don't tend to use it very much. You can zoom in and out quite far. I really gotta do a better job of zooming in lol.
You could do a treatment process for the basic materials such as wood and stone to make different kinds of wood and stone. Such as gathering a magicl material, let's say "fire sap" just as an example. You combine the fire sap with wood and get ember wood. Which you could then use to build any part of the tower. Building the base might give a fire restience, whereas buildings the second level might give a fire aura and the third lvl a fire attack. Idk if that is exactly what you would want to go with for your game. i was more trying to give an example of how the treatment processes could improve the materials. If you really want to go the extra mile, you could allow the olayers to treat tree seeds and grow full trees that drop more seeds of their new type to get a renewable source.
definitely love the idea of ember sap. some kind of material treatment station would go reaaaaally well with what I have in mind, thanks for the suggestion! Will be using this for sure.
(sorry if i make you work too hard) progression tree (like probably most of it): How about the bottom one provides the fortitude, the middle provides the attack and fire rate, the top provides the range 1. Wood [source: trees] 2. Stone [source: rocks] 3. Lead [source: shiny rocks that will spawn less than normal ones. This will make the player advance out of base, keeping the game at least a bit dangerous.] ~~~ To advance any further, you need to make an 'alchemy table' that allows you to exchange 3 of one resource for 1 of a different resource, and this table will be made from lead so there is no need to worry about progression. ~ the alchemy table's main focus is to add steps for progression, but it can also speed up resource gathering (ex: 3 wood for 1 stone) or be used to make entirely new items, mainly for the purpose of making more elixirs with these new items. ~~~ 4. Gold [source: crafted from lead via alchemy] 5. Gem [source: 0.1% rare drop from rocks, 0.5% from shiny rocks] (not colored, is just gray) ~~~ If you would like to speed up getting more gems without needing to mine them, craft a crystal grower, which will allow you to 'plant' crystals and after a while it will give back 2 crystals. ~ After you are done getting crystals and making towers, craft an advanced alchemy table with the gems that allows you to exchange 2 of something for 1 of something else (improved cost) and this new alchemy table will also allow you to make colored gems with two normal gems ~~~ 6. Primary Colored Gem [source: exchanging two gems for any of the 3 primary gems] (each color boost one different stat) 7. Secondary Colored Gem [source: exchanging two gems (of different colors) for the resulting one of the 3 secondary gems] (each color boost two stats) 8. Rainbow Gem [source: exchanging two secondary gems (of different colors) for the rainbow gem] (boost all stats) ~~~ To continue your quest, you must travel into a volcano and mine volcanic rock. Each rock you mine will yield you a molten stone. Travel back to the base and exchange a volcanic rock and a gem (uncolored) for a sunstone. ~~~ 9. Sunstone [source: alchemy] (these towers get a boost when near a volcano or fire. A fully sunstone tower will have small damaging orbs rotating around it like planets, making it extra dangerous for any enemies. It also sets enemies on fire, so that's cool.) 10. Icestone [source: exchanging 2 sunstones for an icestone] (these towers get a boost when not near a sunstone tower, volcano or fire. A fully icestone tower will be covered in icicles, meaning if an enemy is doing damage to the tower, 10% of the damage is reflected back. It also slows enemies down, so that's cool) THAT's the end for me. Maybe you can start to pick it up later.
lots of really nice ideas here, especially since I was planning on adding some kind of alchemy table, but didn't really have a super good use for it yet! I like the idea of gems and crystals being used for progression, but I actually think they'll be better served in the game world as being ingredients for elixirs. I haven't really done into detail anywhere about this really, but basically elixirs will be used to power everything in game, so using gemstones (like a sunstone) to craft certain elixirs (fire) would fit realllllly well. Thanks for the suggestions, they've really got me thinking!
Yoo if possible, I would suggest making the trees either 25% or 75% transparent when the player goes "behind" them from the camera, that way the player isn't just walking "over" the trees.. doesn't seem like it would be too complicated, just some collision detection and opacity changing code should do the job
haha you're totally right to call this out, this has been in the game for quite some time because I'm too lazy to sort the player sprite along with the trees because then it won't be animated. I have to add animation support to the sprite component, but atm there isn't one, and I would rather see the player walk around, so he just walks over trees due to draw ordering lol. I am currently undergoing the rewrite, which will add/fix this issue, but I will also likely add transparency if the player goes behind an object where he can't be seen.
Salt, sulfur (brimstone), tin, lead, blood, lard, ash... All kinds of fun alchemical materials you could use for this. I immediately think of Opus Magnum, Clickspring's youtube series on the Antikythera mechanism, and pragmatic Iron Age material as some potential inspirations. For fun: Salt would be incredible against slugs, frogs, newts and salamanders, lead would hit hard but have low attack speed and low hp, blood would be an expensive material that starts out amazing but degrades over time, making it an effective stop-gap tower, and ash would counter acid damage/acid based creatures, where salt would counter water/water based creatures. I don't even know if half of these mechanics make any sense for your game, I should probably go see more of the devlogs.
ohhh those are some great suggestions! I am a little embarrassed I didn't think of half of those. Your ideas for salt, lead, and blood are all very nice, I like them a lot. I will add them to my materials list, thanks!
I dont want to say I inspired the idea for this, because that's incredibly narcissistic and likely false, but I did start making a game focused around the idea of procedural weapon crafting using 3 materials 6 months ago...
a strange place, it has mostly been closer to a tech demo than a game but recently I have been actually getting the game closer to a playable state. My real channel is called ocks_dev, this is my my alt account lol.
:3 awww I feel so extraordinarily special lol thanks for the shoutout! :D I have to join the Discord now, I feel the pressure. :P I suspect we are seperated by many timezones though lol and not sure how often I'll remember to open Discord since I don't usually use it. Good job on the sponsorship! ^)^ I'll give Brilliant a try at some point via your link. I'm quite interested to see what kind of learning experience they are achieving and what their methodology is... especially on the more advanced mathematics/physics topics... I feel skeptical of their ability to teach the hard stuff judging by the ads I've seen, but nonetheless very curious to see what they're actually doing more closely. With regards to material progression, the classic solution to introducing variety to materials is special biomes providing special trees, special rocks and special metals lol. This is getting into arbitrary creativity land, but how about this: each tower needs an inhabitant (ie guard) that drinks elixir(s) as part of the operation of the tower. You have to "farm" various creatures and keep them drunk on the right elixir(s) to get them to breed/work. Hence maybe villages of creatures act as a harvestable (domesticable?) resource like a tree/stone/ore but with the additional burden of it being livestock that you have to somewhat care for. 'But yeah ?!? :D games can do whatever the func they want so idk. Is (micro?)managing hordes of (drunk? disobedient? stupid? horny? mischievous? dangerously powerful?) workers something that sounds like it fits your vision? Are you interested in exploring automation themes with the game or is the player digging every rock, casting every spell, etc?
To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/mel0ndev . You’ll also get 20% off an annual premium subscription.
This feels like it was meant as a tutorial video, but the comments are filled with advice on how to improve the result. I have to agree: I'd spend some time on a lot of basic features before I'd bother with water shaders and the like. The game looks so barebones that it's really not worth getting distracted by that yet.
hey! I appreciate the feedback! There is a method to the madness of putting the cart before the horse, so to speak, and it was done intentionally. In a visual medium like youtube, videos just do much better if a game looks better, so I chose to invest early in some easy wins (plus, I needed to learn GLSL for later anyways). Ultimately, videos doing better on the platform is the goal, which I hope translates to a larger audience for the actual game when it is released. And you are right, the game is pretty barebones in this video, but that's kind of why I chose to do this when I did. Too much time on backend development with no real visuals make a video that's very hard to market and make thumbnails for. Hope that makes sense!
I definitely agree! I had seen people do some really, really nice wind effects for their games using sprite animations, and I wanted something similar, but less work lol. They're much more talented than I, and it was an excuse to learn some stuff about shaders.
this one! ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-8tpCsQfCZEk.html wanted to put something a little more mainstream mathrocky, but copyright, ya know?
Nice one, you mentioned looking at unity water, maybe you already saw it but just in case check jess::codes video about her 2d pixel art water could give you some ideas. I think a lighting system with shadows could give huge overall to your game, some people use normal maps to help shade 2d pixel art, maybe that could be of use to you.
loool that's so funny because 1) yes, I did see her video and it was extremely helpful and informative and 2) I am planning to use normal maps for some 2d lighting effects. Glad to see someone else mention normal maps for pixel art, I haven't been able to find too much content about it. If you know of any resources for quickly making normal maps out of sprites that would be a big help for when I get around to it.
@@mel0ndev There is a tool named Laigter to generate normal maps from sprites. It was presented on game from scratch youtube channel. Maybe that can help you out.
I'm curious why you chose zig and what types of patterns you using, I'm building a similar type game from scratch in Libgdx. I feel your pain when it comes to time consuming functionality lol
nice! I think the genres go well together! I chose zig because it's one of the only languages I enjoy using outside of specialized ones I use for my job, and it's got relatively fast compilation times, cross compilation out of the box, and c interop built in. Plus, I just like the syntax. Patterns I am using are probably not your standard game dev patterns. Everything is a struct, basically a component and an entity put together, kind of like a class but without inheritance. Not sure if there is a name for this pattern or not. Shared components are embedded in larger components, which can get kind of confusing and is pretty clunky at times. I am probably going to have to rework this structure at some point in the near future lol
@@mel0ndev sounds like it would benefit from a stricter ECS pattern implementation. I had some of the same issues at the start of my journey and it really helped. That sharing issue could be a problem later its a difficult one to balance. looks good though, il be keeping up with your progress.
@@byronmorley2907definitely, although I am hesitant to convert to a full ECS because of the mental switch, and the codebase might be a bit too far gone for a full conversion, but ultimately if it's gotta be done I'll have to buckle down and do it. We shall see how it does, currently implementing towers and a new crafting station and running into a few issues, but nothing I can't solve yet. Less work is always better
@@mel0ndev Yeah that's fair enough. Doesn't really make a difference in the long run, I'm just being pedantic. Really cool game btw, and the quality of your devlogs is miles above what I had expected!
without* animating, referring to pixel art. That could have been more clear lol. I am lazy and animating is hard and if I do it will probably look shit unless I spend a lot more time than I had, so I cut corners where I could.