Jump to content
  • Advertisement
Sign in to follow this  
  • entries
    2
  • comments
    13
  • views
    1331

Financial Stability

BewitchingGames

697 views

I wanna thank everyone who helped me out with my last question, but now I got something possibly bigger than the last one. I just wanna know, how do you guys earn money while making your games to? Do you work a full time job and work on the game at the same time? Cause I gotta say, my full time job is awful, leaving me pretty much drained to the point I really can't do much of anything. So, I've been trying to figure out ways to earn money and work on a game at the same time. Cause I have a school debt to pay off, and now a car payment, so I can't not be working. I can't work at my current job any more for personal reasons. So I'm hoping I can get the help I'm looking for.



4 Comments


Recommended Comments

Don't quit your job, just don't.

As a artist who tries to help a lot of indie developers I can tell you a lot of shocking stories of developers who gambled on game development.

I've seen how a new developer who just taped into his savings tell me my indie prices is too low, only for the same developer to steal from me months latter when he could no longer pay.

The strangest case was a indie developer who hired me under my professional portfolio, tried to sue me for the failure of his game. The only reason it didn't even reach court was because he had approved every model, and I had warned him every time not to use AAA models in a indie game. In the end I bought my models back out of pity, he did spend his life savings on the game.

 

Making games while working a job is how I do it. But I am only a hobby game developer and it took me 10 years before I was able to publish a game that earned profit.

Share this comment


Link to comment
1 hour ago, Scouting Ninja said:

Don't quit your job, just don't.

As a artist who tries to help a lot of indie developers I can tell you a lot of shocking stories of developers who gambled on game development.

I've seen how a new developer who just taped into his savings tell me my indie prices is too low, only for the same developer to steal from me months latter when he could no longer pay.

The strangest case was a indie developer who hired me under my professional portfolio, tried to sue me for the failure of his game. The only reason it didn't even reach court was because he had approved every model, and I had warned him every time not to use AAA models in a indie game. In the end I bought my models back out of pity, he did spend his life savings on the game.

 

Making games while working a job is how I do it. But I am only a hobby game developer and it took me 10 years before I was able to publish a game that earned profit.

Oh no I wasn't. I was just trying to find other ways of making money while working on an indie game. As much as I hate my job, I know I can't quit, your two stories alone are proof enough on how risky the idea of gambling on game development is.

Right now, I'm just trying to find a new job, other ways to earn money, or advice on the whole thing... whichever comes first really.

Also, still new to the field, but exactly how would it be your fault for the failure of his game?

Share this comment


Link to comment
1 hour ago, BewitchingGames said:

but exactly how would it be your fault for the failure of his game?

Short: AAA 3D models have huge amount of polygons and texture setups. It takes a average of 5 people(some times 10-12) to get a character into a game.

Longer:

Spoiler

 

For example a AAA model will have 2-3 normal maps per body part, 2-4 albedo maps and 2-4 PBR specular sets. Polycount is often  +/- 150 000 to Main character to +/- 60 000 , cinematic models is > 200 000. The rig I provide standard is 314 bones for the capture rig and the game output model ranges from 24-72 bones depending on main character or enemy.

The problem with a mesh that has that much detail, is that it takes a lot of work to animate. He thought he could just buy some motion capture software (spending almost all of his budget) and do it himself; what takes a team of trained professionals with years of experience to do.

He then claimed it was my fault the model was complex, except I had proof that I warned him every time he asked for a model to be made.

I couldn't refund him as he had used the models in his game and published it. So I had to buy back the models for the same price but kept the deposits. 

 

Now I have a rule where I don't make complex models for anyone who can't prove they have made a game before.

 

2 hours ago, BewitchingGames said:

. I was just trying to find other ways of making money while working on an indie game.

If you can hang on till you have made a demo, crowdfunding is a option. I know some developers sell the tools they make for there games on the Unity asset store.

Mostly I see developers starting with extremely small and cheap games, selling them to earn money for larger and larger projects. This is also a good approach because it helps refine skills.

Share this comment


Link to comment

Personally I have stockpiled my vast fortune through investment and other means, this allows me to spend my time programming games and anything I find fun.

In terms of financial stability, gamedev is a very poor choice in most cases imo. Most of the poor saps who rely on it for income do it because it combines their interest with the ability to make some money. There are far more sensible choices if you want to 'reach Hampstead'.

If I was going to do it all again, I'd be quite tempted to study law. I find it interesting and top lawyers are often stupidly overpaid. If you have no skills, there is always good money to be made at the docks, plumbers are always in demand, and crime can be very lucrative.

Share this comment


Link to comment

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
  • Advertisement
  • Advertisement
  • Blog Entries

  • Similar Content

    • By 999PING
      I'm very often facing one small problem when trying to learn some new stuff - hard to choose what to learn next.
      Even if the problem seems to be small it has a very huge impact on the final result I think. And because Game Programming offers so much to learn, I'm always feeling that I'm missing something important and wasting my time learning something not important or unneeded. Or usually, I'm afraid to focus on something specific and huge for a long time, because I think that I'll spend all my time on that particular filed and will not be able to solve another problem.
       
      So I've tried to fit all my thoughts in this questions.
      1) Are you trying to cover all the aspects of Game Programming? Or you trying to focus on some specific aspects like physics, animations, or networking etc.
      2) What is your way to find a new theory or whatever else for your learning process? (Manuals, Courses, Books, Documentation? etc.)
      3) When you trying to learn while practicing, are you search for learning because of a problem that appears, or because you wants to try new things? How do you choose this new thing? And finally, Which of this two approaches was the best for you if any?
       
      Not actually in the scope of the topic, but I'm also very interested to hear your thoughts on this.
      What is Game Programming for you? How would you describe what should Game Programmer able to solve?
    • By supermikhail
      You click on objects in the world and get their name and how it's pronounced, in Russian which is my native language.
      That's pretty much it. Basically I want to be 100% sure that I can accomplish the project. The problem is, as a player, would I want to buy it? I myself am poor and consequently very selective with my entertainment spending. Which means, it'd be too lean an offering for me.
      On the other hand, I more or less believe that there are... enough "suckers" out there who'd pick up anything with "language learning" in description... To put it plainly.
      I guess that's the short of it. I don't know if that last intuition of mine is correct. And if it is, I don't actually want to scam people. But I don't want to promise something that I don't know that I'll be able to deliver, like... voice recognition or anything as useful and preposterous. Or even a story. I've never written for games. I've never designed a puzzle. All of which would probably add all the value necessary, but more likely just show me my limits.
      I suppose you could say "make a prototype". And I know I won't enjoy playing it, simply because, well, Russian is my native language and I like challenge. But I'd enjoy making it, and I like the idea of using videogames for studying languages.
      Any thoughts to help my conscience, more or less?
    • By Septopus
      Okay, looking for some constructive feedback/criticism here... 
      What follows is the code of my c# UDP Socket Class.  I've written this based on a number of online examples and a few distant memories from the past, so I really have no idea how "bad" the code is/could be in a 100+ concurrent connection scenario(my dev environment is just two machines at the moment)...  It works, I know that, it is fairly stable(I can't break it when using it normally), and it behaves how I believe I want it to. 
      It is a dual purpose class for handling both Servers and Clients.  It uses an asynchronous receive and synchronous send(I may switch to async send if it proves beneficial later on).  My servers use Client sockets to communicate with each other and to perform internal connection tests in a multiple server, "single shard" type environment.  I'll be devising some heavy load testing methods a little further down the line, but I'm hoping to fish out most of the major gotchas before I get there.
      So, please, let me know how to fix it up if it smells terribly to you, or if not, that's even better...
      Sorry for the large code dump, but THANKS for checking it out!
      using System; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.Text; using UWAvatarServerData; namespace UWAvatarServer { public class UDPSocket : IDisposable { //Some simple string length counters and averages to get a rough idea of generated traffic. public int sndMax = 0; public MovingAverage sndAvg = new MovingAverage(); public int csndMax = 0; public MovingAverage csndAvg = new MovingAverage(); public int rcvMax = 0; public MovingAverage rcvAvg = new MovingAverage(); //Constant for configuring the prevention of ICMP connection resets private const int SIO_UDP_CONNRESET = -1744830452; //UDP socket private Socket _socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //Buffer Size Constant private const int bufSize = 8 * 1024; //Raw string data from client packets private Dictionary<EndPoint, Queue<string>> messageDictionary; //Queue for holding raw string data from server packets when in client mode. private Queue<string> cQ; //Referece to the data store used by the server(for access to the current game time clock) private UWDataStore dataStore; //Time code storage for last sent/received messages private double lastSentMessage = 0; private double lastReceivedMessage = 0; //Boolean to determine which mode we're in so received messages get put in the right place. private bool clientMode = false; //Max string lenght allowed by the servers. private int maxMessageLength = 1450; //IDisposable stuff public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (disposing) { // free managed resources if (_socket != null) { _socket.Dispose(); _socket = null; } } } //State class for async receive. public class State { public byte[] buffer = new byte[bufSize]; public EndPoint epFrom = new IPEndPoint(IPAddress.Any, 0); } //Server "Mode" public UDPSocket(Dictionary<EndPoint, Queue<string>> msgsDict, UWDataStore DATASTORE) { clientMode = false; messageDictionary = msgsDict; dataStore = DATASTORE; lastSentMessage = dataStore.UWServerSeconds; } //Client "Mode" public UDPSocket(Queue<string> mq, UWDataStore DATASTORE) { clientMode = true; cQ = mq; dataStore = DATASTORE; lastSentMessage = dataStore.UWServerSeconds; } public void CloseSocket() { _socket.Close(); } //Internal connection status checking public int SendHowStale() { if (lastSentMessage == 0) lastSentMessage = dataStore.UWServerSeconds; return (int)(dataStore.UWServerSeconds - lastSentMessage); } //Internal connection status checking public int ReceiveHowStale() { if (lastReceivedMessage == 0) lastReceivedMessage = dataStore.UWServerSeconds; return (int)(dataStore.UWServerSeconds - lastReceivedMessage); } //Start/Bind a Server. public void Server(string address, int port) { //In case restarting uncleanly, dunno if this actually does anything.. _socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.ReuseAddress, true); //Ensure all async packets contain endpoint info and etc. _socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.PacketInformation, true); //Ignore ICMP port unreachable exceptions. _socket.IOControl((IOControlCode)SIO_UDP_CONNRESET, new byte[] { 0, 0, 0, 0 }, null); //Bind to port. if (address == "all") { _socket.Bind(new IPEndPoint(IPAddress.Any, port)); } else { _socket.Bind(new IPEndPoint(IPAddress.Parse(address), port)); } //Start receive callback process. Receive(); } //Setup a Client to Server socket. public void Client(string address, int port) { //Dunno if these two options do anything for client sockets, but they don't seem to break anything. _socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.PacketInformation, true); _socket.IOControl((IOControlCode)SIO_UDP_CONNRESET, new byte[] { 0, 0, 0, 0 }, null); _socket.Connect(IPAddress.Parse(address), port); //Start receive callback. Receive(); } //ServerSend sends to any EndPoint from THIS server. public void ServerSend(string text, EndPoint ep) { try { byte[] data = Encoding.ASCII.GetBytes(text); _socket.SendTo(data, ep); lastSentMessage = dataStore.UWServerSeconds; if (text.Length > sndMax) sndMax = text.Length; sndAvg.ComputeAverage((float)text.Length); //Console.WriteLine("TO NET: " + text); } catch (Exception ex) { Console.WriteLine("ServerSend Exception: " + ex.Message); } } //Client Send only sends to the connected Server. public void cSend(string text) { try { byte[] data = Encoding.ASCII.GetBytes(text); _socket.Send(data); lastSentMessage = dataStore.UWServerSeconds; if (text.Length > sndMax) sndMax = text.Length; sndAvg.ComputeAverage((float)text.Length); //Console.WriteLine("TO NET: " + text); } catch (Exception ex) { Console.WriteLine("cSend Exception: " + ex.Message); } } //Setup Async Callback private void Receive() { try { State so = new State(); _socket.BeginReceiveFrom(so.buffer, 0, bufSize, SocketFlags.None, ref so.epFrom, new AsyncCallback(_Receive), so); } catch (Exception) { } } //Receive Callback private void _Receive(IAsyncResult ar) { try { State so = (State)ar.AsyncState; int bytes = _socket.EndReceiveFrom(ar, ref so.epFrom); lastReceivedMessage = dataStore.UWServerSeconds; string smessage = Encoding.ASCII.GetString(so.buffer, 0, bytes); //Console.WriteLine("FROM NET: " + text); if (smessage.Length < maxMessageLength) { if (smessage.Length > rcvMax) rcvMax = smessage.Length; rcvAvg.ComputeAverage((float)smessage.Length); if (clientMode) { cQ.Enqueue(smessage); } else { if (!messageDictionary.ContainsKey(so.epFrom)) { messageDictionary.Add(so.epFrom, new Queue<string> { }); } messageDictionary[so.epFrom].Enqueue(smessage); } } _socket.BeginReceiveFrom(so.buffer, 0, bufSize, SocketFlags.None, ref so.epFrom, new AsyncCallback(_Receive), so); } catch (Exception) { } } } } Generally speaking I use it as such:
      public static bool running = true; static void UDPServer() { using (s = new UDPSocket(MessageDictionary, UWDataStore)) { s.Server("all", 37373); while(running) { //Servery Stuff Goes Here. //Like reiteratively dequeuing the Message Dictionary Queues and processing/replying to all commands/etc... } } } All processing of individual messages from clients is handled with Task.Factory tasks, and a reference to the server's socket varible (s), and the client's EndPoint is sent along the ride for use in replying to clients.  There's no game logic and there are no client replies that happen directly from within the UDP server's main while loop, mostly just connection status checking and reorganizing of the Message Queues into Tasks.
      Thanks again for making it this far.
    • By hafo
      Hi,
      I would like to invite you to submit your games to the IX F&S Play Indie Awards. The deadline is October 31th. It´s free to submit your games.
      F&S Play has established 1 award of 7,000 euros for the best Indie Game Category. The 10 finalists will also receive a free Booth for showing their games in the F&S Indie Zone.
      Check out the rules here: 
      F&S Play is the new name for the previously called AzPlay (Bilbao, Spain). It has become consolidated as one international reference for the promotion of new projects, awarding prizes every year to the most original, creative and innovative independent videogames of the moment. Over 1.100 projects from the 5 continents have been received during these 8 years and over 250,000 euros in prize money distributed. The integration of AzPlay in a festival as renowned as the Fun&Serious reinforces both events and consolidates the Fun&Serious in the international scene.
      More info about past Fun&Serious editions here:
      http://www.funandseriousgamefestival.com/
      More info about past AzPlay editions here:
      http://www.azplaybilbao.com/en/ediciones-anteriores/
    • By JoAndRoPo
      Hi!
      I have a doubt regarding the Daily Bonus.
      Let's say 7 days. Player receives Daily Bonus in Day#1, Day#2, Misses Day#3, Plays on Day#4, and so on. What happens when the player misses a day? Does the Daily Bonus reset back to day#1? or does the player miss the reward of the missed date and continue to receive the reward on the next day? Can you name me some games that have used a unique daily bonus logic?
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!