Fires of Heaven Guild Message Board  

Go Back   Fires of Heaven Guild Message Board > Fires of Heaven Related Forums > Uberworlds Development Forum
User Name
Password
Or, use your gamerDNA username: (more...)
ForumSpy Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Rate Thread Display Modes
Old 03-01-2009, 09:19 AM   #1 (permalink)
Mir
HULK SMASH
 
Mir's Avatar
 
Join Date: Oct 2002
Location: Saturn
Posts: 232
-1 Internets
Some pointers on shifting gears

A little background:

I work professionally as a lead developer for a web based company. I have a great deal of practical experience in programming for the web (mostly LAMP / JavaScript) but more than just some simple dynamic web pages. I manage several large scale web applications. My point is that I am familiar with software development in a real world environment as it relates to the web.

My question isn't about XNA or C# or anything, it's about REAL software development. For some reason I've never felt like programming on a web platform was "real" programming, and also for as much practical experience I have, I have ziltch classroom education about real software development.

So what CAN I take from my real world experience and apply to game / software development? It seems like a whole separate world to me, but maybe it isn't. I'm mostly concerned about the major pitfalls that programming for the web wouldn't have prepared me for.
Mir is offline   Reply With Quote
Old 03-01-2009, 10:13 AM   #2 (permalink)
x1hundredregrets
Registered User
 
Join Date: Dec 2002
Posts: 373
-9 Internets
I think one of the big things would be efficiency of the code you write. I know when I write web code, being efficient usually falls to the back burner as I focus on functionality.

Flipping around to game development, you really have to think about the tiny little minute details that might effect efficiency. Is the order I declare shit in this class or struct going to effect how badly my heap and stack get fragmented? Are there any heuristics that I can use to speed up this algorithm. Stuff like that.

When you're trying to squeeze every single extra FPS out of your code, the little things really start to matter.
x1hundredregrets is offline   Reply With Quote
Old 03-01-2009, 11:41 AM   #3 (permalink)
Fog
Registered User
 
Join Date: Feb 2006
Posts: 1,971
-1 Internets
Quote:
Originally Posted by Mir View Post
A little background:

I work professionally as a lead developer for a web based company. I have a great deal of practical experience in programming for the web (mostly LAMP / JavaScript) but more than just some simple dynamic web pages. I manage several large scale web applications. My point is that I am familiar with software development in a real world environment as it relates to the web.

My question isn't about XNA or C# or anything, it's about REAL software development. For some reason I've never felt like programming on a web platform was "real" programming, and also for as much practical experience I have, I have ziltch classroom education about real software development.

So what CAN I take from my real world experience and apply to game / software development? It seems like a whole separate world to me, but maybe it isn't. I'm mostly concerned about the major pitfalls that programming for the web wouldn't have prepared me for.
I don't think there are any unexpected pitfalls. Frankly, I find that web programming is generally more difficult, since it's implicitly performance-critical and heavily multithreaded, whereas desktop programming is not necessarily so.

EDIT: Server-side web programming, that is.
Fog is offline   Reply With Quote
Old 03-01-2009, 12:09 PM   #4 (permalink)
x1hundredregrets
Registered User
 
Join Date: Dec 2002
Posts: 373
-9 Internets
Ya, I guess I assumed the OP was talking about client-side web development. Server-side development is going to have a lot of parallels in game development, especially MMO development.
x1hundredregrets is offline   Reply With Quote
Old 03-01-2009, 12:58 PM   #5 (permalink)
Mir
HULK SMASH
 
Mir's Avatar
 
Join Date: Oct 2002
Location: Saturn
Posts: 232
-1 Internets
Server side is what I'm refering to mainly (in PHP) though I have to do both server side and client side to build an application so both do apply.

Thank's for the tips though.
Mir is offline   Reply With Quote
Old 03-02-2009, 06:38 AM   #6 (permalink)
Drenik
Registered User
 
Join Date: Jun 2006
Posts: 9
+1 Internets
Quote:
Originally Posted by x1hundredregrets View Post
Is the order I declare shit in this class or struct going to effect how badly my heap and stack get fragmented? Are there any heuristics that I can use to speed up this algorithm. Stuff like that.
On modern processors having poor cache coherency is one of the best ways to kill your programs's efficiency. It isn't so much the number of operations you throw at the processor anymore, but more the cache misses that lead to processor stalls. The problem is, you have to be careful to not try to over think things either. Generally, using cache friendly algorithms combined with a good global memory allocator replacement (like dlmalloc .. in C++ at least) will have you covered.

If after profiling you think reorganizing your data could speed things up, that is when you worry about custom allocators for certain data structures. Trying to optimize too much ahead of time can cause you just as many problems as not thinking about it at all. There is a fine balance, but giving good thought to algorithms used (Big O notation actually comes into effect believe it or not!) and memory layout usually starts you out on the right foot.

Of course, I work as a C++ developer on real-time systems and I have no clue about web development so I'm not able to comment on the differences. I just wanted to back up other comments made.
Drenik is offline   Reply With Quote
Old 03-05-2009, 02:39 PM   #7 (permalink)
Ennya Dragonslayer
Registered User
 
Join Date: Jan 2003
Posts: 171
+3 Internets
Quote:
Originally Posted by Mir View Post
...
So what CAN I take from my real world experience and apply to game / software development? It seems like a whole separate world to me, but maybe it isn't. I'm mostly concerned about the major pitfalls that programming for the web wouldn't have prepared me for.
Without going into too much detail, if you're working with languages that are interpreted instead of compiled you have not been exposed to a kind of complexity that exists below the interpreter. Everything you have done thus far assumes the application that is interpreting your code will take care of everything for you. If you begin doing the C/C++, Java, FORTRAN, etc.. that make up the library side of most programming you need to worry about much bigger issues. Now, every one of those languages is different, but overall they do not solve dynamic memory acquisition, threading, asynchronism, and other lower level issues. Also, basic IO operations can be more complicated, and in some cases is flat out rude. (Yes, java does trash collection, I know.)

It depends a LOT on what you're actually doing. Some tasks are very straight forward, others can be extremely complicated. It's not the best measure, but the first application I worked on out of college was 8 million lines of code server + client. MySQL is about 850000 lines of code.

EDIT: spelling/grammar
Ennya Dragonslayer is offline   Reply With Quote
Old 03-06-2009, 07:11 PM   #8 (permalink)
Froofy-D
upper management material
 
Froofy-D's Avatar
 
Join Date: Nov 2002
Location: Orlando, FL
Posts: 2,197
+17 Internets
Stating the obvious, but the best way (imho the only way) to learn is to just start coding a game and finish it. Coding is exactly like math: reading theorems give you the big picture, but if you never actually solve a math problem with the theorems, your understanding will remain superficial.

Einstein probably solved 1000's of math problems just like Bjarne Stroustrup (inventor of C++) probably wrote 1000's of programs. Neither would have accomplished what they did by just reading about theory and never applying it.
Froofy-D is offline   Reply With Quote
Old 03-10-2009, 10:37 AM   #9 (permalink)
Ennya Dragonslayer
Registered User
 
Join Date: Jan 2003
Posts: 171
+3 Internets
Also, if you do switch over to a language like c with "pass by reference" as well as "pass by value" you will understand why the name of this thread is amusing...
Ennya Dragonslayer is offline   Reply With Quote
Old 03-13-2009, 06:23 PM   #10 (permalink)
Fog
Registered User
 
Join Date: Feb 2006
Posts: 1,971
-1 Internets
Quote:
Originally Posted by Ennya Dragonslayer View Post
Also, if you do switch over to a language like c with "pass by reference" as well as "pass by value" you will understand why the name of this thread is amusing...
"Contains a word" is not the same as "amusing."
Fog is offline   Reply With Quote
Old 03-14-2009, 10:55 AM   #11 (permalink)
Ennya Dragonslayer
Registered User
 
Join Date: Jan 2003
Posts: 171
+3 Internets
Quote:
Originally Posted by Fog View Post
"Contains a word" is not the same as "amusing."
There is more than "one word" in the title related to low level programming. If you happen to work on CODECs you get very intimate with shifting.

Looking for pointers on shifting to using pointers is amusing.
Ennya Dragonslayer is offline   Reply With Quote
Old 03-15-2009, 05:19 AM   #12 (permalink)
Grooverider
1234567890
 
Grooverider's Avatar
 
Join Date: Aug 2002
Location: Svenborgia
Posts: 1,299
It isn't even remotely amusing.
Grooverider is online now   Reply With Quote
Old 03-15-2009, 02:03 PM   #13 (permalink)
Fog
Registered User
 
Join Date: Feb 2006
Posts: 1,971
-1 Internets
Quote:
Originally Posted by Ennya Dragonslayer View Post
There is more than "one word" in the title related to low level programming. If you happen to work on CODECs you get very intimate with shifting.

Looking for pointers on shifting to using pointers is amusing.
Hey, you forgot one! "Some" refers to a set operation -- we're taking a subset of all the pointers, ha ha ha!

Gee, what a laugh riot! Who knew that all these words could mean things!
Fog is offline   Reply With Quote
Old 03-26-2009, 08:55 AM   #14 (permalink)
Szlia
Conquest
 
Szlia's Avatar
 
Join Date: Mar 2002
Location: Switzerland
Posts: 5,643
+25 Internets
You know you shifted gear when you start to find coder humor funny I guess.
__________________
-retrosabotage-
Szlia is offline   Reply With Quote
Old 03-26-2009, 05:45 PM   #15 (permalink)
Faille
Fires of Heaven Officer
 
Join Date: Jan 2002
Location: Melbourne, Australia
Posts: 3,364
+25 Internets
there are 10 types of people in the world.
Those who understand binary, and those who don't.
__________________
Faille
Fires of Heaven
http://www.fohguild.org/forums/uberw...lopment-forum/
Faille is offline   Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On

uberguilds network



All times are GMT -7. The time now is 06:32 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0 RC6