View Full Version : Programming the Classics - Looking at Hobby Programming
Shane R. Monroe
02-13-2003, 11:15 AM
Welcome to the topic everyone thought should be on its own!
This is a 'cross talk' thread from:
http://www.monroeworld.com/forum/viewtopic.php?t=341&start=0
Shane R. Monroe
02-13-2003, 11:41 AM
From my point of view, hobby programming languages fall really into four main groups:
TOTAL CODE:
This means that you get NOTHING without coding by hand. No shell, no point and click setups, nothing is PREDONE for you...
-Blitz Basic 2D/3D/Plus
-Dark Basic
-DIV
-Jamagic
-other old school variants - GFA, GW, AMOS, etc.
HYBRID (Slanted toward coding):
These are programming languages that offer some very BASIC point and click creation, but the only way to make anything 'finished' is to code by hand. I'm no expert but it sounds like ...
- MultiMedia Fusion
- Maybe Gamemaker?
- Shockwave
- 3D Rad
HYBRID (Slanded toward point N click programming)
These are programming languages that were really designed as 'point and click programming'. No programming required but you can in effect make changes. Final projects can really be made with this without ever touching code.
- Klick & Play
- TONS of others
ALL CLICK
These are ones that you can't code if you want to. If its not built in functionality, you ain't gettin' it.
- Too many to mention ...
Comments?
Shane R. Monroe
02-13-2003, 12:04 PM
There are certain rules that follow hobby programming languages ...
1) The easier a language is to use, the more people that will flock to it.
2) The more people that use a language the MORE product is released created with it.
3) The more product that is released, allows for MORE 'not very representative of the language' projects that tend to make the language look unfavorable.
4) The more people that use a language, the harder it is to control the community as a whole in public.
5) Every language produces crappy games and at least SOME gems. Some may be harder to find that others.
6) Most languages are NOT general purpose. They have FOCUSED purposes, and trying to ice skate uphill isn't going to help you produce a quality title.
7) Most of these languages are DESIGNED to make it possible for a one to three man team to create a decent project. Of course, when 3D comes into play, consider it doubling the effort.
8) TYPICALLY - the more built in features (maps, pathing, behaviors, etc) a language has, the LESS control you end up having over the final product. If you knew how to code, would you be using Klick & Play?
9) The harder a language is to learn does NOT make it more powerful. See C, ASM, Lingo for more information. Like I said, I've had heavy C programmers turn to Blitz because they can code faster and still produce a quality product.
10) There is more to the language than the core. WAY too many languages (blitz included) have amazingly kludgy and worthless interfaces (btw, don't make me program on a custom screen, DIV, 3D Rad, etc - I friggin' HATE that ...). If your IDE is going to suck, DETATCH it from the compiler.
Its all about trade off ... somewhere between power, performance, ease of use, stigma, system requirements, and popularity.
I truly believe EXCELLENT titles can be written in any language for any platform. Its all a matter of how bad you want it - and how long you're willing to spend doing it. These are often deciding factors in choosing a language.
Me personally - importance is broken down like this:
40% - Core performance (speed, performance, sheer power)
20% - IDE - how you get the code in there. People swear by Visual Studio, I've never found it anyting but counter intuitive to me (I haven't seen .NET, kthx)
40% - Community and support. If you can't get updates, help, ask questions, get sample code, find routines - a language is useless unless you already know it. I think the community is just as important as the core.
Thoughts?
xyzzy
02-13-2003, 01:21 PM
Thanks for taking the time to lay down your thoughts on this Shane. Every couple fo years or so, I get 'that feeling' and attempt to learn a language and code a game. I have miserably failed...up until now. Your treatise on the subject, and the previous discussions has helped point me toward a language choice. But I have a couple of other questions:
1: Books? Go to Amazon.com, type in 'game programming' in the search window. Over 700 hits are returned. This is a sea that is hard to swim. What I would like is a good book that is not language specific that discusses theory. Do you know of any books that give great hints on AI, or other such subjects. Blindly spending $50-60 for a book that may turn out to suck has me worried. Are there any classic must have texts?
2: How many hobby programmers do we have here? How many pros with personal projects? Do we have the makings of a small hobby coding community here? Is there enough here to add another forum to the index? This appeals to me, because everyone here is polite, nice, and plays well with others. Many so called coding communites have immature members made worse by intolerant gurus. The result is a very strange environment where nothing much other than flaming and self aggrandizement get done. I think the members of this forum would behave nicely, and perhaps a few collaborative projects would emerge.
Thoughts?
Bill_Loguidice
02-13-2003, 01:25 PM
I think you make many valid points, though your classifications of certain programs (by your own admission) may be a bit off.
I agree with your assessment of 3D development. Besides not having any ideas related to the actual need for a 3D engine at this point, I think of all the additional people I would need help from on the project. I KNOW I will need help on my 2D gaming project(s), but I figure I can do hopefully the majority of it myself. My writing experience/skills are fine and my artistic skills are sufficient where I should be able to get by. My weaknesses (beyond needing to learn the actual coding environment) will be music and sound, but I have an idea of how to get around that (without using someone else's work). In essence, I think I'm covered for 2D. With 3D, I just don't see it and with that in mind, as I said, I want something specifically for 2D. This is where Blitz Basic 2D comes in (and again, I prefer what I've seen created with that versus pretty much anything else (though I did not investigate Dark Basic, but it seems to go against my first rule - 2D for 2D)...
I'm a little distressed by BlitzPlus, as it seems like the Blitz Basic official site has pulled all support from Blitz 2D in favor of that new package. As you well know, I just purchased Blitz 2D, and there does not seem to be an upgrade path to BlitzPlus. It's a little silly though, because I'll not know what I'm missing, but it just adds a bit to the "intimidation" and frustration factors when your intention is to go all out and learn one version of a language, then it pretty much gets pushed aside before its even in your hands.
Bill_Loguidice
02-13-2003, 01:33 PM
...
1: Books? Go to Amazon.com, type in 'game programming' in the search window. Over 700 hits are returned. This is a sea that is hard to swim. What I would like is a good book that is not language specific that discusses theory. Do you know of any books that give great hints on AI, or other such subjects. Blindly spending $50-60 for a book that may turn out to suck has me worried. Are there any classic must have texts?
2: How many hobby programmers do we have here? How many pros with personal projects? Do we have the makings of a small hobby coding community here? Is there enough here to add another forum to the index? This appeals to me, because everyone here is polite, nice, and plays well with others. Many so called coding communites have immature members made worse by intolerant gurus. The result is a very strange environment where nothing much other than flaming and self aggrandizement get done. I think the members of this forum would behave nicely, and perhaps a few collaborative projects would emerge.
Thoughts?
I feel your pain with the game programming books. It's VERY difficult to get something at the level that you want. It seems everything I pick up claims to be for beginners, but then you start to look at it and it assumes a LOT and starts to stream lines of code at you. I'm always like, "huh?"
Anyway, I totally agree with (or should I say "second") your idea of a hobbyist coding community here. I'm VERY comfortable with everyone here and it seems to be pretty much devoid of idiots and a**holes. Kind of like an oasis in a desert of jerkiness (or something like that). Unfortunately, I don't know if this is appropriate in the context of these particular forums or something that Shane wants to do, but it would be great...
Shane R. Monroe
02-13-2003, 02:30 PM
Have no fear!
Blitz 2D has been around long enough that all the kinks are out. Its stable, feature-rich, and will satisfy your needs.
Since you're new to the Blitz community, I can CERTAINLY understand your concern.
Here is information you probably aren't aware of.
- When Blitz3D came out, we were ALL sure Blitz2D would get kicked to the curb ... and it remarkably wasn't. Updates were almost point for point with B3D (unless the update was strictly 3D oriented) and have been.
- Mark has a terrible soft spot for 2D. There will probably ALWAYS be an incarnation of Blitz2D.
- After Blitz 3D hit, yet ANOTHER Blitz was planned - BLITZ MAX - and pretty much everyone hated the concepts behind it. We all bitched and bitched and finally, talk about Blitz Max kinda vanished. Now, from out of the blue comes BLITZ PLUS - which has all the "GOOD" things that Blitz Max was to offer (event driven GUI a la VB mode) without the crap we all didn't want (OpenGL native and cross platformability - one man can't be asked to maintain 3 copies of blitz PLUS two other platforms too). You'll also notice the price took a heavy increase - you got off light, Bill :)
- I can tell you that through the grapevine, Blitz Plus is NOT complete as the product Mark wanted to initially release. I can also tell you its one step above beta. I've managed to crash it with three different pieces of code that should have no business crashing it. I can also tell you that once he's done with it, there will be nothing to challenge it as the 2D/App programming champion.
- Blitz 2D code is 99% compatible with Blitz Plus. VERY LITTLE change is needed to port your code. Start on B2D, you're still ready for B+ later (hopefully when its half the price too).
If NOTHING else, Mark hasn't been corrupted by fame or money - he still cares. That alone speaks a lot of the product.
Shane R. Monroe
02-13-2003, 02:41 PM
I hate to say it ... but the best resources are on line. If you are one of those ones that 'can't read off the screen' or "have to have a book", you could be S.O.L.
There are a handful of decent physics books (check O'Reilly) but they are ALL brutally slanted toward C and other languages that are really painful to translate sometimes.
My recommendation? Pray your language has a very good community. Blitz Basic's forums are STUFFED FULL of great physics, AI, pathfinding, and other code. And the people that made it are around to answer questions. I'm sure other languages are equally equipped.
xyzzy
02-13-2003, 03:38 PM
Bill wrote:
Anyway, I totally agree with (or should I say "second") your idea of a hobbyist coding community here. I'm VERY comfortable with everyone here and it seems to be pretty much devoid of idiots and a**holes. Kind of like an oasis in a desert of jerkiness (or something like that). Unfortunately, I don't know if this is appropriate in the context of these particular forums or something that Shane wants to do, but it would be great...
Shane would be the last say, of course. There are many reasons not to do it. Like he is busy and has a life, maybe not wanting to run yet another community.
However, the reasons why I think it would be good here are as follows:
We all like 2D gaming, and love the old school stuff. Why not put our money where our mouth is and MAKE the old school stuff?
You are right about this being an oasis devoid of schmucks. I like the fact that it is small. And I know it may sound weird but I would want ZERO promotion. (The only way to keep it devoid of schmucks, and easy for Shane.) People would find it because they were old school gamers who liked the show and got into the message board. Not because they were some really impatient college student who was doing this just for an assignment, and found it through Google.
And lastly, because the people here may be capable of collaboration. I'm sure there are friendly coding communities out there. But requests for collaboration are not something I would do there. It would seem out of bounds, and I wouldn't know who I was dealing with. Not that I know you all really well, but I get the feeling of who you guys are a lost more strongly than any other message forum.
Shane R. Monroe
02-13-2003, 06:07 PM
If you guys want a forum, I can give you a forum. I don't have much time to do anything Blitztacular again....
xyzzy
02-13-2003, 06:22 PM
Blitztacular is not required. :) In fact, low key is the order of the day. But we need to wait for some more opinions. A forum with only Bill and I would get rather tedious and go nowhere. Nothing against Bill...but neither of us have any experience. Which is probably why we wanna mooch off the group. :wink:
Bill_Loguidice
02-13-2003, 07:31 PM
Blitztacular is not required. :) In fact, low key is the order of the day. But we need to wait for some more opinions. A forum with only Bill and I would get rather tedious and go nowhere. Nothing against Bill...but neither of us have any experience. Which is probably why we wanna mooch off the group. :wink:
I agree. I feel better going into this with someone at the same point as me, though.
I appreciate the additional forum offer from Shane, but the question becomes what is the focus? Is it general newbie-ish game development/collaboration, is it strictly on Blitz 2D (or are The Game Factory and the countless other systems included?), etc.? That's a tough one. Your thoughts? Others thoughts?
By the way, and this is directed at Shane, why do you not make any mention of requesting Paypal donations? What are your feelings on that? I guess you charge for full versions of some of Dark Unicorn's games and you charge for the CD (at minimal profit levels, I know), but it certainly can't be enough to subsidize all the work you put into all this. I understand your stance on selling out and I agree and certainly more than appreciate it, but certainly optional donations should be there, no?
Shane R. Monroe
02-13-2003, 08:17 PM
The Blitz4Pros.com site has a paypal banner, and we've gotten nothing from it since we've done it.
Paying often implies service... "Well I paid, so why don't you fix this? Or implement my Suggestion X" etc. This is why we don't get sponsors for RGR (and we could). Once people are coughing up, we're expected to give something in return and once the reins start getting pulled in - often they don't stop.
I've started asking people to buy the Family Guy DVD from FamilyGuyFiles.com - hoping to snake a free DVD or two from Amazon. We'll see how that goes at my next quarterly affiliate statement.
The bottom line is; I do it because I want to encourage and help others and because I love it.
I don't believe money can buy passion. When passion is there for free - its genuine and it shows. See SECRET OF NIMH for more information.
Its nice to know that people see the value and are willing to chip in - its a great thing (and rather refreshing). This is why I bought Blitz Plus knowing what I know about it. Sure .. I could have waited for the price to go down, get a warez copy, hope that Mark remembered my work and sent me a freebie. But instead I payed up. Same with The Bat. Same with Trillian. Same with Nero.
The CDs are pretty damn non-profit when all is said and done. I upped the price a tad so that it covered my gas money and my time ... I really started it so that dial up people could get the show. Year 4 CD sales will directly go forward to the CGE fund (minus expenses of course) and I'm hoping the great amount of work, time, and content we're putting into it makes it worth the price.
Someday we might ask for miniscule contributions just to help ease the trip to CGE (we need a lot more equipment this year - no more cheap stuff - we've got a name now, and while the basement/garage thing works, its uncomfortable to have inconsistant mics and machines that might lock up at any time). If all our main listeners threw a buck from their pay pal account, it would definately give us what we need - but anything over a buck is no longer 'tokenary' (hell, is that even a word?) and that's as much as I would like to see.
We'll see.
If enough people want a kick around forum, by all means, lets start one. I'd recommend breathing new life into the Blitz4Pros.com forums...
http://www.blitz4pros.com/phpBB2/index.php
There is GREAT stuff here....
xyzzy
02-13-2003, 11:36 PM
Okay Shane...you just about got me ready to bite on Blitz. Forgive the alliteration. I looked at the forum for it, and I was impressed. The way you were talking, it appeared that you no longer had much to do with Blitz, but your influence was all over the board. Looks like a good place to start. The only thing holding me back is money. Paramedics don't make squat. If you ever get a PayPal donation send it on this way.
Oh, one question. I saw a mention that transparencies are only available in the 3D version. Is this true? The instrument panel I'm working on in Game Maker is transparent so that more of the road is visable. I'm pretty attached to it. I would hate to lay down that much cash to keep it. I was also experimenting with them as a shadow effect for sprites...
Shane R. Monroe
02-14-2003, 05:08 AM
At this point, there is no transparency available. We've all made do.
Continue asking questions...
xyzzy
02-14-2003, 01:27 PM
You said to ask more questions...
Well here it is coming at ya. And I'm feeling froggy today. My mind has been taking a trip down memory lane, so while I ask questions, I'm going to take you with me. Feel free to ignore the post if you want. I'm in the mood to ramble.
I was a TI994/A whore. If any of you were the same way, you are going to be jealous of me. I grew up in Dallas, and my dad worked for TI, and was in charge of advertising that system. Engineers would give stuff to my dad so that I could play test it (I was in grade school at the time) so that he would have an idea how to market this stuff to my age group. So in a small way, I personally had a very indirect impact on how that system panned out.
We had everything...for free. We had the peripheral box. The engineers called it the 'coffin', and it very much resembled later IBM desktop boxes. It was full of floppy drives and other gadgets. I had a modem. I had the speech synth. And I had absolutely every game ever made for the machine. EVERY one. The engineers and programmers even gave experimental stuff to us that never made it to market. Weird joysticks, and peripherals...you name it. (And by the way, yes I still have it all, and yes it still works, and no you don't have enough money to make me part with it. Muhahahahaha)
I was super geek back then. And I had access to stuff. I had a friend across the street who's dad worked for a computer firm too. He had a lot o' stuff, and we fed off each other, spiraling into new heights of geekdom, or lows of geekdom is you want.) We were so impressed with 'Adventure' that we were obsessed with making our own text adventure. Easier said than done. We tried on a few platforms. The closest we ever got was using TI Basic. Just as a side note, I asked my dad for a new programming language with compiler and he brought home a burned copy of Assembly Language for TI. My dad was an ad man, not a computer man. Try to wrap a 12 year old mind around Assembly. I'm lucky I didn't shut down and become retarded.
Okay, we are getting closer to my questions. Anyway, there I was trying to program a text adventure on the TI994/A. Believe it or not, my 11-12 year old ass made it work. Variables everywhere! Every time you performed an action, the computer would make a check for everything. It worked like this. Lantern had a variable. If it was 0, it was in your inventory. All other numbers coincided to rooms. We even had a dwarf with AI. He would walk around, or his variable would change...If he was in the same room he had a random chance of leaving, attacking, saying something, or doing nothing. This was really freaking cool. Up until you got to about 6-7 rooms, then the computer crashed. We were young. I had no idea what an array was, or how to keep track of large amounts of data. Every single solitary thing that could happen in a room was handled by an IF statement. Any programmers who are now reading this are probably laughing by now. Our dungeon was 5 rooms total and had a couple of THOUSAND lines of code. How's that for economy? David Crane is going to come over to my house and slap me.
Here is the sad part. I still have no idea what an array is. I took a programming class in highschool, and I was the star pupil. Up until we started studying this bubble sort thing. After that I was lucky I passed. For some reason I have a mental block with this stuff.
This is why I requested a few good books. Could I really go to a message board and ask for someone to explain arrays and bubble sorts to me? There would be 0 responses for days...
So that is where I am. Game Maker is the most success I have had in 20 years of failed programming. I have failed at making a MUD based on Evil Dead. I have failed making side scrolling shooters. I have even failed with construction kits. I did have some success with level design for Half Life but can't really count this as programming.
So now that I have rambled enough, here are my questions:
How do I access large chunks o' data? I don't really expect anyone to answer that, but if you can point me to an online resource for dummies or a good book I'll come over and kiss ya.
Does Blitz have multi player support? That MUD is still calling my name.
Does Blitz support a certain paint program? Game Maker takes psp files directly from Paint Shop Pro which is just oh so cool. That's my weapon of choice. Can't afford the big daddy.
What kind of video and sound files does it support? Am I going to need peripheral programs like Cool Edit to get decent sound? I have stuff to make MPEGs and AVIs for cut scenes. Are these supported?
Yada, yada, yada.
Thanks in advance. I promise never to post this big again...
Bill_Loguidice
02-14-2003, 01:36 PM
You said to ask more questions...
Well here it is coming at ya. And I'm feeling froggy today. My mind has been taking a trip down memory lane, so while I ask questions, I'm going to take you with me. Feel free to ignore the post if you want. I'm in the mood to ramble.
I was a TI994/A whore. If any of you were the same way, you are going to be jealous of me. I grew up in Dallas, and my dad worked for TI, and was in charge of advertising that system. Engineers would give stuff to my dad so that I could play test it (I was in grade school at the time) so that he would have an idea how to market this stuff to my age group. So in a small way, I personally had a very indirect impact on how that system panned out.
That's awesome. I have three TI-994/A's, two of which are perfect, and two speech modules. I have the cables for using a cassette player and the awful TI joysticks. I also have quite a few miscellaneous cartridges. I can confirm it is indeed an awesome system. The marketing was fine, as far as I can remember. I think the major issue was the high price when the system was in its prime. It was no C-64 for the most part, yet it was considerably more expensive. Once the price dropped to $100, then $50, the things flew off shelves. Not much third party support either, but there was trickle, and the disk drive was way over priced, even towards the end (and I think it required that huge ass module thing/bay you mentioned)...
xyzzy
02-14-2003, 01:53 PM
Yeah, my dad still has nightmares from trying to market that thing. TI was retarded then, and retarded now. TI did not allow 3rd party support. That's right. My dad begged them to let them do it. I believe a few titles came out. They may have even reversed that decision a couple of times, but for the most part if TI didn't make the software, it didn't exist. They released TI Basic actually thinking that the general pubic was going to program their own applications. My dad almost got fired telling them how moronic they were. Then his own son bent over backwards to do just what he said others would refuse to do. I don't think he has been quite right since...
Shane R. Monroe
02-14-2003, 03:39 PM
You said to ask more questions...
Here is the sad part. I still have no idea what an array is. I took a programming class in highschool, and I was the star pupil. Up until we started studying this bubble sort thing. After that I was lucky I passed. For some reason I have a mental block with this stuff.
This is why I requested a few good books. Could I really go to a message board and ask for someone to explain arrays and bubble sorts to me? There would be 0 responses for days...
An array is very simple - just have to have someone put it in the right context for you...
An array is nothing more than a series of variables that have the same name!
Let's say you have 100 aliens in a space game. How do you track where on the screen they all are? To move them all right you could do this:
AlienX1=AlienX1+1
AlienX2=AlienX2+2
... and so on
AlienX100=AlienX100+1
You could do 100 commands to move all those aliens! And that is just moving them once in ONE direction! What about moving them up or down? The problem is that we have 100 things to track - that are all similar or we will do similar things TO them!
An array frees you from 100 variables ...
Dim AlienX(100) ; This makes room in the variable AlienX for 100 values
For T = 1 to 100
AlienX(T)=AlienX(T) +1
Next
Whoa! That's it! 100 lines of code, or 3 ... Not bad eh? ONE variable has 100 'slots' for values.
Imagine an adventure game where your player can hold 5 items in his 'backpack'. There are 10 total items in the game the player can possibly get...
Dim Backpack(5) ; Make room for 5 items
Dim Items$(10) ; Make room for 10 total items in the game
Items$(1)="Lantern"
Items$(2)="Sword"
... Etc
When you need to 'put' something in the player's backpack ...
Backpack(1)=2 ; Slot ONE of the Back pack has a sword!
Print "Player's Backpack now has ..."
For T = 1 to 5
If Backpack(T) = 0 then ; If there is nothing there, print NOTHING
print "Nothing"
else
print Items$(Backpack(T)) ; Print the name of the item in the slot!
next
Make sense? An array is just a COLLECTION of 'slots' that are using the same variable name that is easier to 'iterate' through in a loop...
How do I access large chunks o' data? I don't really expect anyone to answer that, but if you can point me to an online resource for dummies or a good book I'll come over and kiss ya.
Depends on the data ... give me a specific example. Maybe my Array answer above answered this.
Does Blitz have multi player support? That MUD is still calling my name.
Yes, but its not for the faint of heart.
Does Blitz support a certain paint program? Game Maker takes psp files directly from Paint Shop Pro which is just oh so cool. That's my weapon of choice. Can't afford the big daddy.
Blitz supports JPG, PNG, and BMP. And PSP exports to them all. You should only be using PNG. JPG is lossy, and BMPs are 12x too big.
What kind of video and sound files does it support? Am I going to need peripheral programs like Cool Edit to get decent sound? I have stuff to make MPEGs and AVIs for cut scenes. Are these supported?
Sound = WAV, MIDI, MOD, OGG, MP3 - pretty much any major format.
Video = I don't know ... I make games dedicated to being less than 5MB in size. I have no room for video. Consider asking someone to download 50MB for a game that is really only 1MB. I do believe there is a movie player built in now, that plays anything that is Direct Play compatible (which is nearly everything).
Shane R. Monroe
02-15-2003, 06:17 AM
Here is more on Arrays that I wrote for the Blitz docs...
http://www.blitz4pros.com/commands/showcommand.php?id=142
Be worth your time to look this over too:
http://www.blitz4pros.com/commands/showcommand.php?id=21
xyzzy
02-15-2003, 07:38 AM
Wow.
It was very nice of you to take the time to do that. I will get Blitz when money allows. But for now, Blitz code is similar enough to Game Maker where I understood what you were typing. I'm guessing that all hobby languages are near basic. So I could read up on your docs to brush up. All very interesting...
One more question though... When you say multiplayer is not for the faint of heart, do you mean the coding or the implemention? I guess my question is: Is it hard to code, or hard to get running on a server, or both? My favorite web space provider runs an Apache/Linux type setup. I can do anything but mess around with the root. Will I need to go elsewhere to implement something I make? I am quite familiar with installing CGI scripts and whatnot so your answer does not have to be dumbed down in this arena.
BTW I also am aware of the MUD construction kits out there, but I still have my reasons. My project would really be a chat room, with MUD overtones, and perhaps some simple graphics. I have an old group of friends who think it would be cool to have their own private chat room where they could kill each other with chainsaws if the need arises. This seems like a good 'small enough' project to learn how to implement multiplayer once I get going.
Shane R. Monroe
02-15-2003, 07:50 AM
One more question though... When you say multiplayer is not for the faint of heart, do you mean the coding or the implemention? I guess my question is: Is it hard to code, or hard to get running on a server, or both? My favorite web space provider runs an Apache/Linux type setup. I can do anything but mess around with the root. Will I need to go elsewhere to implement something I make? I am quite familiar with installing CGI scripts and whatnot so your answer does not have to be dumbed down in this arena.
Most Blitz stuff done now is peer to peer. I imagine you would write something that would interact server side - but it would have to be able to run a Blitz program (i.e. Win32box with permissions to 'listen' on certain ports). Its both coding and implementation that's tricky ... There is a library someone has written to simplify it, but I haven't given it much look over. I know I was QUITE daunted writing the docs for it... Check them out:
http://www.blitz4pros.com/commands/listcommands.php?category=Multiplayer&Submit2=Go
BTW I also am aware of the MUD construction kits out there, but I still have my reasons. My project would really be a chat room, with MUD overtones, and perhaps some simple graphics. I have an old group of friends who think it would be cool to have their own private chat room where they could kill each other with chainsaws if the need arises. This seems like a good 'small enough' project to learn how to implement multiplayer once I get going.
The basic concepts are simple enough. Its actually coding the thing that might really suck. Check out the command breakdowns above.
xyzzy
02-15-2003, 08:14 AM
Thank you for the personal attention. I'll try not to let the info go to waste. I am busy reading documents while you are reading this...
uncle_ron
02-15-2003, 02:13 PM
i must admit the last time i did any real programming was on the c64, the machine was so slow that i had to learn assembly language.
i used amos occasionally on the amiga and took a look at blitz basic but i never really took the time to learn them properly, now and then i think about learning "c" or assembly on the pc but now im in my 30s i dont seem to find the time or motivation.
there is a nice version of basic on the pc called "liberty basic" which looks pretty good, maybe i will give it a go, the only problem with basic however is the lack of control over the machine, what i liked about assembly on the c64 is that i could control exactly what the machine did and when.
for example if i wanted to create a sprite multiplex to put 16 sprites on screen i would wait for a screen refresh then draw the first 8 sprites, wait until they had been draw and then change the sprite pointers e.t.c. ready to draw the next 8 (a good example of this is SWIV on the c64), this is just impossible in basic.
here is a list of the tools i used on the c64.
action replay mk4 cart - for viewing memory contents e.t.c.
mikro assembler cart - for writing the code
koala painter - drawing the pictures
the 3 in 1 editor - a great editor for creating sprites/user defined characters/background editor
rock monitor - for creating sound
a linker - for taking the different code segments and graphics and converting them into a single file.
a packer - for shrinking the file size
it may sound complex having to use so many different tools but there was no other way that i could create the same results using basic, and the same is true of basic on a pc, i have yet to see a version of basic that allows me to take control of screen functions in a way that assembly can.
out of interest has anybody else on here used an alternate language?..
i.e. ..... forth / pascal / c++ / java / assembly .... e.t.c.
bytorx1
02-15-2003, 04:22 PM
C (w some mixed assembly) is my platform of choice for programming. I started with C=64 basic and then moved onto assembly. Since then I have used other languages to various extents (pascal, php, etc...) but C remains the most useful language I have tried.
"Simple DirectMedia Layer" (SDL) is my library of choice for multimedia programming.
http://www.libsdl.org/index.php
It was developed by Sam Latinga of Loki Software (now with Blizzard
Entertainment) and used for several commercial game ports to linux. It is open source, royalty free, portable across many operating systems, has many contributors and there are lots of applications, libraries and games available with full source code.
There is a fairly decent game programming .pdf book available online entitled "Linux Game Programming" which is obviously geared towards linux but describes the methods, libraries and tools used to build games in general. It focuses on the elements required for building a large project like a game rather than on algorithms used for various types of games. You can get it from:
http://isengard.overcode.net/~overcode/writing/plg/
And yes you will need as many tools as in the C=64 games era (and more if you are developing 3d games) to build a modern game, including some or all:
code generation: editor, compiler, assembler, linker, make util, cvs/rcs
code api/libraries: 2d primitives, 3d api, audio/music api, gui, networking,
script language interpreter
resource creation: 2d gfx editor, 3d modeller, audio sample editor, music
sequencer
and likely a few others I can't think of at the moment :)
Linux is an excellent os for game development and programming in general. The reason being is that most modern distros will include all the libraries and tools you would need to create a game 'out of the box' and free.
Gamasutra is an excellent website geared towards game developers that has many interesting programming and game development articles, as well as post mortems in which they discuss the successes and failures in the development of many modern commercial games with the project manager or lead programmer. They also discuss the various tools they use and the in-house support software they write. Be warned that you have to sign up for a free account to read the articles now.
http://www.gamasutra.com/
As Shane said though you can write a good game on any platform with any language. The language is just a tool although some are better than others for various purposes.
Shane R. Monroe
02-15-2003, 05:51 PM
there is a nice version of basic on the pc called "liberty basic" which looks pretty good, maybe i will give it a go, the only problem with basic however is the lack of control over the machine, what i liked about assembly on the c64 is that i could control exactly what the machine did and when.
I tried out Liberty Basic - and it wasn't bad for what it was. Its just not as polished as many other tools out there (Pure Basic, Blitz Basic, etc.)
for example if i wanted to create a sprite multiplex to put 16 sprites on screen i would wait for a screen refresh then draw the first 8 sprites, wait until they had been draw and then change the sprite pointers e.t.c. ready to draw the next 8 (a good example of this is SWIV on the c64), this is just impossible in basic.
Take a look at Blitz if you haven't. You have COMPLETELY control - just like you're discussing. You have complete control over all drawing operations.
Old school coding on the C64 ruled. I used to code ASM WITH AR4's built-in monitor. Nothing teaches you ASM than coding by hand with a ML monitor.
uncle_ron
02-15-2003, 06:48 PM
action replay mk4 was okay for coding but i much prefered the mikro cartridge.
the advantage of coding with mikro was that you could assign values to variables for instance
10 *=$c000
15 rem ******
20 bkground = $d020
30 frground = $d021
40 black = #$00
50 rem ******
60 lda black
70 sta bkground
80 sta frground
90 rts
you could even save segments of code or values as macros, as long as you remember the include statement then the cart will load the files during the assembly process
or what if you want to write some code that you want to execute under the kernal rom $e000 - $ffff, easy...
10 *=$c000,$e000
this tells the cart to assemble the code at $c000 but to make any direct pointers goto $e000 so after you link the code e.t.c. you can then load the code under the kernal and using another routine to bank switch the kernal out and to access the code.
its a wonderful cart and being hardware based it means you dont have to keep loading it when you reset.
Shane R. Monroe
02-15-2003, 07:40 PM
Yeah, I could have used an Assembler (which is what it sounds like Mikro was) - but if you enjoy pain, suffering, and basic op codes - nothing like programming in a monitor.
action replay mk4 was okay for coding but i much prefered the mikro cartridge.
the advantage of coding with mikro was that you could assign values to variables for instance
flanque
08-15-2003, 02:41 AM
I hate to say it ... but the best resources are on line. If you are one of those ones that 'can't read off the screen' or "have to have a book", you could be S.O.L.
There are a handful of decent physics books (check O'Reilly) but they are ALL brutally slanted toward C and other languages that are really painful to translate sometimes.
My recommendation? Pray your language has a very good community. Blitz Basic's forums are STUFFED FULL of great physics, AI, pathfinding, and other code. And the people that made it are around to answer questions. I'm sure other languages are equally equipped.
I think that all books should be able to at least explain the logic or concept and then any good programmer (or mathematician) should be able to 'port' the idea.
Shane R. Monroe
08-15-2003, 07:29 AM
Used to be that way ... not anymore.
Programming is so convoluted now, that just knowing the basics and 'art' of programming isn't enough.
You can thank Microsoft largely for that. Every 3 years they have to try to make you learn something else for more worthless certification certificates.
You can't really write something in ASM anymore if you want to. Sure maybe a little inline for some faster computational things, but no more pure ASM running native.
flanque
08-16-2003, 01:54 AM
I don't think it's a 'Microsoft' thing. Microsoft isn't the apex of all evil in the IT world. For all the bad they have done they have done a lot more good, far more I think.
You do not have to learn a new language every three years at all. Look at ASM and C. Look at PHP and ASP. These languages are in heavy use despite the time they have been around and the, in my opinion, unwarranted hype around the whole .Net thing. Just because the latest buzz words are C# and .Net doesn't make them must have skills. One can easily show their worth through solid skills in C++ and a touch of ASM.
I would disagree with that ASM comment, but within a different context. We only use ASM for our micro code in our hardware.
Besides programming is a bit of a shit industry to be in... the pay is generally lousy for the knowledge and skills required.. get into network administration... far easier to earn bigger bucks (and more fun sometimes).
rush2112
08-30-2003, 06:10 AM
If you want to get a good fundamental background for programming theory pick up a book on "data structures". When I was in college getting my degree in computer information systems we had to take a data structures class. You can get a data structures book in many languages, but the good thing is that for theory on prgramming it is a good start. A data structures book will explain many programming fundamentals from variables, arrays, sorting, file saving/retrieving, linked lists, etc...
I am not sure if a book on data structures will help a hobby programmer, it is one of the many classes I took in school.
flanque
08-30-2003, 04:21 PM
I would agree with that.
RCorcoran
09-05-2003, 12:31 PM
1) The easier a language is to use, the more people that will flock to it.
So, Shane, what you're saying is... one should avoid 6502/6507 ASM? :P
flanque
09-05-2003, 04:19 PM
1) The easier a language is to use, the more people that will flock to it.
So, Shane, what you're saying is... one should avoid 6502/6507 ASM? :POh gosh! :shock:
RCorcoran
09-05-2003, 05:25 PM
Oh gosh! :shock:
The 6502 rocked! In fact, it still does today...
Here, tell me this doesn't make you want to break out DASM... :wink:
; Disassembly of dup_si.bin
; Disassembled Tue Jul 30 14:05:54 2002
; Using DiStella v2.0
;
; VCS DUP Space Invaders 2002, Ron Corcoran
;
processor 6502
VSYNC = $00
VBLANK = $01
WSYNC = $02
RSYNC = $03
NUSIZ0 = $04
NUSIZ1 = $05
COLUP0 = $06
COLUP1 = $07
COLUPF = $08
COLUBK = $09
CTRLPF = $0A
REFP1 = $0C
PF0 = $0D
PF1 = $0E
PF2 = $0F
RESP0 = $10
RESP1 = $11
RESBL = $14
AUDC0 = $15
AUDF0 = $17
AUDV0 = $19
GRP0 = $1B
GRP1 = $1C
ENABL = $1F
HMP0 = $20
HMP1 = $21
HMBL = $24
VDELP0 = $25
VDEL01 = $26
HMOVE = $2A
HMCLR = $2B
CXCLR = $2C
SWCHA = $0280
SWCHB = $0282
INTIM = $0284
TIM8T = $0295
TIM64T = $0296
ORG $F000
LF000: STA HMCLR
LDA $84
BMI LF006
LF006: AND #$0F
TAX
LF009: DEX
BPL LF009
LF00C: LDA ($F8),Y
TAX
LDA ($EE),Y
STA GRP0
LDA ($F0),Y
STA GRP1
LDA ($F2),Y
STA GRP0
LDA ($F4),Y
STA GRP1
LDA ($F6),Y
STA GRP0
TXA
STA GRP1
STA GRP0
DEC $89
DEY
PHA
PLA
PHA
PLA
LDA ($F8),Y
TAX
LDA ($EE),Y
STA GRP0
LDA ($F0),Y
STA GRP1
LDA ($F2),Y
STA GRP0
LDA ($F4),Y
STA GRP1
LDA ($F6),Y
STA GRP0
TXA
STA GRP1
STA GRP0
LDA $89
CMP #$04
BCC LF055
LDA #$00
BCS LF058
LF055: NOP
LDA #$02
flanque
09-05-2003, 05:29 PM
i know jack all asm
DuoDreamer
12-03-2005, 10:59 PM
Assembly Language sure is fun. 6502 and Z80 are just a blast to play with. So simple. I've done some hobbyist programming for GBC/GBA/DS, and a little bit of professional programming for other things. Games programming is definately something that has to be in your blood. I can't seem to get away from the GameBoy. :)
Shane R. Monroe
12-04-2005, 12:03 AM
You know ... when I was in high school, all I did was code ... games + code ... I wish I had more time to code games. I've got at LEAST 4 game projects that need finishing.
nukinetix
12-05-2005, 03:03 AM
Z80 assembly is great ... good for relaxing between heavy coding sessions (that'd be a "retrocoding break"). Here (http://www.z80.info/z80sdt.htm), have fun!
Powered by vBulletin® Version 4.2.0 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.