Branching off Mid-Career - Where to begin?

Feel free to talk about any other retro stuff here including Commodore, Sinclair, Atari, Amstrad, Apple... the list goes on!
John Chow Seymour
Posts: 143
Joined: Sun Jul 05, 2020 3:27 pm

Branching off Mid-Career - Where to begin?

Post by John Chow Seymour »



On 9/2/2020 at 7:04 AM, BruceMcF said:




But the first one, just share it with anyone who is interested and get private feedback, leave it off your CV.



Lots of good advice in this thread, but I disagree with the idea above.  Life's too short to pretend that some of your accomplishments don't matter.  Maybe when you're on your 10th game, the first amateurish one won't matter so much.  But until then, if what you make is good enough to release, then it's good enough to go on your CV. 

John Chow Seymour
Posts: 143
Joined: Sun Jul 05, 2020 3:27 pm

Branching off Mid-Career - Where to begin?

Post by John Chow Seymour »


One more thing (sorry for the double post, this occurred to me a few minutes too late, haha).

You mentioned that you're not much of an artist so you'll design the game with simple graphics.  That makes sense, but the other route would be to find an artist and team up.  Not only will the game look nice, but doing so will have the arguably more important benefit of giving you experience working on a game with other people.  When it's all done and you begin looking to join an indie studio, your artist friend can write you a letter of recommendation vouching that you're a good person to work with, you understand how to work as part a team, etc., all of which will be attractive to smaller studios.

desvox
Posts: 8
Joined: Fri Aug 28, 2020 10:02 am

Branching off Mid-Career - Where to begin?

Post by desvox »



21 hours ago, StephenHorn said:




Neat, I hadn't realized MattGrandis was from the industry. Myself, I've been working at Deep Silver Volition, a modestly-sized studio in Champaign, IL, since 2006. So, close to 15 years in the industry. I have coworkers who have experienced every corner of the industry, from tiny indies who came looking for job security, to publishers like Activision and Ubisoft who have more artists working on flotsam like cola cans and dining props than Volition directly employs across the entire studio.



About the industry in general



Everything Matt said about the industry is absolutely true.



I think the AAA side really hits its low point around the time of the infamous "ea_spouse" letter, which accused AAA mega-giant Electronic Arts of abusing their workforce with 70 hour work-weeks, as their modus operandi before talking about "crunch". EA was rumored to have 50% year-over-year turnover in their employees around that time, as in 50% of their workforce was leaving and needed to be replaced, each year.



Crunch is still an infamous issue in the industry, whether we're talking about CD Projekt Red crunching to release Cyberpunk 2077, Ubisoft crunching to release Prince of Persia: Forgotten Sands, or Activision crunching to release the next Call of Duty, it's a practice that is endemic to the industry. To some extent, my understanding is that it's endemic to software development, but it's especially acute in gamedev. It's a complex problem to solve, and unionization would probably force the issue, but unions have their own problems and many gamedevs are understandably worried that if they attempted to unionize then they'd just get fired and replaced by younger, more naive kids.



Job security is also still an issue today. Even the largest publishers are only 1 or 2 big flops away from ruin at any given time, and many studios don't functionally survive their first flop (they lose key employees, or are reorganized, or hemorrhage people until they can't operate, or simply shutter their doors forever), even if they have long histories of success. Also, it's still common for folks, artists especially, to finish a project and be immediately laid off because their studio won't have work for them to do for several months. Thankfully, Volition doesn't work like this, and never has, but my understanding is that we're an outlier. And yeah, in spite of some 27 years of being in business, we got hurt badly by the failure of Agents of Mayhem, our most recent release, which was just completely dead on arrival.



This industry, I tell you. Saying "it's not for everyone" is a level of understatement I'd almost exclusively reserve for British characters from historical fiction. If V shutters, I'll probably exit the industry entirely, myself, go back to gamedev being a hobby that can exhaust my creative urges, and eventually reclaim the ~30% pay difference I'm told I could be making by plying my trade anywhere else in town.



Oh, and that reminds me: Since nobody else has mentioned it, be aware that AAA gamedev absolutely comes with a fun tax, in that I mean you can expect to be paid less for what you're doing than if you were doing it for anyone else. Because getting in is grand, but there's no shortage of kids willing to absolutely kill themselves to get in behind you, and that drives down wages. (My story of breaking in out of college involved driving 5 hours to an in-person interview from out-of-state and booking my own room in a local motel. It really didn't bother me, in part because I didn't have any idea what to expect from the interview process; but since V tries to be better than most, our recruiter at the time was rather embarrassed by it. It helped drive my resume to the top of the pile, though.)



Game-development options



I also agree with Matt that, of those options, Godot is the closest to approach direct relevance for a game programming career, though you really want to look into Unreal if you're looking at a programming path. Failing that, at least C++. It's not that our industry has no need of low-level CPU and hardware guys, it's just that we're talking about a team of maybe 3 dedicated guys amongst a programming staff of 46, and it wouldn't even be that many except that we roll our own bespoke game engine for our franchises, instead of using a third-party engine. And besides, almost every platform is X86 these days... and have you seen that instruction set? Even in the heydays of Michael Abrash writing articles about VGA programming, optimizing that stuff was an art in trial and error, and these days really is best left to compilers.



I would also echo Bruce's advice that you should probably think of your first game as a learning experience, and to decide whether you like gamedev enough to want to get in for the long haul. (Of course, if it turns out well, I don't think there's anything wrong with using it as a portfolio piece.)



Whatever path you go, just remember these things:




  • Keep it small.


  • Keep it focused.


  • Have fun! (Otherwise, what's the point?)




 


15 hours ago, StephenHorn said:




So, maybe a person needs a few loose screws to stay in the games industry in the long-term, but I want to try and offer some positives about the game industry, reasons that I have stayed for as long as I have:



I found a great studio that looks after its employees.



That's not to say that Volition has never crunched, and never made mistakes along the way. Actually, the first Saints Row had an infamously long and hard crunch period, worse than anything the studio had ever experienced. I started at the tail end of that, and I think it kind of traumatized everyone. For the first decade or so working there, I'd describe the attitude towards crunch as "we're never letting Saints Row happen ever again." The studio invested in more and better project management, experimented, and we're continuing to try and improve planning and cut earlier, specifically so we never crunch that hard ever, ever, ever again.



Games are fun to work on, and their teams are fun to work with.



Yes, it's a job, and it's common to have a very narrow view of what you're working on on any ordinary day-to-day work, and so that does take some of the "fun" out of it. Especially when you're dog-fooding on your own work.



But I remember the internship positions I had doing "real jobs" before going into games, and they were B-O-R-I-N-G. I found my internships to be hideously awful, soul-crushing, "why-did-I-ever-think-programming-would-be-interesting-or-fun" affairs. Writing 100 or so trivial database queries over the course of a summer and then watching the resulting application for 8 hours/day to make sure processes are running is my literal definition of purgatory. And then there was the office politics... you know your internship is at a winning employer when your direct supervisor is suddenly fired, with two weeks left in your internship, and everything you've worked on all summer is completely forgotten and discarded, and you're told to still show up for work but to sit there and twiddle your thumbs until the end.



And then there was the other internship, in which a senior programmer had an inexplicable grudge against me on Day 1, and wasted dozens of hours over the course of the summer trying to get me fired. The only reasons that was tolerable was my boss appreciated the schadenfreude when that senior programmer would accuse me of something new, only to be shown contradicting evidence and documentation. I thank the mighty Pastafarian noodleship that programmer was even more incompetent than they were malicious, because that paycheck was going towards my college tuition.



I guess we all choose our demons, and I prefer being paid less to work harder on something I find interesting, alongside people I can actually like. Finding a silly bug, poking my office neighbor, and having a brief laugh and seeing if we can reproduce it. Playing board or card games over slightly-longer-than-usual lunches. I've become friends with a number of my coworkers - by which I mean more than just professionals working well together, these are folks I invited to my new place for a housewarming party, and that I've turned to when I needed help with a flooding basement, and that I've helped when moving across town. Folks I've gone drinking with, not just for team-building, but because they're great people to hang out with.



Watching a project succeed is hugely satisfying



After working hard to deliver a product, seeing it appear on store shelves - and then disappear from those shelves, with plastic markers indicating where it would be if only the store still had units in stock - is a remarkably cathartic experience. And reading positive reviews of the project is energizing. And even the negative reviews can be motivating, recognizing weakness in your own contributions and planning how to do better the next go-round. I think the proudest moment of my career was relatively early on, watching Red Faction: Guerrilla briefly bump up to a 9.0 metacritic score around launch time. I worked on its multiplayer, as part of a core team of 3 programmers and 1 designer. What I wouldn't give to relive those days, with just a few tweaks of benefit from a more experienced perspective.



This is what I am looking for I guess. Not just the good part, also the bad. In my current job, we have times when we stretch over the weekends and have consecutive 14-15 hour days. Agreed, not as bad as crunch most probably, but the point on satisfaction you've raised -- After working hard to deliver a product, seeing it appear on store shelves - and then disappear from those shelves, with plastic markers indicating where it would be if only the store still had units in stock - is a remarkably cathartic experience. And reading positive reviews of the project is energizing. And even the negative reviews can be motivating, recognizing weakness in your own contributions and planning how to do better the next go-round. -- this is what I'd like. Building something that someone cares about enough to not like it.


2 hours ago, John Chow Seymour said:




One more thing (sorry for the double post, this occurred to me a few minutes too late, haha).



You mentioned that you're not much of an artist so you'll design the game with simple graphics.  That makes sense, but the other route would be to find an artist and team up.  Not only will the game look nice, but doing so will have the arguably more important benefit of giving you experience working on a game with other people.  When it's all done and you begin looking to join an indie studio, your artist friend can write you a letter of recommendation vouching that you're a good person to work with, you understand how to work as part a team, etc., all of which will be attractive to smaller studios.



this would be great -- I can post around a small single-level demo with some placeholder art, someone might be intrigued enough to want to collaborate. It worked out exactly like this with my boardgame out on boardgamegeek.com -- no reason it could not for this as well!?

BruceMcF
Posts: 1336
Joined: Fri Jul 03, 2020 4:27 am

Branching off Mid-Career - Where to begin?

Post by BruceMcF »



4 hours ago, John Chow Seymour said:




Lots of good advice in this thread, but I disagree with the idea above.  Life's too short to pretend that some of your accomplishments don't matter.  Maybe when you're on your 10th game, the first amateurish one won't matter so much.  But until then, if what you make is good enough to release, then it's good enough to go on your CV. 



I'm looking at it from the front side, not after the fact. Going into the game with the goal of putting it on the resume is not the best mindset for the exploratory learning required.

Indeed, going into it with the attitude that it's job interview material will, paradoxically, give a lower probability of it actually being effective as job interview material.

After the game is finished, the advice has expired. At that time there's a game to look at to decide whether it merits being put on the CV.

SlithyMatt
Posts: 913
Joined: Tue Apr 28, 2020 2:45 am

Branching off Mid-Career - Where to begin?

Post by SlithyMatt »



18 minutes ago, BruceMcF said:




I'm looking at it from the front side, not after the fact. Going into the game with the goal of putting it on the resume is not the best mindset for the exploratory learning required.



Indeed, going into it with the attitude that it's job interview material will, paradoxically, give a lower probability of it actually being effective as job interview material.



After the game is finished, the advice has expired. At that time there's a game to look at to decide whether it merits being put on the CV.



Then again, I have learned multiple programming languages for the express purpose of putting them on my resume. So, that may be a good start. Maybe not putting your actual game on your resume, but certainly your experience on using the language and engine it was written with.

desvox
Posts: 8
Joined: Fri Aug 28, 2020 10:02 am

Branching off Mid-Career - Where to begin?

Post by desvox »


So to get "started down the path" so to say, I managed to create this small demo in Godot (attached file). The sprite is a 32x32 created using Aseprite, and the floor and platform tiles are all 16x16. I stuck to the c64 palette to create all these. To get this running in Godot, I had to do the following:


  1. Define the "layers" of the game i.e "world" and "player"


  2. Create nodes for the player -- a kinematicbody2d node for the player and a simple tilemap for the world. Put these nodes on the respective layers and configure which layer interacts (collides) with which other layers.


  3. Define the sprite for the player and assign a collision shape to it 


  4. Define the world as a tilemap. The tilemap was "painted" using the tilemap tool. Collision shape defined for the tiles as well


  5. Tell the program what is the floor of the world


  6. Define key inputs (left, right, jump)


  7. Define values for gravity and speed


  8. For the "player" actor:


    1. Tell the player to "fall down" if it's not on a floor i.e. define gravity


    2. Calculate direction of movement based on key inputs


    3. Calculate velocity based on calculated direction and speed


    4. Pass this data to a pre-defined function that takes care of movement / collisions etc




For someone who knows their way around Godot, I guess this would take 15 minutes starting from scratch. For me it took a better part of 2 hours. 

I see now how the Godot engine has abstracted out a HUGE amount of the gritty stuff. However I want to take up a "learning challenge" for myself -- I want to try and recreate this  for the CX16 using Assembly. I was trying poking around to see how I can get started on this, somethings I have found -:


  1. I can use Aloevera to convert my sprites to assembly code


  2. I will then need to understand how the system puts the pixels on the screen 


  3. VERA has a set of registers that control/monitor sprite collisions - I should be able to use these to monitor collisions


  4. The I/O registers of the 6502 should be for reading keyboard input


Ok so honestly, I have no idea how to get started on this. 


  1. How do I begin the program


  2. How do I get the map and player on the screen


  3. How do I define which way is down, and how fast should something come down (gravity)


  4. How do I define what's the floor


  5. How do I figure out the player is on the floor or now it's jumping and now it's on a platform


  6. ....


Is there a guide I could follow to understand all this? I am keen to put in the effort, or at least try and see if I am able to follow or it gets overwhelming. Any suggestions would be great! 

 

 

 

DemoLevel.mov

SlithyMatt
Posts: 913
Joined: Tue Apr 28, 2020 2:45 am

Branching off Mid-Career - Where to begin?

Post by SlithyMatt »


You're going to need to read up on the VERA documentation, and then look at some code examples that are out there on GitHub. You can look at any of my repos starting in "x16-" here: https://github.com/SlithyMatt

I created a file called x16.inc for most of them that defines constants for all the addresses and things that you need to interact with. I also generally keep all graphics assets in separate loadable files, rather than inlining them in assembly code, which takes up unnecessary RAM. You can just load files directly to VRAM using the Kernal LOAD routine, so no need to have it in two places unless you need to do quick swaps between RAM and VRAM without going to "disk". I have lots of examples in my code of loading stuff to VRAM and setting up the VERA registers to configure the layers to use what I put there.

You can also look around other programs in the "Downloads" section on this site and checkout links to that code, where available.

I find looking at working code to be the best way to learn, especially since we don't have a proper developer's guide yet that addresses how to use VERA. But that is under development and will be a physical book that ships with the X16. Whether or not @Perifractic releases a draft of that earlier on PDF or something remains to be seen...

Perifractic
Posts: 511
Joined: Sat Apr 25, 2020 4:53 pm

Branching off Mid-Career - Where to begin?

Post by Perifractic »

As of now the only VERA docs can be found in the Downloads or Support section of this site. Whilst we are finishing up the main user guide, it does not currently go into VERA specifics. These are fairly well documented already, and may remain online only to cut costs and minimize paper usage to try to be green, whilst still delivering a cool spiral bound user guide.
TributaryHouse
Posts: 3
Joined: Wed Sep 30, 2020 3:16 am

Branching off Mid-Career - Where to begin?

Post by TributaryHouse »


My two cents isn't worth a hay penny, but I relate enough to reply. I'm nearly 38, have an MA with extensive industrial trades, I'm studying Criminal Justice (graduate level) and I just dropped too much money on machine tools (I'm a former machinist). Reliable income is simply not part of the world I live in, so I adapt.

If you're really looking to program something that makes something (as-in quit your dayjob) - either go with 4D minecraft and sell it to Google or:

Provide the answer to Fusion 360's recent totally-foreseeable-decision - that embittered a great deal of their possible customer base (but not likely their market share).

A full-suite integrated CAD-CAM with a decent interface (Repetier meets Sketchup on steroids) - that isn't riddled with the dirty tricks that huge companies play (seriously, MBA's, what is up with the $1000.00 subscription business model? Profitable until someone does something clever... that someone could be you ?)

Ultimately, as I said, unless a person can afford a recurrent - and rather exorbitant - fee, there is simply no decent OFFLINE STAND-ALONE CAD-CAM utilities. Even Autodesk leaves much to be desired.

I could build a psychotically awesome CNC, but I can't program a program to program it - and my soldering is terrible. Machinists with an MA in History don't have many tinkering friends to involve in schemes...

Anyways, there is a real gap in CAD-CAM that is obvious, and not being well addressed - convoluted work-flow and rather jerky business models by the two companies that dominate.

 

And if that doesn't get you giggly, there's always LCARS32x - which really needs some project management, and needs to ditch the Windows Shell idea and just pull the trigger on the 24th century already - and run it all on an EEPROM ?

Anyways, I know I'm late and off topic, but related somewhat to your post, so I posted.

Post Reply