Jump to content


Check out our Community Blogs

wizarddrummer

Member Since 26 Feb 2011
Offline Last Active Dec 19 2012 07:33 PM
-----

Posts I've Made

In Topic: What Tools Do I Need To Write Games With Graphics Like The Final Fantasy Series

16 September 2012 - 09:02 AM

Writing 3D games generally involves working with a 3D engine, such as JMonkeyEngine in Java or Ogre in C/C++. The engine provides the 3D rendering capability along with a whole lot of other complex algorithms, such as lighting, texturing, physics, 3D sounds, etc. Some engines provide more features than others. You'll have to consider them all and pick the one that feels the best for you.

However, that's not all you need. You'll also need a 3D modelling program for creating your 3D meshes, which get imported into your game and rendered by the engine. Blender is one example of a 3D modelling program.

Games typically aren't written by a single developer. You'll usually have a team consisting of programmers, 3D modelers and animators, graphic artists, sound design engineers, composers, and many more. I would recommend you begin by learning how to program with a 3D engine, and write a few sample programs, such as rendering a 3D cube, or basic walking around an empty room. As you get better, you'll be able to write more sophisticated programs and games. And keep your eyes peeled for other people with talents who can help you with your plan.


Absolutely spot on advice. It takes a symphony to create a game.

In Topic: How much to charge a client?

16 September 2012 - 08:57 AM

It depends how much time does it take to do that. Also there are other things like: how much the line of the "code", how much technologies do you need to include and do you need to pay for that API to use it or it is free API.
I don't have experience in web design and web development so maybe someone will disagree with me but I will charge for this 700$ only because it includes database with API. Here in Croatia for single web page with only text information and with no database people are charging 400$ for a web site. And yes, people do pay 400$ for page like this:
http://helpus.welessthanthree.com/
And yes, those "developers" are using free templates.


$400 for that? Where do I sign up? I could make a page like that.

In Topic: Coding Suggestions

16 September 2012 - 08:52 AM

you wrote " I need it to open the file, replace a line of code with another line of code instead of doing each one manually."
What, may I ask do you need to change?

Depending upon what it is I may have a suggestion for you for the future.

In Topic: Is php the best language for web ?

16 September 2012 - 08:48 AM

Depends on the application, your server and what YOU know best (or whomever is coding the site) and feel comfortable with.

Best is in the eye of the beholder.

Personally I like PHP / MySQL.

In Topic: How to Become Perfect in Programming

15 September 2012 - 12:50 PM

Programming is a discipline, and like any other profession, there are many facets that you have to learn. It is part art-form and part science; art-form in the sense that each program, like a painting, is a creative work. Some are elegant, eloquent solutions to problems. Other's, like Microsoft's OS offerings, are tedious bloated piles of (you can put in your own imaginative word here).

So what does a programmer do?

Anyone doing this regardless of title is doing Data Processing. We have a task to accomplish, we take input, do some processing (store a few things) and spit out the results with text, pictures, video, music or a combination of all of those things.

We provide solutions. It is critical that you be able to a) understand the problem you are hoping to solve, B) be able to take that problem and dissect it into smaller components. c) create a solution and d) code and implement the solution.

When we program computers we are giving directions from a map we have created. Directions / steps that the computer must follow to complete the task.

The classical definition of a program is "A set of finite steps necessary to complete a task"

Are all programs alike on the inside? Is there more than one way to "skin a cat"?

When I first started programming more than 36years ago I really didn't have a style, I didn't have that "Signature Dish" that chefs do. Eventually after hundreds of thousands of lines of code hundreds of projects you will settle into comfortable design methodology that works for you. There is really no right or wrong way to write a program.

If the program works and produces the end result then it is correct, by the definition of a program which is a set of finite steps that performs a task.

However, that being said, when I was teaching a College C class in the mid 80's I thought hmmm, how do I illustrate this concept? One evening, at around 8:00 PM, I had my computer (a UNIX System at the time) some coffee and beer and proceeded to write more than 125 unique and different ways to write a program that displayed the text "Are we having fun yet?"

The printout, on the old continuous impact printer with perforated paper was about 250 pages long. I pulled out all the stops! I mixed Assembler code in with the C; used Inter process communication; Structures; arrays of structures; pointers with 5 levels of de referencing / indirection. One code example was 225 lines long. I named it "Job Security" because only the person who wrote such a mangled mess could understand it.

When I asked the students how many ways they could think of to write this program hands stopped going up after 5 different ways (we were in week five of the semester) I said follow me. I took my "fashionable" black attaché case set it on one end of the long hallway and proceeded to walk almost to the other end of the building. I said look at all of these unique and different ways to accomplish this task.

I pointed out the straight forward, easy to understand, easy to modify and easy to maintain examples along with the Job Security examples. Things you should avoid doing.

Programs, they all do the same thing.

What sets them apart is elegance. A good program, one that is elegant, is the almost "perfect" solution. It is easy to understand, it is easy to maintain or modify, it lends itself to being adapted for other uses (unless it is just a weird project) and it can be expanded fairly easily; meaning it is designed with the possibility that more will be expected of it in the future. Programming is a synergy of Science and Art. With Science you have logic and structure and with Art you have Passion and Creativity.

In the mid 90's when I was looking back at some of the 80's code I had written and I was very proud, at the time, I wanted to gag! It wasn't horrible, but it wasn't pretty either.

Just like playing drums; you practice you get better. Don't worry about saving the code and macros so much... grow; learn; explore; and gain experience. You will find that stuff will automatically start flowing out of you where you won't need the old code anymore.

One gift I have always had which helped with drums as well as programming is that I've been able to recognize the patterns in software code and I can remember where they are located.

If I'm writing a new program and I need some date handling routines or i need something that will calculate compound interest rates I know where to look for it. I try to write code that is fairly generic in nature so that I can have some re-usability down the road. OOP Object Oriented Programming teaches you to create things that can be used again

Not all people are cut out to be programmers. It requires logic, tenacity, the ability to dissect a problem into small discrete pieces to arrive at a solution.

I have written more than a million and a half lines of programming code (combined) in the last 38 years in RPG, COBOL, ADA, Fortran 77, Basic, BASICA, GW BASIC, Pascal, C, C++, Objective C, Smalltalk, VAX ASSEMBLER, PC ASSEMBLER, Motorola ASSEMBLER, Visual C, Visual BASIC, PHP, Java, .NET, Lisp and a wee bit of Python. Not to forget Unix Shell, DEC DCL, and crappy old DOS Shell Commands.

Each language has strengths and weaknesses. Each language has aspects that make it better for some applications over others. For example, you would not use COBOL for video processing.

I have written some very complex programs (database applications) where the local database is an MS ACCESS database. This database then uploads information to an online MySQL database using a server I wrote in PHP and then I used PHP to construct the website allow users to log in and view the data. All of the data synchronization is automatic and is two way.

I suggest, that in order to learn how to program, that you read a few books on the procedures for programming and then I would use Visual Basic in the MS ACCESS environment. Why? It is a development environment is more forgiving and easer to use while being a little more intuitive than Visual Studio and certainly much simpler than the hideous .NET environment. (Don't flame me that's just my opinion)

Access has a good debugger and allows for a quick and easy environment to learn HOW to program.

If you then decide that programming is what you want to do and you have an aptitude for it, then you can specialize in whatever field interests you and migrate to the language that best suits that field.

For example, if you want to join the project and help develop Linux then a version of C and perhaps some ASSEMBLER would be necessary.

Programming is telling a computer what to do. The syntax (language specific instructions) varies from language to language, but you're doing essentially the same things; getting input, doing calculations, storing data etc.

Search out and look at some simple examples in four or five languages. Google the classic "Hello World" program.

Many people look at some languages and also various OS's as well, with an almost religious context, that some are very superior over others. They get offended easily when someone (like me) says that their favorite OS belongs in the trash bucket. It used to be the Unix Camps vs the DEC Camps at Stanford and many other places.

It's a waste of energy to get worked up about it I have no loyalty to anything. To be honest I'm really partial to the NeXT Operating System. It was the best OS I have ever used to this day.
Here's a screen shot. This was around 1993 and notice that windoze 3.1 is running in the background. Could windoze have put this OS in its background? I think not!
http://erik.doernenb...12/nextstep.png

Illustrations of Mediocre design and Elegant, Sophisticated, Superior Design (circa 1993)

windows 3.1 Mediocre pile of (explicative deleted)



Elegant, Sophisticated, Superior Designed system (I will go to my grave wondering HOW the other cheesy OS won the battle of desktop users.


In this case, Elegance lost out to inconsistent poorly designed software.

Take a look at Object Oriented Programming and study data representation and data abstraction. These concepts are invaluable for real world problem solving.

To review, there is more than one way to code a solution. You can have an elegant solution that works and has many safe guards for catching errors and features that make the application easy to use for the intended user or a program (like many Microsoft Programs) that are prone to errors, makes the user click endlessly on superfluous non essential things and crashes frequently.

I am a person that develops using the RAD (Rapid Application Development) approach for most of my projects.
I did away with the traditional Systems Analysis approach taught in College (and I might add, that I, myself taught for 9 semesters many years ago) in favor of the quick and responsive. I used to make mock up screens, and charts and reports and other "aids" to demonstrate what the proposed new functionality was going to look like. Now, my 'mock ups' are functional.
If I have already created a working concept of a form that captures 6 pieces of information, it's easy to go in and add the 7th piece that we find is necessary a month later. On the project I am working on now one database form started with 5 pieces of information, it now captures more than 20 and while it is evolving with other development going on it is a fully functional entity that is constantly being tested at the same time.
Only the largest of companies and products being developed have the money for the traditional approach.
In today's fast paced "We need this two weeks ago…" world, RAD gives people a visual, hands on, almost immediate feedback to the current project. Clients can then say "We like - we don't like" right off from the get go. By the time the system is done they are already familiar with it and already "trained" because as part of the on going development process they are already "experts" in using it.
So, my long and drawn out point is that fast coding / learning is great for real world applications but it must be tempered with good coding practices help the "student" develop their own sense of coding style for creating well designed, sturdy programs.
And coding style is something a person develops over many years after millions of lines of code have been written.
The hardest thing in the development world is to modify someone else's code; especially if the code was not designed eloquently.

Some times you can look at someone else's code and it is like walking outside on a lovely Spring day. The code is brilliant, clear, easy to understand and modify; you say to yourself: this is exactly how I would have done it.

Then, there are times when you look at code and your brain starts to hemorrhage or melt. You'd rather be anywhere on the planet (including prison) than where you are sitting.

Be thankful that you don't ever have to wade through the gobbledygook from Microsoft's old BASICA with the completely horrid GOTO's

That being said, if you do eventually get into this business and you improve, you can't be promoted into management or into team lead positions if you write obtuse code that no one but you can understand. You have to be able to train the people under you to take your spot.

All programs written in high level languages, no matter how grandiose, will ultimately revert to the smallest common denominator and that is the Assembler Language of the computer architecture of the machine you are running on.

I used to love to program in Assembler. The only language that has the same level of power to go skip, dancing naked in the computer forest is C with it's inline Assembler capabilities.

To learn, you need something simple and visual basic, in my opinion will allow you to at least get a feel for what's going on.

Write as many practice programs as you can. After you have coded a solution see if you can write the program in a different way; perhaps more efficiently or using a different approach.

Soon, you will get the hang of it and start to develop your own sense of style.

Practice, Practice, Practice!

.AND HAVE FUN!

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download