|
Post by ledzep on Dec 25, 2013 7:09:08 GMT -5
I'm glad that this sub-forum was created. Something I want to do (and I'm betting I'm not alone) is program my own Vectrex homebrew game (hopefully, games). I know there are must-read tutorials out there that are always referenced when someone asks "How do you program the Vectrex?" but I was wondering if it would be possible to start a sort of online Vectrex programming class here.
I was thinking it could start out basic, I mean really basic, meaning that the first entries in the series would be simply how to get a development suite (editor, Vectrex emulator) set up on a computer such that a person can begin programming something obvious like "hello world" and see it display in the emulator. After that there could be periodic lessons on the Vectrex such as common subroutines for drawing or reading the controller along with sample programs to, say, read the controller and display something (a moving cursor, joystick and fire button values) in the emulator as proof that the code for the lesson works. Then, later, moving on to programming something simple like Pong or drawing lines or whatever. Not so much to make a specific sample game, more to learn what's necessary to make a real game by learning how to control the various parts of the Vectrex. I'm slowly going through a Learning Python book at the moment and it's organized this way - discussing basic concepts and parts of the language while offering code snippets that can be entered into Idle (or any other IDE) to see the results.
This, of course, would require one or more of the knowledgeable people here (homebrewists, mostly) to volunteer time and thought to this class. I suppose requests could be taken, too. But I would say that if this did happen that the first things would have to be the set-up and the plowing through the must-know basics that every game needs or uses.
Is this hoping for too much? Could it be something that could be begun here?
|
|
|
Post by VectorX on Dec 25, 2013 12:46:43 GMT -5
I'm glad that this sub-forum was created. I'm glad people will be using it I also approve of this post, and if someone (or more than one person) will lead a "class" or two (or more than that).
|
|
|
Post by jfmateos on Dec 26, 2013 3:37:34 GMT -5
I will start to sharing my programming progress soon... unfortunately, my native tongue is not english
|
|
|
Post by gauze on Dec 26, 2013 6:09:07 GMT -5
keep in mind: if you are going to make a beginners geared programming class you need several chapters before you get to the vectrex at all. The explanation of binary and hexadecimal number systems, an overview of Von Neumann architecture, the basic structures of imperative programming, to name a few. How to set up an emulator to test code would be fairly far in.
|
|
|
Post by ledzep on Dec 26, 2013 17:01:48 GMT -5
keep in mind: if you are going to make a beginners geared programming class you need several chapters before you get to the vectrex at all. The explanation of binary and hexadecimal number systems, an overview of Von Neumann architecture, the basic structures of imperative programming, to name a few. How to set up an emulator to test code would be fairly far in. Yes and no. What you are describing is computer programming for beginners that can be applied to any system but will be using the Vectrex. What I was proposing was more beginning Vectrex programming. Meaning that there is some assumption of the understanding of basic programming concepts already (interested students have coded something before like in Python or bash, just not for the Vectrex) but no experience with coding a game for the Vectrex (or anything else for that matter) or anything involving assembler. Nobody is going to use a Vectrex to balance a checkbook or edit .jpg images, there's only one obvious use for a Vectrex and that is game playing so the class or tutorials would be focused there. That's why I was saying that getting an emulator/debugger suite up and running early was necessary, I was thinking in terms of learning Python where very early on the student is instructed on how to start up Idle or how to get a Python prompt running on the command line so that example code can be entered in to see the resulting output. There is a basic assumption of minimal coding experience. That's not to say that a basics of computer programming class isn't useful or, for some, necessary. For all the reasons you listed. But that would be a much longer, more detailed class than just how to get started programming a Vectrex (and wouldn't require a Vectex emulator at all). Which is also why I figured something like Pong as the eventual example game would be useful - it's a game we're all familiar with, it's nothing amazing that a homebrew programmer would want to keep secret, it's simple. Just getting that game working would be more or less good enough for most people to move on from that to trying to program their own games and just getting that far would mean that the students had learned how to deal with the Vectrex and its controllers and display. Even within game programming there are many core concepts that must be learned so it's not like I'm claiming any of this would be easy, I'm just saying that starting from nothing would be a much more involved set of tutorials and there are probably better sources for learning basic programming concepts like hex and Von Neumann architecture.
|
|
|
Post by gliptitude on Dec 26, 2013 20:13:11 GMT -5
I say yes and no also, to both of you.
The fundamentals are important to any comprehensive understanding. But I think for the beginner it is equally important to have some GRATIFICATION very early on in the process. I wouldn't mind copying a program WITHOUT first understanding how it works. And then being instructed which portions of the program could be edited to produce a different result. Accomplish that, and get it to work on real hardware via flash cart, and THEN begin at the beginning, perhaps referring back to this initial program throughout the process.
I know that hexidecimal is a requirement, but hexidecimal itself is not programming. The math is a tough place to start for most people, one way or the other, but it is particularly discouraging when you don't really know what it has to do with the overall process. I would prefer to begin with imitation, and get to the comprehension afterwords.
I very strongly agree with ledzep that the course should specify a "development suite", although that title seems a bit overblown to me. There shouldn't be a need for any new software, and I'm pretty sure that what is necessary is only a very lean package, just a folder containing a few public domain programs and text files. But for it to make sense and conform to a step by step procedure, everyone has to have the exact same stuff, and the instructions need to refer directly to these files and programs, and be consistent.
Mainly this is all at the discretion of the qualified person who takes the time to provide such a "class". With the basic assumption and expectation that it is something DIFFERENT from the existing highly regarded tutorials, I think we all hope for something CONCRETE and STEP BY STEP.
|
|
|
Post by ledzep on Dec 28, 2013 23:21:41 GMT -5
... I very strongly agree with ledzep that the course should specify a "development suite", although that title seems a bit overblown to me. There shouldn't be a need for any new software, and I'm pretty sure that what is necessary is only a very lean package, just a folder containing a few public domain programs and text files. But for it to make sense and conform to a step by step procedure, everyone has to have the exact same stuff, and the instructions need to refer directly to these files and programs, and be consistent. Mainly this is all at the discretion of the qualified person who takes the time to provide such a "class". With the basic assumption and expectation that it is something DIFFERENT from the existing highly regarded tutorials, I think we all hope for something CONCRETE and STEP BY STEP. I agree, that instant satisfaction helps. It's not useful in and of itself but it's still needed. Is there some "industry standard" way of coding Vectrex games on PCs? I don't mean programming knowledge, I mean the actual components. For example, what do most homebrew programmers use to enter and test code? Is there some sort of "Oh ya, that's the best Vectrex emulator" consensus? Is there a typical way to run or debug sample programs? From what little I remember from reading about programming Vectrex games I thought that there was some stuff that had to be in every game, otherwise it would not run (Vectrex is not a typical computer, after all, it is expecting something specific) so that would have to be explained as well. Anway, maybe the homebrew programmers here (or even just the people who have succeeded in coding anything that ran on a Vectrex) could list what they use (and, if applicable, in what order) to program the Vectrex to run something.
|
|
|
Post by gliptitude on Dec 30, 2013 21:21:47 GMT -5
Anway, maybe the homebrew programmers here (or even just the people who have succeeded in coding anything that ran on a Vectrex) could list what they use (and, if applicable, in what order) to program the Vectrex to run something. This is a very lean list by jfmateos, the member who got this programming sub-section started: vectorgaming.proboards.com/thread/826/vectrex-programming-learning-resourcesI'd guess that you had already seen this, but I'd like to point out that this is a very straight forward list. There is just one of each type of program, so no decisions for you to make. He is pretty active here NOW And these are programs that he is using NOW.
|
|
|
Post by gauze on Jan 1, 2014 21:37:13 GMT -5
I'd just like to add I only mention hex/binary and computer arch as prerequisites because all meaningful development on the Vectrex has been done in assembly and you can't do anything without some knowledge of those two things.
|
|
|
Post by xefned on Jan 6, 2014 14:54:00 GMT -5
This is going to be fun! We've got several interested students. Hopefully an experienced teacher will be willing to step up.
But if not, then we should all be committed to 1.) being self-motivated learners, and 2.) become the teachers by documenting what we learn as we go along.
Manu has documented a lot of what you'd expect in a...
Sample syllabus
1.) Get "Hello World" running on a hardware Vectrex. 2.) Draw a static image 3.) Display a looping animation 4.) Basics of collision detection 5.) Poll the controller for stick movements and button presses
The motivation for a volunteer instructor would obviously be for the love of Vectrex's homebrew scene, but still I would suggest a minimum tuition fee of $50 per student. Courses could be taught via google hangout.
|
|
|
Post by gliptitude on Jan 6, 2014 17:17:19 GMT -5
Manu has documented a lot of what you'd expect in a... Sample syllabus1.) Get "Hello World" running on a hardware Vectrex. 2.) Draw a static image 3.) Display a looping animation 4.) Basics of collision detection 5.) Poll the controller for stick movements and button presses I have never heard of this and am now looking for it. Where to find? I found files of his early experiments, (at the bottom of the list): www.pelikonepeijoonit.net/files/vec/coders.html.. But no instructions, commentary or "syllabus". (Assuming the .bin files are already compiled ROM's).
|
|
|
Post by xefned on Jan 6, 2014 21:43:04 GMT -5
Yep, that's the page. Using the "Source" column and starting from the bottom. But "sample syllabus" is a hypothetical thing I just made up for this thread - hoping people will add to the 5 bullets that jumped off the top of my head, and develop it over time.
For the advanced class, Vectrex Game Programming 201: we could teach • speed optimization, • accepting input from the light pen, • generating VecVox compatible voice synthesis, etc.
|
|
|
Post by VECTREXER on Jan 16, 2014 15:58:31 GMT -5
Interesting. Looks like the idea has had some traction before. vimeo.com/22950322Would be cool if the session stream could be recorded for later use.
|
|
|
Post by xefned on Jan 22, 2014 23:20:09 GMT -5
|
|
|
Post by jfmateos on Jan 23, 2014 4:33:41 GMT -5
Hi xefned... you have discovered my secret website ;-)
Now I am a bit busy arranging the public release of my rom burner and multigame cartridge... but later I will start a vectrex programming course (to teach myself and whoever interested)
|
|