Idea Total noob who needs some pointers

A

AvatarAang

Guest
Hi all, I'm a business administration student and for our current module we need to make a game based on a company we analyzed earlier in the year. We can make a board game, or make a digital game, they gave us a couple of tools to do that (but no explanation on how to use them).
I came up with a pretty solid concept/game flow, remember, there isn't too much time so I'm thinking of creating a short demo version, just to introduce people to the game concept. It will be mostly peer-assessed.
The company we analyzed was a company called RecruitAStudent, an employment agency focused on young people, mostly students (what a surprise).
The concept I came up with can be simply described as, RecruitTycoon! You hold interviews with people and decide on which company to send them to, each person you interview reveals some information about himself through pre-programmed questions (and therefore answers), and then it's up to you to decide whether he or she is hireable candidate, and for which company that would be. Depending on your choice, you get a bonus for sending someone who is a great fit, or a penalty if they have to fire the person. With the money you earn you pay rent and buy upgrades, hire employees et cetera. I have a more thorough game flow for you below but first some questions, you may have to read the thorough concept before you can answer. I know this is a long post but I really need your help!

1 is it possible to make such a game in Gamemaker?
2 Where can I find some tutorials, making art and sprites won't be much of a problem, I'm going to keep it quite minimalistic, but menus and dialogue interface seems like a tricky thing
3 I have only a couple of weeks and can spare to work on it for 2 hours a day, will that be enough?

Here is the game-flow I am thinking of in more detail:

>start menu
continue
new game
load
options
quit

>Start of day animation shows date and weather, sun rising over office building
animation of entering office
Menu showing 3 things
emails special deals from companies companies you have a partnership with


>emails show cv letters and motivation letters from interviewees who are coming today

>special deals show a menu where, for example, company X wants Y amount of employees before (date), you get half of the money for each recruitment, but,
they don't need high-quality employees and you get a bonus that is much more lucrative then hiring 10 individuals

>company partners show the information of each company, want kind of qualities and experience they are looking for, and the rewards they hand out


>slowly, people start coming into your waiting room. Have them wait too long, they leave and you miss out, (upgrades can be bought to increase waiting time)
as they come in, you can click to answer the door, as you do this, a brief image shows up with their appearance, and a description of the first impression you get (things like if they have clean hands or are angry)
You can select questions to ask them, and they will answer, not necessarily truthfully, it's up to you to decide on the truth, and make a judgment of your impression,
you can also review their CV whilst you interview them
you can end the interview at any time, and decide if you wish to hire them, and to which company you send them (they might also have preferences for this)

Every action costs time, asking a question costs time, so ask the right questions and save time, or be sure you have a good match but it takes longer, meaning, you can recruit fewer students in a day
if you hire them, the paperwork (nothing you actually need to do) also takes some game time, upgrades like coffee or secretaries can lower this paperwork time.

>Once the time of the day is over the result screen shows up
it says
money earned from recruitment
costs like rent and employee wages

>you press okay and can decide to buy upgrades, hire more recruiters, or save your money for another time
Day ends and you go again

>Every 5th day, it is weekend and weekends are skipped
you move onto the next week
at the start of each week you get a bonus result at the start of the day, stating if the people you hired were good fits for the companies you send them to
good fits give you a bonus
bad fits give you a penalty
too many bad fits to 1 company and they withdraw their partnership


I hope this makes sense and that somebody can point me in the right direction, I have a tiny bit of experience with HTML programming, but nothing else.
If something is unclear or you see some kind of gap in the game design please do tell, every bit helps.
 

NightFrost

Member
Yes, sounds entirely doable with GMS2.

Since the interview is your game's core loop, you should start building that first. Ideally you'd have randomized students but as you're building a demo start with a number of pregenerated students instead. Especially as as randomly generated CV would be a major task by itself (unless you want to keep the content short and simple). The characters seem to require quite a bit of information, so you should plan your data and its structure carefully so it is easily available to your game at any point. The interview itself sounds like it could be constructed in several ways. The simple would be that for each question the character has a predefined answer and they'll give it every time asked (so each playthrough is essentially the same with that character). A much more involved would be a system where they choose from a range from answers according to their hidden quality ratings... But for the sake of keeping your project time manageable I would go with the simple interview system. And replayability, I gather, is not in your primary goals here.

As for the UI, if you're going for a button interface system, that's relatively easy to set up. Each button is just a hitbox for your mouse that polls for a mouseclick and executes some code when it is detected. Again, to manage your project time (which I think is pretty important here) instead of constructing any kind of UI management system just define each button as separate object and place it into the game room. The goal your school has given you is to build a working game or demo thereof, instead of a well-coded game with a goal to publish... so you can and should go as quick and dirty as manageable to reach the goal: something that works.

(You say you have no prior experience, so your allotted time probably isn't enough to learn basics of coding, good coding practises, good code design principles and producing something that works all at once.)
 

Yal

🐧 *penguin noises*
GMC Elder
To add to what NightFrost is saying:
  • Small "mad libs" randomization is pretty easy: names can be picked from a list, appearances can be randomized by having separate sprites for hair, glasses, mouths, makeup etc and then mixing and matching one from each category. If you can figure out a good way to store interview questions and CV data so that they're separate from characters, you could just give them a number of these randomly as well.
  • Try to figure out a way to represent everything as numbers behind the scenes. Computers and code work best with numbers.
    • For instance, you could have characters be one of four personality types (I don't remember the "real science" classification, but let's go with corageous lion, hard-working badger, passive thinking raven, scheming snake from Harry Potter just as an example) which could affect flavor text in their responses (let's say badgers speak with a brooklyn accent and snakes have triple S letters in their answers - in the real case you'd want things like snakes giving you evasive answers if you inquire about their skill in something they have low skill in.
    • Also, characters would have "skills" in some different things (just numbers from 0 to 100) - like computers, social skills, fitness, and moral. These skills aren't shown to the player, but might influence interview question answers (questions that reveal one of these skills will have different answers depending on the character has low, medium or high skill). If you have 4 personality types x 3 skill levels all have unique answers, you already get 12 answers per interview question here, so keep in mind that "exponential explosion" is a real risk.
    • Job posting matching would then be like: the job needs someone of at least 1 personality type (more than 1 type can be OK - if the job has no personality requirements, you would list it as needing all four, so any of them will match), and it has levels in the different skills that needs to be met for a good match. So a sysadmin job needs high computer skill, a construction worker job needs high fitness skill, and a receptionist job high social skill and moderate computer skill.
    • To see how good of a match someone is, you add "points" based on personality type match and skill levels vs expectations - a large penalty if the skills are too low, a bonus if they're above.
    • Company loyalty could be represented by hearts (like a standard health system), just a number between 3-1 depending on how much trust-health remains. Easy for the player to visualize, easy to implement.
  • The easiest way to implement a clickable button in GM is to put code in the Mouse Left Pressed event of an object: if the player clicks an instance of that object, the event will run.
 

NightFrost

Member
Another observation. You didn't mention how much time you have been given. But considering you've laid out a plan for a multifaceted game with multiple mechanics, depending how fast you learn and how much time you have, a more realistic goal might be creating a game out of just the core loop itself, the interviews. A final score is then just calculated from how well the hires fit their workplaces. If you feel confident, you can then expand outwards from that.
 
A

AvatarAang

Guest
To add to what NightFrost is saying:
  • Small "mad libs" randomization is pretty easy: names can be picked from a list, appearances can be randomized by having separate sprites for hair, glasses, mouths, makeup etc and then mixing and matching one from each category. If you can figure out a good way to store interview questions and CV data so that they're separate from characters, you could just give them a number of these randomly as well.
  • Try to figure out a way to represent everything as numbers behind the scenes. Computers and code work best with numbers.
    • For instance, you could have characters be one of four personality types (I don't remember the "real science" classification, but let's go with corageous lion, hard-working badger, passive thinking raven, scheming snake from Harry Potter just as an example) which could affect flavor text in their responses (let's say badgers speak with a brooklyn accent and snakes have triple S letters in their answers - in the real case you'd want things like snakes giving you evasive answers if you inquire about their skill in something they have low skill in.
    • Also, characters would have "skills" in some different things (just numbers from 0 to 100) - like computers, social skills, fitness, and moral. These skills aren't shown to the player, but might influence interview question answers (questions that reveal one of these skills will have different answers depending on the character has low, medium or high skill). If you have 4 personality types x 3 skill levels all have unique answers, you already get 12 answers per interview question here, so keep in mind that "exponential explosion" is a real risk.
    • Job posting matching would then be like: the job needs someone of at least 1 personality type (more than 1 type can be OK - if the job has no personality requirements, you would list it as needing all four, so any of them will match), and it has levels in the different skills that needs to be met for a good match. So a sysadmin job needs high computer skill, a construction worker job needs high fitness skill, and a receptionist job high social skill and moderate computer skill.
    • To see how good of a match someone is, you add "points" based on personality type match and skill levels vs expectations - a large penalty if the skills are too low, a bonus if they're above.
    • Company loyalty could be represented by hearts (like a standard health system), just a number between 3-1 depending on how much trust-health remains. Easy for the player to visualize, easy to implement.
  • The easiest way to implement a clickable button in GM is to put code in the Mouse Left Pressed event of an object: if the player clicks an instance of that object, the event will run.
Thanks for all of the advice, will definitely apply this. Any good tutorials to start with? It looks as if there are several really comprehensive ones on YouTube but since there is a choice of series, I wouldn't know where to start.... Maybe I should just start messing around with the software and see where it takes me
 
A

AvatarAang

Guest
Another observation. You didn't mention how much time you have been given. But considering you've laid out a plan for a multifaceted game with multiple mechanics, depending how fast you learn and how much time you have, a more realistic goal might be creating a game out of just the core loop itself, the interviews. A final score is then just calculated from how well the hires fit their workplaces. If you feel confident, you can then expand outwards from that.
Oh yeah that's a good one, I'm always really ambitious with my idea's and just making the core loop sounds a lot more feasible for the time I have, which is about 3 weeks, I'm planning to work on it for 2 hours every day, but can be more if needed.
 

Yal

🐧 *penguin noises*
GMC Elder
30 hours (3 weeks x 5 days per workweek x 2 hours per day) to make everything you've planned sounds way too optimistic, especially if you have no idea how the software works. Usually things take about twice as long as you expect, trying to fix bugs can take a lot of time. Be sure to monitor your progress vs your time budget so you don't realize last day that you've only made 5% of the core loop. (it can help to first break down the thing you wanna make into steps, then guesstimate how much time they'll take, and then continuously checking whether you're ahead or behind schedule)
 
Top