2019-03-23 08:20:43

Hi, @23, i got it off github. but i will get it from apvaya, or that link you sent. thanks a lot once again

best regards
never give up on what ever you are doing.

2019-03-23 08:25:50

How ever, i don't have the src directory at all... from whitch i can grab the python file...

best regards
never give up on what ever you are doing.

2019-03-23 08:37:09

@24, for completeness, MVC is part of the MV* program architecture family. There is MVC, but also MVP, MVVM, they are all different flavors of the same core concept: decoupling the UI from the logic. They are well suited for cross platform UIs and big apps that need to scale.

Now these are just architecture types, there are a bunch of them, each with their advantages and disadvantages. Personally, I think the MV* family is a bit overkill for small projects, especially if it's an audio game with no UI. Developing a game is very different than developing something else, I've seen it when I worked in the game industry. The philosophy is you make a game, not a system. If you're writing code that does not make the game progress, then stop doing what you are doing and write code for the game. Except for small utilities like wrappers for input / output and libs, you will not reuse any code. This is the main difference, you have to maintain an app, whereas you patch a game which is basically throwable code as soon as it's released. When you develop a game, write specific code, don't write generic code, it's time wasted most of the time. You can always come back later to generalize code if it is required for the game.

I think that makes sense for the most part. A game is a product, an app is a service.

Reading is one form of escape. Running for your life is another. ― Lemony Snicket

2019-03-23 08:39:20

Wait, what? Seems theres something wrong with the latest Tolk build, hm. Also Kind of didn't mention you also needed the screen reader drivers, heh. Anyway, download the appveyor file and go into x86, copy Tolk.dll, dolapi32.dll, nvdacontrollerclient32.dll, and saapi32.dll to your working directory. Next in the github version go into the /src/python directory and copy over Tolk.py, that should get you what you need.

-BrushTone v1.3.3: Accessible Paint Tool
-AudiMesh3D v1.0.0: Accessible 3D Model Viewer

2019-03-23 09:02:29

Are you sure you need the DLLs for screen-readers? I don't know the python version, but the C# one I used detected them automatically on my computer in their default locations. I used Tolk .NET, perhaps it was wrapped?

Reading is one form of escape. Running for your life is another. ― Lemony Snicket

2019-03-23 10:38:30 (edited by magurp244 2019-03-23 11:02:12)

@30
The TolkDotNet.dll isn't the same as Tolk.dll, which the python wrapper is for, though both are in the download, or were as the case may be. When I try running scripts without the drivers in the same working directory I'd get no output, although maybe its the environment variables in my setup. Not sure how the .NET version handles,

-BrushTone v1.3.3: Accessible Paint Tool
-AudiMesh3D v1.0.0: Accessible 3D Model Viewer

2019-03-23 11:51:19

Tolk does not work for me... i have the x86 and x64 in separate folders. i copy over the x86 dll's because i am using a 32 bit version of python3.6.5, and it tells me %1 is not a valid win32 application...

best regards
never give up on what ever you are doing.

2019-03-23 12:31:31

Hm, well this is more annoying than it usually is. Alright try downloading a test file I put up in my repo awhile ago [here].

-BrushTone v1.3.3: Accessible Paint Tool
-AudiMesh3D v1.0.0: Accessible 3D Model Viewer

2019-03-23 12:45:58

wow magurp, it worked. what did you do? i can't understand how this works, i am using the 32 bit versions of the dll, and i am including all of them and even the python file... annoying. but thanks a lot. where can i get the working ones?

best regards
never give up on what ever you are doing.

2019-03-23 15:40:17 (edited by Rastislav Kish 2019-03-23 15:46:08)

I agree that game development is bit different from other systems, so selected software architecture depends much on what you want to do.

@22: it depends if you understand not just how to make a class, but also why to make a class and how to deal with its structure.
To let me explain why I'm saying that you need to know encapsulation and inheritance, there is one maior difference between those things and software architectures like mvc, mvvm, mvp, various patterns like statics, singletons, service locators etc.

Encapsulation and inheritance is a native property of object oriented programming languages like python. Like variables or functions. You can code without knowing them and also get some results. But in that case you can't say that you know how python works, because you haven't covered all its features. inheritance for example is widely used in gui systems. If you want to code a form with WxPhoenix for example, first thing you need to do is to inherit from its WindowFrame class (not to be confused with windows of pygame or pyglet, they work bit differently).
Also just by declaring a class you are inheriting from object class, although it is not visible.
So understanding of oop is connected with understanding of language.

On the other hand, there are software architectures and patterns. They have nothing to do with any programming language. They are just ways, how to use oop to make the most readable and most maintainable code. You can ignore them and still have no problems using python and understanding its libraries,. Of course if you know them, that can help you much especially in robust projects, they weren't developed just because someone was bored.
But you can use every aspect of language even without knowing them.

With that said, if you think you are confused when reading code using external libraries, the reason why you don't understand it may be because you are missing some language features and thus it would make sense that code seems more like a cypher to you than a code. smile
So my advice is to learn what you can expect from the language, then go and study libraries, source codes, etc.
of course exercising is required during the entire process, not on its end only, that's right. But in that case, if you study how to use libraries and so on, it is normal that you get confused at some points and there is no reason to be worried about it. big_smile

@21: it makes sense that C++ compiler is written in C, because there was no C++ to write C++ in. big_smile
But even if it was, how would you want to divide an algorithm, which's only task is to  grab the code and translate it to machine code to objects? Compiler is object itself, like tons of dlls which are written in C.
On the other hand, gui systems or any bigger apps, which can be divided to reasonable objects are not in C, but at least in C++. There are exceptions like Wordpress in this, but that's shame of developers and in most time cause of old roots.

I have no time to write here examples why oop is important and why every application where it is possible should use it.
But that is luckyly not needed, because someone already did so. This perfect course:
https://www.ict.social/software-design/ … hitectures
Is primary targeted to di, but it covers all important software architectures including unstructured code and practical example why to avoid it. That's already in this first lesson, so if you want, you can study it and get some ideas from professionals, along with examples and proofs.

Best regards

Rastislav

2019-03-23 18:48:31 (edited by Ethin 2019-03-23 18:52:46)

@35, I'm having trouble understanding your post. You seem to be thinking that the OP should learn all of the concepts you want themto learn because they might want a GUI system. I significantly doubt that the OP will want a GUI system any time soon, and if they did want one, I'd be encouraging them to use a 3D GUI system that uses their home-made game engine architecture rather than using an external one that will lock up your game loop or cause unnecessary headache.
You then go on to say that every project should use OOP. I don't know where your getting that idea, but its most definitely wrong and I doubt many people will listen to you if you keep spouting that. I have several books on F# that teach functional programming, which is *not OOP*. I know of several tutorials that teach Haskell, which is a purely functional language and has no OOP concepts anywhere in it. Leave peoples paradigm preferences alone and stop shoving OOP down peoples throats. And stop encouraging people to use MVC; it most likely wouldn't properly work with an audio game and its not a requirement to write good code -- because I've written C++ since 2014 and have used Python as well and have not once used MVC, MVP, MVVM, and so on in my code. When I tried, it never clicked with me.
The thing is, everyone has their own ways of programming, their own ways of writing their code. There are those that might like C, or might like another procedural, non-oOP language. There are those who like functional programming; there are those who like other paradigms; there are those who will use MVC and friends for everything... but that does in no way mean that you should force your way of life at someone and expect them to listen to you after multiple people have told you off for it and no one in the topic thus far has agreed with you.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-03-23 20:44:11

@Rastislav Kiss, it I think you only know about OOP paradigm, correct? It's totally understandable, I mean it's often the only one that's taught and no doubt it's the most used paradigm. It has a lot of advantages, but it's always important to know strengths and weaknesses of something. You see, nothing is perfect ans so is OOP. Here's a very good article showing the weaknesses of OOP and while I do not necessarily agree with everything that guy is saying, it's very well written with solid arguments: https://medium.com/@cscalfani/goodbye-o … cda4c0e53.

It's just to show you other opinions about OOP. I'm not saying OOP is bad, not at all, I'm saying that saying that OOP is one solution fits all is bad. It's just like saying plasters are good for all injuries. Sure, they will do great most of the time, but if you break an arm, you'll need something else. I'm sure you understand why people might prefer different languages and there is no harm if you say that you recommend OOP because of this and that, the problem is when you make it look like it's the only thing out there, please don't make the same mistakes as many teachers do.

You also mixed two things which I don't really like: the way OP writes code and the libs OP must read, use and understand.

Regarding how OP writes code is OP's business. When you start programming, you are not perfect the first time. You learn by making design mistakes, by realizing that the code you wrote is extremely painful to maintain, by realizing that if you knew you wanted this game feature in the first place, you should've structured the code in a different way. It's totally fine and as I said, the best code you can write for games is the one that makes your game progress the quickest.

Then, there's the part where OP needs to use libs and understand how they work. And for that, you are indeed totally right. If OP uses OOP libs, which all of them are really, then yes, OP needs to understand classes, how they work and how to use them. You don't need OOP to write your own code, it's not necessary, but you need it to read and use third party code, no doubt of that. But the skill required to read code is very different than writing code. I can understand most languages I don't know by reading a few source files, but it doesn't mean I can write code in that language. Likewise, I can read lib documentation and get running very quickly, but it doesn't mean I would be able to write that lib myself as quickly.

Reading is one form of escape. Running for your life is another. ― Lemony Snicket

2019-03-23 21:52:34

@37, I agree fully with you, but I'd like to add to your point about utilizing libraries that you don't need to understand (necessarily) all -- or even half -- of the language the library is written in to use it, especially if its a DLL or shared object. Granted, if its not, then your statement fully applies. smile

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-03-23 22:32:58

Even if it's a DLL, you need to consume the library, use their functions, classes, objects that is. You don't need to know the source behind it, but you at least need to know how to use it.

Reading is one form of escape. Running for your life is another. ― Lemony Snicket

2019-03-23 22:35:44

@40, true.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-03-23 22:41:20

You say your own post is true? That's a totology? tongue

Reading is one form of escape. Running for your life is another. ― Lemony Snicket

2019-03-23 23:08:07

@34
You should have been able to get it off appveyor, but something seems to be wrong with the file, or files. That example pack includes all the 32 bit dll's from an earlier, working copy of Tolk I have. From the looks of it the developer switched to a different compiler and made changes to appveyor in early Febuary, methinks something hath gone sideways...

-BrushTone v1.3.3: Accessible Paint Tool
-AudiMesh3D v1.0.0: Accessible 3D Model Viewer

2019-03-24 00:29:43

@41, uh, no... I was agreeing with with your post -- post 39.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github