Godot's turn

Post and discuss creative ideas

Godot's turn

Postby AcetheSuperVillain » Sat Apr 07, 2018 4:38 am

Hey, what's up.

The story so far:

I have a 3D Animation degree. I'm going to fucking use this thing. I started with Flash, thinking I could do some 3D prerenders. I was going to make Astro Vulpus, but when I tried to put a 3D video file into a Flash game, the Flash program completely crashed. Okay, fine, Flash is supposed to be dying off anyways, let's try Unity. GOD DID i HATE UNITY. Just, UGH. So next was RPG Maker. This was nice. Lotsa plugins, minimal programming on my part, and it's designed to handle giant graphics and movie files. But... it is a 2D program, and there are some things it just can't do that someone with a 3D Animation degree really should be doing.

So now it's Godot's turn.

I went looking for 3D game creation software and saw that Godot is MIT open source and downloadable through Steam, so I figured, sure, what the hell. I tried it a little bit today, kinda pleased with it, but then I was also pleased with Unity at this point, so it bears further examination. One of the final straws against Unity was when I tried to update an animated character file and it took me all of an hour to figure out how to correctly replace the file and make the new animation usable. I did try updating an animation in Godot and it worked effortlessly, so that's at least one point for the new guy.

A quick look suggests that there isn't nearly the same level of interest and number of tutorials for Godot as there was for Unity. So I'm not sure how willing or able I will be to slog through documentation and find what I need. The obvious thing would be to start with a simple type of game, which might mean Scrolling Shooter, which might mean a return to Astro Vulpus. My dream would be to make beat 'em ups again, I did this a lot in Flash, and I started to do this a couple times in Unity, but I couldn't get used to Unity's particular way of handling OOP. Godot's way of handling OOP seems to be similar to Unity's, but not exactly the same, so who knows. My philosophy towards beat 'em ups is that they are a more complicated form of scrolling shooter, so I would still make a scrolling shooter first for practice.

I actually started looking at 3D programs again because I'm sort of thinking of making my own SimBro style game. I was thinking of doing this in RPG Maker, but I can't do SimBro's randomized body types and animations with pre-rendered 3D, which I think is what people actually like about the game. I'm not currently in any position to claim whether or not a SimBro clone would be plausible in Godot yet. In the distant past, I floated the idea of making my own Splatformer game in Unity. There are some tutorials related to platformers for Godot, so that might actually be plausible. But I believe I put it to a vote and Astro Vulpus beat Splatformer, so a return to Astro Vulpus is more likely.



Anyways, if anyone else out there is also looking at Godot, I would be happy to share notes and maybe throw you some 3D files to test things out.
User avatar
AcetheSuperVillain
 
Joined: Tue Feb 03, 2015 9:27 pm
Location: Space

Re: Godot's turn

Postby FMPraxis » Sun Apr 08, 2018 9:57 am

Although I've mostly used it for 2D games, I have been using Godot for over a year now. The main advice I have for starting with it is that the engine is designed for every scene to have a root node (for characters this is almost exclusively a Physics object) and some number of child nodes (graphics, collision boxes, animations, etc). Scripts are kind of intended to only be placed on the root node, although they can be attached to any node in the scene tree if you want or need to do so.

As far as OOP is concerned, I have planned to use inheritance a few times, but so far I've always ended up just generalizing and reusing the one original script. If you do use inheritance, remember not to put actual code in your base class' _ready() function (I would avoid any _ prefixed function) because this is not overridden. Instead, both functions will run (like always calling super() in ActionScript)

As for tutorials, the real tutorials for Godot are the Demo files. you can find them here for version 3.0 and here for version 2.1 (both are stable/current right now afaik and I don't know which is on steam)
FMPraxis
 
Joined: Mon Jun 25, 2012 10:14 am

Re: Godot's turn

Postby Duoiz » Sun Apr 08, 2018 1:32 pm

Simbro 3d would be nice, and as you said, the random body types/hair styles are one of the main points of the game, since it allows for so many diffrent types of characters, especially with the trait system. Seeing someone wanting to pick up the projects makes me happy, but I want to point out that unlike in 2d, you can't just exchange the body, (well you could, but that would limit you by alot, almost to the point of sending you back to rpg maker), you need to have it be fit for rescaling, like in most modern mmorpgs where you can scalle diffrent body parts.
From what I have seen, very few programs support this from the get go, especially free 3d engiens... and it isn't easy to program, the models must also support this, and that limits the free assets you can use, but since you have a degree, perhaps you can make your own, after all, one rescallable body would be enough... more or less... unless you add something like tails and animal ears...
I would recommend however you make sure that Godot supports that kind of reshaping of the character model, while it retains its original animations. If you can get that work, you should more or less be able to use 1 body, and then just change sliders to adjust, hips, stomache, chest, and perhaps some facial features.... (think skyrim sliders? maybe?)

I wish you all the best of luck.

TL;DR Make sure Godot support rescalling of the 3d model, while retaining the animation.
Duoiz
 
Joined: Wed Mar 30, 2016 7:13 pm

Re: Godot's turn

Postby AcetheSuperVillain » Sun Apr 08, 2018 2:34 pm

@FMPraxis: Yes, I think I've got the root node thing down, this is actually a lot like how I did blit and 3D games in Flash, where there's basically separate physical and graphical parts all working together. Steam has Godot 3, and actually all of those projects you linked to are already included in the download. I have yet to try any inheritance stuff. Having a decent inheritance system will be important if I try to do beat 'em ups. There's basically a lot of... let's say physics, that ever game character needs to have and be exactly the same, and then a lot of character specific moves and stats that need to be different, so copying and rewriting every character is just asking for errors and bugs.

@Duoiz: You can totally just exchange bodies in 3D. You just make a bunch of meshes that are rigged to the same skeleton and they will use the same skeleton animations. In Unity (I don't know about Godot yet) you even had separate animations and skeletons, so you could actually load an animation onto a new skeleton, and it will totally run as long as it has all right bones.

Unfortunately, if you're doing sex animations specifically, you run into problems if you need to line up 2 people. For example, if you have a boob groping animation, and you have one female with small boobs and one with big boobs, the groper's hand needs to be in 2 different places for each body. And it's trickier to line up their nads because this means aligning their centers of gravity which are generally the root bones which then impact all the other bones. To do this right, you're talking about run-time inverse kinematics, which [img=http://docs.godotengine.org/en/3.0/tutorials/3d/inverse_kinematics.html]Godot is apparently capable of[/img], but this is where you need someone who is more of a programmer than an artist. Likewise, having MMO style body sliders is going to be more rigging and programming than I want to take on anytime soon.

I could get around this for a smallish game by having a few specific body types, like small, average, large, and then do specific animations for small M x small F, small M x average F, small M x large F, small F x small F, etc. Theoretically, this would not be as difficult as making a new animation from scratch, since I can copy the previous animation and move a few things around.

And even though I looked into Godot with SimBro 3D in mind, thinking about making games again really makes me want to do the arcade games I used to love. I always wanted to make a River City Ransom type game. I thought about combining RCR with SimBro, so basically, instead of SimBro's bland slums screen, you actually go out and explore the city, as you do in RCR fighting randomized gangs and finding hookers out in the streets. But I think maybe having both a brawler game and brothel simulator in one might be too complicated a game for people to enjoy. I might do more of a dating sim thing, where you prowl the streets beating people up for money, and then there's some girls hanging around in safe areas that you can spend money on and they'll put out once your relationship is high enough.
User avatar
AcetheSuperVillain
 
Joined: Tue Feb 03, 2015 9:27 pm
Location: Space

Re: Godot's turn

Postby FMPraxis » Mon Apr 09, 2018 11:23 am

Godot prefers a more data-driven approach over OOP, but you absolutely can use inheritance. As I mentioned, the really important thing is to be careful with the built-in "_" functions in base classes. the usual thing to do is something like this in your base class:

Code: Select All Code
func _ready():
   ready()

func ready():
   #your code here
   pass


for each of these functions you use and then you just need to override the second function in classes that inherit from it.

Edit: If I remember correctly, they decided not to do this for the C# binding, so if you're okay with C# that might be better for what you're asking to do.
FMPraxis
 
Joined: Mon Jun 25, 2012 10:14 am

Re: Godot's turn

Postby AcetheSuperVillain » Mon Apr 09, 2018 10:27 pm

Alright, so I did some more looking into this today, Godot has an amazing ability to let different objects communicate with each other. This all looks incredibly easy, like too good to be true easy.

For anyone else looking at Godot, it seems like you don't even need to inherit code like I would have in Flash. If I had something like a scrolling shooter, I would want one parent code for enemies that says like, here's what to do if you get shot, here's what to do if you go off screen, etc, and then individual enemy files have code like, this one moves down, this one moves towards the player, this one shoots, etc. And you'd have something like [Shooty_Enemy extends Basic_Enemy] and [parent.code(); my_code();]. I think you can still do this in Godot, but you could also just write the generic enemy code in a global class and then run that code from the specific enemy class. like: var generic_enemy = preload("res://generic_enemy.gd"); and then later: generic_enemy.check_for_bullets(); generic_enemy.shoot(big_bullet, 3, generic_enemy.SPREAD); etc.

I need to run some tests to see if it all really works the way I think it will, but if it does, holy shit, this is like a dream come true.
User avatar
AcetheSuperVillain
 
Joined: Tue Feb 03, 2015 9:27 pm
Location: Space

Re: Godot's turn

Postby AcetheSuperVillain » Sun Apr 15, 2018 6:03 pm

Okay, so first potential hurdle has presented itself. I tried to export to HTML5, but this doesn't seem to work. EXE export works fine, but I'd rather have web. Anyone have any experience with this?
User avatar
AcetheSuperVillain
 
Joined: Tue Feb 03, 2015 9:27 pm
Location: Space

Re: Godot's turn

Postby Golrim » Sat May 12, 2018 7:05 am

Have you manage to get the HTML5 work? I tried it myself and find that it only works on Firefox, but not on Chrome or internet explorer. From what I read online it has something to do with Chrome not being able to support Godot HTML exports, but too many discussion on the topic made it difficult to figure out the problem.

Also how is it going with Godot? It was interesting seeing someone talk about it on this forum.
Golrim
 
Joined: Mon Feb 19, 2018 8:16 am

Re: Godot's turn

Postby AcetheSuperVillain » Sat May 12, 2018 4:32 pm

I've only been trying 3D, and I would say, no, Godot HTML5 doesn't work. To my knowledge, this is because Godot's HTML5 export isn't completed yet, they're working on it and they'll get it eventually.

I'll share some of my progress so far, this is a quick game based on my old Super Sandboard Babe: https://www.newgrounds.com/projects/gam ... 45/preview

And this is the start of a new game based on Astro Vulpus: https://www.newgrounds.com/projects/gam ... 38/preview
User avatar
AcetheSuperVillain
 
Joined: Tue Feb 03, 2015 9:27 pm
Location: Space

Re: Godot's turn

Postby Golrim » Sat May 12, 2018 6:18 pm

I tried both links on Chrome (didn't expect it to work), and Firefox which they both happen to load the game but froze the browser page half way through the load. I gave it some time to load but there wasn't any progress with the window functioning other than performance warning. I have a decent computer and I take good care of it making sure it runs correctly so It's has to be the HTML exporter not working.
Golrim
 
Joined: Mon Feb 19, 2018 8:16 am

Re: Godot's turn

Postby AcetheSuperVillain » Sun May 13, 2018 2:37 am

You might want to check your settings, because I know they work on my computer and they have worked for other people. There are audio and graphic problems, but it should work some of the way.
User avatar
AcetheSuperVillain
 
Joined: Tue Feb 03, 2015 9:27 pm
Location: Space

Re: Godot's turn

Postby Golrim » Sun May 13, 2018 8:06 pm

I didn't do something to get the game to work in Fire Fox I just had to wait longer than before. Chrome however still dosn't work. Now as for the games I would say Godot does pretty well with 3D however the load time and performance issues is a problem on my end, but I didn't encounter any graphic issues and audio I'm uncertain of.

Now i'm not sure how far you planned ahead for you SimBro like game, but have you come up with a solution for customizing colors and material ? I worked in Unreal Engine to study it's material methods and found some interesting techniques I was able to replicate in Blender, however in the recent Godot 3.0 I haven't been able to locate their node editor and only found shader script, believe it was removed. Anyways I was ask if you know about bitmap material masks where you use RGB to represent material vs the polygons themselves. This technique is mostly used in detail, but it could help when you try to achieve low poly count. At the moment I don't know much about the shader code yet to see if this method works, but if it does work you'll be able to work and edit with great details.
Golrim
 
Joined: Mon Feb 19, 2018 8:16 am

Re: Godot's turn

Postby AcetheSuperVillain » Wed May 16, 2018 1:14 am

So supposedly, the materials are actually more costly to performance than polygon count.

I haven't really thought about doing a SimBro type game yet. My favorite games are arcade, so I'm exploring that first, although for the moment, I'm mostly doing models and rigging, not too much Godot programming yet.

But if I were going to do custom colors, I know that 3D materials in general tend to be inflexible compared to 2D images. If you wanted something like multiple colors of the same hairstyle, you'd probably have to make a bunch of copies of a particular mesh as .tscn each with a different material with a different uv texture file. But I did a quick search and apparently Godot can make materials unique by using duplicate() on resources, so I guess you'd be able to give them a custom material or texture through code at run time.

I know how to do a material mask in Blender, (not off the top of my head, but I've done it before) but I have no idea how to do any sort of material compositing in Godot. I haven't looked at shader coding at all.
User avatar
AcetheSuperVillain
 
Joined: Tue Feb 03, 2015 9:27 pm
Location: Space


Return to Discussion



Who is online

Users browsing this forum: No registered users