/agdg/ - Amateur Game Development General

Just like make game

 Reply
 Click or drag files here to upload
>>
>>
>>
>>
>>
No. 44
>>47 >>81

Posted on the other board but can share here too. I'm making a nsfw horror visual novel with a bit of a lovecraft influence. Pics are some of the placeholder art I made for some backgrounds. Not very big-brained since it's just a VN but hey, thought I'd share.

>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
No. 103

Taking a break on the game to try to work on my musical skills. My idea is to start making a little music to try to build some kind of following and maybe a network. That way, instead of having to shell out to a marketing firm, I can just share it with the people I know to get the word out. Especially with the demo. I don't want to just link it on imageboards, for the same reason >>90 doesn't want to post progress. Practicing music can also help with the game since I know games with good OSTs tend to do better on average, and even if the game falls through, I'd have another creative outlet to fall back on.

Only problem is that being a friendless autist, my networking skills are shit. I know that in theory it's a matter of talking to the right people. The idea to make friends with the people who have followings themselves, so that when you share your stuff, they'll signal-boost it if they like it. Except it's not that simple. For one, most of the people who know people are those faggots. Friends with trannies and goons, you know the type. So I'd probably have to put up one hell of a fake persona to get anywhere with these people, and I don't know how long I'd be able to stomach it. And that doesn't even go into how the hell I'd get their attention in the first place. I guess I could start small, try to befriend small-time artists that happen to be followed by bigger ones, then just climb the ladder.

Plus, my skills aren't good enough to where I can just start posting music someplace and just wow people out of nowhere. I'll need to practice and get feedback I can use to improve. To get that feedback I'll need to share it with people I can trust to give constructive criticism, not just calling it outright shit or coddling me with fake praise. I don't know where to go for that.

>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
No. 208
>>214

>>207

Because GDNative is a fucking pain to set up and I wanted to do some quick prototyping before the actual implementation. I had NO IDEA it was going to be this bad.

>It's just like python! What could go wrong?

FUCK! Please, someone nuke argentina! At this rate I might really be better actually learning C++ for real and going for GDNative, though. At least I know it fucking works! And I'm sure it will work better than this fucking mess that is gdscript. Wanna know how I know? This language is so broken the devs absolutely can't be programming with it, and therefore must be using some other fucking language! Goddamn it.

>>
No. 209
>>210 >>215

>hey guys
>listen
>guys
>what if we made a python-like lan
>guys
>what if we made a python-like language, but that worked in an absolutely different way?

So, gdscript has yield. In python, it is used in generator functions to return a value but keep the function from deleting everything in its scope so you can return other values later. Gdscript also has yield. Can you guess the only way it doesn't work? AS A GENERATOR! FUCK! And then you make the whole implementation based on the fact that "sweet, gdscript has generator functions, that'll be super useful", except THEIR GENERATOR DOESN'T FUCKING RETURN ANYTHING! And the thing is, that particular information is COMPLETELY ABSENT from the docs! You know what gdscript has, though? "Inverse generators"! you do a function.resume("some shit"), and you can pass "some shit" to your function, but getting "some shit" FROM the function? Preposterous!

As a workaround, you can pass a dictionary to the function you want to return "yields", because dictionaries are passed by reference. And then you think, "ok, that's not as good, but at least I can do something with it". Except THE WORK AROUND DOESN'T FUCKING WORK EITHER! It works (-some times, maybe, no refunds).

And this one is the least of my problems with this language. It's just a fucking piece of shit. "Let's be like python, except different in arbitrary ways because fuck you!"

>>
>>
No. 211
>>212 >>215

>>210

No. Classes are absolutely useless right now. Get this: you can't use helper functions on classes. You can't access any variable or function outside of a class by any of the class' methods (unless they are declared constants). So, if you want a helper function like "is a between b and c?", you have to copy it into any classes you make (or declare it a constant function, but my helper function script has some functions that need to initialize some look-up tables when loaded, so they can't be constants, and I'm absolutely screwed because of this). I could fill my code with global variables, but I wanted to iterate over a dictionary from where I was, and doing it without generator... I don't even...

My complaint about the language is really that I feel like I can't work with it, instead I have to always work around it somehow. You have to use hacks on hacks and the absolute faggots on github refuse any criticism. I've seen several commits that fixed something, but they don't merge them because "we discussed this issue or IRC and felt that there wasn't any benefit to adding it, so we're closing this issue".

>>
No. 212
>>215 >>222

>>211
>You can't access any variable or function outside of a class by any of the class' methods

wat
I don't think you're lying but that seems completely retarded if I understood you correctly. Is every Godot file just a namespace unto itself?

Again, not trying to to give you a hard time, but the Godot docs imply you can do something like

var myHelperClass = load("res://path/to/helper.gd")
var helper_instance = myHelperClass.new()

And then use the object as in any other OOP language. (w/ modifications from external sources done via setters/getters) Is that not the case?

>>
No. 213
>>214 >>217

Been working on a visual novel. I'm the artist. Using the live2d for the models to then export them to VisualNovelMaker. I have very limited coding knowledge sadly so I'm stuck with VNM an its shitty outdated live2d software compatibility.
Planning to do 4 characters for the playable beta. Then add 3 more characters. Each with 2-3 outfits with their respective animations and interchangeable expressions. I'm planning to do a simple turn based combat system with simplified models too but still up to scrap that idea
So far I have 3 characters draw. I been focusing on the magical girl to really polish her parameters to then just copy-paste the settings to the other characters to save time.

>>
>>
No. 215
>>222

Sorry for link dumping, but I'm not familiar with godot(want to learn though) so I figured I should just post links.

>>209

Is this what you mean?
https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/gdscript_basics.html#coroutines-with-yield
This seems similar to generators in javascript.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/yield
python generators are more something you'd see in a functional programming language, which I don't think gdscript supports considering you can't pass around functions. Though first class functions are planned for 4.0

>>211

https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/gdscript_basics.html#classes
https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/gdscript_basics.html#classes-as-resources
The last link seems to support what >>212 says.
There are also static functions, and the autoload/singleton pattern, which I think are related to what you're talking about?
https://docs.godotengine.org/en/3.1/getting_started/step_by_step/singletons_autoload.html

>>
>>
No. 222

>>215
>Is this what you mean?

Yes. Gdscript generators can receive no arguments, in which case they just interrupt the execution of the function, or they can receive two arguments, one "object" which is just a specific class and one "signal" that comes from that object, in this case the function will be interrupted until the object emits that signal. No value can be returned from the function through yield.

>>212

Yes, but get this: functions currently cannot receive helper scripts as arguments! So you can't do (I hope it's code tag that's used here):
[code]
var myHelperClass = load("res://script.gd").new()
function(args, myHelperClass)
[/code]
Because of a fucking BUG! The only way to do something like this currently is pass a function reference for each function of the helper script you want to use and store that within a class variable. I haven't tested this yet because it's absolutely brainlet way, instead I instantiated the script within every instance (which is also super brainlet, but what else am I gonna do?), surely causing a memory bloat because each instance must execute code and there's probably a lot of stuff going on in there.

>>215

I didn't know about singletons, thanks for the link. I haven't tested it yet, but it probably won't work for my case as I doubt that the classes will have access to them. Currently, classes have no way of getting anything from their parents unless you pass it as argument, and I don't see how singletons would be different. Still, nice to know about it. If I test it and turns out you actually can do it, I'll post here.

Again, it feels like I'm always working around the language, rather than with the language. I hope 4.0 smooths things out, because right now it's an absolute nightmare. First class functions will be a nice addition indeed. I have lost counts of how many times I wanted to use a map() function to convert my orthographic coordinates into an enum I defined, or to filter an array of coordinates with only those that are inside a specific volume. Though without having access to them from inner classes, even these things will be of limited use.

>>
>>
No. 226
>>227 >>228 >>229 >>233

Pic related is the sketch of the "official" art for the second character

>>214

I'll stay in this thread until I feel like the (You)'s I get justify it

>>217

I tried Renpy some time ago but I want to stay away from coding as much as possible. Adding another thing to learn will probably slow me down more than I need. Seems like there is a way to make the models work on Renpy but is pretty primitive and limited compared to VNM

>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
No. 310
>>311

Balancing my three MMO classes.

I've recently put level restrictions on gear, and given each class a starting spell to make combat more engaging. Now I need to balance the combat performance of each class to make sure they're not too hard or easy, or too different from each other.

Pic related: the results of playing through the tutorial with each class.

>>
>>
>>
>>
>>
>>
>>
No. 359
>>360

>>358

Anon, don't give up. Think about 2d wifus.
<Progress since demo day.

>Added colour correction, but decided it's better to add it after I have content
>Added background music but end up removing it as well
>Added fire
>For the 5th or so time refactored movement

I have a feeling it isn't the last one
For now I'm woking on adding levels but have no idea what I'm doing yet.
Also, dude I'm working with made cool posters.

>>
>>
>>
>>
>>
No. 376

>>375

This webm was to show off a bit of my engine I'm making, basically I managed to add some hooks in (onCollision) so I could make the shots disappear when they hit the wall. It also returns what object they collided with, so you can shoot doors open. I may post it for demo day, but it'll be more of a beta to get some playtesting in before I actually enter the game in

>>
>>
>>
>>
>>
>>
>>
>>
>>
No. 413
>>414

Half from LPC. Other half is art guy.
Had an ambitious plan for this week but failed miserably.
But still, weekly progress

>Added hand to indicate interaction
>Implemented walking into water
>Made tutorial for art guy how to make levels.

Last one took a lot of time

>>
>>
>>
>>
No. 421

>>418

Yes, I had seen those when I was considering which algorithm to use. But going through someone else's code is pain and I thought it would be best to try to do it myself.

That's when I realized WFC sucks for 3d. It's possible, but very very inefficient. In 2d space, every coordinate must have something in it. There's no empty space, empty space would just be another tile called "air". This isn't the case in 3d space, it is naturally a sparse matrix where most of the available space is empty. Yet in WFC the algorithm is designed to fill every cell with all possible choices at the start. In 2d, that makes sense, since you'll have all cells having something, but in 3d that's not the case.

And then there are the memory constraints, in 2d you have T·R·N², for a tileset with T tiles, each having R possible rotations, then you have 0 < R ≤ 3 if there's no mirroring or 0 < R ≤ 18 if there is mirroring. For 3D, you get T·R·N³, with 0 < R ≤ 22 for no mirroring, and 0 < R ≤ 2688 if you have mirroring in each axis or any axial combination (2³ for each individual axis, 2³ for each combination of 2 and 2 for all three together, times 21). You quickly explore in memory required to fill every cell with every possible combination of tiles and rotations.

The approach I'm taking is much simpler and requires way less memory and computation.

>>
>>
>>
No. 424

Weekly progress

>Added small splash animation
>Continuous integration

Dumped a lot of time to setup actions on GitHub. But now it automatically deploys to itch.

>Pioneress now can do emojis

Hope, CI will payoff in the long run. It took a lot of effort.

>>
No. 429

>>427

I played it and it and enjoyed it, even though I'm not very good at it. I think one thing that would help would be if the cool down within the crosshair was more clear and easy to read. It kind of gets lots when I'm focusing on other things. Perhaps something visible on the ship itself and a sound when the parry/attack is ready.
I really like the top down melee combat feel. Parrying an attack and then floating around to the side/back to deliver a shock is great.

>>
>>
No. 431
>>432 >>441

Weekly progress

>Finally made a menu
>Arts guy made decent looking level
>I had to refactor this unmanageable mess with few dozens of objects

On the bright side I was forced to learn to make tiles that are bigger than one tile.

>>425

Terry would be proud

>>
>>
>>
>>
>>
No. 437
>>438 >>440

I am trying to do some stuff in Godot but is bugging like hell. The most common bug is with the canvasmodulate, when i try to click to put invible, nothing happens. But the most bug that smashed my braing with a big "FUCK YOU" is losing my tilemaps after the function autotile just doesn't work, i saved and reopen my project, and when i see the shit "Where in hell is my furniture?" this break my leags. Fuck that, i am using the 3.2.1, i will try to update to 3.2.2.

Godot is like dating a latin girl, you have sex and may a few problems that got you upset.

>>
>>
>>
>>
No. 445

Okay I am done with elevation stuff for now. It doesn't look as cool but this system conveys more useful gameplay information. The world generates actual heightmaps from the tiles, a bit like battle maps in Total War. You will literally be able to climb that mountain. Next up is flora and wildlife generation before another demo release

>>
>>