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

zwanzig_zwoelf

Graverobber Foundation
Developer
Joined
Nov 21, 2015
Messages
3,106
Location
デゼニランド
And what exactly are you trying to achieve with this?
I am a solo developer.
It sounds a great idea to have tests. I modifying a program and running the tests I am sure I have not ruined the system.
But I cannot imagine how I can achieve that.
For example one of the player characters is attacking a monster. I have to create a PC and a monster. Then execute the attack, look at the result. But there is a lot of randomness. It is crazy.
It's a good idea on paper, but in reality it sounds like a lot of additional work that may not yield the desired gains unless you're working as a team and you're working on a big project.

What I can suggest is to write your code in a modular fashion and in a way where individual elements can be tested, so you can test your changes very quickly without fear that it will affect another part of the program.

And of course, don't start producing content until the core game and tools are ready.
 

J_C

One Bit Studio
Patron
Developer
Joined
Dec 28, 2010
Messages
16,947
Location
Pannonia
Project: Eternity Wasteland 2 Shadorwun: Hong Kong Divinity: Original Sin 2 Steve gets a Kidney but I don't even get a tag. Pathfinder: Wrath
What I can suggest is to write your code in a modular fashion and in a way where individual elements can be tested, so you can test your changes very quickly without fear that it will affect another part of the program.
Do you have advice on how to do this? I read about this design philosophy at other places as well, but I don't really know who to get started, so my projects are always a jumbled mess, where if I change something, it will brake another thing.
 

RPK

Scholar
Joined
Apr 25, 2017
Messages
339
What I can suggest is to write your code in a modular fashion and in a way where individual elements can be tested, so you can test your changes very quickly without fear that it will affect another part of the program.
Do you have advice on how to do this? I read about this design philosophy at other places as well, but I don't really know who to get started, so my projects are always a jumbled mess, where if I change something, it will brake another thing.

I would start be reading a little bit about the single responsibility principle. each module (class) of your code should do one thing only.

after you can start reading a little about the other parts of the SOLID principles, but not all of them are as equally applicable in game dev, imo.
 
Developer
Joined
May 30, 2021
Messages
461
About modularity:
For any complex system being engineered, if you are 1 developer on 1 project you only want 1 variation of that system.

Modularity is about having flexbility to replace 1 specific thing. If there can be two different and simultaneous versions, you did the opposite of modularity.

I learned this the hard way and almost had to give up on my game project because I had two battle systems that were suppose to be capable of being like the other but also different.
 

zwanzig_zwoelf

Graverobber Foundation
Developer
Joined
Nov 21, 2015
Messages
3,106
Location
デゼニランド
What I can suggest is to write your code in a modular fashion and in a way where individual elements can be tested, so you can test your changes very quickly without fear that it will affect another part of the program.
Do you have advice on how to do this? I read about this design philosophy at other places as well, but I don't really know who to get started, so my projects are always a jumbled mess, where if I change something, it will brake another thing.
I tend to write individual modules that perform a specific task (e.g. move the character), then call them when it's necessary.
 

Twiglard

Poland Stronk
Patron
Staff Member
Joined
Aug 6, 2014
Messages
7,239
Location
Poland
Strap Yourselves In Codex Year of the Donut
These are my old videos. Really I peaked around 2012, my health's been getting worse since then. I'll try to do something once the Magnum framework gets skeletal animation support, but doubt that I get far.




 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,226
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.
by catching errors in logic without having to start up the game and move characters around and wait for things to happen on screen. I know what should happen when a character with x stats attacks a character with y stats and I setup a test with that scenario. It's not exactly TDD because I'm writing tests to verify what the code i just wrote, but still...

any time you don't have to run the game is time saved.

I know what the claims are, this is stuff i've heard for 17 years now, but how do you know that all that saved you HOURS ? To claim that something saved you hours you'll need to time your approach without doing that and then time it with doing that (obviously taking into account all the time you spend writing the tests, support code, etc) for doing the same project and take into account the additional experience you gained during the second time (very often doing the same thing twice or more will end with you having less bugs and sometimes a better design every subsequent time).
 

RPK

Scholar
Joined
Apr 25, 2017
Messages
339
by catching errors in logic without having to start up the game and move characters around and wait for things to happen on screen. I know what should happen when a character with x stats attacks a character with y stats and I setup a test with that scenario. It's not exactly TDD because I'm writing tests to verify what the code i just wrote, but still...

any time you don't have to run the game is time saved.

I know what the claims are, this is stuff i've heard for 17 years now, but how do you know that all that saved you HOURS ? To claim that something saved you hours you'll need to time your approach without doing that and then time it with doing that (obviously taking into account all the time you spend writing the tests, support code, etc) for doing the same project and take into account the additional experience you gained during the second time (very often doing the same thing twice or more will end with you having less bugs and sometimes a better design every subsequent time).

really? you can't see the time saved by just instantiating a couple of character in a test and running them through a combat scenario in a few milliseconds versus firing up the game and running it and hoping the AI chooses the attacks I want it to do?

Both ways I know what the expected results are and can validate them more easily in the test because I don't need to put breakpoints in the code or write them to the screen or whatever. I just assert that what I want to check is equal to the expected values.

Clearly you have a grudge against unit testing or, what I'm describing is probably closer to integration testing, but I have a method that works well for me and I'm not going to bother defending it anymore because we obviously are not going to see eye-to-eye on the subject.
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,226
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.
really? you can't see the time saved by just instantiating a couple of character in a test and running them through a combat scenario in a few milliseconds versus firing up the game and running it and hoping the AI chooses the attacks I want it to do?

No i can't see time i haven't measured, which is why i asked you how did you measure that time and figured out that it saved your hours. Writing all these tests, making sure your code can be tested independently from anything else (which itself has its own time overhead since it affects not only the design of the code you write but also the design of the rest of the code that interacts with the code you write), running the tests, etc has a time overhead by itself before you even write a single bug, locate it and work towards fixing it.

Clearly you have a grudge against unit testing or, what I'm describing is probably closer to integration testing, but I have a method that works well for me and I'm not going to bother defending it anymore because we obviously are not going to see eye-to-eye on the subject.

I do not have a grudge, you just claimed that it saved you "HOURS" and i asked how did that happen - ie. i asked for specifics. It might be that it will help me or might be that it only works for you and wont apply to me. So i asked for details.

Of course it might be just something that makes you feel better and safer with your code, that is another topic, but that isn't measurable so you can't claim anything about hours saved. I do something similar where i put debug asserts my in code, it certainly takes a bit of time (though it is negligible) but while they have sometimes caught an error or two that might have taken longer to find without them, i do it because they just make me feel safer about the code i write. I can't measure the time they'd saved or wasted, so i can't claim anything about any time savings, i can only say that they can make locating bugs easier than if they didn't exist but that's about it.
 

RPK

Scholar
Joined
Apr 25, 2017
Messages
339
really? you can't see the time saved by just instantiating a couple of character in a test and running them through a combat scenario in a few milliseconds versus firing up the game and running it and hoping the AI chooses the attacks I want it to do?

No i can't see time i haven't measured, which is why i asked you how did you measure that time and figured out that it saved your hours. Writing all these tests, making sure your code can be tested independently from anything else (which itself has its own time overhead since it affects not only the design of the code you write but also the design of the rest of the code that interacts with the code you write), running the tests, etc has a time overhead by itself before you even write a single bug, locate it and work towards fixing it.

Clearly you have a grudge against unit testing or, what I'm describing is probably closer to integration testing, but I have a method that works well for me and I'm not going to bother defending it anymore because we obviously are not going to see eye-to-eye on the subject.

I do not have a grudge, you just claimed that it saved you "HOURS" and i asked how did that happen - ie. i asked for specifics. It might be that it will help me or might be that it only works for you and wont apply to me. So i asked for details.

Of course it might be just something that makes you feel better and safer with your code, that is another topic, but that isn't measurable so you can't claim anything about hours saved. I do something similar where i put debug asserts my in code, it certainly takes a bit of time (though it is negligible) but while they have sometimes caught an error or two that might have taken longer to find without them, i do it because they just make me feel safer about the code i write. I can't measure the time they'd saved or wasted, so i can't claim anything about any time savings, i can only say that they can make locating bugs easier than if they didn't exist but that's about it.

fair enough.

I claim hours because i can create any kind of character with any sort of feats, skills levels and equipment I want and run them through any sort of combat scenario I want in a matter of a minute or two without having to even wait for the game to start up, let alone arrange any sort of "avatars" or mobs on the screen etc.

In my estimation, that has added up to hours over the course of my development time.
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,226
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.
I claim hours because i can create any kind of character with any sort of feats, skills levels and equipment I want and run them through any sort of combat scenario I want in a matter of a minute or two without having to even wait for the game to start up, let alone arrange any sort of "avatars" or mobs on the screen etc.

Are you doing this only for combat?
 

RPK

Scholar
Joined
Apr 25, 2017
Messages
339
I claim hours because i can create any kind of character with any sort of feats, skills levels and equipment I want and run them through any sort of combat scenario I want in a matter of a minute or two without having to even wait for the game to start up, let alone arrange any sort of "avatars" or mobs on the screen etc.

Are you doing this only for combat?

not just for combat. also for things like character creation - like ensuring that each level of a barbarian's rage correctly applies the right amount of strength buff or that my paladin's all get the correct save bonus at each level.

I used it to test my skills systems. it was way quicker to do that than to have a character in my game walk up to a lock and try to unlock it, for instance. I just new up a skill check instance and a character instance, send them through my skills engine and I'm done. Later on, I just wire up the call to that from the UI and I can be confident it will work.
 
Developer
Joined
May 30, 2021
Messages
461
i'll say this about Unity3D. I was wrong about unity's limitation of 1 texture = 1 material.
Atleast you don't need to make a new material.

You can just drag and drop a texture onto an object's material and it assumes the texture without messing up objects who were sharing the same material.
 

ERYFKRAD

Barbarian
Patron
Joined
Sep 25, 2012
Messages
28,363
Strap Yourselves In Serpent in the Staglands Shadorwun: Hong Kong Pillars of Eternity 2: Deadfire Steve gets a Kidney but I don't even get a tag. Pathfinder: Wrath I'm very into cock and ball torture I helped put crap in Monomyth

Tyranicon

A Memory of Eternity
Developer
Joined
Oct 7, 2019
Messages
6,069
I have so super intelligent A.I., it built a very huge fleet.
https://youtu.be/AzLG78DPgh0
I am proud of it :smug:

Man, my AI still regularly throws grenades at their own feet and walk through fires.

Yet it's somehow smart enough to regularly flank the player without being explicitly programmed for it. Hmmm....
I think your AI gained sentience and now wants to end its miserable life.

And to think, people thought all this time that cutting-edge AI research would come from secret government-funded superlabs.

Surprise, my shitty porn RPG is the true answer.
 

ERYFKRAD

Barbarian
Patron
Joined
Sep 25, 2012
Messages
28,363
Strap Yourselves In Serpent in the Staglands Shadorwun: Hong Kong Pillars of Eternity 2: Deadfire Steve gets a Kidney but I don't even get a tag. Pathfinder: Wrath I'm very into cock and ball torture I helped put crap in Monomyth
I have so super intelligent A.I., it built a very huge fleet.
https://youtu.be/AzLG78DPgh0
I am proud of it :smug:

Man, my AI still regularly throws grenades at their own feet and walk through fires.

Yet it's somehow smart enough to regularly flank the player without being explicitly programmed for it. Hmmm....
I think your AI gained sentience and now wants to end its miserable life.

And to think, people thought all this time that cutting-edge AI research would come from secret government-funded superlabs.

Surprise, my shitty porn RPG is the true answer.
I mean you try being an artificial intelligence that comes to the conclusion that your main purpose of existence is secondary to the running of a virtual brothel, so to speak.
 

Tyranicon

A Memory of Eternity
Developer
Joined
Oct 7, 2019
Messages
6,069
I have so super intelligent A.I., it built a very huge fleet.
https://youtu.be/AzLG78DPgh0
I am proud of it :smug:

Man, my AI still regularly throws grenades at their own feet and walk through fires.

Yet it's somehow smart enough to regularly flank the player without being explicitly programmed for it. Hmmm....
I think your AI gained sentience and now wants to end its miserable life.

And to think, people thought all this time that cutting-edge AI research would come from secret government-funded superlabs.

Surprise, my shitty porn RPG is the true answer.
I mean you try being an artificial intelligence that comes to the conclusion that your main purpose of existence is secondary to the running of a virtual brothel, so to speak.

But there's irony points there when the main plot point of the game is not the hookers, but the myriad dangers of a technological singularity.
 

Tavernking

Don't believe his lies
Developer
Joined
Sep 1, 2017
Messages
1,217
Location
Australia
I'm thinking of selling my game for free, but I want to make at least $2000 to cover the cost of making the game in the first place.
Can anyone think of a good business model for this?

I was thinking of holding my game hostage until people fundraise $2000, at which point it's released free for everyone. But it seems like a silly idea...
 

Abu Antar

Turn-based Poster
Patron
Joined
Jan 19, 2014
Messages
13,565
Enjoy the Revolution! Another revolution around the sun that is. Shadorwun: Hong Kong Divinity: Original Sin 2 Pillars of Eternity 2: Deadfire Pathfinder: Wrath I'm very into cock and ball torture I helped put crap in Monomyth
I'm thinking of selling my game for free, but I want to make at least $2000 to cover the cost of making the game in the first place.
Can anyone think of a good business model for this?

I was thinking of holding my game hostage until people fundraise $2000, at which point it's released free for everyone. But it seems like a silly idea...
I was going to tell you to set up a Patreon, but the barbarian was quicker.

There's also itch.io
 

Tyranicon

A Memory of Eternity
Developer
Joined
Oct 7, 2019
Messages
6,069
I'm thinking of selling my game for free, but I want to make at least $2000 to cover the cost of making the game in the first place.
Can anyone think of a good business model for this?

I was thinking of holding my game hostage until people fundraise $2000, at which point it's released free for everyone. But it seems like a silly idea...

I'm just going to give you a brief summary of my experience. You have a few options.

1. Distribute the game for free like a chad and don't worry about money. Think of it as a hobby because it is.

2. Sell the game for a super low price like $1.99 USD and hardly sell any copies.

3. Sell the game for the price you think it's worth (+25%) and it'll be closer to what you should actually sell it for. The number of copies sold will depend almost entirely on marketing.

4. Sell the game for an exorbitant price for meme potential and to have people suspect you of money laundering.

5. Create a Kickstarter or other crowdfunding project.

6. Sell it for free and try to recoup on paid DLCs. Once again, depends on marketing, but if your game is high quality it may increase word of mouth.

7. Other shit I forgot.

Set up a patreon.

Judging by their signature, TavernKing already has one. Patreon's also not a great way to fund game projects unless they involve porn, at which point it becomes a great way to acquire funding.
 
Joined
Jan 14, 2018
Messages
50,754
Codex Year of the Donut
I'm thinking of selling my game for free, but I want to make at least $2000 to cover the cost of making the game in the first place.
Can anyone think of a good business model for this?

I was thinking of holding my game hostage until people fundraise $2000, at which point it's released free for everyone. But it seems like a silly idea...
you could release it in episodic format making the old episodes free when a new one releases
 

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