As the end of the year comes closer, and we reflect on what has happened on /prog/ this last year, we have to admit that we did not accomplish very much. Perhaps in our private lives, yes, but here on /prog/ we have spent the majority of the year trolling, meta-trolling, complaining about it and going nowhere in particular. If we look at our community I'm going to say we have very little to be proud of: /prog/ kinda sucks.
I say we change all that. I say in 2012 we band together and prove that /prog/ is better than it has ever been before just by making it so. That we can come to /prog/ with an expectation of lulz and wisdom. I'm willing to make the effort, who's with me?
ITT post your new years resolutions for /prog/, I'll start:
* If I have nothing substantial to say I will sage it.
• Post programming challenges, puzzles, riddles, and discussions.
• Write some cool small programs, post them and say something interesting about how they work.
• Ignore people asking for homework help; ask and answer interesting open-ended questions. • .../prog/code golfcompetition?!
* Stop sending people back to /g/.
* Participate to /prog/ challenges.
* Make more quality posts.
Name:
Anonymous2011-12-26 6:42
Ah but something relevant now:
Is there a simple way to get textures to modify collision behavior?
I'm thinking aLa Tag: The Power of Paint and Portal 2. For me, the simplest way to think of it is as a separate texture map for the paint surface, then when an object collides with the surface the behavior changes.
Usually collision detection is done CPU side, but then we're doing "physics" with the GPU sometimes so I don't know which really covers which.
It would seem modifying geometry would be something the gpu would be relevant for, but, again, it seems most games use the GPU for effects (like normal mapping), and use low-poly and bounding boxes for CPU-based collisions detectors.
yeah, I suppose it would come down to locating the point at which the collision occurred, and then checking to see if that region of the face was affected by the special paint. I think a geometric approach for this would be easier than a texture based on, but maybe it could be done well. The geometric approach could be implemented pretty easily on the cpu side, and if GPGPU is already being used for collision detection and resolution, then it probably wouldn't be too bad to extend it to support this behavior.
* Stop sending people back to /g/.
We've chased everyone away to /g/ and /jp/ already ;_;
All there is left is the 4 of us.
May the FrozenVoid have mercy on our souls.
Name:
Anonymous2011-12-26 16:09
>>11
Geometrically, which would be more optimal, dynamically creating a polygonated surface where collisions with paint occur and putting that surface above the existing surface and assigning a bounding box collision effect (which would end up being the same as paint but probably cost alot more in memory or something), or what?
I'm trying to imagine how to do a geometric approach without creating ridiculous amounts of data or having it less complicated than simple texture pixel sampling upon collision.
yeah, which one is more optimal would probably depend on how complicated the paint patterns where. For the geometric approach, you would need to store polygons of paint on the faces of the object. If I was going to implement this, I'd probably do something like:
See if object A has collided with object B:
If so, find the point at which the collision occurred on A and B.
The point of collision is either on a vertex, the edge of a line, or in the middle of a face.
If the point of collision is on a face, then change the coordinates of the collision point to 2D with respect to the face.
See if the 2D collision point on the face is within one of the pain polygons.
If you were doing the texture based approach, then that last step would probably be a lot faster:
Round the 2D collision point on the face to pixel coordinates and see if it is on a painted pixel or not.
You'll have to store all those cells, but it'll probably be cheaper anyway, especially if you are going be painting on top of painting on top of painting. Using geometry for that would require overlaying the polygons, and you would have to merge them together if you wanted to save memory and speed. So doing the texture based approach would probably save a lot of work, go faster, and not introduce weird effects.
Name:
Anonymous2011-12-26 16:36
>>14
Alright, that's the way I was thinking of going, but I didn't really think about the sampling step. Irrlicht might be the best for me then, as even looking at the examples it provides a poly grabber, which it does not recommend to use for collision detection, but who cares what other people think.
elated, Irrlicht also has a render-to-texture feature, which could probably be simply extended for portal effects. Those are my new years resolutions, pretty much.
cool. The texture based approach could be implemented without any assistance for a graphics card if you wanted to. You would just need to store an 2D array of bits for each face, where a one indicates paint on that square, and a zero indicates no paint, although you could use larger values if wanted to introduce varying levels of thickness for the paint. It might be good to have something to fall back on in case their graphics card is ancient, but if you can get acceleration, then go for it!
oh wait, you'd probably want to render the paint as well, huh. Then yeah, I'd probably stick with textures only and stuff, and not try to rely on a separate array.
* Learn to actually program.
Might seem more personal than /prog/-related, but I've been here for years and I still can't program. It's been on my list of things for over ten years.
>>21
I have read the first chapter or two of every programming book known to man. I'm just too depressed and lethargic to bother any further.
I guess I have a motive now since my cousin's workplace needs a Python developer. Of course it's Python, but I'm not in a position to be picky.
For me, the biggest motivating factor that drives my programming is seeing what I'm able to create, and to being able to watch it run. And it doesn't stop there either, you can always take what you've built so far and use it as a set of tools to produce more and more things. It's like being an architect or a machinist, but rather than being limited by the laws of physics, you are limited by the laws of computation. But as long as you don't strive to build a skyscraper that hovers 200 feet off the ground, then you are free to build whatever you want.
>>23
I agree. I have programmed trivial things before, mostly for my own entertainment, but I think my motivation and capacity to learn died in my late teens. I guess it's more of a personal issue than an academic one since I'm a NEET and quite possibly a hikikomori. I'll ask /adv/ or somewhere later. Probably a non-4chan board.
Name:
Anonymous2011-12-26 18:50
1. To actually finish a project.
I start and make significant headway in tons of ambitious projects -- a TTS engine, a game engine, an OS kernel -- and some that are less complex but potentially more useful -- such a s a widget library for SFML that I've been working on. After a few weeks (or even days) I inevitably get bored and work on something else. As such, I still haven't finished a single non-trivial program.
2. To learn to actually design my programs. I tend to think about the problem for a bit and start writing code right away.
3. To contribute to several open source projects. I started writing a patch for the GNOME screenshot program a while ago which would put formatting in the text entry where you typed the filename (so you could put "%y-%m-%d %H:%M" and the result would be "2011-12-26 23:49") and I got bored of trying to read their code and figure out where to actually implement the feature, so I gave up and played Half-Life 2 instead.
Every month, have a competition for an implementation often a classic video game, such as Tetris. We all participate, write our own, and the winner gets nothing, but the community gets a fuckton of versions of Tetris. Who could ask for more?
>>28
What about this: every month, we have a competition for an open question, such as P vs NP. We all participate, write our own, and the winner gets nothing, but the world gets a fuckton of crackpot proofs of P =/!= NP.
Name:
Anonymous2011-12-26 19:58
What about this: every month, we have a competition for an exploratory programming in computational models of cognition. We all participate, write our own, and the winner gets nothing, but the Wikipedia gets a fuckton of Mentifex-tier total theories of AI to work with.
Name:
Anonymous2011-12-26 20:03
Every month we should post our battlestations and desktops.
I don't know about the rest of you, but as an inexperienced programmer the few times I asked questions /prog/ always provided detailed answers. Sure, I had to get through some unreadable troll garbage, but the quality of the material was excellent when it was actually there.
I feel that its not that /prog/ is not a good board - its that unless specifically asked something everyone do not bother to initiate a proper discussion.
Name:
Anonymous2011-12-27 8:40
• I will have sex with a Touhou
Name:
Anonymous2011-12-27 10:43
We should create a fork of MINIX called MANIX which will be a far manlier version.
Oh, something people will use... uhhh... how about a true multimedia player? On Linux I use banshee but the Windows version doesn't work (even though it's written in C# for Mono :/). Also, banshee only really works with music; it can play videos but IIRC you can't seek or anything. You also can't really view images with it. It'd be great if there was a portable multimedia player that could play music, videos and browse images. It'd also be nice if it zoomed on images like a Firefox or Chrome (and presumably other browsers) do, rather than how most image viewers do it (open up a large image in your browser, and then open up the same image in an image viewer to see what I mean). We could then add features from other media players -- offer information like the Wikipedia page; for music, you would also offer an artist bio, song lyrics, a video on Youtube, suggestions from Last.fm, Last.fm page; for videos you could offer an IMDb page if one exists; for photos you could search TinEye. You would have a pane at the bottom of the screen that displays that information. Look at banshee for what I mean.
it can be hard to think of things to say. But I know what you mean about prog. Of all the internet programming discussion places or mediums, this is the most fanboy free place to talk about programming I've found. If a feature in language X sucks, we'll come to a unanimous conclusion that is sucks. We don't have a mob of people trying to justify it and attacking people criticizing it.
The things you want likely already exist. Have you tried any other media players? I prefer mplayer on linux for the keyboard controls, although it can be a bit buggy at times.
/a/ has their cripple dating sim that's taken years... to avoid that quagmire, we just make a side-scrolling, smash-em-up engine and a few sample levels then let the autists on the other boards provide their own art/sound assets and basic scripts to make a near-infinite number of levels. ZOMG Original Content!
It could be a non-trivial project worthy of some collaboration, and most importantly NOT yet another distro/BBS/chat. Call it AssaultAnons or Fighting``Faggot''s or what have you.
I was thinking /prog/ could make a game too. It's something that most people will just get but there's plenty of other things we could make too.
Hmm, is there a website where people can contribute ideas for programming projects?
/prog/ could also write a book or two on programming. It could cover philosophy of programming, life style of the typical programmer, what makes an expert programmer, learning how to program, learning to speak multiple languages, picking up languages fast, etc. There's a lot of people here who have deep knowledge so that could also work.
Perhaps the biggest problem is that /prog/ isn't built around a platform with a lot of services, so it's up to us to set them up and create them. On that note, I have a spare dedicated server so I can host if anyone actually wants to be creative in 2012.
/prague/ can't keep one thread on-topic, let alone a fucking book on programming. Here's how the collaboration would begin: ''OK guize, what language do we use to teach?"
Incidentally, this is also where the collaboration breaks down and it devolves into just another flamefest. Perhaps I'm being too judgmental and people "serious" enough to get coordinated for a collab project wouldn't let it derail so easily. The book seems like it would suffer from the "bikeshed" problem, where every asshole on here has an uninformed opinion about what belongs in it. It'd really require a benevolent dictator/cabal to run well.
I'm more keen on the game idea, especially as a vehicle for original content. I don't know how many chantards would want to install something from a chan on their computers, so I guess it'd have to be web-based, which might turn a lot of [spoiler]/prog/[spoiler]riders off. Not sure, other thoughts besides me and David here?
the flame fest is the book, and a new chapter is written ery day.
Name:
Anonymous2011-12-27 22:55
>>54
>one thread
>which touhou would you niggersex
>25 blank posts
>next thread
>What are the kinds of computation models of "infinity bottles of beer on the wall" and what are the implications of various definitions of infinity to our approach to numbering and valuing?
>5-10 posts of PhD quality set theory explanations and shit
anyways, /3/ does communal projects every now and then. Someone sets up a ftp server, starts the thread with the ip address, and people make make updates, and post screen shots in the thread. It's a lot of fun to see. I'm not sure if programming would have the same type of feeling though. It seems less creative somehow, and may disorganized contributions might not work out as well as 3d modeling a scene.
Replace "set up FTP server" with "set up version control." Wouldn't a merge request be nearly the same if we were doing collaborative coding? Raptor knows /prog/riders would love to "code review" the everloving shit out of each other's contributions (good thread-fodder), and if it's a graphical project/game, linked screenshots.
sure it could be fun. programming takes so much time though. I'm not saying that 3D modeling is easy, but you can usually crank out something for fun in a couple hours or so. Programming takes days, although it can depend on what you are doing and what language you are using.
Name:
Anonymous2011-12-28 9:23
>>59
I THINK WE SHOULD USE C BECAUSE IT'S A VERY COMMON LANGUAGE
Im not sure how a this thread has evolved into a discussion about a game collaboration. Anyway, why not use what already is there, there are tons of engines for whatever one would need.
Instead of wasting time reinventing the wheel, why not get right to it?
I can't take someone who uses the word 'lulz' seriously. Sorry. Also I don't care because I'm not part of this wretched board anymore! You new /prog/riders need to figure this out on your own! Too bad all the competent people left and the only language you fuckers know is motherfucking bbcode.
>>49 /prog/ could also write a book or two on programming. I'm secretely writing a compsci book.
>>50 Here's how the collaboration would begin: ''OK guize, what language do we use to teach?"
Lambda calculus and Scheme, of course.
A book would be a better /prog/ project than a game, because of SICP.
>>65
I tried many times to leave, but I keep coming back, and hate myself for that.
>>67 But... SICP already exists.
SICP has its scope: being an introductory CS book. I was thinking of something more general and in-depth, ranging from lambda calculus and type theory to CPU design and DEPLOYING SUCCESSFUL ENTERPRISE JAVA APPLICATIONS (just kidding on the last one) But seriously, have you looked at this shit? http://wla.berkeley.edu/~cs61a/fa11/lectures/functions.html
Wait, that's FIOCP? It's worse than I thought. I mean, introducing assignment in the second example of the fourth subsection of the first section of the first chapter? They've already got SICP wrong.
What about this: every month, we have a competition for an implementation of McEliece and similar quantum cryptanalysis resistant cryptosystems. We all participate, write our own, and the winner gets nothing, but the world gets a fuckton of broken goppa code ciphers to work with.
>>62
Games are much more accessible than books, and cause much more reactivity in the person than movies.
On a side note, anyone like how in the SICP VN they null terminate your choices so you know to stop searching?
P.s. if you're willing to make an ogz importer for Irrlicht, or a good gpu accelerated camera system for Cube2 (theirs is shit), as well as a secondary weapons fire, bullet physics integration, and terraforming tools for the map editor, I would love you.
Name:
Anonymous2011-12-28 14:18
>>71
You can learn. Too much math never killed anyone.
If the goal is education, combining the two to make a game/book would be better than yet-another-programming-book. Don't deride it as "edutainment" - there's a lot to be said for the value of interactivity in learning something (eg. a language's REPL).
>>78 good idea, what open source engines should we use, or what open source games should we modify?
For one there is ID tech 4 that one could set up to function for most purposes and otherwise there shouldnt be any problems finding engines for other kinds of games.
The only question being what we really want to do.
I suggested a game earlier ITT mainly because I like the idea of other boards being able to make some OC out of it. If they can easily make customize it, they'll come up with fun/emergent shit we never dreamed of. Beyond that idea, I'm not married to any particular concept/genre/engine.
I think I chose to use a Battletoads/TMNT arcade/beat-em-up as the simplest example possible of customization. A user adds his own sprites to the game by throwing them in a directory, edits an ini-style text file to customize the item/enemy's stats and AI behavior (choosing from pre-defined ones). Levels could work similarly, with basic triggers.
Other styles of games I see working well for the OC crowd would be anything that lends itself to a simple level-editor, like platformers. Something like Super Mario Bros. has near-universal appeal and pretty simple mechanics - it's really about the variety of level designs. I'm sure they'd have tons of fun with that.
a scripting language could be useful for controlling the AI so that a user could write AI scripts without needing to know how to recompile the source, or maybe even incorporate level scripting using an actual programming language, instead of circuits of triggers.
Name:
Anonymous2011-12-28 20:35
Sure, just depends on the game.
If it's a beat-em-up, there isn't a whole lot of scripting possibility in the first place, so the ini-file idea I mentioned before could work and be dead-easy for users. Example:
That approach might go a long way for games that don't require much customization. If it were a tactical combat game, for example, unskilled users could still have ini-style options like rush-enemies, heal-allies, camp-high-terrain, whereas more skilled users could drop down into whatever scripting language and tweak the AI and give it a custom name for others to re-use later in their own ini-style files.
I'd hope that a modular, customizable game like that would wind up with an ever-growing library of assets from random contributors. So if VIPPER uploads his module with new AI scripts, Anonymous can use them in his module with new art/sfx. Copyright bullshit aside, it could really be a golden age of OC if there were a central collection of these assets (similar to the website for MIT's Scratch software where any user can get at the resources used to make a project - scratch.mit.edu).
Level design could be as simple as guitar-tab-style text files. Here's a simple platformer example that should look something like the start of world 1-1 of SMB1: [code]
A graphical map/level editor would be much better, obviously, and ...probably much easier to make (for a platformer). A beat-em-up level script could be even simpler: scroll this background, at location X spawn Y enemies, etc.
I'm with you on ini file scalability, but it's only an example. A level editor would be much better. The point remains that if you tell users they only need to learn $SCRIPTING_LANGUAGE to do something fun with your game, most of them will pass. The idea is to minimize work for them and maximize potential for OC, much like the imageboards have a low barrier to participation.
That's true. I keep on thinking about usability for me, and not necessarily for people that have little or no experience with programming. You could take it a step further, and get a GUI catalog data entry program for editing the ini file. I used one of these on a RTS in the past. It was fun and easy, although I was always frustrated by its limitations.
Heh, besides QBASIC, staredit.exe[0] was probably what got me into programming long before I started doing any study of the subject. It was nice in that you didn't have to know any syntax, because the app would only allow you to choose statements and then fill in the blanks. I suspect SC2's editor might be similar, but I haven't looked at the game. Customizing the AI was mostly impossible, but damn near everything else you could do.
I haven't really kept up with vidya scripting, so I'm sure there have been all kinds of improvements in usability since then. Any gamers here have a system they enjoy using?
>>86
TibEd for RA2 and YR made it almost infinitely easier than doing by hand.
I'll say on the flipside, for the original ra2.ini and ra2md.ini, they commented every damn section, even the stuff with "deprecated" code, so it was simple as shit to throw things at the engine and watch them go. Plus they had the insight to separate abilities, spawner effects, weapons, projectiles, warheads, etc, which could make for really fun things.
Name:
Anonymous2011-12-29 20:17
Another project for next year: More stories and lore.
Yeah, I used tibed for c&c tiberian sun. Fun times. My favorite thing was modifying the civilian RV to cause an asteroid cascade when it blew up, and then parking them so that chain reactions would occur and take out entire bases.
If interested in contributing to the collaborative game project discussed ITT, please see the thread dedicated to the topic: http://dis.4chan.org/read/prog/1325261542