Re: dev's becomeing one

2021-03-15 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: dev's becomeing one

Trust me, this would never work. The majority of devs you'll find here are too interested in DRM solutions instead of what actually matters. The devs who can actually separate themselves from that and focus on what matters are few and far between and have other and better things to do, as harsh as that sounds.

URL: https://forum.audiogames.net/post/622965/#p622965




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Java IDE Accessibility

2021-03-11 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Java IDE Accessibility

The speech synthesizer is completely independent of the accessibility of a program. If a program or add-on depends on the synthesizer used then that's incredibly poor design.

URL: https://forum.audiogames.net/post/622142/#p622142




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: where can I learn python? the basics.

2021-03-10 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: where can I learn python? the basics.

@23, no, no one is saying that no one can decompile a PYD file. Anyone can, with the right tools, decompile *anything*. Nothing you can do will prevent that.And as for 24, the reason this always, always comes back to forks is because in pretty much all cases of people wanting to employ DRM of some kind its to stop the creation of 'unauthorized forks'. The problem, of course, is that if your wanting to do that through code, your not actually solving the problem. Unauthorized forks don't come from decompilation being easy, they come from team mismanagement.

URL: https://forum.audiogames.net/post/621728/#p621728




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Handling Keyboard

2021-03-08 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Handling Keyboard

For me, I tend to have a GameState object that holds both variable user data (e.g.: what we'redoing at any one moment in time, such as a menu object) and a GameState enumeration which check. Then, if I'm in C++, I cast the game state user data to the actual object I expect, then call a method on it like processEvents() which handles all incoming events.

URL: https://forum.audiogames.net/post/621167/#p621167




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: where i can find the errors in nvda addons

2021-03-07 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: where i can find the errors in nvda addons

@5 as 2 said, errors are found in the NVDA log (NVDA + F1).

URL: https://forum.audiogames.net/post/620807/#p620807




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: where can I learn python? the basics.

2021-03-07 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: where can I learn python? the basics.

@20, sadly, it seems like people are happy to do anything at all if it means they can prevent people from getting their source code. In a way its disgusting because if people weren't so overly-focused on that we'd be so much further ahead than we are right now.

URL: https://forum.audiogames.net/post/620777/#p620777




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: how do you keep track of parentheses, brackets, etc

2021-03-01 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: how do you keep track of parentheses, brackets, etc

@3, I personally prefer putting the brace on the same line as the declaration, just because it filters out unnecessary things and is easier to read for me. But that's my preference.As for the question itself, I've seen some authors do this in their code -- it may help:while (cond) {
if (cond) {
// lots of opening braces here
} // if
} // if
} // while
} // for
// ...This might help you know when things begin and end. In languages like Ada, things like this are required, e.g.:procedure foo is
begin
if condition then
-- block
end if;
end foo;

URL: https://forum.audiogames.net/post/619324/#p619324




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Extended PEMDAS.

2021-02-28 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Extended PEMDAS.

Yeah, for this you could use a regular _expression_, but it would be hideously complex and difficult to understand, no matter how you wrote it. You'd definitely be better off writing a full parser/lexer at this point. Parse the input into an abstract syntax tree (AST), then you can operate on it. For example: the input (2d6*8)*(3+3)**3 would be turned into the list [(, 2, d, 6, *, 8, ), *, (, 3, +, 3, ), **, 3]. That's what the lexer would give you. The parser, then, might turn this into something like [GroupingStart, Number(2), Character(d), Number(6), Multiply, Number*0), GroupEnd, Multiply, ...]. You could then perform algorithms to figure out what takes precedence and backtrack from there until you've simplified the _expression_.

URL: https://forum.audiogames.net/post/618969/#p618969




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Suggestions for Wayfar 1444 relaunch welcome

2021-02-26 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Suggestions for Wayfar 1444 relaunch welcome

@43, fair enough. I prefer Rust myself for code though I'll dive into C++ when I need to. I've used both for serious projects (though that depends on your definition of a "serious" project), though I haven't actually been able to employ it in an organization/professional development cycle yet, though I'm working on that.

URL: https://forum.audiogames.net/post/618645/#p618645




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Suggestions for Wayfar 1444 relaunch welcome

2021-02-26 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Suggestions for Wayfar 1444 relaunch welcome

@Camlorn, to specifically address one of your points to me about hating JS, I dislike _javascript_ because its got about fifty different ways to do pretty much everything. There are at least 4 ways of declaring variables, and to my knowledge there isn't a way to tell a JS interpreter "Only accept this standard and higher or wine about it" like there is with (say) C++. So you've got all this code out there, and the majority of it uses old and clunky syntax that no one uses anymore, but no one wants to actually get rid of incompatibility because we don't wanna break the web and force people to actually use modern syntax. MOO might not be the best language, but at least its consistent; the only thing your going to run into difficulty with are builtins, but MOO has that fixed with call_function(). I'm not saying _javascript_ is a monster or anything, and I understand its rationales for keeping the things the way they are, but its incredibly annoying when there's a ton of information that teaches you the "wrong" _javascript_ (and its even worse when schools do that too). I used to use it once, and though I'm able to read it, its not something I like to write in because it feels far too clunky, and the fact that Microsoft was forced to create TypeScript just to make the language better isn't a good thing -- talk about bad language design.You could argue that C/C++ has these same problems, but I feel like transitioning from one C++ standard is a lot smoother and easier. The language might be huge, sure, and though there might be four different ways of declaring a pointer or allocating memory, its at least consistent (if you want an example of inconsistencies, check out this article from 2017).Perhaps my arguments are weak, perhaps not, but JS is just not a language that I can comfortably use. Something similar is with Haskell for me too, though that's more along the lines of thinking differently than with weirdness in the language and finding a ton of "wrong" ways of doing things when trying to figure out how to do something or having to use a custom compiler just to make the language a bit better. Of course, Python's dynamic typing and its type hints comes to mind, but at least with that I don't need to use a custom translator, just a type checker. I can use the same interpreter (and perhaps Python will get type checking in it sometime).

URL: https://forum.audiogames.net/post/618614/#p618614




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Suggestions for Wayfar 1444 relaunch welcome

2021-02-25 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Suggestions for Wayfar 1444 relaunch welcome

@31, how exactly would you implement version control on a game that's supposed to be live-edited? Yeah, you could make objects versioned, but then you'd need to store *every* version of the object, its properties, verbs, permissions, verb code, and so on. Sure, you could lower the consumption a little by deduplicating things like properties if they haven't changed between versions but, again, that would only bloat the database format even more than it already is. You can't really store the MOO database in an actual database engine, because MOO isn't designed in that manner, and you'd completely ruin the concept if you tried to design it that way.Your argument of "look through the code" not being something you can really do makes no sense. MOO has built-in editors and tools that allow programmers and wizards to examine the code of any object they have access to. Granted, such tools are database specific, but its pretty much a prerequisite for your database to be considered good to have that functionality.I've already covered your argument against version control -- the architecture of MOO doesn't allow for such a system, and you'd be hard-pressed to figure out how you'd even modify a MOO DB to work with that properly. It would require a complete database format rewrite for the idea of version control that your talking about. MOO does have version control in the sense of periodic database dumps, however, so it is easy to roll back to a previous version of the database if you run your server properly. In that manner, yes, MOO does have version control. Combine that with an actual VCS and your covered, not just on server code but DB dumps as well.Finally, your last argument about MOO being "the ideal environment to continually accumulate code debt that can't be cleaned up" is subjective at best. Hellmoo is horrible in terms of design not because MOO was never designed for that system (because it is perfectly capable of simulating such a system) but because of poor database structure and management on the developers part. Hellmoo was designed long before virtual objects had even been considered, and though forks of it use WAIFs in some areas, WAIFs aren't generic enough to solve the problem completely. Toaststunt brings in the idea of anonymous objects, and though this would solve the problem if employed properly, anonymous objects have their own caveats (e.g.: if you modify a parent of an anonymous object's properties, all its anonymous descendants become invalidated; similarly, anonymous objects also must be stored in properties because they have no other way to reference them permanently). Also, it implements a color-based reference-counted garbage collector, though I have never tested this so I don't know if the implementation is actually correct. Hellmoo was designed when quite literally everything was an object, and by the time virtual objects had actually gotten traction it was far too late to go completely refactor the entire database and would've required far too much time. (Also, the programmers who wrote the code write some pretty crappy code as well, and none of them have bothered to refactor it into better code, so that certainly doesn't help.)If Hellmoo was written today using modern software design methodologies but still using MOO, I guarantee you that it would be far different, far smaller, and far, far less cluttered. MOO is pretty powerful and you can do *a lot* if you know how. It might be going the easy route to make a game, perhaps, but there have been fantastic successes made with it, and quibbling over whether its the easy way or not is just semantics at this point.You are right, however, that MOO doesn't scale in the sense of system utilization. Toaststunt recently introduced the ability to thread builtins, making it possible for a verb to run a builtin on a separate thread. It does this via connection handles, with each handle being assigned a mutex. (I actually think this is a pretty clever design myself, though it does have obvious limitations, like being only usable on verbs that run on network connections and not on verbs that run independently of the network.) However, MOO still can't utilize SMP setups, though that may be harder to do given it has to go through the OS for that. It also uses a custom thread pool implementation (this one, in fact). The last problem with the server is that 99 percent of it is pure C and there is very little C++ in the code, so it doesn't use smart pointers or any actual modern C++ features, but that's not necessarily relevant to scaling.Edit: Okay, so you can store a MOO database in a database engine like SQLite or MySQL, but it probably wouldn't be a pretty design. Something like: one table for objects, properties and verbs. I won't list the table structure here but that's probably the only way that would work, and that would be quite messy, I imagine.

URL: https://forum.audiogames.net/post/

Re: Suggestions for Wayfar 1444 relaunch welcome

2021-02-25 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Suggestions for Wayfar 1444 relaunch welcome

@31, how exactly would you implement version control on a game that's supposed to be live-edited? Yeah, you could make objects versioned, but then you'd need to store *every* version of the object, its properties, verbs, permissions, verb code, and so on. Sure, you could lower the consumption a little by deduplicating things like properties if they haven't changed between versions but, again, that would only bloat the database format even more than it already is. You can't really store the MOO database in an actual database engine, because MOO isn't designed in that manner, and you'd completely ruin the concept if you tried to design it that way.Your argument of "look through the code" not being something you can really do makes no sense. MOO has built-in editors and tools that allow programmers and wizards to examine the code of any object they have access to. Granted, such tools are database specific, but its pretty much a prerequisite for your database to be considered good to have that functionality.I've already covered your argument against version control -- the architecture of MOO doesn't allow for such a system, and you'd be hard-pressed to figure out how you'd even modify a MOO DB to work with that properly. It would require a complete database format rewrite for the idea of version control that your talking about. MOO does have version control in the sense of periodic database dumps, however, so it is easy to roll back to a previous version of the database if you run your server properly. In that manner, yes, MOO does have version control. Combine that with an actual VCS and your covered, not just on server code but DB dumps as well.Finally, your last argument about MOO being "the ideal environment to continually accumulate code debt that can't be cleaned up" is subjective at best. Hellmoo is horrible in terms of design not because MOO was never designed for that system (because it is perfectly capable of simulating such a system) but because of poor database structure and management on the developers part. Hellmoo was designed long before virtual objects had even been considered, and though forks of it use WAIFs in some areas, WAIFs aren't generic enough to solve the problem completely. Toaststunt brings in the idea of anonymous objects, and though this would solve the problem if employed properly, anonymous objects have their own caveats (e.g.: if you modify a parent of an anonymous object's properties, all its anonymous descendants become invalidated; similarly, anonymous objects also must be stored in properties because they have no other way to reference them permanently). Also, it implements a color-based reference-counted garbage collector, though I have never tested this so I don't know if the implementation is actually correct. Hellmoo was designed when quite literally everything was an object, and by the time virtual objects had actually gotten traction it was far too late to go completely refactor the entire database and would've required far too much time. (Also, the programmers who wrote the code write some pretty crappy code as well, and none of them have bothered to refactor it into better code, so that certainly doesn't help.)If Hellmoo was written today using modern software design methodologies but still using MOO, I guarantee you that it would be far different, far smaller, and far, far less cluttered. MOO is pretty powerful and you can do *a lot* if you know how. It might be going the easy route to make a game, perhaps, but there have been fantastic successes made with it, and quibbling over whether its the easy way or not is just semantics at this point.You are right, however, that MOO doesn't scale in the sense of system utilization. Toaststunt recently introduced the ability to thread builtins, making it possible for a verb to run a builtin on a separate thread. It does this via connection handles, with each handle being assigned a mutex. (I actually think this is a pretty clever design myself, though it does have obvious limitations, like being only usable on verbs that run on network connections and not on verbs that run independently of the network.) However, MOO still can't utilize SMP setups, though that may be harder to do given it has to go through the OS for that. It also uses a custom thread pool implementation (this one, in fact). The last problem with the server is that 99 percent of it is pure C and there is very little C++ in the code, so it doesn't use smart pointers or any actual modern C++ features, but that's not necessarily relevant to scaling.

URL: https://forum.audiogames.net/post/618320/#p618320




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Suggestions for Wayfar 1444 relaunch welcome

2021-02-25 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Suggestions for Wayfar 1444 relaunch welcome

@31, how exactly would you implement version control on a game that's supposed to be live-edited? Yeah, you could make objects versioned, but then you'd need to store *every* version of the object, its properties, verbs, permissions, verb code, and so on. Sure, you could lower the consumption a little by deduplicating things like properties if they haven't changed between versions but, again, that would only bloat the database format even more than it already is. You can't really store the MOO database in an actual database engine, because MOO isn't designed in that manner, and you'd completely ruin the concept if you tried to design it that way.Your argument of "look through the code" not being something you can really do makes no sense. MOO has built-in editors and tools that allow programmers and wizards to examine the code of any object they have access to. Granted, such tools are database specific, but its pretty much a prerequisite for your database to be considered good to have that functionality.I've already covered your argument against version control -- the architecture of MOO doesn't allow for such a system, and you'd be hard-pressed to figure out how you'd even modify a MOO DB to work with that properly. It would require a complete database format rewrite for the idea of version control that your talking about. MOO does have version control in the sense of periodic database dumps, however, so it is easy to roll back to a previous version of the database if you run your server properly. In that manner, yes, MOO does have version control. Combine that with an actual VCS and your covered, not just on server code but DB dumps as well.Finally, your last argument about MOO being "the ideal environment to continually accumulate code debt that can't be cleaned up" is subjective at best. Hellmoo is horrible in terms of design not because MOO was never designed for that system (because it is perfectly capable of simulating such a system) but because of poor database structure and management on the developers part. Hellmoo was designed long before virtual objects had even been considered, and though forks of it use WAIFs in some areas, WAIFs aren't generic enough to solve the problem completely. Toaststunt brings in the idea of anonymous objects, and though this would solve the problem if employed properly, anonymous objects have their own caveats (e.g.: if you modify a parent of an anonymous object's properties, all its anonymous descendants become invalidated; similarly, anonymous objects also must be stored in properties because they have no other way to reference them permanently). Also, it implements a color-based reference-counted garbage collector, though I have never tested this so I don't know if the implementation is actually correct. Hellmoo was designed when quite literally everything was an object, and by the time virtual objects had actually gotten traction it was far too late to go completely refactor the entire database and would've required far too much time. (Also, the programmers who wrote the code write some pretty crappy code as well, and none of them have bothered to refactor it into better code, so that certainly doesn't help.)If Hellmoo was written today using modern software design methodologies but still using MOO, I guarantee you that it would be far different, far smaller, and far, far less cluttered. MOO is pretty powerful and you can do *a lot* if you know how. It might be going the easy route to make a game, perhaps, but there have been fantastic successes made with it, and quibbling over whether its the easy way or not is just semantics at this point.You are right, however, that MOO doesn't scale in the sense of system utilization. Toaststunt recently introduced the ability to thread builtins, making it possible for a verb to run a builtin on a separate thread. It does this via connection handles, with each handle being assigned a mutex. (I actually think this is a pretty clever design myself, though it does have obvious limitations, like being only usable on verbs that run on network connections and not on verbs that run independently of the network.) However, MOO still can't utilize SMP setups, though that may be harder to do given it has to go through the OS for that. It also uses a custom thread pool implementation (this one, in fact).

URL: https://forum.audiogames.net/post/618320/#p618320




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Suggestions for Wayfar 1444 relaunch welcome

2021-02-25 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Suggestions for Wayfar 1444 relaunch welcome

@31, how exactly would you implement version control on a game that's supposed to be live-edited? Yeah, you could make objects versioned, but then you'd need to store *every* version of the object, its properties, verbs, permissions, verb code, and so on. Sure, you could lower the consumption a little by deduplicating things like properties if they haven't changed between versions but, again, that would only bloat the database format even more than it already is. You can't really store the MOO database in an actual database engine, because MOO isn't designed in that manner, and you'd completely ruin the concept if you tried to design it that way.Your argument of "look through the code" not being something you can really do makes no sense. MOO has built-in editors and tools that allow programmers and wizards to examine the code of any object they have access to. Granted, such tools are database specific, but its pretty much a prerequisite for your database to be considered good to have that functionality.I've already covered your argument against version control -- the architecture of MOO doesn't allow for such a system, and you'd be hard-pressed to figure out how you'd even modify a MOO DB to work with that properly. It would require a complete database format rewrite for the idea of version control that your talking about. MOO does have version control in the sense of periodic database dumps, however, so it is easy to roll back to a previous version of the database if you run your server properly. In that manner, yes, MOO does have version control. Combine that with an actual VCS and your covered, not just on server code but DB dumps as well.Finally, your last argument about MOO being "the ideal environment to continually accumulate code debt that can't be cleaned up" is subjective at best. Hellmoo is horrible in terms of design not because MOO was never designed for that system (because it is perfectly capable of simulating such a system) but because of poor database structure and management on the developers part. Hellmoo was designed long before virtual objects had even been considered, and though forks of it use WAIFs in some areas, WAIFs aren't generic enough to solve the problem completely. Toaststunt brings in the idea of anonymous objects, and though this would solve the problem if employed properly, anonymous objects have their own caveats (e.g.: if you modify a parent of an anonymous object's properties, all its anonymous descendants become invalidated; similarly, anonymous objects also must be stored in properties because they have no other way to reference them permanently). Also, it implements a color-based reference-counted garbage collector, though I have never tested this so I don't know if the implementation is actually correct. Hellmoo was designed when quite literally everything was an object, and by the time virtual objects had actually gotten traction it was far too late to go completely refactor the entire database and would've required far too much time. (Also, the programmers who wrote the code write some pretty crappy code as well, and none of them have bothered to refactor it into better code, so that certainly doesn't help.)If Hellmoo was written today using modern software design methodologies but still using MOO, I guarantee you that it would be far different, far smaller, and far, far less cluttered. MOO is pretty powerful and you can do *a lot* if you know how. It might be going the easy route to make a game, perhaps, but there have been fantastic successes made with it, and quibbling over whether its the easy way or not is just semantics at this point.You are right, however, that MOO doesn't scale in the sense of system utilization. Toaststunt recently introduced the ability to thread builtins, making it possible for a verb to run a builtin on a separate thread. It does this via connection handles, with each handle being assigned a mutex. (I actually think this is a pretty clever design myself, though it does have obvious limitations, like being only usable on verbs that run on network connections and not on verbs that run independently of the network.) However, MOo still can't utilize SMP setups, though that may be harder to do given it has to go through the OS for that.

URL: https://forum.audiogames.net/post/618320/#p618320




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Suggestions for Wayfar 1444 relaunch welcome

2021-02-25 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Suggestions for Wayfar 1444 relaunch welcome

@31, how exactly would you implement version control on a game that's supposed to be live-edited? Yeah, you could make objects versioned, but then you'd need to store *every* version of the object, its properties, verbs, permissions, verb code, and so on. Sure, you could lower the consumption a little by deduplicating things like properties if they haven't changed between versions but, again, that would only bloat the database format even more than it already is. You can't really store the MOO database in an actual database engine, because MOO isn't designed in that manner, and you'd completely ruin the concept if you tried to design it that way.Your argument of "look through the code" not being something you can really do makes no sense. MOO has built-in editors and tools that allow programmers and wizards to examine the code of any object they have access to. Granted, such tools are database specific, but its pretty much a prerequisite for your database to be considered good to have that functionality.I've already covered your argument against version control -- the architecture of MOO doesn't allow for such a system, and you'd be hard-pressed to figure out how you'd even modify a MOO DB to work with that properly. It would require a complete database format rewrite for the idea of version control that your talking about. MOO does have version control in the sense of periodic database dumps, however, so it is easy to roll back to a previous version of the database if you run your server properly. In that manner, yes, MOO does have version control. Combine that with an actual VCS and your covered, not just on server code but DB dumps as well.Finally, your last argument about MOO being "the ideal environment to continually accumulate code debt that can't be cleaned up" is subjective at best. Hellmoo is horrible in terms of design not because MOO was never designed for that system (because it is perfectly capable of simulating such a system) but because of poor database structure and management on the developers part. Hellmoo was designed long before virtual objects had even been considered, and though forks of it use WAIFs in some areas, WAIFs aren't generic enough to solve the problem completely. Toaststunt brings in the idea of anonymous objects, and though this would solve the problem if employed properly, anonymous objects have their own caveats (e.g.: if you modify a parent of an anonymous object's properties, all its anonymous descendants become invalidated; similarly, anonymous objects also must be stored in properties because they have no other way to reference them permanently). Also, it implements a color-based reference-counted garbage collector, though I have never tested this so I don't know if the implementation is actually correct. Hellmoo was designed when quite literally everything was an object, and by the time virtual objects had actually gotten traction it was far too late to go completely refactor the entire database and would've required far too much time. (Also, the programmers who wrote the code write some pretty crappy code as well, and none of them have bothered to refactor it into better code, so that certainly doesn't help.)If Hellmoo/InfernoMOO was written today using modern software design methodologies but still using MOO, I guarantee you that it would be far different, far smaller, and far, far less cluttered.

URL: https://forum.audiogames.net/post/618320/#p618320




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Suggestions for Wayfar 1444 relaunch welcome

2021-02-25 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Suggestions for Wayfar 1444 relaunch welcome

@31, how exactly would you implement version control on a game that's supposed to be live-edited? Yeah, you could make objects versioned, but then you'd need to store *every* version of the object, its properties, verbs, permissions, verb code, and so on. Sure, yo ucould lower the consumption a little by deduplicating things like properties if they haven't changed between versions but, again, that would only bloat the database format even more than it already is. You can't really store the MOO database in an actual database engine, because MOO isn't designed in that manner, and you'd completely ruin the concept if you tried to design it that way.Your argument of "look through the code" not being something you can really do makes no sense. MOO has built-in editors and tools that allow programmers and wizards to examine the code of any object they have access to. Granted, such tools are database specific, but its pretty much a prerequisite for your database to be considered good to have that functionality.I've already covered your argument against version control -- the architecture of MOO doesn't allow for such a system, and you'd be hard-pressed to figure out how you'd even modify a MOO DB to work with that properly. It would require a complete database format rewrite for the idea of version control that your talking about. MOO does have version control in the sense of periodic database dumps, however, so it is easy to roll back to a previous version of the database if you run your server properly. In that manner, yes, MOO does have version control. Combine that with an actual VCS and your covered, not just on server code but DB dumps as well.Finally, your last argument about MOO being "the ideal environment to continually accumulate code debt that can't be cleaned up" is subjective at best. Hellmoo is horrible in terms of design not because MOO was never designed for that system (because it is perfectly capable of simulating such a system) but because of poor database structure and management on the developers part. Hellmoo was designed long before virtual objects had even been considered, and though inferno MOO fixes this a bit by pulling in WAIFs, they don't use WAIFs enough to actually fix the problem. Hellmoo was designed when quite literally everything was an object, and by the time virtual objects had actually gotten traction it was far too late to go completely refactor the entire database and would've required far too much time. (Also, the programmers who wrote the code write some pretty crappy code as well, and none of them have bothered to refactor it into better code, so that certainly doesn't help.)If Hellmoo/InfernoMOO was written today using modern software design methodologies but still using MOO, I guarantee you that it would be far different, far smaller, and far, far less cluttered.

URL: https://forum.audiogames.net/post/618320/#p618320




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: how to get JDK 8 & JRE 8 with out having to make an oracle account

2021-02-25 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: how to get JDK 8 & JRE 8 with out having to make an oracle account

@9, that'll install the latest JDK version though; if you want JDK 8 you'd replace openjdk with openjdk8-redhat or openjdk8-redhat-jre

URL: https://forum.audiogames.net/post/618286/#p618286




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Suggestions for Wayfar 1444 relaunch welcome

2021-02-25 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Suggestions for Wayfar 1444 relaunch welcome

@27, I honestly have no idea why it has so many. Its ridiculous. Most of it, I suspect, is the NPCs.

URL: https://forum.audiogames.net/post/618285/#p618285




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Suggestions for Wayfar 1444 relaunch welcome

2021-02-24 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Suggestions for Wayfar 1444 relaunch welcome

@23, is the not running on a VPS thing why you believe it doesn't scale? If so then I agree, but that'd happen in any database system. I don't really understand how you think it doesn't scale and what your looking at that made you generate that conclusion, because MOO can scale pretty well. It fails on SMP systems primarily because it was never meant to be used with multiple cores or processors, but it scales in terms of objects and tasks. The HellMOO game has over a million objects (no, I'm not exaggerating). The creation of so many objects was, undoubtedly, poor DB design, because that number is absurd, and no DB should have that many objects without a really, really good reason. As a consequence, it takes up a (huge) chunk of RAM. But HellMOO is definitely proof that MOO scales well in terms of object, task and player load.

URL: https://forum.audiogames.net/post/618133/#p618133




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: how to get JDK 8 & JRE 8 with out having to make an oracle account

2021-02-24 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: how to get JDK 8 & JRE 8 with out having to make an oracle account

@5, I don't believe they make x86 versions. Its not surprising. What do you need the 32-bit builds for? If its for the JAB you don't need that anymore.

URL: https://forum.audiogames.net/post/618132/#p618132




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: how to get JDK 8 & JRE 8 with out having to make an oracle account

2021-02-24 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: how to get JDK 8 & JRE 8 with out having to make an oracle account

You don't need an account for this. Download OpenJDK from here: https://github.com/AdoptOpenJDK/openjdk … b03_ea.zip for the JDK and https://github.com/AdoptOpenJDK/openjdk … b03_ea.zip for the JRE.

URL: https://forum.audiogames.net/post/618026/#p618026




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Suggestions for Wayfar 1444 relaunch welcome

2021-02-22 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Suggestions for Wayfar 1444 relaunch welcome

This might not happen but could you make this relaunch open-source? I was unsure on asking first since I didn't think it would ever happen but thought I might ask anyway.

URL: https://forum.audiogames.net/post/617579/#p617579




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: SAPI seems to be laggy

2021-02-22 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: SAPI seems to be laggy

@5, that depends on the SAPI voice though. There are some SAPI voices with no latency or a latency that isn't detectable by the user.

URL: https://forum.audiogames.net/post/617576/#p617576




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: questions about developing on an M1 MacBook

2021-02-20 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: questions about developing on an M1 MacBook

I just find it really ironic that Apple, the supposed company who's cared about accessibility for all its users for years and years, hasn't even bothered to make its app store submission system accessible. That's just hilarious and puts paid to that entire argument. Like okay, yeah, care about accessibility for your customers, but I'd think that would include developers too.

URL: https://forum.audiogames.net/post/617162/#p617162




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Just released: C library to generate mazes

2021-02-19 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Just released: C library to generate mazes

@15, never meant to imply that your library was sub-optimal, just that porting it in Python would be a pointless endeavor unless you want to learn something.

URL: https://forum.audiogames.net/post/616982/#p616982




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Just released: C library to generate mazes

2021-02-19 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Just released: C library to generate mazes

There's no need to port this to Python. There is already a library in Python with the same name of this library that supports many more maze generation algorithms than this one. It requires NumPy, though, but that shouldn't be much of a problem.

URL: https://forum.audiogames.net/post/616927/#p616927




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Good resources for getting to grips with procedural or maze generation

2021-02-17 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Good resources for getting to grips with procedural or maze generation

Purchase the Mazes for Programmers book on amazon -- all the code is formatted correctly there. Youcan also buy it from here: https://pragprog.com/titles/jbmaze/maze … rogrammers

URL: https://forum.audiogames.net/post/616495/#p616495




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Questions about C#

2021-02-16 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Questions about C#

@25, yeah, that's pretty common among all GUI libraries that aren't immediate-mode ones. They all send and receive events to ensure that your program isn't gobbling up all the CPU.

URL: https://forum.audiogames.net/post/616218/#p616218




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Questions about C#

2021-02-16 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Questions about C#

@23, I didn't say that. You can use a GUI library for games; Entombed does it perfectly fine and it does work. Its just not the best way because a non-immediate-mode GUI library wasn't intended for games. But you can certainly use them that way. Its just really, really hard to do and certainly not something I'd recommend. As you said, if your making a game, prefer SFML/SDL2/GLFW over a GUI library. I mean, you can use a GUI library to do it but... Then you're pretty much gonna fight the GUI the whole way.

URL: https://forum.audiogames.net/post/616174/#p616174




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Questions about C#

2021-02-16 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Questions about C#

@23, I didn't say that. You can use a GUI library for games; Entombed does it perfectly fine and it does work. Its just not the best way because a non-immediate-mode GUI library wasn't intended for games. But you can certainly use them that way. Its just really, really hard to do and certainly not something I'd recommend. As you said, if your making a game, prefer SFML/SDL2/GLFW over a GUI library.

URL: https://forum.audiogames.net/post/616174/#p616174




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Questions about C#

2021-02-16 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Questions about C#

@23, I didn't say that. You can use a GUI library for games; Entombed does it perfectly fine and it does work. Its just not the best way because a non-immediate-mode GUI library wasn't intended for games. But you can certainly use them that way.

URL: https://forum.audiogames.net/post/616174/#p616174




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Questions about C#

2021-02-16 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Questions about C#

@21, your thinking in a more BGT-ish way of doing things. You need to get out of that mindset -- its not going to help you here.Windows forms (and every other kind of UI library) rely on events to convey information to you. There is no central "key_pressed" function because that's not how a UI actually works. Even game frameworks like SDL2 and SFML do not function this way. I've no doubt that its safe to say that BGT has taught you the entirely wrong way of doing things. Which is why I keep emphasizing that we need to get rid of duplicating BGT idioms in other languages -- it breaks the underlying model of game design. A game fundamentally works off of events, not off of you constantly polling the system. Same for UIs and pretty much everything else. Asynchronous programming -- which is what this is -- is far better than endlessly polling the system for information. SDL2 and such may handle this asynchronous stuff for you so you can poll them as usual, but underneath this is what they're doing. In Winforms and such, though, you don't have SDL2/SFML to make your life all easy-peacy. And you shouldn't have them. Winforms and such is how GUI design works.To handle keyboard events in windows forms, create a function to handle all keyboard events:private void Form_KeyDown(Object sender, KeyEventArgs e) {
// Handle key down events here
switch (e.KeyCode) {
case Keys.A:
// Handle...
break;
// ...
}
}You will also want to define keyboard events for key presses (the KeyPress event), key releases (the KeyUp event) and, optionally, the PreviewKeyDown/PreviewKeyUp events.

URL: https://forum.audiogames.net/post/616172/#p616172




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Questions about C#

2021-02-16 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Questions about C#

@21, your thinking in a more BGT-ish way of doing things. You need to get out of that mindset -- its not going to help you here.Windows forms (and every other kind of UI library) rely on events to convey information to you. There is no central "key_pressed" function because that's not how a UI actually works. Even game frameworks like SDL2 and SFML do not function this way. I've no doubt that its safe to say that BGT has taught you the entirely wrong way of doing things. Which is why I keep emphasizing that we need to get rid of duplicating BGT idioms in other languages -- it breaks the underlying model of game design. A game fundamentally works off of events, not off of you constantly polling the system. Same for UIs and pretty much everything else. Asynchronous programming -- which is what this is -- is far better than endlessly polling the system for information. SDL2 and such may handle this asynchronous stuff for you so you can poll them as usual, but underneath this is what they're doing. In Winforms and such, though, you don't have SDL2/SFML to make your life all easy-peacy. And you shouldn't have them. Winforms and such is how GUI design works.To handle keyboard events in windows forms, create a function to handle all keyboard events:private void Form_KeyDown(Object sender, KeyEventArgs e) {
// Handle key down events here
switch (e.KeyCode) {
case Keys.A:
// Handle...
break;
// ...
}
}You will also want to define keyboard events for key presses (the KeyPress event), key releases (the KeyUp event) and, optionally, the KeyUp event.

URL: https://forum.audiogames.net/post/616172/#p616172




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Questions about C#

2021-02-16 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Questions about C#

@21, your thinking in a more BGT-ish way of doing things. You need to get out of that mindset -- its not going to help you here.Windows forms (and every other kind of UI library) rely on events to convey information to you. There is no central "key_pressed" function because that's not how a UI actually works. Even game frameworks like SDL2 and SFML do not function this way. I've no doubt that its safe to say that BGT has taught you the entirely wrong way of doing things.To handle keyboard events in windows forms, create a function to handle all keyboard events:private void Form_KeyDown(Object sender, KeyEventArgs e) {
// Handle key down events here
switch (e.KeyCode) {
case Keys.A:
// Handle...
break;
// ...
}
}You will also want to define keyboard events for key presses (the KeyPress event), key releases (the KeyUp event) and, optionally, the KeyUp event.

URL: https://forum.audiogames.net/post/616172/#p616172




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Questions about C#

2021-02-15 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Questions about C#

It should be in your bin directory. You don't add the C DLL to the repository but you build the .NET DLL and then you add that reference.

URL: https://forum.audiogames.net/post/615982/#p615982




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Questions about C#

2021-02-14 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Questions about C#

I'm kinda confused on why we want sound pools and BGT idioms in every new programming language we adopt. Just learn how to use the libraries like everyone else. I hate to be a dick about it but this seems ridiculous. Okay, your used to it, but its ridiculous how BGT still affects us even now despite the fact that its been obsoleted for years. If you want to learn how to use FMOD/Bass/Synthizer/Wwise, learn how to use the audio libraries and use them directly. There's no need to severely abstract them away. At most, do a thin abstraction so that you have a place to store all your loaded assets, but other than that expose the raw API you'd normally work with.

URL: https://forum.audiogames.net/post/615685/#p615685




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Questions about C#

2021-02-14 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Questions about C#

I'm kinda confused on why we want sound pools and BGT idioms in every new programming language we adopt. Just learn how to use the libraries like everyone else. I hate to be a dick about it but this seems ridiculous. Okay, your used to it, but its ridiculous how BGT still affects us even now despite the fact that its been obsoleted for years. If you want to learn how to use FMOD/Bass/Synthizer/Wwise, learn how to use the audio bindings and use them directly. There's no need to severely abstract them away.

URL: https://forum.audiogames.net/post/615685/#p615685




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Questions about C#

2021-02-14 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Questions about C#

I'm kinda confused on why we want sound pools and BGT idioms in every new programming language we adopt. Just learn how to use the libraries like everyone else. I hate to be a dick about it but this seems ridiculous. Okay, your used to it, but its ridiculous how BGT still affects us even now despite the fact that its been obsoleted for years.

URL: https://forum.audiogames.net/post/615685/#p615685




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Questions about C#

2021-02-12 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Questions about C#

There's MonoGame, which works okay. If you want ot handle everything yourself, you can also use SDL2 in C# -- not sure what its called off the top of my head though.

URL: https://forum.audiogames.net/post/615084/#p615084




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: is what I’m doing even considered programming?

2021-02-08 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: is what I’m doing even considered programming?

@22, Huh, nice. Sounds kinda like sciter to me, though its actually accessible.

URL: https://forum.audiogames.net/post/613860/#p613860




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: is what I’m doing even considered programming?

2021-02-08 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: is what I’m doing even considered programming?

@19, yeah, agree about node. Its one reason I haven't really gotten into it -- Its not just JS but just how weird it seems to me. Do you use Node to write your electron apps or something else?

URL: https://forum.audiogames.net/post/613852/#p613852




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: is what I’m doing even considered programming?

2021-02-08 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: is what I’m doing even considered programming?

I've looked at various areas in computer programming - mobile development, backend development and all that, so I'd say I'm not really a one-domain kind of person either. I've thought about trying to get into node.js again, but _javascript_ is just... Disgusting to me, I guess. Typescript actually seems like its worth looking at, though.

URL: https://forum.audiogames.net/post/613839/#p613839




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: how cryptography works and exampple in python?

2021-02-08 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: how cryptography works and exampple in python?

2 gives you a very simplistic explanation. The most common example is something like this: Two people want to exchange information, but they have to meet in a public place. Therefore, their conversation might be overheard and they don't want that to happen. So they both generate two sets of keys, with one key in each set being public and the other being private. When these two meet at the maul or a restaurant, for example, they exchange public keys and go on their way.The first person opens a cryptography app on their computer and enters the public key. The second person does likewise. The app generates a shared, secret key that both people know, but no one else knows.Now, to finish the process, the people open another app to communicate. The app uses a cryptographic algorithm like AES to transmit information. The two enter their shared secret into the app and they can now communicate securely: they both know a key, but no one else knows it. The information they wish to discuss is secure, encrypted behind a highly advanced cipher that is, for all intents and purposes, unbreakable. People who intercept their traffic will see the encrypted data -- which is just garbage.This is an example of the X25519 cryptography scheme. Its used in TLS, if I'm not mistaken, and is used to exchange messages via a shared secret key that only the parties involved in information exchange actually know. X25519 is an example of symmetric key cryptography -- that is, in the end your using a shared key.The other version is asymmetric key cryptography, which involves two different keys; this is called public-key cryptography. The idea behind PKC is remarkably simple: I generate a key pair that contains a public and a private key. You do the same. I then publish my public key and you do the same and we download each others keys. Now, I can send you messages by encrypting them with your public keys, and only you can decrypt them because you have the private key.HTH

URL: https://forum.audiogames.net/post/613818/#p613818




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-05 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@20, its not wasting our time, at least it isn't for me. I actually find it quite odd.

URL: https://forum.audiogames.net/post/613140/#p613140




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-05 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@18, that makes absolutely no sense though. If I wget NVDA from the official website, its not flagged. How is this program any different from wget'ing or curl'ing the same file? This program is no different to wget  && unzip nvda.exe && .\nvda\nvda.exe. So there's absolutely no reason it should be being flagged. Again, I refer you back to an updater for (say) GoldWave. GoldWave downloads a new executable binary of the setup program (which probably isn't signed). It then asks if you'd like to run it. You click okay. It runs. Defender never complains.NVDA downloads a setup program (which is just a fancy zip file converted into a special executable) and runs it. Again, no flag. So, again How is this any different other than this code downloading a zip file and extracting it before running the process?The only other difference in NVDA's update sequence and this program is that NVDA doesn't extract the setup file, but runs a separate program (the setup file) which performs the extraction, whereas this code downloads a zip file and performs the extraction inline. That shouldn't be a reason to go "Hey this is a virus, delete delete delete".

URL: https://forum.audiogames.net/post/613128/#p613128




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-05 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@18, that makes absolutely no sense though. If I wget NVDA from the official website, its not flagged. How is this program any different from wget'ing or curl'ing the same file? This program is no different to wget  && unzip nvda.exe && .\nvda\nvda.exe. So there's absolutely no reason it should be being flagged. Again, I refer you back to an updater for (say) GoldWave. GoldWave downloads a new executable binary of the setup program (which probably isn't signed). It then asks if you'd like to run it. You click okay. It runs. Defender never complains.NVDA downloads a setup program (which is just a fancy zip file converted into a special executable) and runs it. Again, no flag. So, again How is this any different other than this code downloading a zip file and extracting it before running the process?The only other difference in NVDA/s update sequence and this program is that NVDA doesn't extract the setup file, but runs a separate program which performs the extraction, whereas this code performs the extraction inline. That shouldn't be a reason to go "Hey this is a virus, delete delete delete".

URL: https://forum.audiogames.net/post/613128/#p613128




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-05 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@18, that makes absolutely no sense though. If I wget NVDA from the official website, its not flagged. How is this program any different from wget'ing or curl'ing the same file? This program is no different to wget  && unzip nvda.exe && .\nvda\nvda.exe. So there's absolutely no reason it should be being flagged. Again, I refer you back to an updater for (say) GoldWave. GoldWave downloads a new executable binary of the setup program (which probably isn't signed). It then asks if you'd like to run it. You click okay. It runs. Defender never complains.NVDA downloads a setup program (which is just a fancy zip file converted into a special executable) and runs it. Again, no flag. So, again How is this any different other than this code downloading a zip file and extracting it before running the process?

URL: https://forum.audiogames.net/post/613128/#p613128




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-05 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@18, that makes absolutely no sense though. If I wget NVDA from the official website, its not flagged. How is this program any different from wget'ing or curl'ing the same file?

URL: https://forum.audiogames.net/post/613128/#p613128




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-05 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@16, he's posted the code. None of his code sends any of those messages or calls SetWindowsHook/SetWindowsHookEx. I'm not sure what code your reading but its not the code in this topic. If he called SetWindowsHookEx I would've asked about that way earlier. He also doesn't get his code to execute in other processes. He starts a process -- nvda.exe -- but does not use shellcode or any techniques that viruses might use. I'd love to read the code that your getting that from, because if its from NvDA, then yes, NVDA does call those functions... But by that logic, NVDA is a virus. Hell, by that logic every screen reader is a virus. Naturally, such a conclusion is false. If it weren't, it wouldn't be as popular as it is.Furthermore, as I said, his wording implies that its his app that's getting deleted. Perhaps both the zip file and the binary are being deleted, or perhaps its NVDA that's getting deleted; but either way, the deletion still doesn't make sense because if his .zip file is a portable copy of NVDA, the code signing transfers with the binary. Its embedded in the binary. Wherever the binary goes, the signature goes with it. And I'm pretty positive that NVDA is signed.If NVDA remote and such weren't signed, then defender would only delete those particular binaries and not the entire download. That is assuming, mind, that the deletion occurs *after* the extraction. If his wording is correct, deletion occurs before the downloader is even able to begin downloading the archive, so there's something else weird going on.

URL: https://forum.audiogames.net/post/613119/#p613119




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-05 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@16, he's posted the code. None of his code sends any of those messages or calls SetWindowsHook/SetWindowsHookEx. I'm not sure what code your reading but its not the code in this topic. If he called SetWindowsHookEx I would've asked about that way earlier. He also doesn't get his code to execute in other processes. He starts a process -- nvda.exe -- but does not use shellcode or any techniques that viruses might use. I'd love to read the code that your getting that from, because if its from NvDA, then yes, NVDA does call those functions... But by that logic, NVDA is a virus. Hell, by that logic every screen reader is a virus. Naturally, such a conclusion is false. If it weren't, it wouldn't be as popular as it is.Furthermore, as I said, his wording implies that its his app that's getting deleted. Perhaps both the zip file and the binary are being deleted, or perhaps its NVDA that's getting deleted; but either way, the deletion still doesn't make sense because if his .zip file is a portable copy of NVDA, the code signing transfers with the binary. Its embedded in the binary. Wherever the binary goes, the signature goes with it.

URL: https://forum.audiogames.net/post/613119/#p613119




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-05 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@16, he's posted the code. None of his code sends any of those messages or calls SetWindowsHook/SetWindowsHookEx. I'm not sure what code your reading but its not the code in this topic. If he called SetWindowsHookEx I would've asked about that way earlier. He also doesn't get his code to execute in other processes. He starts a process -- nvda.exe -- but does not use shellcode or any techniques that viruses might use.

URL: https://forum.audiogames.net/post/613119/#p613119




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-05 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@13, I considered that but as I noted in my post I rejected that theory because the security of a protocol (either HTTP or others) isn't considered by the majority of AV software (it would most likely be considered by the .NET framework itself). The use of an insecure HTTP URL is suspicious, I'll give you that, but its still not really an argument for the executable file being completely deleted. Furthermore, I have NVDA remote and Malwarebytes has yet to remove NVDA from my system. Defender relying purely on whether code has been signed or not seems illogical and downright stupid, especially considering that code signing protection can be disabled.Similarly, the argument of a domain being blocked doesn't make sense either; if it were being blocked the binary would still be allowed to run but it wouldn't be allowed to connect to the domain. From what the OP is saying, it sounds like the file, remote.exe, is itself being erased, not NVDA.Finally, system calls doesn't make sense either. What specific system calls would need to execute? I'm kinda confused on this particular argument.Edit: also, windows syscalls are also very wordy. "NtAccessCheckByTypeResultListAndAuditAlarmByHandle"? "NtConvertBetweenAuxiliaryCounterAndPerformanceCounter"? And people say that Java is wordy...

URL: https://forum.audiogames.net/post/613094/#p613094




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-05 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@13, I considered that but as I noted in my post I rejected that theory because the security of a protocol (either HTTP or others) isn't considered by the majority of AV software (it would most likely be considered by the .NET framework itself). The use of an insecure HTTP URL is suspicious, I'll give you that, but its still not really an argument for the executable file being completely deleted. Furthermore, I have NVDA remote and Malwarebytes has yet to remove NVDA from my system. Defender relying purely on whether code has been signed or not seems illogical and downright stupid, especially considering that code signing protection can be disabled.Similarly, the argument of a domain being blocked doesn't make sense either; if it were being blocked the binary would still be allowed to run but it wouldn't be allowed to connect to the domain. From what the OP is saying, it sounds like the file, remote.exe, is itself being erased, not NVDA.Finally, system calls doesn't make sense either. What specific system calls would need to execute? I'm kinda confused on this particular argument.Edit: also, windows syscalls are also very long-winded. "NtAccessCheckByTypeResultListAndAuditAlarmByHandle"? And people say that Java is wordy...

URL: https://forum.audiogames.net/post/613094/#p613094




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-05 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@13, I considered that but as I noted in my post I rejected that theory because the security of a protocol (either HTTP or others) isn't considered by the majority of AV software (it would most likely be considered by the .NET framework itself). The use of an insecure HTTP URL is suspicious, I'll give you that, but its still not really an argument for the executable file being completely deleted. Furthermore, I have NVDA remote and Malwarebytes has yet to remove NVDA from my system. Defender relying purely on whether code has been signed or not seems illogical and downright stupid, especially considering that code signing protection can be disabled.Similarly, the argument of a domain being blocked doesn't make sense either; if it were being blocked the binary would still be allowed to run but it wouldn't be allowed to connect to the domain. From what the OP is saying, it sounds like the file, remote.exe, is itself being erased, not NVDA.Finally, system calls doesn't make sense either. What specific system calls would need to execute? I'm kinda confused on this particular argument.

URL: https://forum.audiogames.net/post/613094/#p613094




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-05 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@13, I considered that but as I noted in my post I rejected that theory because the security of a protocol (either HTTP or others) isn't considered by the majority of AV software. I have NVDA remote and Malwarebytes has yet to remove NVDA from my system. Defender relying purely on whether code has been signed or not seems illogical and downright stupid, especially considering that code signing protection can be disabled.Similarly, the argument of a domain being blocked doesn't make sense either; if it were being blocked the binary would still be allowed to run but it wouldn't be allowed to connect to the domain. From what the OP is saying, it sounds like the file, remote.exe, is itself being erased, not NVDA.Finally, system calls doesn't make sense either. What specific system calls would need to execute? I'm kinda confused on this particular argument.

URL: https://forum.audiogames.net/post/613094/#p613094




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-04 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

Okay, so I updated my ClamAV database and ran the following command:clamscan --verbose --archive-verbose --bell --allmatch=yes --bytecode=yes --bytecode-unsigned=yes --detect-pua=yes --detect-structured=yes --structured-ssn-format=2 --structured-ssn-count=1 --structured-cc-count=1 --scan-mail=yes --phishing-sigs=yes --phishing-scan-urls=yes --heuristic-alerts=yes --heuristic-scan-precedence=yes --normalize=no --scan-pe=yes --scan-elf=yes --scan-ole2=yes --scan-pdf=yes --scan-swf=yes --scan-html=yes --scan-xmldocs=yes --scan-hwp3=yes --scan-archive=yes --alert-broken=yes --alert-encrypted=yes --alert-encrypted-archive=yes --alert-encrypted-doc=yes --alert-macros=yes --alert-exceeds-max=yes --alert-phishing-ssl=yes --alert-phishing-cloak=yes --alert-partition-intersection=yes --disable-cache remote.exeAnd it yielded nothing. (Yes, I included arguments that were already enabled and some which weren't necessary, but this is generally what I use to scan files minus the --verbose and --archive-verbose option.)

URL: https://forum.audiogames.net/post/612903/#p612903




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-04 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

Okay, so I updated my ClamAV database and ran the following command:clamscan --verbose --archive-verbose --bell --allmatch=yes --bytecode=yes --bytecode-unsigned=yes --detect-pua=yes --detect-structured=yes --structured-ssn-format=2 --structured-ssn-count=1 --structured-cc-count=1 --scan-mail=yes --phishing-sigs=yes --phishing-scan-urls=yes --heuristic-alerts=yes --heuristic-scan-precedence=yes --normalize=no --scan-pe=yes --scan-elf=yes --scan-ole2=yes --scan-pdf=yes --scan-swf=yes --scan-html=yes --scan-xmldocs=yes --scan-hwp3=yes --scan-archive=yes --alert-broken=yes --alert-encrypted=yes --alert-encrypted-archive=yes --alert-encrypted-doc=yes --alert-macros=yes --alert-exceeds-max=yes --alert-phishing-ssl=yes --alert-phishing-cloak=yes --alert-partition-intersection=yes --disable-cache remote.exeYielded nothing. (Yes, I included arguments that were already enabled and some which weren't necessary, but this is generally what I use to scan files minus the --verbose and --archive-verbose option.)

URL: https://forum.audiogames.net/post/612903/#p612903




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-04 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@4, I disagree. This technique (downloading files, extracting them, and running processes) is not so different from how autoupdaters work. An autoupdater needs only to download an executable binary and run it via an invocation method like the one displayed here. By that logic, autoupdaters are also malicious and should be flagged by defender, something that we haven't seen a case of. I significantly doubt that is the culprit. Similarly, I doubt the use of an insecure protocol (though that may be a contributing factor) is an actual problem, though it is not best practice.@Op, do you mind uploading a copy of your compiled binary? I can run it through ClamAV (and perhaps you can run it through virustotal as well) to see what they see.

URL: https://forum.audiogames.net/post/612861/#p612861




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-04 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@4, I disagree. This technique (downloading files, extracting them, and running processes) is not so different from how autoupdaters work. An autoupdater needs only to download an executable binary and run it via an invocation method like the one displayed here. By that logic, autoupdaters are also malicious and should be flagged by defender, irrespective of whether it has been signed or not. I significantly doubt that is the culprit. Similarly, I doubt the use of an insecure protocol (though that may be a contributing factor) is an actual problem, though it is not best practice.

URL: https://forum.audiogames.net/post/612861/#p612861




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-04 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

@4, I disagree. This technique (downloading files, extracting them, and running processes) is not so different from how autoupdaters work. An autoupdater needs only to download an executable binary and run it via an invocation method like the one displayed here. I significantly doubt that is the culprit. Similarly, I doubt the use of an insecure protocol (though that may be a contributing factor) is an actual problem, though it is not best practice.

URL: https://forum.audiogames.net/post/612861/#p612861




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A very interesting thing that happens to me

2021-02-04 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A very interesting thing that happens to me

What exactly does your code do to run NVDA in the extracted form?

URL: https://forum.audiogames.net/post/612834/#p612834




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: I want to create 3D game. What language to use?

2021-02-02 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: I want to create 3D game. What language to use?

@jonikster, you've at least improved... A little.Now... Python isn't buggy -- and there's not a problem with detecting errors at runtime. Hell, even MOO does it, and you don't see anyone complaining about that. We've had dynamic typing and run-time error detection since the early 90s if not earlier. It works well in most settings. And no, you can't use a game written for Windows/Mac/Linux on a mobile device because its written for a computer with a keyboard, mouse and optionally joystick. Notice how I said 'game'. You can definitely use an app written in Python on any operating system provided the libraries your using are versatile enough and Python can run on that platform. For games, if your using SDL and you've rapped the input functions to dynamically adjust themselves based on platform, you've just eliminated that problem entirely.Bug-free: there is no such thing as a bug-free thing in existence. Everything has bugs. The most stable nuclear launch computers have bugs. Spacecraft systems have bugs. Everything does if you dig hard enough and play with it enough.

URL: https://forum.audiogames.net/post/612221/#p612221




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: The Synthizer Thread

2021-01-31 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: The Synthizer Thread

@366, ah, I understand now. Thanks for that clarification.

URL: https://forum.audiogames.net/post/611689/#p611689




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: The Synthizer Thread

2021-01-31 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: The Synthizer Thread

I might've asked some of these questions before, sorry if I have. But I've noticed a couple things:1. You implement a custom bitset class. What's the rationale for this when C++ already has a bitset class in ?2. You use const std::string references. How is this better than std::string_view?3. In your bitset class you use the __builtin_popcount (as well as __builtin_ctz). C++20 adds the  header which adds various bit manipulation functions, see this. I think that it might be better to switch to these functions since they aren't architecture specific whereas the __builtin_* functions are, if I'm not mistaken, architecture specific.These are primarily curiosities of mine; it just seems like your reinventing the wheel in these cases and I'm curious why.

URL: https://forum.audiogames.net/post/611680/#p611680




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: I want to create 3D game. What language to use?

2021-01-31 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: I want to create 3D game. What language to use?

This is just not a good question to ask. I don't know why people continue to ask it. I think in beginner programmer courses and books we should hammer it home to never ask questions like this because your only going to get opinions and flamewars in response.There is no "right" language for tasks like this. It heavily depends on your experience and how far your willing to go.

URL: https://forum.audiogames.net/post/611663/#p611663




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A few question about C.

2021-01-30 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A few question about C.

@28, yeah, but that's not really privacy -- that's more like security through obscurity. The compiler isn't enforcing that. But I know what you mean and that's a pretty common approach.

URL: https://forum.audiogames.net/post/611339/#p611339




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A few question about C.

2021-01-30 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A few question about C.

@26, I... Guess that's an apt metaphor? Though I'd say passing pointers is giving everyone the address and key to your home instead of just giving people the address. C has no concept of privacy, after all.

URL: https://forum.audiogames.net/post/611255/#p611255




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A few question about C.

2021-01-28 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A few question about C.

@24, none of the bugs I talked about were hypothetical though. They're bound to happen if that code is actually used in practice, which is why I recommended strtol over that hack. I don't know if its stack alignment; I'd need to disassemble the code to see what that looks like.Okay, so I just disassembled it. Clang reserves 72 bytes of stack space for the function, so that's definitely it.read_four_bytes_hex:# @read_four_bytes_hex
.seh_proc read_four_bytes_hex
# %bb.0:# %entry
subq$72, %rsp
.seh_stackalloc 72
.seh_endprologueGCC is a bit more conservative, reserving 48 bytes:read_four_bytes_hex:
pushq%rbp #
.seh_pushreg%rbp
movq%rsp, %rbp #,
.seh_setframe%rbp, 0
subq$48, %rsp #,
.seh_stackalloc48
.seh_endprologue
movq%rcx, 16(%rbp) # str, str
movq%rdx, 24(%rbp) # src, src

URL: https://forum.audiogames.net/post/610761/#p610761




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A few question about C.

2021-01-28 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A few question about C.

Yeah, 22 is right. The only reason that code works is because your string is 9 bytes long so adding 6 is still within the programs memory space, and its of type char (1 byte) and not any larger type. But it will crash horribly if your string is smaller than 6 bytes. And again, that code isn't even how you'd read 4 hex bytes anyway. If you didn't write that, then I'd say whoever did has absolutely no idea what they're doing and should go back to the basics, or they do but they don't care. Either case is bad.Edit: Forgot to add that there are lots of other ways that code is wrong but I don't want to bore you with all the vulnerabilities it has. Just go with the strto* functions and snprintf. That function is pretty much this in a far less complicated and buggy way:for (int i = 0; i < 4; ++i) {
const long num = strtol(str[i], NULL, 16);
// Do whatever you need to do with i, not modifying num...
}Notice that I made 'num' const. I'm assuming that you won't be modifying num, so I constify it (you should preferably constify everything you don't change so you don't accidentally break things). If you're goingto modify it, leave 'const' out.

URL: https://forum.audiogames.net/post/610737/#p610737




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A few question about C.

2021-01-28 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A few question about C.

Yeah, 22 is right. The only reason that code works is because your string is 9 bytes long so adding 6 is still within the programs memory space, and its of type char (1 byte) and not any larger type. But it will crash horribly if your string is smaller than 6 bytes. And again, that code isn't even how you'd read 4 hex bytes anyway. If you didn't write that, then I'd say whoever did has absolutely no idea what they're doing and should go back to the basics, or they do but they don't care. Either case is bad.

URL: https://forum.audiogames.net/post/610737/#p610737




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A few question about C.

2021-01-27 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A few question about C.

@18, first, pointers are indeed passed around like that to prevent you from passing data by-value, which prevents unnecessary copies of data. A pointer will always be the same no matter where you send it so long as its not modified.Second, no. What your doing with that code is allocating data on the stack. Stack allocations do not need to be freed. You only free memory that you allocate with malloc/calloc. You never, ever call free on stack-allocated memory because that memory is not alocated by the memory allocator but by the compiler. Calling free on stack-allocated memory (or memory allocated by a different memory allocator) is undefined behavior.To understand how this works, you have to understand the stack and the heap. The stack is where your variables are allocated. For example, if you declare a variable of type uint64_t, 8 bytes are allocated on the stack. When that function returns, those 8 bytes are freed automatically -- you don't need to take care of that. On the other hand, the heap is where your deliberately allocated memory is allocated. Calling malloc/calloc allocates heap memory. The heap is usually a lot larger than the stack, so that's where the majority of your allocations will go. The problem is that the compiler isn't going to know when you allocate heap memory, so you have to deliberately indicate that the memory should be freed by calling free on that allocated memory.Now, pointers. A pointer can point to either stack or heap memory. Performing arithmetic operations on a pointer modifies the address of the pointer, not the data that the pointer points to; to do that you have to dereference the pointer by using * before its name. Which leads me beautifully into the issue of this code: this code has no idea how large your string is. Typically in C, a separate argument is added to the function to determine the size of arrays/strings. You could use strlen to calculate it for you as well, but the point is that your code doesn't do this. This opens up a buffer overflow vulnerability in your code. The line that increases the pointer of str by six bytes could easily start reading from adjacent memory that your code doesn't own if your string happens to be less than eight bytes in size (providing an extra byte for NULL). The same problem occurs with that functions use of sprintf. Always use snprintf over sprintf; same goes for strncpy over strcpy and strncat over strcat. Basically, the rule is: for string functions, use the strn* versions instead of the str* versions at all times. (Also, this isn't the way you read hex digits; this could easily be altered to use strtol/strtoll or strtoul/strtoull, which is a lot safer than this code and does not suffer from its problems.)I know I've told you a lot more than you asked for, but I hope I've helped you too. I won't provide code -- I'll leave that for you to figure out on your own.

URL: https://forum.audiogames.net/post/610424/#p610424




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A few question about C.

2021-01-27 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A few question about C.

@18, first, pointers are indeed passed around like that to prevent you from passing data by-value, which prevents unnecessary copies of data. A pointer will always be the same no matter where you send it so long as its not modified.Second, no. What your doing with that code is allocating data on the stack. Stack allocations do not need to be freed. You only free memory that you allocate with malloc/calloc. You never, ever call free on stack-allocated memory because that memory is not alocated by the memory allocator but by the compiler. Calling free on stack-allocated memory (or memory allocated by a different memory allocator) is undefined behavior.To understand how this works, you have to understand the stack and the heap. The stack is where your variables are allocated. For example, if you declare a variable of type uint64_t, 8 bytes are allocated on the stack. When that function returns, those 8 bytes are freed automatically -- you don't need to take care of that. On the other hand, the heap is where your deliberately allocated memory is allocated. Calling malloc/calloc allocates heap memory. The heap is usually a lot larger than the stack, so that's where the majority of your allocations will go. The problem is that the compiler isn't going to know when you allocate heap memory, so you have to deliberately indicate that the memory should be freed by calling free on that allocated memory.Now, pointers. A pointer can point to either stack or heap memory. Performing arithmetic operations on a pointer modifies the address of the pointer, not the data that the pointer points to; to do that you have to dereference the pointer by using * before its name. Which leads me beautifully into the issue of this code: this code has no idea how large your string is. Typically in C, a separate argument is added to the function to determine the size of arrays/strings. You could use strlen to calculate it for you as well, but the point is that your code doesn't do this. This opens up a buffer overflow vulnerability in your code. The line that increases the pointer of str by six bytes could easily start reading from adjacent memory that your code doesn't own if your string happens to be less than eight bytes in size (providing an extra byte for NULL). The same problem occurs with that functions use of spinrtf. Always use snprintf over sprintf. (Also, this isn't the way you read hex digits; this could easily be altered to use strtol/strtoll or strtoul/strtoull, which is a lot safer than this code and does not suffer from its problems.)I know I've told you a lot more than you asked for, but I hope I've helped you too. I won't provide code -- I'll leave that for you to figure out on your own.

URL: https://forum.audiogames.net/post/610424/#p610424




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A few question about C.

2021-01-27 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A few question about C.

@18, first, pointers are indeed passed around like that to prevent you from passing data by-value, which prevents unnecessary copies of data. A pointer will always be the same no matter where you send it so long as its not modified.Second, no. What your doing with that code is allocating data on the stack. Stack allocations do not need to be freed. You only free memory that you allocate with malloc/calloc. You never, ever call free on stack-allocated memory because that memory is not alocated by the memory allocator but by the compiler. Calling free on stack-allocated memory (or memory allocated by a different memory allocator) is undefined behavior.To understand how this works, you have to understand the stack and the heap. The stack is where your variables are allocated. For example, if you declare a variable of type uint64_t, 8 bytes are allocated on the stack. When that function returns, those 8 bytes are freed automatically -- you don't need to take care of that. On the other hand, the heap is where your deliberately allocated memory is allocated. Calling malloc/calloc allocates heap memory. The heap is usually a lot larger than the stack, so that's where the majority of your allocations will go. The problem is that the compiler isn't going to know when you allocate heap memory, so you have to deliberately indicate that the memory should be freed by calling free on that allocated memory.Now, pointers. A pointer can point to either stack or heap memory. Performing arithmetic operations on a pointer modifies the address of the pointer, not the data that the pointer points to; to do that you have to dereference the pointer by using * before its name. Which leads me beautifully into the issue of this code: this code has no idea how large your string is. Typically in C, a separate argument is added to the function to determine the size of arrays/strings. You could use strlen to calculate it for you as well, but the point is that your code doesn't do this. This opens up a buffer overflow vulnerability in your code. The line that increases the pointer of str by six bytes could easily start reading from adjacent memory that your code doesn't own if your string happens to be less than eight bytes in size (providing an extra byte for NULL). (Also, this isn't the way you read hex digits; this could easily be altered to use strtol/strtoll or strtoul/strtoull, which is a lot safer than this code and does not suffer from its problems.)I know I've told you a lot more than you asked for, but I hope I've helped you too. I won't provide code -- I'll leave that for you to figure out on your own.

URL: https://forum.audiogames.net/post/610424/#p610424




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: A few question about C.

2021-01-27 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: A few question about C.

@18, first, pointers are indeed passed around like that to prevent you from passing data by-value, which prevents unnecessary copies of data. A pointer will always be the same no matter where you send it so long as its not modified.Second, no. What your doing with that code is allocating data on the stack. Stack allocations do not need to be freed. You only free memory that you allocate with malloc/calloc. You never, ever call free on stack-allocated memory because that memory is not alocated by the memory allocator but by the compiler. Calling free on stack-allocated memory (or memory allocated by a different memory allocator) is undefined behavior.To understand how this works, you have to understand the stack and the heap. The stack is where your variables are allocated. For example, if you declare a variable of type uint64_t, 8 bytes are allocated on the stack. When that function returns, those 8 bytes are freed automatically -- you don't need to take care of that. On the other hand, the heap is where your deliberately allocated memory is allocated. Calling malloc/calloc allocates heap memory. The heap is usually a lot larger than the stack, so that's where the majority of your allocations will go. The problem is that the compiler isn't going to know when you allocate heap memory, so you have to deliberately indicate that the memory should be freed by calling free on that allocated memory.Now, pointers. A pointer can point to either stack or heap memory. Performing arithmetic operations on a pointer modifies the address of the pointer, not the data that the pointer points to; to do that you have to dereference the pointer by using * before its name. Which leads me beautifully into the issue of this code: this code has no idea how large your string is. Typically in C, a separate argument is added to the function to determine the size of arrays/strings. You could use strlen to calculate it for you as well, but the point is that your code doesn't do this. This opens up a buffer overflow vulnerability in your code. The line that increases the pointer of str by six bytes could easily start reading from adjacent memory that your code doesn't own if your string happens to be less than four bytes. (Also, this isn't the way you read hex digits; this could easily be altered to use strtol/strtoll or strtoul/strtoull, which is a lot safer than this code and does not suffer from its problems.)I know I've told you a lot more than you asked for, but I hope I've helped you too. I won't provide code -- I'll leave that for you to figure out on your own.

URL: https://forum.audiogames.net/post/610424/#p610424




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: An idea I have: Android TTS to Windows bridge, and a problem with myse

2021-01-26 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: An idea I have: Android TTS to Windows bridge, and a problem with myse

@16, this isn't actually necessarily correct. Well, it is, for the most part. Android does provide the NDK if you do want to write your apps/libs in C, but I have no idea how much that library provides. It may only provide the low-level APIs to graphics (Vulkan uses the ANativeWindow struct from that so I think that's what it does provide) or it might allow you to write whole Android apps in C. Even if it does I can't imagine anyone actually wanting to write an Android app in C (though it might actually be easier than doing it in Java/Kotlin/whatever The Android APIs in Java seemed way too over-complicated the last time I looked at them).

URL: https://forum.audiogames.net/post/610005/#p610005




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: An idea I have: Android TTS to Windows bridge, and a problem with myse

2021-01-26 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: An idea I have: Android TTS to Windows bridge, and a problem with myse

@16, this isn't actually necessarily correct. Well, it is, for the most part. Android does provide the NDK if you do want to write your apps/libs in C, but I have no idea how much that library provides. It may only provide the low-level APIs to graphics (Vulkan uses the ANativeWindow struct from that so I think that's what it does provide) or it might allow you to write whole Android apps in C. Even if it does I can't imagine anyone actually wanting to write an Android app in C (though it might actually be easier than doing int in Java/Kotlin/whatever The Android APIs in Java seemed way too over-complicated the last time I looked at them).

URL: https://forum.audiogames.net/post/610005/#p610005




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Framework, my new set of tools for audiogame creation in python3

2021-01-26 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Framework, my new set of tools for audiogame creation in python3

amerikranian is right; you should never reuse an IV/Nonce. There's a particular cryptographic algorithm that builds on top of AES called AES-SIV (and there's a GCM mode based on it called AES-GCM-SIV) that offers some protection if you reuse a nonce/IV, but still, its just not something you do. Its akin to reusing the same encryption key. Sure, the IV is public, but that's no excuse for reusing it. (Hint: if you don't know how to do cryptography properly, do *not* do it at all yourself. Use another library like Cryptography's high-level layer that abstracts all those details away from you. Unless you know what your doing, don't interact with the low-level ciphers themselves, and don't screw around with primitives. If you do that without understanding exactly what your doing, it'll be no one's fault but yours when your encryption gets broken -- and by an amateur cryptanalyst to boot, or someone who's actually malicious out to get you. If you use crypto properly the expert hackers will have quite a time trying to break it, but doing it wrong is just as bad as not using it at all.) I would strongly recommend that the author of this topic go read a book called 'Serious Cryptography'. Its a practical approach to cryptography that goes into great detail about all of this. I'd recommend that very same book to anyone else who is interested. The book is written by one of the authors of the BLAKE2 hash function, and its all factually correct.

URL: https://forum.audiogames.net/post/610004/#p610004




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Framework, my new set of tools for audiogame creation in python3

2021-01-26 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Framework, my new set of tools for audiogame creation in python3

amerikranian is right; you should never reuse an IV/Nonce. There's a particular cryptographic algorithm that builds on top of AES called AES-SIV (and there's a GCM mode based on it called AES-GCM-SIV) that offers some protection if you reuse a nonce/IV, but still, its just not something you do. Its akin to reusing the same encryption key. Sure, the IV is public, but that's no excuse for reusing it. (Hint: if you don't know how to do cryptography properly, do *not* do it at all yourself. Use another library like Cryptography's high-level layer that abstracts all those details away from you. Unless you know what your doing, don't interact with the low-level ciphers themselves, and don't screw around with primitives. If you do that without understanding exactly what your doing, it'll be no one's fault when your encryption gets broken.) I would strongly recommend that the author of this topic go read a book called 'Serious Cryptography'. Its a practical approach to cryptography that goes into great detail about all of this. I'd recommend that very same book to anyone else who is interested. The book is written by one of the authors of the BLAKE hash function, and its all factually correct.

URL: https://forum.audiogames.net/post/610004/#p610004




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Python and audiogame

2021-01-26 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Python and audiogame

You can always write your own engine for your particular game as well. If you come back later and believe that none of the engines suit your particular needs, writing the engine and using tools like pygame and cytolk themselves is a really good way of learning how all of this works under the hood (not to mention its an excellent learning device). Using these frameworks only gives you a slight edge; even with them there's still a lot of code you'll have to write, but these engines take a way all the boring stuff so you can get down to the good stuff. I'd encourage you to try writing your own sometime though if you really want to learn how it all works.

URL: https://forum.audiogames.net/post/610003/#p610003




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Am I too stupid for programming?

2021-01-26 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Am I too stupid for programming?

Mathematics is a good companion to programming because you then have the concepts down in terms of how they work in a mathematical context. I.e.: You know what a variable is and what constants are. You know how conditional statements are expressed (if x then y else z). You know how to use functions and to incorporate them into equations and mathematical algorithms. And so on.But math is not a prerequisite to programming. It helps, sure, which is why some people, when they hear about computer programming, believe its math related. But programming and math can be two very separate things, or they can combine into one. It really depends on what your trying to do. If your working with bits, hardware, cryptographic operations, or computer graphics, or physics, and so on, math (sometimes quite advanced mathematics) is a requirement. If your writing basic algorithms (sorting, searching, ...) you hardly need to know much math at all. I know someone who's implemented a ton of stuff without going above algebra II (and maybe some geometry) in his entire programming career. The highest level of mathematics I've used in programming is basic statistics, and most of that didn't exceed college algebra.Really, a computers basic mathematical operations are the four arithmetic operations that we all know: addition, subtraction, multiplication and division. All other mathematical operations (square roots, powers-of-two, binary arithmetic, bit shifting, ...) are based on those four concepts. There's lower-level knowledge on how that stuff is actually implemented, but its not something you need to know unless your trying to emulate/synthesize those operations for some reason.

URL: https://forum.audiogames.net/post/609971/#p609971




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Confusion with low-level audio libraries

2021-01-24 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Confusion with low-level audio libraries

@4, yeah, I've heard of that.

URL: https://forum.audiogames.net/post/609459/#p609459




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Confusion with low-level audio libraries

2021-01-24 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Confusion with low-level audio libraries

@2, wow, a lot to digest there. Autovectorization for me has always been difficult to get right; it seems like you have to write your code in a particular way. And pulling in architecture intrinsics is a pain (I still haven't figured out how to actually use SIMD properly and correctly). Your post was informative; I'll dig into Synthizer sometime and see if I can figure it out from there.

URL: https://forum.audiogames.net/post/609446/#p609446




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Confusion with low-level audio libraries

2021-01-24 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Confusion with low-level audio libraries

So I'm looking at audio libraries like Miniaudio or CPAL. I've always used others like FMOD/BASS because they abstract these details away from me, and so I've never really had to worry about it. However, I've always been curious how this works. In CPAL, for example, you create a host with a method like default_host. These hosts can then initialize devices with one of the methods defined in the Host trait. After that, you create streams with either build_input_stream(), build_output_stream(), build_input_stream_raw(), or build_output_stream_raw(), as defined in the Device trait. This is where my confusion arises: any of the build stream methods takes a callback to feed the audio system audio samples. I understand how this works in principal if I want to play a single sound, or if I want to play multiple sounds mixed together. But what if I have multiple "channels"? How do modern audio systems handle that kind of problem if you usually only have a single stream (at least, I think), and the stream data callback is called at some unknown interval? Is each channel just another sound to be added to the final output signal?I'm also curious about how DSPs are propagated when set on sounds, but I imagine the data method is called extremely frequently so I'm guessing that the data method contains a central algorithm for applying DSPs, mixes all the samples together and then completes. But I'm honestly curious how this actually works.

URL: https://forum.audiogames.net/post/609420/#p609420




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Confusion with low-level audio libraries

2021-01-24 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Confusion with low-level audio libraries

So I'm looking at audio libraries like Miniaudio or CPAL. I've always used others like FMOD/BASS because they abstract these details away from me, and so I've never really had to worry about it. However, I've always been curious how this works. In CPAL, for example, you create a host with a method like default_host. These hosts can then initialize devices with one of the methods defined in the Host trait. After that, you create streams with either build_input_stream(), build_output_stream(), build_input_stream_raw(), or build_output_stream_raw(), as defined in the Device trait. This is where my confusion arises: any of the build stream methods takes a callback to feed the audio system audio samples. I understand how this works in principal if I want to play a single sound, or if I want to play multiple sounds mixed together. But what if I have multiple "channels"? How do modern audio systems handle that kind of problem if you usually only have a single stream (at least, I think), and the stream data callback is called at some unknown interval?

URL: https://forum.audiogames.net/post/609420/#p609420




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Your Eclipse Experiences

2021-01-22 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Your Eclipse Experiences

Eclipse (and derivatives) have always been sluggish and difficult to use. It also has accessibility problems, e.g.: tree views not properly updating screen reader focus when navigating through nodes.

URL: https://forum.audiogames.net/post/608878/#p608878




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Scripting language for audio game creation

2021-01-17 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Scripting language for audio game creation

First, you don't want a scripting language. That will be incredibly restricting. In some instances that's okay, but in the majority its not. Python, Go, C++, C... All of these languages (and then some) can be used to accomplish your task. I would lower the bar though if your not very skilled in programming.

URL: https://forum.audiogames.net/post/607411/#p607411




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: domain plobblem

2021-01-16 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: domain plobblem

I'd also set up an  record as well since IPv6 is becoming more commonplace and IPv4 is slowly being phased out.

URL: https://forum.audiogames.net/post/607357/#p607357




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Working with SDL natively

2021-01-02 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Working with SDL natively

Agree with 20. Though there's a few timers I know of that would work, none of them are directly accessible, and the overhead of priorities plus  scheduler plus interrupts equals inaccuracies. The real time clock for example can tick at up to 122ns per tick, but you run into the problem of "Well this isn't something I can exactly measure". The APIC has microsecond-level granularity, which is wonderful... Until you realize that by the time your program gets woken up from sleeping your interval is long gone. So when you sleep you generally have to just do your best.

URL: https://forum.audiogames.net/post/603839/#p603839




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Working with SDL natively

2021-01-01 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Working with SDL natively

@17, oh, I understand now. Yeah, getting an accurate enough sleep is tricky especially when you throw in things like the scheduler and priorities.

URL: https://forum.audiogames.net/post/603675/#p603675




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Working with SDL natively

2021-01-01 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Working with SDL natively

@13, this isn't actually right. Normally, your right; timer delays can be excruciating when your trying to maintain a constant tickrate. But SDL_GetPerformanceCounter() calls QueryPerformanceCounter on windows, which, according to this article, uses the Time Stamp Counter (TSC) in the processor, which ticks at the processors nominal frequency. On Linux/Unix: if monotonic time is supported, it uses clock_gettime() with the monotonic clock, or, if on Apple devices, uses mach_absolute_time(). I have no idea how accurate mach_absolute_time() is, but if memory serves the monotonic clock is extremely accurate. (Checking the Linux sources, it seems like the clocks are based on the loaded drivers -- according to the Linux 5.9 source code at least.) Perhaps I'm wrong and those 20ms-100ms performance hits occur but I've researched game loops and most of the pro game loop design articles I can find suggest using QueryPerformanceCounter or an equivalent in instances like this.If I'm indeed wrong and such a performance hit does occur, then that's kinda surprising since the hardware clocks/timers that are available (even in early boot) can tick at incredibly quick frequencies. I wonder if its scheduler/interrupt overhead that causes those hits.

URL: https://forum.audiogames.net/post/603648/#p603648




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Working with SDL natively

2021-01-01 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Working with SDL natively

@13, this isn't actually right. Normally, your right; timer delays can be excruciating when your trying to maintain a constant tickrate. But SDL_GetPerformanceCounter() calls QueryPerformanceCounter on windows, which, according to this article, uses the Time Stamp Counter (TSC) in the processor, which ticks at the processors nominal frequency. On Linux/Unix: if monotonic time is supported, it uses clock_gettime() with the monotonic clock, or, if on Apple devices, uses mach_absolute_time(). I have no idea how accurate mach_absolute_time() is, but if memory serves the monotonic clock is extremely accurate. (Checking the Linux sources, it seems like the clocks are based on the loaded drivers -- according to the Linux 5.9 source code at least.) Perhaps I'm wrong and those 20ms-100ms performance hits occur but I've researched game loops and most of the pro game loop design articles I can find suggest using QueryPerformanceCounter or an equivalent in instances like this.

URL: https://forum.audiogames.net/post/603648/#p603648




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Working with SDL natively

2021-01-01 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Working with SDL natively

@10, you need a game loop. There are various ways of doing this. For an audio game (since your not using graphics yet -- right?) you can use a constant FPS tickrate:TICKS_PER_SECOND = 60
SKIP_TICKS = int(1000 / TICKS_PER_SECOND)
next_game_tick = SDL_GetPerformanceCounter()
sleep_time = 0
done = False
while not done:
next_game_tick += SKIP_TICKS
sleep_time = next_game_tick - SDL_GetPerformanceCounter()
if sleep_time >= 0:
time.sleep(sleep_time)
# Handle eventsOr something like that. (sleep_time is in milliseconds -- or should be converted to milliseconds.)

URL: https://forum.audiogames.net/post/603621/#p603621




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Python: Usage for Joysticks and External Controllers?

2021-01-01 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Python: Usage for Joysticks and External Controllers?

@15, oh, I didn't know that package even existed. Thanks for that tip!

URL: https://forum.audiogames.net/post/603550/#p603550




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Working with SDL natively

2020-12-31 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Working with SDL natively

Yep, agreed with 2 and 4. Graphics with SDL really isn't that hard; SDL pretty much only requires a few function calls and then you can either retrieve an OpenGL context or create a Vulkan one.

URL: https://forum.audiogames.net/post/603370/#p603370




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Help decide what will be in Synthizer 1.0

2020-12-31 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Help decide what will be in Synthizer 1.0

Yes, they're just atomic loads and stores, from what I can gather. It should take less than 100 ns to load and store them, though you still should avoid it.

URL: https://forum.audiogames.net/post/603334/#p603334




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: How to compile C# scripts in Notepad ++? It's possible?

2020-12-30 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: How to compile C# scripts in Notepad ++? It's possible?

@9, yes, the VS dev prompt. That is there for the express purpose of configuring a command-line development environment for you. Don't reinvent the wheel.

URL: https://forum.audiogames.net/post/603102/#p603102




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Python: Usage for Joysticks and External Controllers?

2020-12-29 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Python: Usage for Joysticks and External Controllers?

Agreed with 12. Use PySDL2. (Note: I've had trouble using PySDL2 on Windows. In particular, I had to modify the source code to get it to find sdl2.dll... Its search path is kinda weird, though I don't remember it off the top of my head.)@11Its unlikely that Pygame/Piglet, if they do use SDL2 underneath, couldn't add force-feedback (or any other SDL2-based API that isn't obsoleted by something Python provides in its stdlib). Its more likely that they just don't want to. Assuming, mind, that both are powered by SDL2.

URL: https://forum.audiogames.net/post/603000/#p603000




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Python: Usage for Joysticks and External Controllers?

2020-12-29 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Python: Usage for Joysticks and External Controllers?

Agreed with 12. Use PySDL2. (Note: I've had trouble using PySDL2 on Windows. In particular, I had to modify the source code to get it to find sdl2.dll... Its search path is kinda weird, though I don't remember it off the top of my head.)

URL: https://forum.audiogames.net/post/603000/#p603000




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Python: Usage for Joysticks and External Controllers?

2020-12-29 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Python: Usage for Joysticks and External Controllers?

Agreed with 12. Use PySDL. (Note: I've had trouble using PySDL on Windows. In particular, I had to modify the source code to get it to find sdl2.dll... Its search path is kinda weird, though I don't remember it off the top of my head.)

URL: https://forum.audiogames.net/post/603000/#p603000




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


Re: Python: Usage for Joysticks and External Controllers?

2020-12-29 Thread AudioGames . net ForumDevelopers room : Ethin via Audiogames-reflector


  


Re: Python: Usage for Joysticks and External Controllers?

SDL2's joystick support is wonderful. It needs a set of joystick button mappings to function, though. Such a mapping database is available here. To load it, use SDL_GameControllerAddMapping, SDL_GameControllerAddMappingsFromFile or SDL_GameControllerAddMappingsFromRW to load these. The game controller API is mapped on top of the joystick API. Once loaded, call SDL_NumJoysticks to check for joysticks/game controllers, then use SDL_GameControllerOpen to open one. Then you can use the other functions from either the Joystick and Game Controller APIs. For force feedback, use this API.

URL: https://forum.audiogames.net/post/602969/#p602969




-- 
Audiogames-reflector mailing list
Audiogames-reflector@sabahattin-gucukoglu.com
https://sabahattin-gucukoglu.com/cgi-bin/mailman/listinfo/audiogames-reflector


  1   2   3   4   5   6   7   8   9   10   >