News for hackers. Stuff that matters.
Re:Computer Graphics from Scratch (2017) by pseudosudoer on Friday April 05, 2019 @03:14PM (#19586005)
Like many other programmers, I originally picked up programming because I wanted to write games. I spent time on my own in high school messing around with rudimentary 2D libraries in C++. That feeling of awe and accomplishment that was captured the first time an image successfully moves across the screen was what got me hooked.

After starting college I soon learned of the trials and tribulations of software engineers in the gaming industry. I changed my degree to Computer Engineering, took the embedded track, and recaptured that sense of awe by staring into the abyss of an Oscilloscope. Albeit, I did still take several graphics courses as electives (simply because I loved the subject).

Re:Computer Graphics from Scratch (2017) by BurningCycles on Friday April 05, 2019 @04:58PM (#19586975)
For me it was my big brother passing his Commodore 64 down to me as he got himself an Amiga. First it was just playing games, then doing some stuff in the built-in basic, and then following an assembly language course in a monthly magazine.

By the time I managed to display eight sprites on the upper part of the screen, trigger a raster interrupt, move the same sprites to the lower part of the screen and thus have it appear as sixteen sprites on screen, I was hooked. It was like being able to wield magic.

Re:Computer Graphics from Scratch (2017) by Flow on Saturday April 06, 2019 @09:09AM (#19590528)
My thing was sprite-multiplexers. In theory it's very simple. You sort the sprites by y-position, then use raster interrupts to reprogram the sprite registers for "(spriteN++ & 7)".

The hardest part is sorting. It takes quite some time to sort data on a 6502. I "invented" my own sorting routine for this, but I later learned that most coders used bubblesort since most of the time sprites move just a little so it's mostly sorted already.

My routine used half the stack. I took ypos >> 2 and used that as an index to the bottom half of the stack. If the position was occupied I used the next pos etc. To collect I simply used a PLA(pop) instruction. There were holes of course, so you had to check for empty slots.

That routine took about the same time every frame.

32 sprites was not very hard to do, sorting-wise.

Re:Computer Graphics from Scratch (2017) by BurningCycles on Saturday April 06, 2019 @04:50PM (#19592935)
Yes, bubble sort was an obvious choice given it's easy to understand and implement, I came across this article some time ago which goes through many different ways to sprite sort for general multiplexing and presents 'continous insertion sorting' as the winner, was a fantastic trip down memory lane.

http://selmiak.bplaced.net/games/c64/index.php?lang=eng&game...

Re:Computer Graphics from Scratch (2017) by ggambetta on Friday April 05, 2019 @05:14PM (#19587106)
Similar story here, but on a ZX Spectrum :)
Re:Computer Graphics from Scratch (2017) by electricslpnsld on Friday April 05, 2019 @05:06PM (#19587042)
> After starting college I soon learned of the trials and tribulations of software engineers in the gaming industry.

Graphics is used well beyond the games industry! Anecdotally (talking to friends, getting recruiter emails, etc) Apple, Facebook, NVidia, and Google have been hiring like crazy for non-games graphics-related positions.

Re:Computer Graphics from Scratch (2017) by CoolGuySteve on Friday April 05, 2019 @06:42PM (#19587715)
Google's comically bad at hiring for it though so I wouldn't count on them. When I interviewed there after having worked on graphics extensively at Apple and other places, they asked me how to load balance real time search suggestions and I failed, obviously.
Re:Computer Graphics from Scratch (2017) by Arelius on Friday April 05, 2019 @09:22PM (#19588547)
Ohh I agree, but I had an entirely differn't experience.

I went through round after round of interview, passing the interviews without problem. But the team I was interviewing for wasn't able to get the information they needed, because I was just getting general CS interviews, so they kept trying to schedule more interviews.

Eventually Amazon reached out, I had some interviews and accepted a position within 2 weeks. I had to tell Google I wasn't going to do any more of their interviews.

They really need to improve their interview process for specialty positions, it really seems optimized to get recent CS grads into generic roles.

Re:Computer Graphics from Scratch (2017) by systemBuilder on Saturday April 06, 2019 @03:26PM (#19592525)
You don't understand. Interviewing at Google is not about recruiting outside talent. It's about making the inside talent feel special when we blow off another qualified candidate.... I was one of those special-feeling interviewers with 32 onsites and zero hires (I recommended 10 by the way). I finally quit that shitshow and left Google.
Re:Computer Graphics from Scratch (2017) by westoncb on Friday April 05, 2019 @07:15PM (#19587929)
Anyone else have info. on this?

I started by writing games and game engines as a teenager (now ~14 years ago), reading "Real-time Rendering" and the "OpenGL Superbible". I've done a lot more with computer graphics since, writing pixel shaders for fun, building a web-based domain specific CAD tool (for a client) etc. Also been doing some computational geometry stuff more recently.

I haven't had much luck finding positions for 'graphics programmers' though. I've found things like 'lead engine programmer' for game companies—which is a bit out of my league, IMO.

But I'd love to work on things like the VR youtube player that Google did (doesn't have to be VR; 3D UI design is interesting to me regardless). Don't how to find these sorts of positions at companies like Apple/FB/Google etc., where I would hope they pay quite well (comments on that also welcome!).

Re:Computer Graphics from Scratch (2017) by emmanueloga_ on Friday April 05, 2019 @08:53PM (#19588438)
A few projects I can think of requiring graphics programming at Google:

* Fuchsia was looking for graphics engineers at some point. I can't see a listing about graphics right now but maybe you could start as a mobile apps SWE and slowly move into graphics if you build the right contacts.

* Lots of Stadia jobs require Vulkan / OpenGL and general graphics knowledge, there maybe some of these offers that may be attractive for you! [1].

BTW I'm pretty sure even for specific roles as graphics programming, Google still hires generalists, so expect the same grind as everybody else has on the interviews (that is, whiteboards, algorithmic questions, etc etc).

1: https://careers.google.com/jobs/results/?company=Google&comp...

Re:Computer Graphics from Scratch (2017) by robmaister on Saturday April 06, 2019 @11:23AM (#19591175)
Perhaps I just got lucky, but I started my first games industry job almost a year ago and I've been doing graphics work for the vast majority of that time. I came in as a regular junior level Software Engineer, mentioned I liked graphics and tools development, and was mostly given graphics work as a result.

I've also been writing engine/graphics code for fun since I was a teenager, my copies of those books are 3rd edition and 5th edition, respectively :)

Re:Computer Graphics from Scratch (2017) by westoncb on Saturday April 06, 2019 @06:37PM (#19593442)
Hmm, yep, tools and graphics are what I'd be most interested in as well. 3rd and 3rd here :)
Re:Computer Graphics from Scratch (2017) by Arelius on Friday April 05, 2019 @09:33PM (#19588582)
It's not super difficult, they are generally listed like any other job. Here is a few in a quick Google Jobs search:

https://careers.google.com/jobs/results/6656793930563584/ https://careers.google.com/jobs/results/5104577030586368/ https://careers.google.com/jobs/results/6469646855372800/

The other large companies should have similar postings, and obviously games studios.

The harder thing you might run into though is they are generally pretty senior roles, with expectations of quite a bit of existing rendering knowledge, so it can be hard to get a role straight into rendering. My suggestion is to try to find a general role on a team supporting a rendering product. And then to slowly move into that type of work.

Re:Computer Graphics from Scratch (2017) by westoncb on Friday April 05, 2019 @10:31PM (#19588795)
Huh. Well, it has been a couple years since I last looked, but nothing turned up for me before.

> My suggestion is to try to find a general role on a team supporting a rendering product. And then to slowly move into that type of work.

Not sure if that's in reference to my background or just a general comment. I do have about three years experience doing graphics programming professionally (1 year computational geometry), and many more doing it as a hobby, so working my way back up to it is not exactly an appealing prospect.

I could potentially see that being sensible for me though, depending on details about the job not included in the description. Graphics programming is my deepest specialty, but I am primarily a generalist.

For example, here's a video of the CAD tool I architected, built (the features shown), helped design and hire other developers for etc.: https://www.youtube.com/watch?v=e21tqZebl60

I am actually concerned that the skill set involved there won't be easily usable to by Google scale companies though--that they'd prefer to have a few specialists for the different aspects of the project instead. So maybe this isn't such a good direction for me.

Re:Computer Graphics from Scratch (2017) by Arelius on Saturday April 06, 2019 @12:13AM (#19589183)
> Not sure if that's in reference to my background or just a general comment. I do have about three years experience doing graphics programming professionally (1 year computational geometry), and many more doing it as a hobby, so working my way back up to it is not exactly an appealing prospect.

It was mostly a general comment, but I think an important one. I've been a rendering specialist for about 10 years, and I still occasionally encounter the "rendering" role that expects me to have more knowledge of some special type of hardware or something, and I end up being under-qualified for, it's just that kind of field I guess.

Also, cool looking CAD tool!

Re:Computer Graphics from Scratch (2017) by analognoise on Saturday April 06, 2019 @02:41AM (#19589611)
I like your cad tool - I'm interested in 2D only, but you seem to have nailed the user interaction bits for constrained movement.

I'm primarily interested in algorithms/ heuristics for wire drawings (2D ECAD). Do you have any suggestions on where to look for further information?

Re:Computer Graphics from Scratch (2017) by westoncb on Saturday April 06, 2019 @03:21AM (#19589703)
Not really unfortunately :/ We were basically winging it without really digging into the research or anything, except for computational geometry algorithms.
Re:Computer Graphics from Scratch (2017) by aprdm on Friday April 05, 2019 @07:50PM (#19588145)
Visual effects industry as well.
Re:Computer Graphics from Scratch (2017) by Const-me on Friday April 05, 2019 @09:36PM (#19588601)
Also CAD, CAM, CAE.

Also many random smaller niches. I've been programming 3D graphics for machine learning (grabbing labelled data between videogame and D3D), for enterprise (too much 2D data + latency requirements, only 3D hardware did the job), for GIS (a competitor of google street view, image processing), for video broadcasting..

Re:Computer Graphics from Scratch (2017) by ChristianGeek on Friday April 05, 2019 @08:19PM (#19588303)
Which has just as many (if not more) trials and tribulations as the gaming industry.
Re:Computer Graphics from Scratch (2017) by aprdm on Friday April 05, 2019 @08:31PM (#19588359)
Not for programmers
Re:Computer Graphics from Scratch (2017) by Arelius on Friday April 05, 2019 @09:34PM (#19588591)
I don't agree.

Programmers are generally much better off than artists in both VFX and Games. But the worse pay and bad deadlines and time management proliferates in both fields.

Re:Computer Graphics from Scratch (2017) by Ingon on Saturday April 06, 2019 @09:22AM (#19590578)
The desire to write games came later for me. What got me into programming was the desire to write viruses- they were this magical thing that I viewed as a game. A game to enter a system, to stay there hidden, spread and poke around, completely on their own.

It was amazing world to imagine, but was way beyond what I could do at the time. And now, my ethics prevents me from even attempting it.

Re:Computer Graphics from Scratch (2017) by codesushi42 on Saturday April 06, 2019 @01:51AM (#19589481)
Seems like many people start and end this way. Games are a great motivation to learn how to code. But once you do, you find that other subfields of CS are more interesting and useful. And you just get older. :)

But that is not reason to quit game development entirely. It is still a good hobby that makes you a much better programmer, because it touches so many areas of CS and math. 3d graphics, state machines, trees/graphs, pathfinding, multithreading, memory management, vector math, networking etc.

Re:Computer Graphics from Scratch (2017) by rujuladanh on Saturday April 06, 2019 @04:53AM (#19589913)
> But once you do, you find that other subfields of CS are more interesting and useful. And you just get older. :)

It is true that some people, as they get older, claim to find games less interesting. In my opinion, some of them simply jaded a bit, and would be a good thing for them if they tried to find enjoyment again in the small things. I know, because I was there too. It depends a lot on the culture.

There are also others that start claiming games are useless, immature and that the world will end if youngsters keep playing them.

Entertainment has been useful even before civilization existed, and those that enjoy the time to entertain themselves, do; even if it is in the form of working on dream projects. Yes, that is playing too.

As for your other point, there are objectively very few (if any) topics as interesting as games for CS people, given the so many areas of CS (and non-CS) they encompass at the same time. Hardly any other area of work touches so many domains. Only operating systems, browsers and CAD apps (and maybe Emacs ;) are close as vast.

Re:Computer Graphics from Scratch (2017) by kmbriedis on Saturday April 06, 2019 @06:10AM (#19590089)
Interesting is very subjective term. E.g. some find theory much more interesting than games
Re:Computer Graphics from Scratch (2017) by rujuladanh on Saturday April 06, 2019 @04:06PM (#19592726)
What do you mean by theory?
Re:Computer Graphics from Scratch (2017) by coldtea on Saturday April 06, 2019 @10:01AM (#19590746)
>It is true that some people, as they get older, claim to find games less interesting. In my opinion, some of them simply jaded a bit, and would be a good thing for them if they tried to find enjoyment again in the small things.

There are also people who still find enjoyment in small things, just not in games. It's not like computer games are that enticing beyond a certain point.

You can wonder around shooting aliens or casting spells, or exploring space colonies, in some commercial game that's basically the nth clone of 1000 others before it so many times before it loses interest...

It's like watching superhero movies for life. Yeah, people do it. But people also learn to appreciate more mature movie plots than "kid finds out they are unique, has responsibility to save world" or "millionaire with faults devotes time to fight supervillains", as their life experiences (e.g. kids, divorce, health scares, job trouble, mortality, love affairs, betrayal, etc) are not exactly the same as their brooding misunderstood teenager years when they wished they would "show everybody" anymore...

Re:Computer Graphics from Scratch (2017) by rujuladanh on Saturday April 06, 2019 @04:00PM (#19592686)
That is exactly what I was talking about! You are portraying games as "immature activities" like "superhero movies", rather than just "movies".

The same way there are more "mature" movie plots than those that you are (kind of) mocking, there are also more mature books than children stories, more varied music than pop summer songs and, indeed, more games than your "nth clone of shooting aliens".

By the way, I have had a nice daughter and health scares like anybody else, and no, that has nothing to do with maturity or with games becoming boring. There are many game genres and of course you like different ones when you are 15 vs. when you are 50. I literally thought like you in my early 30s, when I had literally zero free time and kept thinking "yeah I am past that, leave it to the young generation, I am responsible now".

Re:Computer Graphics from Scratch (2017) by rlonn on Monday April 08, 2019 @06:02AM (#19603732)
The day you wake up and consider yourself "adult" is the day you start to die.
[dead]
Re:Computer Graphics from Scratch (2017) by rujuladanh on Sunday April 07, 2019 @12:29PM (#19597868)
Hah! Because driving to the lake, playing poker and going to the movies in the mall makes oneself a very mature and serious person.

Not like those immature infants that play games. Got it!

Re:Computer Graphics from Scratch (2017) by codesushi42 on Saturday April 06, 2019 @04:08PM (#19592737)
>As for your other point, there are objectively very few (if any) topics as interesting as games for CS people, given the so many areas of CS (and non-CS) they encompass at the same time. Hardly any other area of work touches so many domains. Only operating systems, browsers and CAD apps (and maybe Emacs ;) are close as vast.

What is interesting is subjective, and I am not going to seriously tell anyone what is interesting or not. But there are certainly areas in CS with just as much or more breadth and depth than game development. As someone who works in AI now, I would say it covers even more areas of CS, and requires more math.

There is also computer security, which can be as high level as web app security, or as abstract as the number theory powering cryptography.

I love game development, and games, but it is a bit disingenuous to hold game development up as being the ultimate discipline in CS. It is certainly not.

Re:Computer Graphics from Scratch (2017) by rujuladanh on Saturday April 06, 2019 @06:19PM (#19593355)
If your definition of "interesting" is how much math it requires, I have bad news for you... :)

Anyway, neither AI nor security cover that much of CS (they are parts of CS, and there are many others). Games, however, heavily use both of them (and many other parts of CS).

Re:Computer Graphics from Scratch (2017) by codesushi42 on Sunday April 07, 2019 @12:35PM (#19597911)
AI covers many "parts" of CS.

The AI you use in games is very rudimentary and smaller in scope compared to AI used for applications in the real world.

Re:Computer Graphics from Scratch (2017) by Bekwnn on Saturday April 06, 2019 @04:08PM (#19592735)
I'm currently at a games studio. Graphics in general fascinate me, and I'd be happy at any job which allows for fast iterating and a visual interactive system to work on, where the underlying problems are difficult and performance sensitive.

A lot of the recent outcry over games industry being horrible is a bit exaggerated. I'm glad some of these issues are getting attention, but it's far from being like that everywhere.

It's really compelling work.

Re:Computer Graphics from Scratch (2017) by ZeikJT on Friday April 12, 2019 @08:51PM (#19650341)
Recent? It's far from recent. There have just been some very public debacles lately that have been attributed to it but it's been an ongoing issue for a lot of people for a long long time.

Maybe you've been in a situation that hasn't been like that of others but you are not an entire industry of people. Confirmation bias and small sample size are things to watch out for.

Re:Computer Graphics from Scratch (2017) by screye on Saturday April 06, 2019 @02:32PM (#19592252)
> But once you do, you find that other subfields of CS are more interesting and useful.

I feel like the exploitative nature and below-industry living-working standards are what pushes people away from the field in the first place.

The video gaming industry makes in the same order of magnitude in revenue as the global movie market. It certainly isn't a small industry.