Dissapointed

Started by Melssj5, September 20, 2005, 05:03:18 AM

Previous topic - Next topic

Melssj5

Hi, I began writting my first 3d game, at the begining I was working well, but when I made enough of the game to have a small preview I was 100% dissapointed with it. It was awful so I decided to quit from this. I have not worked on it for almost 10 days. Today I want to try fixing it before throwing it to the trash can (virtually).

I began writting my code using the most common model of software development (code and fix ) :oops: .My 3D models were awfull, my textures didnt look as nice as I figured it out, the collision detection didnt worked well in this huge maps, the main menu seems to be made by a child :cry:

I want to know what knid of tecniques do you use to began with a project.

Do you really chose a model like the cascade one, then use a case tool like Rational Rose, and after all of that then you pay for getting good 3D models and finally codying it.

I always have used code and fix because I have kind of several brain storming while writting code, and it seems to be a bad idea.

Any sugestions?
Nada por ahora

EgonOlsen

Sorry to hear that :( Personally, i don't spend days or even weeks drawing UML diagrams and designing stuff to the death. I usually know the goal that i want to achieve and i have a rough idea of how to do it before i start coding.  When i'm thinking too much about design, i usually complicate things more than needed.  For example, Paradroidz first design was overcomplicated. It made sense on paper and it would have done so even in code, if the code would have been used in the way it was planned to...but it wasn't.
Designing too much leads to too much "what if"-thinking IMHO: "What if i want to do this or that in the future or what if my game objects should start cleaning the kitchen or cooking some coffee one day...i should take care of that too...or maybe i want to render them on a line printer one day, so i should introduce another rendering abstraction layer...". That's BS. I like the part of the "Extreme Programming"-philosophy where it says: "Code what's needed, not more. Refactor if needed." That's basically what i'm doing with Paradroidz. That's NOT what i'm doing with jPCT. jPCT's design is years old. It should be refactored for some parts and i would do that, if i were the only person using it. But i'm not and i really don't want to break other people's code (because i HATE it, when this happens to me) justto  make me feel better. In the end, it doesn't matter at all.
However, what works for me doesn't have to work for everybody else and these things lead to very emotional discussions (even more than the great question: "Where to put the brackets?"... :wink: ) most of the time. Do what works for you. If you do and if you finish at least something, you already did a lot better than people who are just talking about things...
About the art department: I'm not very good at art, i.e. drawing textures, making models...i could do better than i'm currently doing with Paradroidz, but i don't want to spend the time needed. A skilled artist would be multiple times faster than me (and with better results) That's why i'm currently looking for an artist to improve the look of the models at least. And to make sure that he delivers, i'll pay him for his work. Not much of course, because Paradroidz is freeware, but anyway...
What else can i say...don't give up just because it isn't fun all the time. There are soooo many abandoned projects on the net...too many if you ask me. The people who are actually getting things done are very very few... :cry:

rolz

I would say that it is very common for software project to get abandoned without going final. I think there should already be some aim prior to starting a project.

If you think that the aim of your project is self-education then you should  care about getting knowledge and experience  and you may not even care about the final product.  If the purpose of your project is to make a product then you should care about the product, quite simple.

About UML - it is of course useless for projects where you do not intend to involve hordes of developers. UML is first meant to control heterogenous code - that is written by many people, even teams. It is the way to introduce restrictions for people who write the code to keep it strictly organized and manageable.

For small project, you would of course get more use of XP. As Helge said, there is no point in planning everything ahead - keep it simply stupid, and refactor when you think your current architecture won't allow you to get to the next requirement/goal. I think it is good idea to stick to the saying "The only way to eat the elephant is to eat him by small pieces".

I started from small pieces of paper and went to using XPlanner for Technopolies though i am the only developer here. Think about 3-4 "next good things" you would like to add to your game in a week or two. Write them on paper, start coding and get back to your "plan" in a week. By this moment you should already have a dozen of new fresh ideas - write them on paper and do as above.

I think i get same "dissapointing" feeling every week - the game is ugly, not playable and there is no point in going further. It is normal, because no one can be attracted by the same thing for a long time. And what works for me - is to take a break, play other games or go out to a party or to countryside, or whatever you like.

And of course dont forget to get that emotional "push" from other people that share thoughts on your game  and support you.  ;)


[/url]
Regards,
Andrei

Melssj5

Well, I am here again. 4 days ago I got chicken pox  :x   :cry:   :(   :evil:   :twisted:

So I tried to  continue on my game but I only want to sleep, I will began classes on the University on 2 weeks, and I am very stresse because I am having a lot of problems too.

I think, I better ask for a more specific help.

The game I am trying to develop is a multiplayer game similar to descent or forsaken, using spaceships, nothing too complicated.

Well, about the maps, I made my owns on 3d studio max 6.0, they are ugly, but they work. I tried to find some free spacecrafts on 3dcafe but they just dont appear inside the game, like if jpct dont accept them, so I fisrt passed them to 3d studio max but when now they dont appear complete (a mistery), so I had to made my own spaceships.

the are big ones, I tries to use the ellipsoid collision detection but the shape inside the spacecraft wont fit perfectly inside a ellipsoid and I am having problems with that because the camera is not placed on the center  of the craft but in the front part, so I think I must detect collision with the craft and manage the craft and after that placing the camera on the craft position and direction.

How should I manage the movements, as long as it will be an online multiplayer web game, i was thinking on using the serialization to saving on a file the position of all the crafts and having a personal world that upgrades the position and direction of all the crafts for each loop iteration.

is this the correct way to do it or should I do that in any other way?

When I fisrt thought in this game I began writting in paper many ideas of how to do my game, but now I think on a different way and I am not sure about that.
Nada por ahora

manumoi

hello,

Concerning your collision detection and how to do it in a online multiplayer environment, we already had such discussion with rolz and Egon in the technopolis thread (down of the page):  http://www.jpct.net/forum/viewtopic.php?t=190&postdays=0&postorder=asc&start=120.
(there are also some posts before and after this page)I strongly suggest you to work again with ellipsoid detection, maybe modifying the size of the ellipsoid to fit better to your model.

Concerning your main question, I use prototyping which is more or less what rolz suggests (but I don t trust every recommandations concerning Xtreme programming, that s why I say "more or less"). You begin by doing a simple working system, and then step by step, you improve it and make it more complex.

If you want to do multiplayer online game, you should also look at the nio package of java and how to use channels, creating non blocking servers..., which is very useful for systems with high scalability.

And don't forget, "Never give up, never surrender" (I heard that in a stupid movie).

Good luck,

Manu

Melssj5

Well, I just decided to began again with the game, but this time I am going to think first on how to implement the main functions because I had a class that is a splash and set the coniguration of the game, a class the initialize all the objects and another one to handle the game but I find that I needed some previous analisys of my system, because I never consider many other things, I made that stupid set of classes because I just began writting pieces of code on my barinstorms, now I will prepare first the arquitecture of the server and clients, after that I will code the structural part and finaly add the 3d part to it, I think that this project were usefull to notice that making a quality game is not a funny hobbie but a software development.

My girlfriend really liked the preview of my game, but I hate it. maybe I am being too demanding about quality considering that I am a newbie on this area.
Nada por ahora

EgonOlsen

Glad to see you back in business... :wink: Your planned approach sounds reasonable to me. Just make sure to keep things as complex as needed but as simple as possible. Things will grow in complexity anyway...(for example, Paradroidz proof of concept version started with 4 classes, now i'm at 163 and counting...).

raft

uml maybe quite useful for some cases. i mean not to use it for code generation or other purposes but use it for planning your program (or parts of it) before starting coding

in general i find drawing diagrams (not necessarily uml)  of ideas extremely useful as it forces one to think in depth and find possible errors, mis-thoughts earlier. as the old preverb suggests 'one diagram worths a thousand words'

in karga, i dont use any uml software but try to take my notes as diagrams on paper

another point i think very important is to make as much tasks done automatically as i can. for instance i use ant not only as a build tool but for copying files, zipping them etc. as humans make errors on these kind of tasks and easily forgot the procedure. and of course it's a real pain and source of discouragement to do the same boring things over and over again

this may be considered as a matter of taste but i also find it very useful and important to throw exceptions from methods (as opposed to returning nulls etc) and make things as much type-safe as possible. this way errors can be detected earlier. i love the idea of using the compiler to its limits to find errors

at a glance these are what i think about software development cycle

i wish you luck with your game :wink:
r a f t