• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Cornstalks

33 parameters for a function?! Seriously!?

55 posts in this topic

Quote:
Original post by d000hg
"Crap programmers write crap code all the time" isn't an excuse. Many people out there have no good skills and just throw out anything that works. It's true you can go overboard on the computer science part but this is something quite trivial, if it wasn't for the multiple API issue I'd expect any decent coder to make this change without thinking they need to discuss it. Any professional coder should be automatically writing reasonable code to start with, of course it often won't be perfect but there are degrees of quality and anyone who likes to think themselves a programmer (rather than someone who hacks code) should be a few rungs higher up the ladder!


I never said it was an excuse, only that those types of programmers do exist, and are more common than what we'd like to believe. I'd also have to state towards Mithrandir's post about outsourcing, I don't think it's that they're sabotaging code, rather, software development is a business, and as such, they train people as quickly as possible to come up with working code. And quick learning != proper learning.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by trzy
Is this,

*** Source Snippet Removed ***

really any better than

*** Source Snippet Removed ***

?


I think it's much better. If you add/remove/change some of the parameters, with the second approach you have to change all calls to that function. With the first approach, you just update the struct. The function calls stay the same.

EDIT: Accidentally swapped "first" and "second".

[Edited by - Gage64 on January 13, 2009 1:49:31 PM]
0

Share this post


Link to post
Share on other sites
Quote:
Original post by trzy
Is this,

*** Source Snippet Removed ***

really any better than

*** Source Snippet Removed ***



Yes, it is.

1) You are no longer required to create multiple overloads for differing function signatures for the same functionality
2) Your structure can easily supply default values for languages that don't support default parameters (which are ugly anyways, and prone to break in modern JIT languages)
3) It enhances readability so you no longer have to wonder why parameter 27 is a boolean (I'm certain you've had at least one "wtf does 'true, false, 10, true' mean?" moment before; everyone does).
4) Maybe not too relevant to game programming, but it makes your application service-friendly, since services work on a message digest paradigm. Ever have to wrap an old 5-billion parameter API into a service layer? I have. I wish they used parameter objects instead.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by benryves
That reminds me of the joy that is Microsoft Office's COM API, but that's not quite 33. Part of the problem is C#'s lack of support for named or optional parameters, which is fortunately being remedied in C# 4.0!


I'm not looking forward to optional parameters at all, actually.


In .NET, they're implemented entirely on the client side. Say you have assembly Server, which has a function:


public class ServerClass
{
public void Function( [Optional][DefaultParameterValue(30)] int a )
{
// do something
}
}




Ok now you have assembly Client, which has a function:

ServerClass sc = new ServerClass();
sc.Function(); // do not pass in 'a', use default value.





Hit compile, the compiler analyzes Server.Function, retrieves the "30" default value, and injects it into the client IL so that it's literally passing in the number 30.


Later on, you update the server and change the default value to 40, but you fail to update the client assembly as well (very easy to do in .NET, as it was designed to be so modular; easiest situation is when Server and Client aren't even made by the same company). What happens when the client is run?

It will still use "30" as the default value.


Optional parameters are very dangerous in .NET for this reason, and in fact this was the reason they were never implemented in the first place. In my draft of our 2009 code standards, I have completely banned their use in all publicly visible functions (theoretically internal, protected, and private should be safe, but we'll see).
0

Share this post


Link to post
Share on other sites

Old thread is old. Let's not raise the dead.

 

[edit] the necromancer has deleted his post :/ BTW, he appears to be the same fellow as GoofProf.F, and both accounts have been deleted (banned?) -- As far as I can tell, he's either just here to troll, or has a raging case of Digital Aspergers.

Edited by Ravyne
0

Share this post


Link to post
Share on other sites

Seriously, this thread is so old people are quoting me as "MikeTacular"...

 

Edit: And now it looks like Ravyne is the necromancer...

Edited by Cornstalks
1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0