Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 12 Mar 2005
Offline Last Active Today, 03:54 PM

#5302761 Unity Or Ue4 To Use As A Show Reel For My Portfolio

Posted by frob on Today, 10:10 AM

I kinda thought I'd be more elated that i passed my degree but maybe I'm just being cynical and that's why i want to make sure i get the role I truly are passionate about straight away.... 


Passions change over life.


For reading material, I strongly suggest the book "What Color Is Your Parachute?" which has been updated every year for many decades.  Pick up any recent edition, you can find them in a library or used book store if you'd rather not buy them.


Somewhere in the book (it varies by edition) is an exercise called the "Flower Diagram".  It is meant to be an introspective exercise where you evaluate your most passionate skills, your most passionate work environments, your most passionate people-groups, and other areas of life where you have passion. Doing the exercise well typically reveals that a person has unexpected areas of passion, sometimes broader than expected, sometimes pointing in a different area than expected. 


I personally like to do the flower diagram about every five years, and compare it to what I had in the past. I discover my passions drift. While some have remained constant, such as my love of software, love of creative fields, others have drifted between different groups, different responsibilities, different geographies.


Consider working through it and learning more about your own passions.

#5302758 Why Does Xcode Give My Application A Command Line Argument?

Posted by frob on Today, 09:16 AM

my question is why does it have that command line argument? And what is it used for?

It comes from standards that have been around since the 1970s.  Over history, many programs have used this for various reasons.
One reason is to change behavior based on the name of the program.  Note that decades ago storage space was extremely expensive. Many utilities were written with shared behavior, and instead of having unique programs with unique executables, a single executable with multiple symbolic links were used.  If the program were started with one name it would behave one way. If the program were started with another name it would be have another way.
Another reason is that it can provide additional information like the path to the program. These days there are environment variables that can also be provided to programs, or to use the concept of a program's working directory, but these did not exist originally. By passing the path to the program developers could use that to know where to look for related files, such as other executable programs.

What would happen if the argument would be empty? :P Nothing at all? The application wouldn't launch?

There can be zero or more arguments to programs. In C-based languages they are passed as arguments to main, traditionally called argc (argument count) and argv (argument variables).
Copying from one version of the standard:
— If the value of argc is greater than zero, the string pointed to by argv[0] represents the program name; argv[0][0] shall be the null character if the program name is not available from the host environment. If the value of argc is greater than one, the strings pointed to by argv[1] through argv[argc-1] represent the program parameters.
So yes, the count can be zero and argv[0] is undefined.  Otherwise the system is supposed to do all it can to provide the program name (whatever that means to the system) in argument argv[0].

#5302663 How To Go About Releasing A Game?

Posted by frob on Yesterday, 01:04 PM

Moving to the business area of the site.

In many ways the business side is more complex than the software development side.  Making a game means overcoming a bunch of technical challenges.  Once those challenges are overcome you have a product.


Businesses tend to ask many hard questions before starting the game.  Questions like:

* Who is the target customer?

* How many of those target customers are there?

* As part of multivariate business calculus, how many customers will likely purchase the product with various amounts of advertising?

* As part of multivariate business calculus, how many customers will likely purchase the product at various prices?

* As part of multivariate business calculus, how many customers will likely purchase the product with various feature sets?

You're saying you are choosing to create the product regardless of the market for the product.  Business-wise that is a poor decision.  If you are building it for your own educational purposes then that's fine.


Should I do an alpha release? Should I start a business? Greenlight it on steam? Advertise?


Those are business decisions you need to decide for yourself. I recommend you don't invest more than you are likely to recover. 

#5302638 Unity Or Ue4 To Use As A Show Reel For My Portfolio

Posted by frob on Yesterday, 09:30 AM

It look me until my second year at Uni before i realized I wanted to take a different direction now i have to spend the rest of my working life in an area I like but I'm not passionate about".  


Perhaps you will make another realization:  people change careers several times during their life.


Most professionals change careers 5-7 times during their lifetimes.  I don't mean change jobs, which these days takes place about every 3-5 years, but a change in occupation, industry, or both. There is no exact number because there is no exact definition: transitioning from surgeon to standup comedian is clearly a career change; transitioning from programmer to manager of programmers is considered a career change by many people but not by others. 

It is fairly rare for someone to pick a career path during their school years and stick with that same career path through retirement.  I've known a small number of people who remained in exactly one from school to graduation, such as an accountant who remained an accountant to retirement, or a programmer who remained a programmer to retirement, but they are the exception.  The vast majority of people I've worked with who are over the age of about 40 have changed career at least once.

#5302247 My First Videogame Failed Conquering The Market

Posted by frob on 23 July 2016 - 06:36 PM

I'm not an artist, btw. An artist will be able to tell you in more detail what's wrong, I can only say I dislike it, and guess at what combination of things lead to me disliking it. I'm sure in motion it'd probably be alot better, but I'm not seeing a moving image, I'm seeing a static image, and the static image is what is trying to sell me the game. Even video trailers probably won't get watched unless the static images first appeal.


There is no clear focus.


Generally unimportant things get boring unsaturated neutral colors. There are a lot of dim browns, muddy reds, dim greens so you don't bother to look at stuff that doesn't matter. Stuff that is important is usually hit with saturated or bright colors and use a lot of contrast.  It is something most artists are so practiced at they do it without thought.


Generally level design pulls players toward key items with light and color and patterns. I haven't looked at the game, those might be there but are missing from the picture.


When I look at the image in the post above the first thing that jumps out at at me are the bright green/white leaves, then the bright white and red smoke trails, then the big white and gray walls.  I don't particularly notice the health bars over players.  It took several seconds of studying the image before noticing there was a big green circle (i) which I assume is for information

For some comparison, the Super Mario Bros series has always done this particularly well.  Primary colors for players, bright yellow for blocks you hit and coins, bold colors for enemies like turtles with bright red shells, blue shells, yellow shells, or high-saturated brown goombas along with their high contrast black-and-white eyes. Backgrounds are distant hills or castles or whatever and are typically muted pastels.


Or a few other images that demonstrate clearly showing the player what they should be looking at.  Most have bright lines around players either coming straight through them, or ringing them around the ground, or bright yellow or bright red warnings, etc. Stuff that doesn't matter is dark or muted:








#5302176 My First Videogame Failed Conquering The Market

Posted by frob on 23 July 2016 - 09:50 AM

I am writing this thread to ask you some feedback , why such a cruel failure? Even on mobile and even among Bitcoin enthusiasts.



These used to be heavily featured on our site, but they didn't survive the transition a few years back.  Even though the name "shareware" doesn't really apply, everything else does: Read This Thoughtfully


At a glance it is not pretty, nothing on the Google Play encourages it, you don't have effective marketing, you don't have a beautiful storefront.


Simply, I have not even bothered to play your game, and the tiny amount of your game I have seen does not make me want to play. That is one of many factors that need to get fixed.


Ugly can be fine, because ugly can still be pleasing in other ways.  Comically ugly can succeed.  


Take a serious look at your page:




The hand-scrawled font and ugly graphics, the heavily aliased blobs in the image (they don't show up well in the thumbnail version of your site, zoom in on that image), the mismatch between art styles between the world objects and game objects.  And on top of that all, you're asking "give me money for this!"


That image of a bug with that particular expression, you're using that as your headline. That is where people put their best work. The very best of your game is captured by that image of a bug with a stupid look on his face, those particular graphics, the skewed bubble letters that look they were thrown on by a ten-year-old who just discovered how to make word art. 


I've worked on teams that had child-like graphics, and watched as artists struggled for months building icon sets that looked childlike but not childish. It takes an enormous amount of effort to build that out as an art style. As a memorable quote:  "It took me four years to paint like Raphael, but a lifetime to paint like a child." - Pablo Picasso


Those are the first things I would fix.  Get your art styles consistent, capture the funnest part of gameplay as your key images, and make marketing materials so they don't look like a fifth grader's art project.


Go over all your materials, everything in your game, and everything you are using to market your game.  Look at it on a big screen, take a good look at every detail and ask, "Is this my best work?  Would I buy this?" Repeat until you've covered the whole thing.  Then go get a bunch of people who you think are your target market and ask them the same questions, do it as focus groups, and fix everything they point out.  Repeat over and over, with bigger focus groups, re-releasing your product until you eventually get it right.

#5302164 Generate Unique Ids

Posted by frob on 23 July 2016 - 08:51 AM

You added a new requirement, that duplicate strings get merged.



There are systems where all the strings get placed into a common pool and duplicate strings are combined and all are treated as read-only.  That process is called "string interning", and there is plenty of stuff you can read online about it.

#5302072 Perspectives On Mod Makers?

Posted by frob on 22 July 2016 - 09:36 PM

I'm asking if moders for a company's games are seen as useful to say, a totally different company.
For ex.I mod an EA product, and well EA isn't exactly the grateful types....

I'm not sure where your opinion comes from. EA generally likes those who mod their games even when they aren't officially sanctioned. But for various legal reasons they don't (as a company) publicly affirm those mods so that they can potentially shut them down and protect their brands. They've got a corporate philosophy of protectionism but that does not mean the teams don't appreciate skill or quality work. This is true of many organizations with fan-created products. As long as you do good work and follow good community rules including staying small, generally it is positive, and everybody is happy.

If you have experience writing mods for a game it looks good on a resume.

If you have experience writing mods for something and you are applying at a totally different company that also makes mods for the game, they'll see that as a bonus.

If you have experience writing mods for something and you are applying for a job at that same company or even that same team for the game you've made mods for, they will almost certainly see that as a bonus, unless the mods were exploits or hacks that deprived them of revenue or harmed the project.

#5302038 Pathfinding - How To Move Player Along Path

Posted by frob on 22 July 2016 - 04:13 PM

This is a discussion site, not a Q&A site. Please don't modify titles to "solved".  

Thank you for stating what you did to fix it, but we don't mark threads that way since people might have more discussion about the problem or the solution.

#5302020 Generate Unique Ids

Posted by frob on 22 July 2016 - 02:08 PM

The pigeon hole principle applies for this type of thing.


Generally people either go with a very large value and take steps to ensure it is probably going to be unique, such as a GUID, or they use an external system that tracks and ensures each ID is unique.


For text strings there are possibly other ways to handle it.


 Notes on each:


A 'probably unique' value can mean many things.  A GUID can be 'probably unique' at generation and several GUID generators encode information like the current time in milliseconds, a counter unique to that machine's generator, and a hardware ID value, which will reduce the likelyhood of the numbers ever colliding.  Other times it can mean a hash function like running SHA over a string, which will probably not generate a collision but with enough values it eventually will.


I've worked on several games with an external registration system for object IDs.  When a new type of game object is created there is a script or tool that registers the use with a database and increases the count, or a file somewhere that has the last used number, or similar.  If it needs to be unique but only for the duration of the program, a direct data dictionary (such as a map) works well enough.





Text strings for display are a slightly different beast and they are often handled differently.


For text strings it is often necessary to localize the messages.  The best way I've seen to work with that is a direct data mapping and a localization database.  The key is literally the string.  The programmer might end up using a key "trapped_door_open_message" and it is the programmer's responsibility to ensure the key is entered in the localization database and flagged for translation. When a message is not translated but goes through the localization system anyway it results in a value like: "Untranslated string key: trapped_door_open_message".  


Better localization systems allow for providing both the count and gender of nouns for the subject and object of the statement, and also allow for numbered replacement so translators can swap those out, rather than c-style replacement in a first-come first-used basis.  The translators can then do many different options: "You have {1} of {2}, only {3} remain." or "Only {3} left, you have {1} of {2}." or even "{1} of {2} complete.", or "{3} items remaining.", etc.


Another better thing for strings is to have a special type for localized strings.  You can feed std::string objects into the localization system, and what comes out is a LocalizedString object. Functions like concatenation do not work on LocalizedString objects because they've already been processed for display, they become unchangeable values as far as the programmer is concerned.

#5301988 Portfolio Question.

Posted by frob on 22 July 2016 - 11:06 AM

And what do the employers want me to have as portfolio if I am aiming for console development? Having mobile games on the portfolio is ok? How well is a game made with an engine (unity, unreal, etc) perceived? Is it required?


I want to see that you have experience making games.  If I am searching for a specific technology I want to see that specific technology.


Every company has different needs, and every applicant has different skill sets. 


Example 1) I may be looking for a programmer to work on our public-facing web site, forums, and whatever else. First and foremost I want somebody comfortable working with CMS systems.  Secondarily I may be looking for someone who uses our specific system, maybe that is WordPress, or Drupal, or whatever.  If I don't see that person, I want someone who is good at PHP because that is the language those systems use.  I may decide that if an applicant doesn't even meet that bar we won't consider them.


Example 2) I may be looking for a gameplay programmer.  First and foremost I want someone who is comfortable building gameplay systems.  Secondarily I may be looking for someone who knows a lot about using {engine}'s physics system. If I don't see either of those, I'll take someone who looks like a competent programmer in C++ and C#.


Example 3) If the employer is building a console game that leverages Unreal, and they're looking for someone particularly experienced with Unreal's content pipeline, and your skill set it that you are a general C++ programmer who has touched a few systems on Unreal, then you are a moderately strong candidate for that company.  Not as strong as someone who has spent three years on Unreal's content pipeline, but better than someone who has been developing web games in JavaScript with Angular. So a moderately good chance of getting that job at that company.


Example 4) That exact same skill set of C++ programmer with Unreal experience is of no value to someone building web games using JavaScript games in Angular. Even though they could have all the skills wanted at some companies, there is almost zero chance of getting that job at that company because the skill sets don't match.


Got it?  


Showcase what you know and what you have done.  Some jobs may have a bad fit, other jobs may have a good fit.  Both employer and worker will keep trying to find each other until  getting the needs and skills to match.

#5301976 Is It Really That Nonsensically Impossible To Have A Successful First Game Pr...

Posted by frob on 22 July 2016 - 10:10 AM

Ok, now I'm very insecure about all this.


I talked with my team and they agreed to release the game only with the minimum content enough for the game to be fun, and then we release updates (or free/cheap DLCs) that adds all the other features we planned.


Another, and maybe better, solution is to release an early access demo. That way we can have an idea of how would the reception be, and if positive, we release it with all the features.


Releasing an "early access demo" *is* a release.  


Most successful new projects do not have a single launch.  They have a small launch and attempt to get a few people, and if they don't make it big they fix what didn't work and launch again.  Then find more things that didn't work, change them, and launch again.  And again, and again, and again.  Until they've removed all the big dealbreakers and people start buying.


For games that cannot have multiple launches (such as physical discs and cartridges), they start with experienced teams who know how to leverage what they've already got. The experienced teams will launch for internal groups until the biggest issues are resolved, then launch for focus groups over and over until the focus groups are happy, bring in external playtesters, get external reviews, and do as many mini-launches and tests as they possibly can, and also rely on their existing infrastructure to remove barriers and get people to start buying.

#5301674 Trusting The Client

Posted by frob on 20 July 2016 - 10:20 PM

Your refresh rates are up to you, your target environment, and your game designs.

You've got 20 updates per second.  If there are only two people in the game, that seems excessive as the one other player is probably not generating that many events per second.


Most action games use events for their communication streams.  It looks something like:


player faced direction at time

player started running at time

player faced direction at time

player faced direction at time

player stopped running at time

player faced direction at time

player fired shot at time


The server is sending back similar packets to the individual clients. Occasionally the server will send out authoritative blobs listing the actual positions or orientations for items, or the game will request the server's position details, but even that is generally kept on an as-needed basis.


There might be one or two events per second per player. Someone actively looking around might generate a few more as rapid updates, but even for that 20 updates seems a bit much in typical play.


In your situation where many more objects are being sent for updates, it might be necessary.  As you mentioned in the original post, this does open you up for more cheating potential, but because that was your design choice you get to live with it.

#5301666 Trusting The Client

Posted by frob on 20 July 2016 - 09:15 PM

for the general small indie game dev, it should be fine?


This is an "it depends" answer. 


Most small games will never take off.  Those that get a small success are unlikely to ever be attacked or hacked.


However, in the extremely unlikely event the game starts to be popular then people will attack the protocol and find ways to abuse them. A few bad actors could ruin the popularity in an instant by finding the exploit.


Deciding if it is worth it to spend the effort to remove the exploit for an unlikely situation is up to you.

#5301452 Is It Really That Nonsensically Impossible To Have A Successful First Game Pr...

Posted by frob on 19 July 2016 - 09:26 PM

I swear I clicked the upvote button and the page scrolled at the same moment, giving a downvote. :-( Upvote to hodgman since the system can't undo.

As above, the odds of a person's first project being a runaway success are so miniscule as to be practically non-existent. While a beginner is learning to write "Hello, World!", commercial successes demand iteration after iteration at removing barriers and improving systems, it is like winning the lottery twice.

There are a small number of cases I can recall (a single-digit number of them) where an individual who was experienced in programming put together something while learning a new system and that something grew into a successful product. That single-digit number across decades contrasts with markets where there are a thousand new entries every day.

And for every one of those thousands of new entries every day, there is an untold number of probably thousands more who started and never completed a project.

Even if you are dedicated, professional, and run everything as a perfect business a commercial failure is still quite probable.