• Advertisement
  • Popular Tags

  • Popular Now

  • Advertisement
  • Similar Content

    • By Alex Daughters
       

      Hi, I am currently a college student studying to become a Game Developer. I need to interview current game developers for a class I'm taking. if anyone seeing this could answer just the 5 questions that I have provided below as well as your name, current position, and how many years you've been in the game industry. I'd really appreciate any responses. 
       
      Name:
      Position:
      Year in the industry:
       
      What was the starting salary?
      How many hours do you work?
      What did you learn outside of school that was useful?
      How did you get your job and how hard was it to find it?
      how was this job different than you expected it to be?
       
      Thank you for your time.
      -Alex Daughters
    • By RyRyB
      I got into a conversation awhile ago with some fellow game artists and the prospect of signing bonuses got brought up. Out of the group, I was the only one who had negotiated any sort of sign on bonus or payment above and beyond base compensation. My goal with this article and possibly others is to inform and motivate other artists to work on this aspect of their “portfolio” and start treating their career as a business. 
      What is a Sign-On Bonus?
      Quite simply, a sign-on bonus is a sum of money offered to a prospective candidate in order to get them to join. It is quite common in other industries but rarely seen in the games unless it is at the executive level. Unfortunately, conversations centered around artist employment usually stops at base compensation, quite literally leaving money on the table.
      Why Ask for a Sign-On Bonus?
      There are many reasons to ask for a sign-on bonus. In my experience, it has been to compensate for some delta between how much I need vs. how much the company is offering.
      For example, a company has offered a candidate a position paying $50k/year. However, research indicates that the candidate requires $60k/year in order to keep in line with their personal financial requirements and long-term goals. Instead of turning down the offer wholesale, they may ask for a $10k sign on bonus with actionable terms to partially bridge the gap.
      Whatever the reason may be, the ask needs to be reasonable. Would you like a $100k sign-on bonus? Of course! Should you ask for it? Probably not. A sign-on bonus is a tool to reduce risk, not a tool to help you buy a shiny new sports car.
      Aspects to Consider
      Before one goes and asks for a huge sum of money, there are some aspects of sign-on bonus negotiations the candidate needs to keep in mind.
      - The more experience you have, the more leverage you have to negotiate
      - You must have confidence in your role as an employee.
      - You must have done your research. This includes knowing your personal financial goals and how the prospective offer changes, influences or diminishes those goals.
      To the first point, the more experience one has, the better. If the candidate is a junior employee (roughly defined as less than 3 years of industry experience) or looking for their first job in the industry, it is highly unlikely that a company will entertain a conversation about sign-on bonuses. Getting into the industry is highly competitive and there is likely very little motivation for a company to pay a sign-on bonus for one candidate when there a dozens (or hundreds in some cases) of other candidates that will jump at the first offer.
      Additionally, the candidate must have confidence in succeeding at the desired role in the company. They have to know that they can handle the day to day responsibilities as well as any extra demands that may come up during production. The company needs to be convinced of their ability to be a team player and, as a result, is willing to put a little extra money down to hire them. In other words, the candidate needs to reduce the company’s risk in hiring them enough that an extra payment or two is negligible.
      And finally, they must know where they sit financially and where they want to be in the short-, mid-, and long-term. Having this information at hand is essential to the negotiation process.
      The Role Risk Plays in Employment
      The interviewing process is a tricky one for all parties involved and it revolves around the idea of risk. Is this candidate low-risk or high-risk? The risk level depends on a number of factors: portfolio quality, experience, soft skills, etc. Were you late for the interview? Your risk to the company just went up. Did you bring additional portfolio materials that were not online? Your risk just went down and you became more hireable.
      If a candidate has an offer in hand, then the company sees enough potential to get a return on their investment with as little risk as possible. At this point, the company is confident in their ability as an employee (ie. low risk) and they are willing to give them money in return for that ability.
      Asking for the Sign-On Bonus
      So what now? The candidate has gone through the interview process, the company has offered them a position and base compensation. Unfortunately, the offer falls below expectations. Here is where the knowledge and research of the position and personal financial goals comes in. The candidate has to know what their thresholds and limits are. If they ask for $60k/year and the company is offering $50k, how do you ask for the bonus? Once again, it comes down to risk.
      Here is the point to remember: risk is not one-sided. The candidate takes on risk by changing companies as well. The candidate has to leverage the sign-on bonus as a way to reduce risk for both parties.
      Here is the important part:
      A sign-on bonus reduces the company’s risk because they are not commiting to an increased salary and bonus payouts can be staggered and have terms attached to them. The sign-on bonus reduces the candidate’s risk because it bridges the gap between the offered compensation and their personal financial requirements.
      If the sign-on bonus is reasonable and the company has the finances (explained further down below), it is a win-win for both parties and hopefully the beginning a profitable business relationship.
      A Bit about Finances
      First off, I am not a business accountant nor have I managed finances for a business. I am sure that it is much more complicated than my example below and there are a lot of considerations to take into account. In my experience, however, I do know that base compensation (ie. salary) will generally fall into a different line item category on the financial books than a bonus payout. When companies determine how many open spots they have, it is usually done by department with inter-departmental salary caps.
      For a simplified example, an environment department’s total salary cap is $500k/year. They have 9 artists being paid $50k/year, leaving $50k/year remaining for the 10th member of the team. Remember the example I gave earlier asking for $60k/year? The company cannot offer that salary because it breaks the departmental cap. However, since bonuses typically do not affect departmental caps, the company can pull from a different pool of money without increasing their risk by committing to a higher salary.
      Sweetening the Deal
      Coming right out of the gate and asking for an upfront payment might be too aggressive of a play (ie. high risk for the company). One way around this is to attach terms to the bonus. What does this mean? Take the situation above. A candidate has an offer for $50k/year but would like a bit more. If through the course of discussing compensation they get the sense that $10k is too high, they can offer to break up the payments based on terms. For example, a counterpoint to the initial base compensation offer could look like this:
      - $50k/year salary
      - $5k bonus payout #1 after 30 days of successful employment
      - $5k bonus payout #2 after 365 days (or any length of time) of successful employment
      In this example, the candidate is guaranteed $55k/year salary for 2 years. If they factor in a standard 3% cost of living raise, the first 3 years of employment looks like this:
      - Year 0-1 = $55,000 ($50,000 + $5,000 payout #1)
      - Year 1-2 = $56,500 (($50,000 x 1.03%) + $5,000 payout #2)
      - Year 2-3 = $53,045 ($51,500 x 1.03%)
      Now it might not be the $60k/year they had in mind but it is a great compromise to keep both parties comfortable.
      If the Company Says Yes
      Great news! The company said yes! What now? Personally, I always request at least a full 24 hours to crunch the final numbers. In the past, I’ve requested up to a week for full consideration. Even if you know you will say yes, doing due diligence with your finances one last time is always a good practice. Plug the numbers into a spreadsheet, look at your bills and expenses again, and review the whole offer (base compensation, bonus, time off/sick leave, medical/dental/vision, etc.). Discuss the offer with your significant other as well. You will see the offer in a different light when you wake up, so make sure you are not rushing into a situation you will regret.
      If the Company Say No
      If the company says no, then you have a difficult decision to make. Request time to review the offer and crunch the numbers. If it is a lateral move (same position, different company) then you have to ask if the switch is worth it. Only due diligence will offer that insight and you have to give yourself enough time to let those insights arrive. You might find yourself accepting the new position due to other non-financial reasons (which could be a whole separate article!).
      Conclusion/Final Thoughts 
      When it comes to negotiating during the interview process, it is very easy to take what you can get and run. You might fear that in asking for more, you will be disqualifying yourself from the position. Keep in mind that the offer has already been extended to you and a company will not rescind their offer simply because you came back with a counterpoint. Negotiations are expected at this stage and by putting forth a creative compromise, your first impression is that of someone who conducts themselves in a professional manner.
      Also keep in mind that negotiations do not always go well. There are countless factors that influence whether or not someone gets a sign-on bonus. Sometimes it all comes down to being there at the right time at the right place. Just make sure you do your due diligence and be ready when the opportunity presents itself.
      Hope this helps!
    • By menyo
      I have a MongoDB db on a server operated by Kryonet. Obviously I need to be able to query the database from the client for adding, removing, requesting all kind of assets. Now I have written the code to request, add and remove fighters on the Kryonet network I am wondering if there is a better way to do this. I feel it's a bit repetitive, especially when I need to implement this for all other assets the player can own and other players assets when needed. The way I am currently approaching this is the same as my chat/lobby system which works great but I was wondering if anyone could see improvement on my code or a complete different way that is much more scalable perhaps.
       
      public class ClientAssets { public static final int FIGHTER_REQUEST = 1; public static final int FIGHTER_RESPONSE = 2; public static final int FIGHTER_ADD = 3; public static final int FIGHTER_REMOVE = 4; public static void Register(EndPoint endPoint) { Kryo kryo = endPoint.getKryo(); kryo.register(FighterRequest.class); kryo.register(FighterResponse.class); kryo.register(FighterAdd.class); kryo.register(FighterRemove.class); } static public abstract class AssetPacket { public int packetId; public AssetPacket() { } } /** * Packet to request all owned fighters */ public static class FighterRequest extends AssetPacket { public ObjectId playerId; public FighterRequest(ObjectId playerId) { packetId = FIGHTER_REQUEST; this.playerId = playerId; } public FighterRequest() { } } /** * Receiving fighter data from server */ public static class FighterResponse extends AssetPacket { public Fighter fighter; public boolean add; // Add or remove public FighterResponse(Fighter fighter, boolean add) { packetId = FIGHTER_RESPONSE; this.fighter = fighter; this.add = add; } public FighterResponse() { } } /** * Adds a fighter to player assets */ public static class FighterAdd extends AssetPacket { public ObjectId fighterTemplateID; public FighterAdd(ObjectId fighterTemplateID) { packetId = FIGHTER_ADD; this.fighterTemplateID = fighterTemplateID; } public FighterAdd() { } } /** * Removes fighter from assets. */ public static class FighterRemove extends AssetPacket { public ObjectId fighterId; public FighterRemove(ObjectId fighterId) { packetId = FIGHTER_REMOVE; this.fighterId = fighterId; } public FighterRemove() { } } } To elaborate a bit more, this code will communicate between client and server. When receiving a request on the server it will lookup the request in the database. The client will store it for displaying the assets. A specific thing I am unsure about is the FighterResponse.add boolean. I need to be able to remove and add fighters, I guess I am better off with a FighterAddResponse and a FighterRemove response so I will send one boolean less each time this packet is send. But this will create even more repetitive code.
    • By x3ph3r
      A sticky dilemma.
      I'm part of a team based in USA that produces a virtual world software for remote business purposes. The businesses that use us are our Clients with users from all over the world (and expanding), but primarily in the USA. Our software makes use of customizable human avatars to use in world for each user. We have gotten requests from one of our biggest paying Clients and approval from boss to include religion based avatar clothing options (yamulkes, headscarves, skullcaps and turban head coverings currently, potentially garments too).
      As our software is used for business, most people want to keep their real world likeness, which may include some of this clothing because it is a part of their identity. Since this is such a sensitive topic on all sides involved and we are in a politically charged climate in the USA, clearly we don't want to offend anyone because they all pay us. In my opinion, even if this request was deemed as a reason for loss on Client's part, it will still be our company providing the service that will be affected primarily. As an emerging company we can't afford to lose users or current/potential Clients over something unrelated to the core mechanics or hardware requirements of the game.

      How do we put it in the avatar creation menu? Keep it with the other head coverings (so not to upset/offend the religious wear users via segregation) or separate it (to protect from accidental abuse of said garments from ignorant users and offend everybody)? As difficult as it would be for us to do (right now), do we only allow access to certain users? Would that be going too far to request information such as this from users, or for them to have to volunteer it for access?

      How do we talk about it with the client? When the concern was brought up, they warned us to be careful about using the term "religious wear", so we switched to the more broad "cultural wear", in which they again implied even that term might offend in discussion (because Texas users (very many) would get mad about their cowboy hats not being treated as culturally significant...) and client tactfully avoided telling us what they want us to call it themselves. How do we have a productive conversation though they put out a controversial request and are not willing to speak confidently on it's behalf?
       
    • By Kai Keeper
      I finished my game and I'm trying to make a introduction video, I got some feedback from:
      So I created a new one here:
      If you have any suggestions please let me know, thank you. Also I'm thinking about creating another more in depth video that is about 6 minutes, it will explain the space connector mechanics more clearly, which I won't use as the introduction video but will direct people who are interested in the game to it. However, I'm wondering if I should do that or just let the players discover it for themselves in game.
  • Advertisement
  • Advertisement

Recommended Posts

Posted (edited)
The Nim's readme say "its a compiled, garbage-collected systems programming language which has an excellent productivity/performance ratio. Nim's design focuses on efficiency, expressiveness, elegance (in the order of priority)." Nim include features like a deterministic soft real-time GC that allows for its max pause time and supports manual memory management. Other features, compile to C (C++, Objective C, or JavaScript), strongly statically typed, powerful meta-programming, compile-time execution, easy to read (Python like syntax), and local type inference. It is multi-paradigm supporting,  imperative, minimal object-oriented (encouraging composition over inheritance), functional procedural styles. Some tools like a package manager (nimble), C2nim (C and C++ bindings), and Nimsuggest. Also these a game development framework and are two cons are the bus factor and not release yet.

Rust's website say " is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety." Features include, CFFI, immutability, robust meta-programming, RAII, modern type system, strongly statically typed, compiles to native code,  safe rust by default (you can unsafe too), immutability, fine grained control over memory, and modules. It is multi-paradigm supporting, concurrent, functional, imperative, structured, and generic procedural styles. Some tools like Cargo (a package manager), RLS (Rust Language Server), rustfmt (formating), clippy (lints), and rust-bindgen (Automatically generate C or C++ bindings). Coming features are generators/async/await, SIMD, custom allocators, and compiles to WASM. Also verysus resources and strong game dev community.

I took two intro programming courses well in school ( JavaScript & Python).  Both are memory safe and can do low-level programming and between Nim or Rust which one is more susceptible for game development?

Thank you for the advice. :)

 
Edited by loik_1

Share this post


Link to post
Share on other sites
Advertisement

Both are questionable choices for someone relatively new to game development simply because they aren't widely in use for gamedev, and there are many fewer gamedev resources available for either, than there are for C++, C#, or even Python and Javascript.

Specifically for Rust, I can tell you that the game development ecosystem is not terribly stable at this point in time. The language is still undergoing significant changes, and the various 3D rendering libraries are also undergoing rapid churn.

Share this post


Link to post
Share on other sites
Posted (edited)
19 hours ago, swiftcoder said:

Specifically for Rust, I can tell you that the game development ecosystem is not terribly stable at this point in time. The language is still undergoing significant changes, and the various 3D rendering libraries are also undergoing rapid churn.

As far as I can tell Rust the language is stable and rang 1.0 over 2.9 years and guarantees stability. (here to) Yes, the game dev is undergoing rapid churn but that is to be expected. Out of both Rust is the most documentation and resources. See here and here. It even two commercial games (here and here).

Quote

Both are questionable choices for someone relatively new to game development simply because they aren't widely in use for gamedev, and there are many fewer gamedev resources available for either, than there are for C++, C#, or even Python and Javascript.

I agree but I'm while to do it. :)

Nim (formerly Nimrod) is undergoing significant changes and the beginner documentation don't exist at all. The manual and documentation be are out of date but there are some resources. :(  Nim interoperability with C/C++ is very good. :)

Thank you for the comments. :)

Edited by loik_1

Share this post


Link to post
Share on other sites
6 minutes ago, loik_1 said:

As far as I can tell Rust the language is stable and rang 1.0 over 2.9 years and guarantees stability

That's a subtly different definition of stability than I had in mind. They are guaranteeing that existing code will continue to compile (mostly), but not that it will continue to be idiomatic or compatible with new ways of doing things.

As a specific example, the entire situation with respect to network I/O has churned in the past year (with the introduction of futures), and it's about to churn again when async/await lands.

The gamedev front is even less stable (again, in the churn sense). gfx-rs is somewhere in the middle of a ground-up rewrite to become a Vulkan abstraction layer. You can still use the pre-ll branch, but it's not under active development. glium is deprecated, although it's usable for simple stuff as is.

That basically leaves you with the option of writing directly on top of the raw C APIs for OpenGL/Metal/DX12/Vulkan... Which certainly works, but isn't really that helpful in learning how to do things the Rust Way™, and is generally anywhere from somewhat to lot more painful than using each API in it's more-native language (i.e. C++ or Swift).

26 minutes ago, loik_1 said:

It even two commercial games (here and here).

Note that the first one of those is an experienced gamedev team writing significant parts of their game in C++. if you fancy learning C++ and Rust in parallel, more power to you!

I don't have any aim to discourage you, by the way, as I find Rust quite interesting to develop in. But I do want to convey that it continues to be an uphill battle to produce game-like things in this environment (and that's with the benefit of a decade or so of C++, OpenGL, and god knows what else under my belt).

Share this post


Link to post
Share on other sites
Posted (edited)
5 hours ago, swiftcoder said:

Note that the first one of those is an experienced gamedev team writing significant parts of their game in C++. if you fancy learning C++ and Rust in parallel, more power to you!

God no! :) I do not won't too learning C++. ;) I thought Chucklefish is righting it all in Rust except the UI and some other stuffs?

Quote

I don't have any aim to discourage you, by the way, as I find Rust quite interesting to develop in. But I do want to convey that it continues to be an uphill battle to produce game-like things in this environment (and that's with the benefit of a decade or so of C++, OpenGL, and god knows what else under my belt).

You are not discourage. In Nightly Rust there is a feature called non-lexical lifetimes should help.;)

Quote

That's a subtly different definition of stability than I had in mind. They are guaranteeing that existing code will continue to compile (mostly), but not that it will continue to be idiomatic or compatible with new ways of doing things.

As a specific example, the entire situation with respect to network I/O has churned in the past year (with the introduction of futures), and it's about to churn again when async/await lands.

The gamedev front is even less stable (again, in the churn sense). gfx-rs is somewhere in the middle of a ground-up rewrite to become a Vulkan abstraction layer. You can still use the pre-ll branch, but it's not under active development. glium is deprecated, although it's usable for simple stuff as is.

That basically leaves you with the option of writing directly on top of the raw C APIs for OpenGL/Metal/DX12/Vulkan... Which certainly works, but isn't really that helpful in learning how to do things the Rust Way™, and is generally anywhere from somewhat to lot more painful than using each API in it's more-native language (i.e. C++ or Swift).

I see. Have you seed tomaka's vulkano, or arewegameyet.com, or awesome-rust?
 

 

Edited by loik_1

Share this post


Link to post
Share on other sites
1 hour ago, loik_1 said:
I see. Have you seen tomaka's vulkano, or arewegameyet.com, or awesome-rust?

I have. There are certainly a lot of fragmented pieces of game development software in rust.

Vulkano isn't useful to me personally as I need to target platforms without Vulkan support.

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


  • Advertisement