ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Distribution: Ubuntu 11.4,DD-WRT micro plus ssh,lfs-6.6,Fedora 15,Fedora 16
Posts: 3,233
Rep:
sounds like a good idea, the best idea would be to use baby steps
here's what i would suggest
1) flesh out what you have already
2) separate out the storage of data into a database
3) separate the logic of the game from the user interface using an api (local function calls)
4) create a network based interface using the api you created in step 3
5) design a basic network based client using the existing interface, re-worked to work with the network based interface.
after that, then you can wory about what kind of graphical interface another consideration later on down the road will also be user authentication for network based games, that way rule breakers can be banned from using the server.
sounds like a good idea, the best idea would be to use baby steps
here's what i would suggest
1) flesh out what you have already
2) separate out the storage of data into a database
3) separate the logic of the game from the user interface using an api (local function calls)
4) create a network based interface using the api you created in step 3
5) design a basic network based client using the existing interface, re-worked to work with the network based interface.
after that, then you can wory about what kind of graphical interface another consideration later on down the road will also be user authentication for network based games, that way rule breakers can be banned from using the server.
good luck
Nice ideas, I will probably implement them when I get 1.0_0 out of the door, hopefully this Saturday. I redesigned the website, polished the new game features, and have some more web stuff to do before it can go out.
one more thought
as for client interface, a terminal interface using ncurses would probably be the easiest from a coding stand point, but least appealing to the masses these days
Quote:
Originally Posted by frieza
sounds like a good idea, the best idea would be to use baby steps
here's what i would suggest
1) flesh out what you have already
2) separate out the storage of data into a database
3) separate the logic of the game from the user interface using an api (local function calls)
4) create a network based interface using the api you created in step 3
5) design a basic network based client using the existing interface, re-worked to work with the network based interface.
after that, then you can wory about what kind of graphical interface another consideration later on down the road will also be user authentication for network based games, that way rule breakers can be banned from using the server.
good luck
IMO, that's overkill/not a good advice. I'd advise to keep things simple as long as possible, and add features only when they're required and program cannot be improved without adding them. If OP follows your advice, it might easily take 11 years to finish the program, as it happened with ADOM. I already saw several projects destroyed by this kind of thinking - "let's add feature X! OOOH, let's also add feature Y!!! Let's make it 3d and revolutionary!!! Let add shaders" (and a year later development team still doesn't have a single playable demo. Pathetic...).
The best advice I could give is to code as little as possible, but make sure that your code is human-readable, easy to maintain, and implements all features you need. Minimum amount of code with maximum functionality. Once you start worrying about "client-server" architechture and "multiplayer functionality" at early stages of development, you'll wander off into magical fantasy land and will spend next 50 years in total bliss writing unnecessarry obscure features that will not improve your program in any way, but will eat your development time and increase program resource usage. See YAGNI for more info. Even if you THINK you'll need something later, don't implement it now, since it is very likely that this feature will not be necesary or there will be different way to implement it. Always concentrate on current task and nothing else. Your main goal is to complete program and fix bugs. Everything else is secondary.
Quote:
Originally Posted by frieza
as for graphical you will have a choice, either 2d graphics or 3d graphics, 2d will probably be easier in some ways, it all depends on what you intend, and whether you ether know how to make 3d models and skin them or not, or how good you are with 2d graphic maniuplation tools such as the GIMP
2D and 3D requires artists. If you don't have artists (or money to hire one), you should forget about it.
IMO, that's overkill/not a good advice. I'd advise to keep things simple as long as possible, and add features only when they're required and program cannot be improved without adding them. If OP follows your advice, it might easily take 11 years to finish the program, as it happened with ADOM. I already saw several projects destroyed by this kind of thinking - "let's add feature X! OOOH, let's also add feature Y!!! Let's make it 3d and revolutionary!!! Let add shaders" (and a year later development team still doesn't have a single playable demo. Pathetic...).
The best advice I could give is to code as little as possible, but make sure that your code is human-readable, easy to maintain, and implements all features you need. Minimum amount of code with maximum functionality. Once you start worrying about "client-server" architechture and "multiplayer functionality" at early stages of development, you'll wander off into magical fantasy land and will spend next 50 years in total bliss writing unnecessarry obscure features that will not improve your program in any way, but will eat your development time and increase program resource usage. See YAGNI for more info. Even if you THINK you'll need something later, don't implement it now, since it is very likely that this feature will not be necesary or there will be different way to implement it. Always concentrate on current task and nothing else. Your main goal is to complete program and fix bugs. Everything else is secondary.
2D and 3D requires artists. If you don't have artists (or money to hire one), you should forget about it.
Nice tips. I have a weird sort of method of making it, with a short (2 day) roadmap, and then a longer (90 day) roadmap. The 2 day one I have where I talk to people, get ideas, organise them, sort them into importance (A major bug will be higher than a weapon idea) and try to get them done in 2 days. If I cannot, I put them to the next 2 days, and order it. This may seem stupid as one idea which takes a while may not get done, but eventually I will find space.
That way I work on one thing but know what the next is so I can work around that. The 90 day roadmap is that every 90 days I have 10 days to get to *.1_0, 10 more for *.2_0, 10 more for *.3_0, and so on, so I can be able to get the next release candidate out. In the case of 1.0_0 it has gone over to 119 days as I found quite a large bug, fixed it, and then had to get the website ready after that. Both are just targets, it does not matter if I do not reach them. As for requiring artists for the art, I use GIMP to render images (The lava tool is awesome), but cannot do that much. I may just keep to terminal based for now.
Distribution: Ubuntu 11.4,DD-WRT micro plus ssh,lfs-6.6,Fedora 15,Fedora 16
Posts: 3,233
Rep:
Quote:
Originally Posted by SigTerm
IMO, that's overkill/not a good advice. I'd advise to keep things simple as long as possible, and add features only when they're required and program cannot be improved without adding them. If OP follows your advice, it might easily take 11 years to finish the program, as it happened with ADOM. I already saw several projects destroyed by this kind of thinking - "let's add feature X! OOOH, let's also add feature Y!!! Let's make it 3d and revolutionary!!! Let add shaders" (and a year later development team still doesn't have a single playable demo. Pathetic...).
The best advice I could give is to code as little as possible, but make sure that your code is human-readable, easy to maintain, and implements all features you need. Minimum amount of code with maximum functionality. Once you start worrying about "client-server" architechture and "multiplayer functionality" at early stages of development, you'll wander off into magical fantasy land and will spend next 50 years in total bliss writing unnecessarry obscure features that will not improve your program in any way, but will eat your development time and increase program resource usage. See YAGNI for more info. Even if you THINK you'll need something later, don't implement it now, since it is very likely that this feature will not be necesary or there will be different way to implement it. Always concentrate on current task and nothing else. Your main goal is to complete program and fix bugs. Everything else is secondary.
um I think you missed my point
each bullet point I listed is supposed to be a separate major release version, and yes I realise it would take years
I was simply suggesting a logical order of how things should be built onto each other as the game evolves so the op DOESN'T end up biting off more then they could proverbially chew
perhaps step 1 should have been 'have a clearly defined set of goals before starting', i've seen projects end up in development hell myself, having been involved in such a project
I said baby steps after all, not follow all my steps in one go.
Quote:
Originally Posted by SigTerm
2D and 3D requires artists. If you don't have artists (or money to hire one), you should forget about it.
well yeah, but that's why i suggested a minimal interface first, then see if the op can't get some artists, or learn some art.
um I think you missed my point
each bullet point I listed is supposed to be a separate major release version, and yes I realise it would take years
I was simply suggesting a logical order of how things should be built onto each other as the game evolves so the op DOESN'T end up biting off more then they could proverbially chew
perhaps step 1 should have been 'have a clearly defined set of goals before starting', i've seen projects end up in development hell myself, having been involved in such a project
I said baby steps after all, not follow all my steps in one go.
well yeah, but that's why i suggested a minimal interface first, then see if the op can't get some artists, or learn some art.
I might take some of your ideas to the later on editions (4.0_0 and higher, I have ideas for 2.0_0 and 3.0_0, yet nothing for 4.0_0 and higher...)
Distribution: Ubuntu 11.4,DD-WRT micro plus ssh,lfs-6.6,Fedora 15,Fedora 16
Posts: 3,233
Rep:
exactly, i was simply suggesting an order of operations where one step would build upon the previous, not a timetable or versioning scheme of any sorts
exactly, i was simply suggesting an order of operations where one step would build upon the previous, not a timetable or versioning scheme of any sorts
As I said in my previous post, I will probably look into your ideas for the later versions. I have the website ready, and have a few more bugs in the program, and I am still working on release artwork, I may be able to get it out soon.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.