Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Vapourware Codexian Game Development Thread

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,334
Insert Title Here RPG Wokedex Codex Year of the Donut Codex+ Now Streaming! Steve gets a Kidney but I don't even get a tag.
Thing I like about Unity is you can put anything under a "GameObject" item in the hierarchy and manipulate it as a whole. Like say, you wanna move the GameObject, all you have to do is just use the transform.translate command. I'm not sure if the other game engines do this as well.

Hierarchical transformations are kinda standard in engines, though how they're set up depends on each engine. But it is how you get, e.g., a gun attached to a model's hand. Some engines have the world itself be a hierarchy and use that for transformations while others separate the scene hierarchy from the world organization and require explicitly mentioning any transformation relationships. Each have their pros and cons, e.g. with the former you can simply put a ball node under a box node to have the ball move together with the box but then the ball is also "owned" by the box whereas in the latter you can have the ball and the box at the same level of ownership (both owned by the world or layer or whatever) and you specify that the ball has the box as its transformation parent so that moving the box also moves the ball. The end result is the same, but i think the latter is more flexible as it separates ownership from transformation.

How's Godot for 3D?

They have this image at their github:

editor_tps_demo_1920x1080.jpg


So i guess unless your game needs more advanced 3D than that, it'll be fine (the shot seems to lack shadows but i've seen shadows in Godot screenshots elsewhere, perhaps this is for mobile phones since i notice a GLES3 at the top right corner which is what mobiles tend to use).
 
Joined
Jan 14, 2018
Messages
50,754
Codex Year of the Donut
So i guess unless your game needs more advanced 3D than that, it'll be fine (the shot seems to lack shadows but i've seen shadows in Godot screenshots elsewhere, perhaps this is for mobile phones since i notice a GLES3 at the top right corner which is what mobiles tend to use).
That's a pic of the game in the editor, not the game running.
The GLES backends are largely being deprecated in the next major release in favor of the new vulkan renderer. Considering the Unity SNAFU with deprecating their old builtin renderer and the SRPs being immature(Unity just loves to deprecate working tech for new, untested tech that keeps changing), it's probably better to use godot at this point for a 3D game as the user-facing components will remain unchanged sans new, modern features.
for transparency's sake, I'm one of their donors on the godot patreon.

FWIW Godot's scene composition is IMO superior to Unity's architecture. If you're familiar with Unity, Godot "scenes" are basically just the equivalent of a Unity prefab and they're all nestable.
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,334
Insert Title Here RPG Wokedex Codex Year of the Donut Codex+ Now Streaming! Steve gets a Kidney but I don't even get a tag.
That's a pic of the game in the editor, not the game running.

Yeah i can tell :-P. But that shows something that is possible in Godot (meaning that you can do at least that, possibly more), which IMO is enough for most small indie games out there - honestly taking advantage of even that graphical fidelity is something that most smaller indies cannot even do (and release a game with it - you can make an uber-realistic AAAA+ styled character head but that doesn't mean you can finish an entire game on that fidelity as a small indie developer... well, unless perhaps the game is a barbershop simulator i guess :-P).
 
Joined
Jan 14, 2018
Messages
50,754
Codex Year of the Donut
That's a pic of the game in the editor, not the game running.

Yeah i can tell :-P. But that shows something that is possible in Godot (meaning that you can do at least that, possibly more), which IMO is enough for most small indie games out there - honestly taking advantage of even that graphical fidelity is something that most smaller indies cannot even do (and release a game with it - you can make an uber-realistic AAAA+ styled character head but that doesn't mean you can finish an entire game on that fidelity as a small indie developer... well, unless perhaps the game is a barbershop simulator i guess :-P).
Didn't mean anything rude by that, actually meant to quote the part about the lack of shadows.
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,334
Insert Title Here RPG Wokedex Codex Year of the Donut Codex+ Now Streaming! Steve gets a Kidney but I don't even get a tag.
Doesn't the editor render the shadows in the viewport though? I'm sure i've seen shadows in editor in screenshots so i do not think it being in the editor matters.

Anyway, i noticed the screenshot is from 2019 and apparently they've been working on a new renderer with GI support since 2020:



That will be in Godot 4 though which isn't out yet (though i guess you could just download the source code from the repository and build it yourself).
 

cw8

Cipher
Joined
Oct 7, 2014
Messages
677
They have this image at their github:

editor_tps_demo_1920x1080.jpg


So i guess unless your game needs more advanced 3D than that, it'll be fine (the shot seems to lack shadows but i've seen shadows in Godot screenshots elsewhere, perhaps this is for mobile phones since i notice a GLES3 at the top right corner which is what mobiles tend to use).

Looks really good. Already better than anything I can come up with. I can't do 2D art if my life depended on it. I can do technical 3D models and environments but fall flat on 3D organic models. So I can pretty much only do 3D.
Good to know there's Godot to rely on if Unity goes to shit.
 

CryptRat

Arcane
Developer
Joined
Sep 10, 2014
Messages
3,625
On the topic of keeping your own tools in a shady state because nobody else will use those tools, here is one : after only 3 years using it that way, on this glorious morning I took half an hour to finally make a window with a tile type menu which can be used instead of the mouse wheel alone to choose the type of tile you want to put on the map. Better, since obviously I'll still only use the mouse wheel since I know the sequence and am used to this way now, I also fixed a bug which made mouse wheel not work anymore when loading a second map and then forced you to close and launch the editor again whenever you wanted to work on another map.
CM6LtBO.png

This is the first map of a dungeon I worked on even before making To Hell With Guns, with some minor changes since the first iteration. The gimmick of this map was reused in To Hell With Guns while the gimmicks from some of the other floors I have not used yet so it's likely they will appear some day. It's not even impossible that this dungeon at all will appear some day, the gimmicks tend to fit some high tech settings so using it for a sequel to Note of the outskirts is really not out of the question.
 

Nathaniel3W

Rockwell Studios
Patron
Developer
Joined
Feb 5, 2015
Messages
1,305
Location
Washington, DC
Strap Yourselves In Codex Year of the Donut Codex+ Now Streaming!
Doesn't the editor render the shadows in the viewport though? I'm sure i've seen shadows in editor in screenshots so i do not think it being in the editor matters.

Anyway, i noticed the screenshot is from 2019 and apparently they've been working on a new renderer with GI support since 2020:



That will be in Godot 4 though which isn't out yet (though i guess you could just download the source code from the repository and build it yourself).

Is that Roman balcony with draped cloth a standard setting for light testing? I swear I've seen it before. Years ago I saw a UDK or UE lighting demonstration in that same building that showed how reflected light from the colored fabric changed the color of the walls around it.
 
Joined
Jan 14, 2018
Messages
50,754
Codex Year of the Donut
Doesn't the editor render the shadows in the viewport though? I'm sure i've seen shadows in editor in screenshots so i do not think it being in the editor matters.

Anyway, i noticed the screenshot is from 2019 and apparently they've been working on a new renderer with GI support since 2020:



That will be in Godot 4 though which isn't out yet (though i guess you could just download the source code from the repository and build it yourself).

Is that Roman balcony with draped cloth a standard setting for light testing? I swear I've seen it before. Years ago I saw a UDK or UE lighting demonstration in that same building that showed how reflected light from the colored fabric changed the color of the walls around it.

That's Sponza, a common test mesh for lighting purposes.
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,334
Insert Title Here RPG Wokedex Codex Year of the Donut Codex+ Now Streaming! Steve gets a Kidney but I don't even get a tag.
It is also an actual place in Croatia:

1280px-Pati_del_palau_Sponza_de_Dubrovnik.JPG


The 3D model was made by an artist (i do not remember his name) some years ago. The original version didn't had the colored cloths hanging, but they were added at some point around 2011 to show off some GI method (i think it was done by the guy who came up with SVOGI).
 
Self-Ejected

TheDiceMustRoll

Game Analist
Joined
Apr 18, 2016
Messages
761
im doing ok in this unity thing

for the most part, I'm not going insane. yet. i keep running into weird roadblocks because of my own error, but im having fun. this roguelike is gonna blow you people's minds.
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,334
Insert Title Here RPG Wokedex Codex Year of the Donut Codex+ Now Streaming! Steve gets a Kidney but I don't even get a tag.
KgQK8aM.gif


The last couple of days i worked on a simple profiler for Free Pascal programs under Windows since i couldn't find anything that worked (pretty much all profilers for native code under Windows seem to assume you are using Visual C++'s PDB files and i found only one that can use DWARF debug info - but then it didn't work :-P).

1.5 of those days was spent writing the DWARF parser. Initially i had a STABS parser which i wrote on ~30 minutes as STABS is a very simple format, but then i realized it doesn't work with 64bit applications - this was fine for profiling Post Apocalyptic Petra but i also wanted to use it for profiling Little Immersive Engine which is 64bit and until now i had to reboot to Linux to use perf (which is a PITA largely because i do not have a permanent installation but i boot from a USB which is both slow and i have to reinstall all my development tools every time i boot - including downloading and recompiling Free Pascal itself to apply a custom patch i wrote for it). So i had to also implement DWARF which was certainly more complicated.

The DWARF vs STABS case also shows what is wrong with modern technology, e.g. to figure out line numbers:
  • STABS: line N is between address A and B, stored as an entry in a simple table
  • DWARF: to obtain line numbers you need to implement a virtual machine that will execute some bytecode stored in the debug data which, after executing it, will build a table that you can use to associate addresses and line numbers
Of course everyone decided that DWARF is the better option (even though STABS is simpler, faster to parse and more extensible). Supposedly this was done to save disk space but a) that was in ~1992, many debuggers switched to DWARF years later when disk space was less of an issue and b) STABS was written several years prior to DWARF yet its encoding didn't seem to be much of an issue for disk space. One issue with STABS is the use of 32bit addresses which wouldn't work with 64bit applications, but that is trivial to fix (since you do not need the both debug infos in the same program anyway) and indeed there was a proposal to do exactly that but it never went anywhere since DWARF exists anyway (a great example of how shitty stuff suck the air out of better solutions just by existing).

Anyway, rant over, here is the profiler :-P

http://runtimeterror.com/tools/fpwprof/

Even though this is made primarily for Free Pascal it can also be used to profile MinGW programs (C and most likely C++ and other languages using DWARF, but i didn't try that, i only tried C) though you need to explicitly specify that DWARF version 2 is to be generated (unlike STABS there is version info in DWARF which gives free license for breaking compatibility...) using (in both GCC and Clang) the -gdwarf-2 parameter.

The profiler is quite simple at the moment but should be enough to give an idea of where the time is spent in a program. I might add some more stuff later.
 
Self-Ejected

TheDiceMustRoll

Game Analist
Joined
Apr 18, 2016
Messages
761
SYHlRVH.png


I am getting there! :happytrollboy:

I was having trouble even into the late part of the most recent module of the course. They'd be like "create a method" and I'd just sit there like:

675-6755238_brainlet-wojak-pepe-png-download-brainlet-meme-transparent.png


Thankfully I'm getting better. Not exactly a pro, but I'm learning a lot. Things are making sense, and from what people are telling me, the thing with coding is once you can generally use the tools, the entire thing with game development on the coding side(not the design side) is to just think about it like it's a puzzle, which is way more interesting than I thought it would be. Anyway wahoo and Bing Bing Bahoo
 
Last edited:

Morpheus Kitami

Liturgist
Joined
May 14, 2020
Messages
2,697
I had a thought about skill systems today. One of the games I'm working on right now is a RPG/adventure hybrid, and its going to have quite a few skills in it. I thought about the usual way of introducing skills, just a description of it somewhere, maybe a short tutorial, but then I had that thought. Why not have the first section be a tutorial...except instead of being all "do x by doing y", just have the player do whatever comes naturally, and then afterward a message pops up saying "you did y? now you're skilled at x". There would still be descriptions of skills and what-not, but in theory, this should cut down on new players confusion. The only problems I can see are this not being helpful to some and making the tutorial section slightly more annoying to replay.
 

Nathaniel3W

Rockwell Studios
Patron
Developer
Joined
Feb 5, 2015
Messages
1,305
Location
Washington, DC
Strap Yourselves In Codex Year of the Donut Codex+ Now Streaming!
..The only problems I can see are this not being helpful to some and making the tutorial section slightly more annoying to replay.

I think a tutorial has to be "press X to do Y." Half of your players will hate the game because they never learned some critical skill because they just never tried that combination of buttons. And everyone will complain "there's no tutorial."

Where the Water Tastes Like Wine looks like it's pretty successful now, but it had a really rough start on PC because it didn't have a tutorial. The devs designed it with consoles in mind, and they assumed that if you play on a console you'll press a button on your gamepad and just figure out what it does. PC players hated the game because it didn't have fast travel on the world map. It actually did have fast travel, but PC players never figured it out because they never pressed the right key.
 
Joined
Jan 14, 2018
Messages
50,754
Codex Year of the Donut
The best tutorial in any game I've played is that new star wars game(Fallen Order), it should be mandatory for every game designer to play the first level.
 
Unwanted

Savecummer

Latest Doxxer Account
Edgy
Joined
Mar 6, 2021
Messages
330
1.5 of those days was spent writing the DWARF parser. Initially i had a STABS parser which i wrote on ~30 minutes as STABS is a very simple format, but then i realized it doesn't work with 64bit applications - this was fine for profiling Post Apocalyptic Petra but i also wanted to use it for profiling Little Immersive Engine which is 64bit and until now i had to reboot to Linux to use perf (which is a PITA largely because i do not have a permanent installation but i boot from a USB which is both slow and i have to reinstall all my development tools every time i boot - including downloading and recompiling Free Pascal itself to apply a custom patch i wrote for it). So i had to also implement DWARF which was certainly more complicated.
generate map file, convert to pdb, use existing tools, lotsa time saved
https://github.com/andremussche/map2dbg/tree/master/tds2pdb

How are you getting stack addr or eip or whatever the address is called? Debug privs, CreateRemoteThread and thread CONTEXT?
 

Morpheus Kitami

Liturgist
Joined
May 14, 2020
Messages
2,697
I think a tutorial has to be "press X to do Y." Half of your players will hate the game because they never learned some critical skill because they just never tried that combination of buttons. And everyone will complain "there's no tutorial."
I don't think we're on the same page here, its not the kind of game where you can really miss the controls, its the usual bog-stand arrow keys + enter + esc. (though I'll mention that anyway, since its expected even if its obvious) I wasn't referring to skills in the sense of a RPG that throws out button combinations like a DMC game, skills more like in Morrowind or a DnD game, persuade, sword, lockpicking, that kind of skill.
 

Noddy

Augur
Joined
May 29, 2008
Messages
220
ncDOs3u.png



I have somehow fucked up blobber combat. Months spent making the most bloated, irratating, retarded mess of a system possible.
I cannot deny the world my ms paint art skills though, so the game must go on.
Look at that grass.
Bootiful
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,334
Insert Title Here RPG Wokedex Codex Year of the Donut Codex+ Now Streaming! Steve gets a Kidney but I don't even get a tag.
generate map file, convert to pdb, use existing tools, lotsa time saved
https://github.com/andremussche/map2dbg/tree/master/tds2pdb

That'd be duct-taping together a bunch of unrelated tools, an approach that has a tendency to fail. However after noticing how long the DWARF spec is, parsing the MAP files is something i considered doing - but ended up not doing because the MAP files do not contain enough information.

Also the tool you linked wouldn't be useful at all, i am using Free Pascal which only generates STABS or DWARF debug info and it's MAP files have a very different format from the one Delphi uses (TBH FPC's format seems to be both too verbose *and* harder to parse compared to Delphi's *and* doesn't have all the info you need - from a quick look at a Delphi 2 project i generated MAPfile from just now it looks like parsing Delphi's MAP files would be trivial to implement).

At the end of the day even though i spent some time getting things working i think it was The Right Thing to do as it provides a pretty much frictionless UX for measuring performance - i just run the program with debug info enabled, capture some samples and generate a profile. No need to mess with conversion tools or whatever and i also get to start/stop the profile whenever i want using the global shortcut keys (that i'm not aware of any tool to provide). I do need to implement stack capturing at some point though, but that is something i'll do at some point later.

How are you getting stack addr or eip or whatever the address is called? Debug privs, CreateRemoteThread and thread CONTEXT?

I use tlhelp32 snapshots followed by OpenThread for each thread and SuspendThread->GetThreadContext->ResumeThread to get the control registers (which include EIP/RIP). The entire code is in TMain.CollectSamples in the umain.pas file. The entire program is rather short (amusingly, the DWARF parser is about twice the size of the rest of the program :-P).
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom