The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
The Guiding Principles and New Rules document is now in effect.
Interactive web development and advanced database functions
It's all in the title, really. And I apologize for such a short thread, but I'm here to ask questions about web development. And hosting.
The first step is one of learning. I'd like to know how to make an interactive (game) type webpage. I dont mean flash or anything like that. The closest example (and it's a crude one) that I can give is kingdomofloathing.com, where images and such are links to other pages. So the real question is, are there books you can recommend on html and CSS and whatever else might be useful?
Sorry if this seems odd, but I've been working on a tabletop game system for a while now and I'd like to do some experimenting.
As a side note, how does one judge the hardware specifications of a server?
I am not an expert ... at all ... but I use Dreamhost (www.dreamhost.com) and they are pretty good. I'm also trying to do an interactive-type dealie, but it's much more narrative than what you have in mind so I use Wordpress software. There are a number of free software packages they offer that you can attach to your webpage and work through their interface.
As for help learning css, the best advice, I think, is to just practice, practice, practice. Though I've often used the w3schools pages as a guide while practicing. I've found it's pretty easy to just google what you want to do with css—a web page will usually turn up telling you the exact code. But if you use Dreamhost and use one of their software packages (like Wordpress) a lot of the css is already done for you.
Everything I say should be taken with a grain of salt, though, because I'm pretty much a failure in this regard.
Qingu on
0
admanbunionize your workplaceSeattle, WARegistered Userregular
edited December 2008
To do a game like KOL you're gonna need HTML, CSS, and a server-side language like PHP, perl, Python, Ruby, etc etc etc. You're talking about a pretty hardcore project.
I would say you have two choices:
(1) Learn just enough HTML and CSS to make crude, ugly, but functional webpages. Learn your server-side language and start working with that.
(2) Avoid the HTML and CSS for the time being. Learn the server-side language as its own beast and write the initial parts of the game as if it were a text-based desktop application.
The one thing you do not have to worry about is hosting. There's no reason you need to pay a webhost and buy a domain until you have the game up-and-running on your own system. You will have to learn how to configure your computer as a server, however. But that's not terribly difficult.
Perl is nicknamed "the Swiss Army chainsaw of programming languages" due to its flexibility and adaptability.[5]
Perfect.
Nyuuuuurgh.
Perl is named the "Swiss Army chainsaw" because it looks like a piece of garbage, takes a half-hour to open, and when you turn it on there's a 50% chance you'll accidentally cut off your arm.
I probably should've been more specific, but I don't like sounding preachy: I strongly recommend either Python or Ruby. Both are beautiful, easy-to-work with, beginner-friendly languages. Ruby may be slightly more so, inherently, but Python has a larger community and more established documentation.
All of the languages are equally functional (when I say "equally" I mean precisely -- it's logically proven). The question becomes which is more functional and friendly in the various areas.
Perl is named the "Swiss Army chainsaw" because it looks like a piece of garbage, takes a half-hour to open, and when you turn it on there's a 50% chance you'll accidentally cut off your arm.
I probably should've been more specific, but I don't like sounding preachy: I strongly recommend either Python or Ruby. Both are beautiful, easy-to-work with, beginner-friendly languages. Ruby may be slightly more so, inherently, but Python has a larger community and more established documentation.
All of the languages are equally functional (when I say "equally" I mean precisely -- it's logically proven). The question becomes which is more functional and friendly in the various areas.
Dude, seriously, I don't mean to turn this into a holy war, as I'd rather use Python most of the time too, but Perl really isn't that bad. Perl is pretty nice, when you learn how to use it nicely. Too many people don't, which is where the nastiness comes. You should try using it some more.
The benefit of Perl is that you have CPAN, where you can find a module to do just about anything. If you have say, an export requirement, CPAN will have a module to do it with.
That said, for the OP, Python is the way to go. Ruby is harder to learn because it's a bit abstracted in the way it does things. It's powerful once you learn and understand the abstractions, but getting there is hard. I would use Python for this project.
Okay. Sounds good. Is there a book I can read about python? How about one that centers more specifically on this kind of project?
And what do you mean exactly when you suggest that I develop it as a desktop text based application? The purpose of the server side program will be to retrieve data, save data, perform calculations, and respond to requests, right? or is there more stuff?
Do you have any previous programming experience? I'd say that that's probably a better way of going about picking which language to learn. I mean, if you already have experience with a programming language then it might be better to pick one with the greatest similarities to what you already know.
Start with "Invent your Own Computer Games," which will be much less exciting then it sounds. Then look at "Dive Into Python" while using "The Standard Python Library" as reference. Finally, for the web programming end of things, read the Django book.
Free hosting of Python web apps with a really neat object oriented approach to databases. Just follow this guide to set up a nice development environment. Database interaction is modeled through objects in app engine, so you don't have to break your head over tables, columns and joins, which comes with using a traditional database engine.
If it gives you any problems setting it up, feel free to PM me.
DOUBLE CHECK TO MAKE SURE YOU GET A HOST THAT SUPPORTS PYTHON IF YOU'RE GOING TO USE PYTHON. Same goes with ruby and perl although most hosting companies support both perl and php these days.
Anyway, after you learn the basics of python/ruby/perl/php/whatever, make sure you learn a framework.
The most common web framework for ruby is ruby on rails (http://www.rubyonrails.org/), for python it's django (http://www.djangoproject.com/) and for php people recommend cakephp (http://cakephp.org/). Keep in mind I highly discourage you to learn php or perl as your first language if you've done no real programming before.
I took a college course on VB script, I guess. I'm gonna err on the side of 'no programming experience' however.
I've wanted to learn for a while, though. If that counts for anything.
After you get the basics of programming down (Loops, conditionals, variables, objects and methods) you'll want to study up on Model View Controller design pattern, then think about a small subset of possible use cases to get a minimally functional site. Then, plan out how you're going to provide all of those use cases through the MVC pattern.
This will help you learn how to develop from the top down. Without this kind of thinking, you will write brittle stuff that will look like crap almost 100% of the time.
Sooo...keeping the user interface separate from the data so it runs smoother and so that if I have to change something I dont have to overhaul the whole damn thing.
That seems incredibly logical. I wouldn't have had it any other way.
Posts
As for hosting services... I'm sure plenty of other people have good ones for those. I seem to have bad luck with hosts. :P
As for help learning css, the best advice, I think, is to just practice, practice, practice. Though I've often used the w3schools pages as a guide while practicing. I've found it's pretty easy to just google what you want to do with css—a web page will usually turn up telling you the exact code. But if you use Dreamhost and use one of their software packages (like Wordpress) a lot of the css is already done for you.
Everything I say should be taken with a grain of salt, though, because I'm pretty much a failure in this regard.
I would say you have two choices:
(1) Learn just enough HTML and CSS to make crude, ugly, but functional webpages. Learn your server-side language and start working with that.
(2) Avoid the HTML and CSS for the time being. Learn the server-side language as its own beast and write the initial parts of the game as if it were a text-based desktop application.
The one thing you do not have to worry about is hosting. There's no reason you need to pay a webhost and buy a domain until you have the game up-and-running on your own system. You will have to learn how to configure your computer as a server, however. But that's not terribly difficult.
Edit:
Perfect.
Nyuuuuurgh.
Perl is named the "Swiss Army chainsaw" because it looks like a piece of garbage, takes a half-hour to open, and when you turn it on there's a 50% chance you'll accidentally cut off your arm.
I probably should've been more specific, but I don't like sounding preachy: I strongly recommend either Python or Ruby. Both are beautiful, easy-to-work with, beginner-friendly languages. Ruby may be slightly more so, inherently, but Python has a larger community and more established documentation.
All of the languages are equally functional (when I say "equally" I mean precisely -- it's logically proven). The question becomes which is more functional and friendly in the various areas.
Dude, seriously, I don't mean to turn this into a holy war, as I'd rather use Python most of the time too, but Perl really isn't that bad. Perl is pretty nice, when you learn how to use it nicely. Too many people don't, which is where the nastiness comes. You should try using it some more.
The benefit of Perl is that you have CPAN, where you can find a module to do just about anything. If you have say, an export requirement, CPAN will have a module to do it with.
That said, for the OP, Python is the way to go. Ruby is harder to learn because it's a bit abstracted in the way it does things. It's powerful once you learn and understand the abstractions, but getting there is hard. I would use Python for this project.
And what do you mean exactly when you suggest that I develop it as a desktop text based application? The purpose of the server side program will be to retrieve data, save data, perform calculations, and respond to requests, right? or is there more stuff?
Start with "Invent your Own Computer Games," which will be much less exciting then it sounds. Then look at "Dive Into Python" while using "The Standard Python Library" as reference. Finally, for the web programming end of things, read the Django book.
Free hosting of Python web apps with a really neat object oriented approach to databases. Just follow this guide to set up a nice development environment. Database interaction is modeled through objects in app engine, so you don't have to break your head over tables, columns and joins, which comes with using a traditional database engine.
If it gives you any problems setting it up, feel free to PM me.
Anyway, after you learn the basics of python/ruby/perl/php/whatever, make sure you learn a framework.
The most common web framework for ruby is ruby on rails (http://www.rubyonrails.org/), for python it's django (http://www.djangoproject.com/) and for php people recommend cakephp (http://cakephp.org/). Keep in mind I highly discourage you to learn php or perl as your first language if you've done no real programming before.
I've wanted to learn for a while, though. If that counts for anything.
After you get the basics of programming down (Loops, conditionals, variables, objects and methods) you'll want to study up on Model View Controller design pattern, then think about a small subset of possible use cases to get a minimally functional site. Then, plan out how you're going to provide all of those use cases through the MVC pattern.
This will help you learn how to develop from the top down. Without this kind of thinking, you will write brittle stuff that will look like crap almost 100% of the time.
That seems incredibly logical. I wouldn't have had it any other way.