Thread: Charging for custom built games / software.

  1. #1
    Android geek@02's Avatar
    Join Date
    Mar 2004
    Location
    Kurunegala Colony, Sri Lanka, Sri Lanka
    Posts
    470

    Charging for custom built games / software.

    Hi all

    Newbie question.
    I'm thinking of charging the customer by the number of lines of the code. What should I charge for about 100 lines of code?

    Thanks for any help.
    GameJolt: https://gamejolt.com/@KasunL
    Game Development Youtube:
    https://is.gd/XyhYoP
    Amateur IT Blog: http://everything-geeky.blogspot.com/



    (and, sorry for my amateur English)

  2. #2
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by geek@02
    I'm thinking of charging the customer by the number of lines of the code.
    I suggest sticking to some suitably low limit for the number of characters per line (80 is suggested by Python's PEP-8, but that's way too generous). Use extremely verbose names, forcing you to spill over statements across many, many, many lines in order to meet the character per line limit (Stroustrup suggests that remaining_free_slots_in_symbol_table is "probably too long", but he has no clue). Make sure that you use an indent style that will maximise the number of lines of code (Allman may be an option, but enhance it if you can). Avoid using generic algorithms and library functions in general unless you can count the standard library code in the line count. If feasible, rewrite the entire standard library from scratch so as to get paid for those lines of code. Include a clause in the contract to allow comments to be counted as code, then make sure to write exceedingly long comments (keeping to the character per line limit) that explain blatantly obvious code in meticulous detail (Doxygen-style tools can help).

    Or, you can charge based on your time to produce the work given your ability and availability of competitors, the value it provides, and what your customers are actually willing to pay.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  3. #3
    Guest Sebastiani's Avatar
    Join Date
    Aug 2001
    Location
    Waterloo, Texas
    Posts
    5,708
    Quote Originally Posted by geek@02 View Post
    Hi all

    Newbie question.
    I'm thinking of charging the customer by the number of lines of the code. What should I charge for about 100 lines of code?

    Thanks for any help.
    Forget that, just approach your potential client with something like "Look, I'm a reasonable guy - what is this worth to you?". Chances are their offer will be much better than you expected. And if their offer comes out too low, just come up with a suitable counteroffer based on what you think it's worth. Haggle, rinse, repeat...
    Code:
    #include <cmath>
    #include <complex>
    bool euler_flip(bool value)
    {
        return std::pow
        (
            std::complex<float>(std::exp(1.0)), 
            std::complex<float>(0, 1) 
            * std::complex<float>(std::atan(1.0)
            *(1 << (value + 2)))
        ).real() < 0;
    }

  4. #4
    and the hat of copycat stevesmithx's Avatar
    Join Date
    Sep 2007
    Posts
    587
    Quote Originally Posted by geek@02 View Post
    Hi all

    Newbie question.
    I'm thinking of charging the customer by the number of lines of the code. What should I charge for about 100 lines of code?

    Thanks for any help.
    So, you have planned to become the richest programmer in the world. Seriously though, LOC is never a serious metric to assess the quality or quantity of software, IMHO of course. Also, fewer LOC means lesser bugs.
    Not everything that can be counted counts, and not everything that counts can be counted
    - Albert Einstein.


    No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes.
    - Herbert Mayer

  5. #5
    Android geek@02's Avatar
    Join Date
    Mar 2004
    Location
    Kurunegala Colony, Sri Lanka, Sri Lanka
    Posts
    470
    Thanks for the input guys.

    Quote Originally Posted by stevesmithx View Post
    So, you have planned to become the richest programmer in the world.


    No actually -- I'm fairly new to selling my work, and seems not having a good grasp on how to put a price on what I code. So, for the time being I thought I may asses the charge based on the LOC. I know it's a silly way of doing it, duh. But anyways. What do you guys suggest as the cost for a line of source code for a, say, a single level 2D shooting game? (Probably a silly question, but wanna know what you guys say..)
    Last edited by geek@02; 10-15-2013 at 01:07 AM.

  6. #6
    Registered User MutantJohn's Avatar
    Join Date
    Feb 2013
    Posts
    2,665
    It's worth whatever people are willing to pay for it.

  7. #7
    Registered User
    Join Date
    Dec 2006
    Location
    Canada
    Posts
    3,229
    What's wrong with billing for you time? That's how most contractors work.

  8. #8
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    You should bill based on time not lines of code. KLOCs are a terrible way to judge programmer performance and charging based on them is equally as terrible.

    Since your project estimates will be time-based you can easily calculate the total cost of a project if you know what you are going to charge per hour. Note that your time estimates in a consulting project should always be in total man hours. A normal work day is 8 hours but it is rare that you will ever have a full 8 hours to work due to meetings and other responsibilities and time sinks. It all depends on your particular business or environment and your chosen SDLC and development methodology (Waterfall, Agile, etc.)
    Last edited by VirtualAce; 10-15-2013 at 10:49 PM.

  9. #9
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    You should bill based on hours spent as it was suggested. But this isn't as straightforward as it may seem. You should always have two concerns in mind:

    Be fair to you
    Be fair to your customer

    Ideally you should provide your customer with the overall cost of the project before you start coding. This means you must do some ad hoc software analysis and produce some manner of proposal with an estimate of what you will charge the customer. I never charge for these ad hoc analysis. I consider them time well spent in winning a customer. But these proposals do include the time I will spend doing the real software analysis, once the project is approved.

    Also ideally you shouldn't have a fixed hourly rate. I tend to charge hourly rates based on the complexity of the project. If I'm required to investigate and learn new skills, I tend to cut on the customer costs since I have benefited from the project in other ways than just the money I will make from it. Long running projects also have different hourly rates. I usually charge more for quick projects than I do for longer ones.

    In the private sector, usually overcharging is more beneficial. I have lost customers to my attempts at being nice and understanding. There's simply this thought process in which businesses tend to be suspicious of cheap proposals. You should try to avoid winning a customer by reducing your charges. Remember you should also be fair to you. And in the case where you come up with a large figure that you feel may be too much for the customer resources, you should include in the proposal enough data to convince them why you are the right person to do it along with some kind of incentives, like free training or 1 year free maintenance.

    The public sector is the opposite and frankly much harder to build proposals for. You will have to make an effort to reduce your charges to the bare minimum that justify the time you will spend on the project. The public sector works on strict budgets and they will always evaluate proposals on money. But you should never ever undercharge because there's no point in working on something that isn't just fair to you. It's best sometimes to just let go and let someone else take it. Although this does not mean you shouldn't deliver your proposal.

    The nature of your project will determine if post-development services will be required. These are typically training and project maintenance. I usually give the first for free and I always charge the second. Training costs will depend on the number of people involved and the time required. I consider 2-3 weeks of training a fair personal expense that I shouldn't charge. But if those 2 or 3 weeks are entirely spent on the customer premises providing training to a large group of people, naturally that would change.

    Maintenance is usually charged yearly (under contract) or by incident (no contract required). I only give maintenance for free when the project global costs are large enough to justify giving the customer an incentive. But only the first year or a set number of incident calls. Maintenance charges should be based on the type of incident. Under incident-based maintenance you should charge even when correcting bugs in your code. But the charge should be smaller compared to other type of incidents. If under a maintenance contract your best bet for a fair yearly charge is to charge between 1/5th and 1/10th of your development proposal (note that you should only engage in contractual maintenance for large and complex projects). As you gain experience, you'll gain a mind for the costs and time involved in maintaining your projects based on what type of code you wrote, the difficulties you faced, the type of customer you have and the project own nature. It will become easier to come up with better maintenance contracts. But initially this will be an headache.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Battery plugged in but not charging
    By jamesallen4u in forum General Discussions
    Replies: 2
    Last Post: 03-08-2012, 04:14 PM
  2. Battery charging algorithm
    By bloody in forum C++ Programming
    Replies: 7
    Last Post: 10-07-2011, 12:44 AM
  3. how a 3d software is built
    By Wally in forum Windows Programming
    Replies: 2
    Last Post: 09-15-2011, 03:14 PM
  4. which software when making games ?
    By black in forum Game Programming
    Replies: 25
    Last Post: 09-08-2002, 02:05 PM