mitchellmckain
Members-
Content Count
403 -
Joined
-
Last visited
Everything posted by mitchellmckain
-
Wow another fan of Albert Camus. He made an existentialist out of me. But I cannot say that I mainly read his books or anything like them. I am 43 years old, with three college degrees, but I am no snob, not at least when it comes to Harry Potter. I have read them twice to my children and three more times just for myself! Not my very favorite books, but certainly worth my precious bookshelf space. My very favorites? The Chronicles of Thomas Covenent, by Stephen Donaldson. and Hunter of Worlds by CJ Cherryh.
-
I think you underestimate the neuron. Its complexity not only puts all the computers we have to shame but it is alive. And it is the meaning of this word "alive" wherein all our difficulties lie. I am not so sure that that the neuron and the human being are fundamentally or qualitatively different. Quantitatively different by an enormous factor in many different ways, yes. You see I don't go along with the christians at all when they say that living things are designed in some divine workshop. I think they have there metaphors mixed up, because I do believe there is something fundamentally different between what is "alive" and what is not. The proper metaphor for a creator of living things could never be a watchmaker or other designer of dead things. The correct metaphor must be a farmer who raises crops, a rancher who breeds horses, or a teacher who educates children. These are our real life examples of those who create living things and design plays no role at all.The computer can be reduced to a set of rules because it is designed. I see no evidence for and only a greal of evendence against the possibility that living things could ever be reduced to a set of rules. I don't know what you mean by the word "magical". The only real life use of the word is for things we do not understand. And as far as we have come in understanding the neuron as we have, I think you greatly overestimate this if you think we can say that we understand it. So I must disagree with you on this one, magical may indeed be an apt adjective for the neuron. "Zgibble" is a word with no meaning because it never used by anyone to mean anything, but isn't the word "God" almost as meaningless since so many people use it to mean so many different things? Ok, .... I'll play the game anyway... why not? From your context the word "God" apparently means this being that people apparently believe is all powerful. And you are suggesting that the idea is inherently illogical, I guess. Yawn... The subject is a tad old. I can't do it. Ok, how about this. If there was such an being, what would he do? What would motivate him/her/it? If we are going to talk about such a peculiar being isn't that a more interesting question? What is the point of picking on terms like "all powerful". Power is an illusion anyway.
-
I assume you are using XP because Win98 had a button to clean up unchecked items. I guess they forgot it on the XP or are trying to make it idiot-proof.Any way, you have to use regedit and remove it from the registry(if youve never used it before, you get to it just like msconfig).You could just search for it but I think it is underHkey_local_machinesoftwaremicrosoftshared toolsmsconfigstartup folders OR startupregfind the subfolder in which you see the program name and delete the whole subfolder. You may want to export what you delete first (file menu) so you can put it back in, just in case. Editing the registry is dangerous but it is the only way to exert real control over windows.
-
I haven't the slightest idea what christians are talking when they talk about the soul. There are too many assumptions in that concept to contemplate. I don't even know what it means to assume it doesn't exist.Now physics I do know, its what I do. And well, quantum physics does represent a set of rules but not so much about what is or what happens but about what you can know and what you cannot. We can use it to understand some phenomena and even to predict others, where quantum uncertainty is dampened out. But it is unlikely that quantum uncertainty is dampened out in a complex system far from equillibrium where chaotic dynamics is likely to play a role. Such a case is the human brain. With all the talk of quantum computers we may someday have computers which can simulate something like this and yet maybe not. Once there were philosophers that believed that everything in human experience could be reduced to mathematical laws. And then a clever guy used Mathematics (or Logic, same thing really) to prove that Mathematics itself could never be proven consistent. I think that this and quantum mechanics raises serious doubt about wheter anything like the human brain can be reduced to a set of rules.People once thought that quantum mechanics might eventually be explained away. They thought as you do that just because we know the cause or the rules that doesn't mean they don't exist. They proposed that there were hidden variables to explain why one measurement and not another after a quantum wave collapse. Well another clever guy, John Stewart Bell, devised and experiment that would actually test if such hidden variable really could exist. These were actually performed and the result was that no hidden variables exist. This suggest serious doubt about whether really are any such rules that you think exists. Therefore, a say you assume too much.It really seems that we are surrounded by events which have no ultimate cause, at least not in the traditional sense of the word, which is what Aristotle would have called effective cause. Most these events are lost in a sea of averages and have no impact in the world we know. The exception is complex systems like the human brain, where it seems likely that the quantum wave collapse is routinely amplified into macroscopic events. How then shall we understand these events without cause? A lot people like to use the word random, as if we really knew what that meant, and they like to use it to mean "without meaning or reason". But consider how we experience them? What really happens when we make choices? Are they without meaning or reason? No, we usually have the reasons ready. But are our reasons really the cause of our choice or did we choose the reasons when we made our choice? Of course many human choices do seem to be somewhat invevitable and some people are rather predictable. But I at least, am not sure whether it is always so. And in such cases I find the word "random" to be a poor description as well. Rather it seems to me to be a rather odd sort of event that contains within it, its own cause. No, it is not causality as we are used to seeing it. But this idea of "self causality", does seem, at least me, to best explain the human experience.I realize this idea is a bit unconventional, but it does provide an answer to a troubling conundrum. If all our actions and thought are just the end of a causal chain of deterministic events that orignate outside of ourself, then why do have the absurd sense of self. Why do we suffer this delusion that we are the author of our thoughts and actions. I guess in the end I am an existentialist and a pragmatist like Kierkegaard and Charles Sanders Pierce. If philosophy is just bunch dead logic without meaning in the human experience then why bother with it. You may call me a fool for grasping at meaning, but then I am not the one whose self image is a mechanistic automaton.Of course, if you are right and the human experience is indeed reducible to a set of rules to be simulated on todays computers, then I have no difficulty with imagined people either. But how could you call them self aware when their sense of self is a delusion. Real awareness in such a being would dispense with the self and be one with the world around him.
-
I do use it for imporant emails. I use it to talk to the dean of the school I teach in about the students in my classes. The privacy of my gmail is also their privacy. But as far as the ads they display....huh? Do they display ads? I never noticed. I don't intend to start either. The world around us seem to full of thing that are just not worth noticing.
-
Have you read or watched "Lathe of Heaven", by Ursula LeGuin, recently? Anyway I guess I am going to be nasty and poke few holes in things you have said.First, your world in the computer. I think you assume too much, at least when you leap from computers to human brains. We designed computers and we can reduce them to as set of rules that must be followed. When you assume that the same can be done for the human brain, I think you assume too much. Now I do not mean that would not be possible to simulate the human brain with a new kind of computer that doesn't have to follow rules the way computers do now. But then I am not sure we should call such a thing, a computer.Second, your world in a some great mind.When this being of yours imagines a so called self aware person can this imagined person ever do anything without your superbeing imagining him do it. And since this person never does anything of its own without the superbeing imagining it first, then would the superbeing really think that the imagined person is self-aware? And what of the imagined person himself? Since the source of all his actions and thoughts are imaginations of the superbeing then how would he ever think of himself as being apart? If the self is not source of your actions or thoughts, then how is it anything at all? How can "I" be the subject of any sentence? If the self is a delusion then what is its purpose and what is its cause?Now suppose this great superbeing could imagine such an autonomous thought that thinks for itself and no longer relies upon his own imagination any longer? Is the superbeing still sane? After all, he no longer has control over his own imagination.P.S. Just so you don't throw me in box for easy dismissal, I am not an atheist or even an agnostic.
-
Are We Missing Out On The Old Times?
mitchellmckain replied to evion's topic in Science and Technology
I am going to resist the nasty habit of anwering this piecemeal, and try to answer the question behind the questions. But to do this, it will seem that I am talking about something completely unrelated. Be patient. Everyone has seen X-men 1&2 about the "next stage of evolution." One of the funny things about evolution and history is that these are things that happen in everyday life, only participants are often unaware of what is happening all around them. I believe that we are in the next of evolution already. Only it not Darwin's theory because he had no "next stage" in his theory. But there are stages. If we look far enough back into the past, there was a time that there were only single celled organisms. And if we look carefully at our cells we see evidence that these too were once composed of smaller more primitive independent units (similar to bacterial and algae). Darwin's theory cannot explain these gaps. According to his theory the individual cells should continue struggling against each other for survival, so that only the fittest survive. But this is not what happened. If we look at our bodies we will find that most of our cells no longer have the ability to survive on their own. By working together and sheilding each other, protecting weaker members they have changed all the rules of evolution. For them it is no longer survival of the fittest, it is survival of the community. The driving force of evolution is always variation. Leaps of evolution occur when something happens that make a whole new range of variation possible. The beginning of sexual reproduction was one of those leaps. But think now about the inherent limitation that Darwin's evolution imposes upon variation. When it is all about individual survival, then there is not much room for variation is there? We should all be farmers or hunters in that case, don't you think. Isn't it clear that human beings have also taken a step into the next stage of evolution. Don't we now protect the weaker members of the community? Look at what liberation it has brought us. Look at the variety of man. Have we not changed the rules of evolution ourselves? The use of glasses is a perfect example of how we are in the next stage of evolution. Just as individual cells have overcome their limitations with the technology of its community (think of the human eye), we have overcome the limitations of our biology and individual evolution with the technology of the community of man. And just like the cells in our body, the community has become our greatest concern and our encompassing environment. I do not mean to declare that all is well or that there should be no concern over what we are becoming nor that we should completely abandon the natual world. But if you think about it, this concern itself is evidence of an increasing awareness of ourselves and higher consciousness that we are now a part of. The increasing freadom, choices and awareness that have come with this new stage of evolution, natually brings a whole new set of danger and responsibilities. But if we can avoid destroying ourselves by new technological weapons or the depletion of our resources, then to me at least the future looks pretty good. As for the proper balance of technology in the healthy human life, well now we have the chance find out the answer to that question, and the right to make that choice for ourselves. -
I have simultaneous email accounts on hotmail, yahoo, lycos and gmail (oh and my ISP email doesn't count). I guess I don't like depending on just one. I got all these at about the same time when I started working on the internet. Without a doubt gmail is my favorite and lycos is the worst. The main reason is speed. It takes a while for gmail to load but once it is loaded its responses are nearly instantaneous. However, you do if you are used to slow speed internet, you may be used to using the back button to navigate. Don't do this in gmail use the navigation buttons on the page, they are much faster. Also the organization may take getting used to. Here is a typical inboxme, Steve (4) How are youMichael, me (5) What about this!The means 4 correspondences between me and Steve on the topic "How are you", and 5 correspondences between Michael and me on the topic "What about this!"This helps keep the list of emails down quite a bit.I should say that the main thing I was looking for when hunting for email sites was something I could use without lowering my security settings. I now have all of the above working by setting up trusted sites, although lycos seemed to work without it and both hotmail and yahoo seem periodically change the trusted site you have to use (which I guess they do for their own security).
-
Since I am anything but enthusiastic about this subject I probably shouldn't even post a comment at all.Well, I certainly would not even imagine paying for an FTP program. The command line ftp program in linux is good enough for me. I don't see why there would be much selectivity for such a simple program. For windows I have used WS_FTP and WS_FTP95 for years. but when I made the web page here, I thought it might not be working so I downloaded and tried SmartFTP. Ok fancier but so what, as long as my files get where I want them to go.
-
For my first attempt at making my recent Web page (relspace.astahost.com), I tried Microsoft Office Publisher since I got a copy for free with the Office Suite that was provided for my teaching job. The result would load like it was slowly putting together a jigsaw puzzle. Not only that, but sometimes it would not load properly in the browser at all.So I rewrote the thing in freehand html (using the same graphics that Publisher had supplied) and I was rather shocked that the Publisher version of the html was 100 times the size of what I wrote to do the same thing. I find that a little bit incomprehensible. Why would anyone bother writing a program to make an html document 100 times larger so that it could perform so lousy when loading?Well maybe no one with any experience doing web pages would bother with a program like Publisher. In this field I am quite a novice. I am more into software programming. But it really make wonder about the people who wrote Publisher. I didn't realize that there were salespeople pretending to be programmers or something. I don't know, my imagination fails me here!
-
Mac / Windows: Whats The Best ?
mitchellmckain replied to kc8yff's topic in Websites and Web Designing
Ignorance is the only reason I can think of anyone actually could actually like microsoft. "Destroy Microsoft" fill me with such a nice warm feeling. To kc8yff I say stand up for your principles and get a Mac. Don't cave like most people. Of course, that reccommendation is faint praise, because, in fact, you are sacrificing a bit when you opt out of the Microsoft empire. Joking aside, I could never reccommend switching from an OS you have become comfortable with, unless you want to broaden yourself. It is a hateful and miserable experience, much like moving to another country. You will survive and come out of it stronger, and one day you learn not to regret your decision. But if you are of sensitive temperment or prone to suicide don't do it. Of course if you were considering switching to from Mac to Windows the prospective misery would be 100 times worse. I would'nt reccomend that switch unless you had absolutely no choice at all, or if you wanted something like a future in computing industry. By the way, as much as the thought of Microsoft's downfall brings joy to my heart, I do not think this will happen. I believe that an investment in Microsoft is one of the best you can make. I think that Microsoft has made a serious amount of investment in future development and I think that counts for a lot. I do not mean to imply however that the other major OS's do not have a future. Unix looks solid and Linux is on the rise, and if the posts here are any indication then Mac is looking good as well. -
Mac / Windows: Whats The Best ?
mitchellmckain replied to kc8yff's topic in Websites and Web Designing
I am also suprised at the number of mac supporters. I get the impression that games have always been a major selling point for the PC, which was a good marketing strategy. Marketing strategy seems to be the main reason for PC dominance. Microsoft's enemy making bussiness practices is enough to guarantee that Microsoft and consequently all PC users, will be a target for talented programmers, although its dominance might be a sufficient reason for being target number one. Of course, the lousy programming (by Microsoft) makes it a nice fat juicy lamb for the slaughter anyway. That said, I must now confess that I use only PCs at home. I am at home on Unix, and I am familiar with Mac and linux. I dabbled with linux enough to recompile the kernel for some special features I wanted, but that was long ago. Linux seemed a good idea for an interface with my work on Unix machines at the university. However, Linux was took too much effort to overcome new hardware difficulties. I think this control over both hardware and software that chiiyo thinks is so great about the mac is its ultimate downfall. Yes it makes the mac more stable, but then of course it would. No challenge there at all. In the end it is all about community. The Mac is too small minded. By trying to work with an open market of hardware manufacturers, Microsoft is embracing (seems like strangling sometimes) a larger community. In many ways the Mac represents a lot of what I hate about Windows (which after all is a Mac ripoff). I liked the simplicity of DOS, though I reconized that the limitations were too great. I did not like the point and click junk and largely felt that the Mac was great for dummies but then only a dummy would use one. The problem with the mac (and its ripoff, Windows) is that like any enormous program that tries to do your thinking for you, ultimately makes you feel like you are caught in a giant beaurocracy that does the weirdest things for unknowns reasons. Now, of course, I have had to accept Windows (shoved down my throat), and I have very slowly begun to learn how some of it works. In summation I would say that the Microsoft OS is a happy (if perhaps mediocre) medium between the excessively opaque and controlling system represented by the Macintosh and the do it yourself system represented by Linux. It seems to be a compromise that the largest community of people have been able to settle on, and it is that community (by no virtue of Microsoft) that makes the PC unrivaled. However, my gratitude goes to the struggling competitors who help to keep Microsoft working hard for their unearned monopoly. -
One of the most important programming tasks is learning how to handle errors in a way that will be helpful to your debugging efforts. In today's programming we make extensive use of libraries and other code written by other people. When this code generates errors they can be rather hard to track down, since they usually generate exceptions which are caught out of your typical code sequence. In order to deal with this, I want to suggest three error handling ideas, that you can use without resorting to the disassembler. The first is the use of checkpoints. These are regularly spaced points in your code where you store a unique code number in a static variable to keep track of where you are in the execution of your own code. The second idea is to channel your response to all the errors you catch by various methods through a single code point. The reason is that with a single break point you can stop your program in time to trace the execution back to where the error was generated. The third idea is to pass an origin code to subroutines which you make a large number of calls from numerous locations in your code. This is to help you immediately identify the location from which the subroutine was called. If you make a large enough number of calls to this routine, tracing back to exactly which call to it led to the error can be difficult. It is a good idea to make this error code a seperate module, since it is something you can use in all of your projects. In this module you can make the header file something to include by other modules. In addition to your static checkpoint variable, you can define a macro which stores the checkpoint code and tests for errors. When an error is found you call the subroutine (error_break) which handles all of your errors according to the second idea above. Another useful item is a flag which tells your program whether to terminate on an error (user mode) or continue execution (debugging mode) for the purpose of tracing and error back to its source. error.h //Use this macro to check for errors while recording a checkpoint location//test represents any additional local conditions under which to signal an error#define checkpoint(test,j); {checkpointcode=j;if(test||errno==EDOM)error_break(j);}extern bool exit_on_error;extern int checkpoint;void error_break(int j);//you will also want to define any special exception types you might need here//When you throw an exception you can throw anything at all: any integer, array, class, etc. in your program.//So defining a seperate structure like this for an exception is optional. However using a different structure// for each type of exception makes your programming more readable and managable. struct specialException { int i,j,k;};struct error_break_Exception { char buf[100];}; Now you can put the actual variables and subroutine code in the c++ file. You can also put in a _matherr routine to overrule the default handler. error.cpp // exit_on_error set to false causes the program to continue execution after an error// use with breaks on the line below to trace the errors back to the source bool exit_on_error=false; //change this to true when you are finished debugging your program int checkpointcode=0;//Since this file does not call error.h you need define here any exception types you use in this filestruct error_break_Exception { int j;};//---------------------------------------------------------------------------void error_break(int j){ errbrkException e; e.j=j;//###################################################################################//******************put a break on the next line to cause program to halt when called//################################################################################### errno=0; //here you can display error codes // store a whole list of error codes // throw an error_break_Exception under whatever conditions, for example if(j>27){e.j=j;throw e;}return;}//---------------------------------------------------------------------------int _matherr (struct _exception *a){// In some case you may want to put code here to modifiy the return value without generating an error// For example acos and asin generate errors outside the range of -1 to 1. Since it is easy to fall // outside of this range due to round off error you may simply want to return an appropriate value// rather than generate any kind of error. This is accomplished by the following code. if(!strcmp(a->name,"acos")){ if(a->arg1>1.0&&a->arg1<1.01){a->retval = 0.0;return 1;} if(a->arg1<-1.0&&a->arg1>-1.01){a->retval = M_PI;return 1;}} if(!strcmp(a->name,"asin")){ if(a->arg1>1.0&&a->arg1<1.01){a->retval = M_PI_2;return 1;} if(a->arg1<-1.0&&a->arg1>-1.01){a->retval = - M_PI_2;return 1;}} error_break(9999);//when you return from error_break you can examine the type, name and arguments of the error.//...........................................................................//a->type == DOMAIN Argument was not in domain of function, such as log(-1).//a->type == SING Argument would result in a singularity, such as pow(0, -2).//a->type == OVERFLOW Argument would produce a function result greater than DBL_MAX (or LDBL_MAX), such as exp(1000).//a->type == UNDERFLOW Argument would produce a function result less than DBL_MIN (or LDBL_MIN), such as exp(-1000).//a->type == TLOSS Argument would produce function result with total loss of significant digits, such as sin(10e70).// You can check which math function generated the error by looking at a->name// You can check the arguments of the math function by looking at a->arg1 and a->arg2 (if 2 arguments)//........................................................................... if(exit_on_error)return 0; return 1; } In your main program you will use one or more try catch statement sets to catch error exceptions. #include "error.h" ... //Using more than one try - catch set will also help you to identify what part of your code generated the error try {//your code, usually calls to subroutines and functions in your other modules } catch (error_break_Exception &e) { <code to display error message or information contained in e> //since this exception is generated by error_break itself, you do not call error break here. if(exit_on_error)exit_program(0);} catch (Exception &ex) { <code to display error message or information contained in ex> if(exit_on_error)exit_program(0); else errbrk(0);} catch (...) { //here is where you catch unknown exceptions types that may be thrown in libraries you use //You have no idea what informations was sent in the exception so you cannot display that // But you can display the checkpoint code that was saved at your last checkpoint. <code to display error message with last checkpoint code> if(exit_on_error)exit_program(0); else errbrk(0);} Here is another method for catching errors defined in signal.h, which I have put in my error handling code. Of course you need this at the top of your program. #include <signal.h> Then you need to signal to install the signal handler at the beginning of you main program signal(SIGFPE, (fptr)SignalSIGFPECatcher); Add your signal handler prototype to error.h void SignalSIGFPECatcher(int *reglist); Then you need to add your signal handler to error.cpp //---------------------------------------------------------------------------typedef void (*fptr)(int);void SignalSIGFPECatcher(int *reglist){ signal(SIGFPE, (fptr)SignalSIGFPECatcher); // ******reinstall signal handler error_break(9998); if(exit_on_error)_exit(1); else *(reglist + 8) = 3; /* make return AX = 3 */} The signal types that you can catch this way are as follows:........................................................................... SIGABRT Abnormal termination (default handler calls _exit(3)) SIGFPE Bad floating-point operation (default handler calls _exit(1)) Arithmetic error caused by division by 0, invalid operation, etc. SIGILL Illegal operation (default handler calls _exit(1)) SIGINT Control-C interrupt (default handler calls _exit(3)) SIGSEGV Invalid access to storage (default handler calls _exit(1)) SIGTERM Request for program termination (default handler calls _exit(1)) ...........................................................................
-
How Long Have You Been Programming ?
mitchellmckain replied to miCRoSCoPiC^eaRthLinG's topic in Programming
I started programming in high school about 1977 on a programmable commodore calculator, if you can call it that. Then I got the HP-41C. I wrote a neat star trek game where you give commands as a captain trying to out guess the computer klingon opponent. This original idea would have several reincarnations later. My first programming class was fortran using punch cards. The totally unimaginative class warned me to steer as far away from the computer science department as possible. So my next computer was a mainframe DEC 20/60 used by the College of Science at the University of Utah. I defeated the teacher of a Computer Modeling class by writting the best program to play the game of othello. I tried my hand at about every language I could back then including sail and pascal, but my favorite was the macro assembler used by the DEC. It was using this that I resurrected my star trek game, and it wasn't long before many of the people logged onto the DEC was were playing it. It expanded on the orignial idea to include exporing a three dimensional galaxy. As a summer job I used my programming skills to supply the graphics for a research project in solid state physics. At the end of my four years as a physics major, during which I took as many numerical analysis classes as I could (three whole years), I had the chance to work on a Evans and Sutherland Picture system run by a VAX. I modified a flight simulator demo on the thing to a combat simulator type game, which apparently had people playing it long after I had left. I had a bit of a religious interlude, but at seminary I bought my first DOS laptop and learned to program in C. With that little thing I rewrote my own version of a text base wargame, a third version of my star trek game, a Russian word processor, and spent two years on a program to play the game of Go. In the meantime I had entered graduate school in physics. I worked on a maple program to work out the algebra for a three body problem in a Machian type mechanics called Barbour-Bertotti theory. Then I switched to a phd project in High energy physics, where I worked on the multiprocessor computers at the univerity of Utah's Center for High Performance Computing. I learned how to use these machines to do monte carlo simulation of a quantum field theory that turned out to be a bit useless. But I also took some time out to take a couple of Computer science classes and learned Java, and relearned lisp. In fact, emacs lisp is one of my favorite ways of doing quick calculations. I loved our project on public key encryption. I also took a class on Scientific Visualization, which familiarized by with rendering concepts. I even tried using volume rendering in the relativistic flight simulator project that I would do later.Bored to death I quit my PHD project to work on a programming project of my own. I thought that there was so much ignorance and misconception about relativity and that this could be remedied if people could see how it worked by seeing in action. The project led me on the path of learning how to program using OpenGL and Win32. I do keep toying with the idea of incorporating my old star trek game into the simulator, but the never ending improvements of adding more astronomical objects and realism to the simulator has kept me busy enough. I have also played around a bit with the idea of doing a similar sort of simulator for quantum physics as well. But that project has a long way to go yet. -
Infinite Game Space game programming concept
mitchellmckain replied to mitchellmckain's topic in Programming
I am not a great fan of storylines in games, but this feature is quite compatable. The relevant areas for the storyline would be programed as usual. But now you have the added realism that not everything is programmed in advance and part of some story plot. Of course that would make following the plot much more difficult since you are no longer stuck between the pages of a book or bound to the set of a movie. You cannot wander off assuming that the story will find you. The example of relspace applies in this case too, because not only are there randomly generated stars and planets but there are real planets and stars that we know really exist, which are put into the data file by hand. This is simply not true. It is true that you have a finite number of players, but you would also have a finite number of entry points. I think that infinite space would add to the community aspect with the possibility of sharing information about explored space. There could always be permanent features to randomly generated locations that would make knowing where they are valuable coin in the community. -
Of course a computer cannot really have a truly infinite game space but then people do not have the infintite lifetimes required to know the difference anyway. You can create a game with billions of billions of locations which is more than big enough to be infinite as far as the human game player is concerned. You cannot do this with the traditional approach, of programming each location ahead of time. Your computer does not have the memory to contain them and the programmer does not have the time to program them. Instead you must use fixed seed random generation. Fixed seed random generation means that you use a deterministic method that generates random numbers from a starting number (like the built in random number generators available in most programming languages). The result will be that the locations will be the same every time you visit them, unless you also make them evolve in time. This make the game space something that can be gradually explored and shared between different players. The seeds for each location can be generated from the map coordinates. The map does not necessarily need to be a literal map with geometric spacial coordinates. The map can also be a treelike structure, where the player can travel from his starting location to a number of adjacent locations each with a seed generated from the seed of the starting location. Then each of those adjacent locations may connect one or more locations whose seeds are generated from its seed. Since the built in random number generators only produce 32,768 different numbers you may want to write your own or use more than one seed for each location (2 such seeds will give you over one billion combinations). The challenge then becomes a matter of creating a robust enough technique for randomly generating each location so that you get enough variation to support the experience of an infinite game space. One important concept of creating interesting and realistic randomly generated patterns is self similarity. Raw randomness creates a kind of white noise or gray background of boring uniformity. Things in nature which are close to random, actually have the tendency for adjacent locations to be similar or related, but with abrupt changes as well. So, to get a natural feel or look to things your adajacent locations must be similar a large proportion of the time but often completely different. Another challenge is the problem of how players change the state of the locations which they visit. This requires that you keep a stack of such changes. In order to keep this stack from growing indefinitely while improving realism rather than losing it, you would use evolution in the random generation of your locations. This way you can drop changes to visited locations from your stack when the locations have evolved. Evolving locations means that the more changable elements of each location depends on the game time as well as its fixed seed.As an illustration of these concepts see the relativistic physics of spaceflight simulator at http://forums.xisto.com/no_longer_exists/. You do not need the registered version to see what I am talking about. This program uses a tree like structure for random generation even though everything is located in the same 3 dimensional space. This is because the locations are organized into galactic cluster, galaxies, clusters of stars, star systems with planets and planets with their moons. This fixed seed random generation technique allows me to have hundreds of galaxies, each with hundreds of billions of stars (and most of those with companions and planet) because I do not have to store them or even display them unless they are within range. The concept of self similarity is used in a variety of ways. The average star of a galaxy or star cluster depends on the type or appearance of that galaxy or star cluster. Self similarty is also used in the creation of irregular shaped galaxies and star clusters. But the most important use of self similarity is in the random generation of surface features of the planets and moons (around other stars). The locations are evolving because the locations of the planets and moons in their orbits depend on the time (real time in this case). However I do not have to worry about players changing anything about thei locations they visit. I was led into using this technique for this program by the fact that the data available for what is out there gradually diminishes with distance. Even though this program is not a game at all, I have spent many enjoyable hours exploring its infinite space. Imagine finding interesting views like looking at the Milky Way through the rings of a bright red planet with three suns, in the Smaller Magellanic Cloud.I noticed on the internet that there is a book available on this idea of infinite game space (http://www.cengageptr.com/), but I haven't read or look at it myself.
-
Visual Studio .NET - Should I Buy It ? Should I Buy It?
mitchellmckain replied to VJgamer1405241488's topic in Programming
I see he has already bought the thing, but my opinion might be worthwhile for someone reading this topic later. I have both MS Visual Studio and Borland Builder 6. I was previously using a Borland Builder C++ platform, and although I was comforatable with it, I was fighting against limitations. I wanted to try Direct X so I thought that the Visual Studio would be the best so I bought it. At the time I was quite disappointed, not because it was bad but because it was not what I expected. It promises 3 languages VB, C++ and C# and they are there. But what I did not see was visual C++. Blinded with fury I took it back the store, but they would not let me return it. So it sat on my shelf and I bought Borland Builder 6. And so I was happy with that for a while. But limitations were still there. Then I realized that the real limitations were in my own head. That's when I started learning OpenGL and Win32. These brought me past the limitations and made me realize that the choice between these two programming environments was largely irrelevant.Since then I have spent time learning the features of Visual Studio and the languages of VB and C# as well as Direct X 9. Now I would have to reccomend for no other reason than it is good to be able to use it, because it dominates the industry. I must confess that I still use Borland however, because that is where my main project is and converting it over to Visual Studio would require writing my own version of a few Borland Classes that I use extensively. -
I recently started with DSL, so I have become a bit used to controlling my intenet connection rather than being connected all the time. After I installed avast ZoneAlarm seems to come up last while the DSL connection is already up. I believe I was invaded yesterday in this gap. These backdoor worms sneak in so fast that if a few seconds is enough. These things do damage and the cleanup is often such hard work that keeping them off is best. The speed of the attacks is probably due to missing security updates, which I have been reluctant to install because of conflicts in the past. But I have installed them now. I hate depending on the reliability of these thing though I worry about the startup gap.Is there any way to control the order in which these programs start up?
-
The advice of these others are quite correct. But if you want to progress faster I would get into either DirectX or OpenGl right away. For DirectX the easiest approach would be to get Microsoft Visual Studio, preferable with a student discount. I think OpenGL is a little more programming platform independent and there are great tutorials on the internet (I reccommend Jeff Molee's NeHe tutorials). If you get discouraged take a break and seek inspiration in programmable games like Starcraft and Neverwinter Nights. The programming features of these are so flexible people have made modules that simulate competely unrelated games. There is fantasy roleplaying module that someone cooked up for starcraft. Another person made a modue for Neverwinter Nights that simulates a collectible card game (its called Demon Cards). With these as programming platforms you can see some spectacular results fairly quickly and find the inspiration to keep studying the basics which will liberate you from their limitation. All the tools you need to get started with these come with the games, and there are plenty of examples in the modules that others have written that you can download (find them with a google search).
-
I was quite fustrated with Google when I did a search for GetModifiers (thinking that this was a Win32 function I was looking for), but all I got was an endless supply of posts about a Java function getModifiers function. OK so maybe I should have take this for a sign I was looking up the wrong thing, but instead I stubbornly persisted. I looked in the advance search and found nothing to make the search case sensitive. Shock! OK so I did a google search for search enginges and case sensitivity. I found a site claiming that HotBot and something call NorthernLights had the best case sensitivity. So I tried http://www.hotbot.com/ and found it was using google and AskJeves .... no case sensitivity. Northern Lights is not currently open to the public. Well I solved my coding problem but my interest in the search engine problem remains. Sometimes I would like to make my web search case sensitive and I find it strange that this option is not available.