- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
You shouldn't have to do this. That's the point.
Admin
So? There's lots of things that one shouldn't have to do, but which end up being necessary anyway.
Admin
For how many years, meanwhile, we'll be able to do [something very obvious yet not implemented] in about two years?
Admin
Fun fact: Rust 1.2 just came out the other day, and it has full support for dynamically sized types now (main benefit: upcasting smart pointers).
I don't understand what you mean.Admin
That's how they see it.
Admin
Whenever someone says something will be done within the next two (or whatever number of) years, I sense a dèjá vu.
(Most notorious example has been for a long time Duke Nukem Forever)
Admin
Ah, that. Well, we'll see in two years.
Admin
This is the best snoofle story I've read for a long time.
Sadly my last job was a place not unlike this. I'm in South Africa and was contracted to a place called Multichoice. They are the satellite TV company here and are huge. I was employed as one of 15 people in two new SCRUM teams. All the developers were c# developers, but the work was mostly not c#. (We only found that out after we started.) And although business didn't know what they wanted, people could be fired for not delivering what was needed.
I didn't know it when I started, but this project, called Evolution, had already been going, with deadlines forever being extended, for three years. Multichoice makes billions, so they were getting away with it. The contracting company suckered me in by offering me R10 000 more per month than what I was asking.
Since we were all contractors, they had some legal leeway to fire people easily without worrying about the law, which only protects permanent employees in this country. They fired the whole other team of 8 people within three months of starting, and by the end of the year's contract I was the only original member left of my team. I was glad to get out of there.
Admin
Hah! Libraries are the #1 thing that attracts developers to a language. Yes, you can do virtually anything in almost any language (provided you can make OS calls and are theoretically Turing-complete) but hardly anyone wants to have pull themselves totally up by their bootstraps; that'd be a lot of work…
Admin
Admin
Sometimes you don't have a choice:
http://sdkdocs.roku.com/display/sdkdoc/BrightScript+Language+Reference
Admin
Oh, and just to be clear - Rust already has dozens of very functional and well-polished libraries for many different things. It just doesn't have any complex native GUI solution like Qt, WinForms, JavaFX etc. But it's just a matter of time. Yes, this is the single most important framework to have, but it's still just one framework.
Admin
Maybe. GUI toolkits are astonishingly complicated libraries, with very large amounts of asynchronous processing and a great deal of fiddly detail to get all the widgets to look and behave correctly.
Admin
Also, while reimplementing everything in pure Rust would take enormous effort, it's certainly doable in the long run, and in the mean time, a good wrapper for Qt or something else might pop up.
Admin
Isn't C/C++ code directly accessible for Rust? I mean, for Python you need wrappers like PyQT because there's no direct binding or it would take a lot of effort, but AFAIR Rust was built with this in mind.
Admin
Admin
Admin
Get coding then! If you think all the problems are solved, it won't hardly take you any time at all!
Admin
*adding project to my list of projects to do*
Admin
There, now you don't need that intern.
Admin
I piss just fine in a bucket and wipe my ass with a sea sponge. It's be better with a toilet and toilet paper, but it isn't that important.
Ok:
For game dev, an IDE is fucking essential. Like, if there were ANY branch of software development where it's essential, that's it. How do you even manage your content? Jesus.
If you know an IDE is better, why aren't you using one? "I know I'm using a worse solution because I keep using it because... shrug!" That makes no sense. Your brain is too fuzzy to even be building software at all.
If by "nice to have" you mean "FUCKING REQUIRED", then yes.
Any language where you have to use the word "pointer" to describe anything in it is a shitty language.
Admin
I sense you're trying to be sarcastic, but that is what happened with C++ and JavaScript (and Python 3 hasn't been very successful.)
C++ had the most important libraries in the 90s-- the ones that let you build hugely profitable GUI applications in Windows.
JavaScript is so lousy with libraries nobody can keep them straight. This site alone uses like 47 of them.
Admin
So it has everything except THE MOST IMPORTANT FUCKING THING FOR DEVELOPMENT.
Awesome.
Who's setting the priorities there at Rust Central? Mr. Magoo?
Admin
That's why you want to start early. You tackle the hard problems first, leave the easy problems to the open source numbnuts, since they're too incompetent to solve the hard ones anyway.
Admin
and it all will work in the game just fine. Of course a nice tool shortens development time and is more pleasant to work with, but it's very far from "fucking required".
Because?Admin
Admin
Actually, having something better than cobbled-together asset pipelines would be very nice -- the problem is that every game engine reinvents the asset management wheel in subtly different and square-ish ways, making it so that you can't really have a widely reusable integrated asset editing system in the same way you have an IDE. (You'd need a 3D editor with Blender-level scriptability to serve as a basis, first off, considering that you're dealing with a combination of artistic 3D modeling for characters and objects, something akin to BIM for indoor levels, heightmapping/terraforming for outdoor levels, and 2D image editing for textures and shader maps of various sorts. Never mind having to deal with audio assets....)
Do we have to sentence you to writing Windows drivers in assembler for the rest of your life or something?You seem to have no comprehension of the fact that at the end of the day, there has to be code that's compiled down to machine language for your computer to run, and that code is going to have to deal with memory addressing at some point in its lifetime.
Can we come up with a better way of expressing that in a high-level language than unrestricted pointers? Sure. But the underlying semantics of "this variable holds the address of something in memory" will not go away, and the ability to express that semantic in some way, shape, or form is one of the defining traits of a systems language (vs. an application or scripting language).
Admin
Admin
That's a valid approach as well; it depends on what route you wish to go down. I wonder if the whole "textures vs 3d objects" issue could be handled with some clever OLE-type trickery, even...
Which are exactly the applications that demand the most from a language's ability to go "down to the metal" and deal with the concepts the hardware provides. I agree that there are better ways to do it -- its just that we haven't found one that scores well for *both* memory-safety and power, yet. If you can come up with an abstraction over memory that is:I'd love to see it! (Rust is the closest I've seen, but it hasn't been pushed into enough applications yet for me to know if it can deal with those awkward cases, like memory-mapped I/O.)
Admin
You've never seen anybody in the game industry using Gamebryo, Torque, UnrealEd, Unity, CryEngine, IdTech, 4A, UbiArt Framework, etc, etc.
Nobody. Ever uses any of those tools. In the game industry.
Admin
Well duh.
It's just that 99.9% of code shouldn't be that. And right now, something like 50% of code is.
Admin
Admin
He's saying that your software probably isn't doing the JIT-ing. You're writing something that gets compiled, not compiling stuff or whatever. Probably.
Admin
I think the problem is your definition of "IDE", not the products I mentioned.
Do you think FlashBuilder is an IDE? Why/why not? Was it an IDE when it was Flash 8? Now you have me curious.
Admin
Huh? I can't even figure out how you got from what I typed to here...
I believe I understand exactly what he's talking about.
Admin
BTW - the very first example of "game IDE" you brought up, GameBryo engine, is a bunch of C++ libraries and several separate auxiliary applications like terrain editor or animation tool.
Okay, seems like I've got a little carried away and misread @tarunik's post. Sorry. I thought he was talking about that all code will eventually become assembly, while actually he meant that you need assembly to run any code other than assembly.Admin
... by you it is. Apparently.
I just consider it an environment for developing software which integrates several different tools to do so.
You know, exactly like the term "integrated development environment" implies.
I care not for what is popular.
Gamebryo is an interesting example because its IDE (Creation Kit) is 99% wrangling meta-data (physics, AI, stats, damage, etc) and content, and the "code text editor" part is completely underdeveloped to the point of "barely present".
You are correct that Gamebryo itself isn't an IDE; I meant to type Creation Kit.
Admin
Admin
I'm going to have to split the difference, here. Most Integrated Development Environments - including the much-maligned Emacs, if you want to called it one - are considerably more than just a programmer's editor (that's more the realm of Sublime Text, Scite, et al). They generally have features for organizing projects, including Make-style build management, multiple workspaces/projects; library managers; dependency managers; compiler option menus; resource file managers; macro recorders; plug-in systems for extensions; and so forth. Many, though not all, have visual UX development tools as well. No matter what you think of any particular IDE, you would have to agree that the difference between an IDE such as Visual Studio, Eclipse, NetBeans, QtBuilder, or MonoDevelop and a programmer's editor such as PyPE, Scite, Sublime Text, or Geany is considerable, even if there are some (Geany, Bluefish) that straddle the line between PE and IDE.
That having been said, I agree with Gaska that Game Construction Kits such as Torque are something different from a classic IDE. Their focus is generally on a very narrow area of development, and most of their tools are focused on the process of constructing the game UX; the programming tools are often an afterthought. A GCK may have much in common with an IDE, and like an IDE usually will incorporate a programmer's editor, but they are their own class of tools.
Again, I think you are both missing the point: that for *some* classes languages, specifically system languages, require the ability to access memory references at a relatively low level of abstraction, but that this ability is not required or desirable for general applications programming. Yes, a *better* abstraction than raw typed pointers should be found, but at the end of the day, certain types of programs need to access memory more or less directly, and raw typed pointers, for better or worse, is the most common way to do this right now.EDIT: Wait, :WTF: just happened? I must have hit the wrong button by mistake, this was supposed to go in a different thread.
bz - moved it here, where it seems to belong.
Admin
https://what.thedailywtf.com/t/the-coming-storm/50469/90?u=blakeyrat
It's an IDE whether or not people call it one.
Admin
I'm done.
Admin
So?
What in that sentence disqualifies Creation Kit from being an integrated development environment? It's an environment. It contains several tools all tightly-integrated. And its purpose is software development.
Admin
Admin
I've been considering a notion of pointer "kind" actually -- where that "kind" would be associated with a memory region. For instance, a pointer to code would be one "kind" (basically, a function pointer), while a pointer to static variables would be another "kind", and a pointer to some fixed address (such as a MMIO reg) would be yet another "kind", likewise for pointers to stack variables and pointers to dynamically allocated memory.
Admin
You are dealing with a person who thinks "it doesn't work the way I think it should" is the definition of "bug".
Admin
Have any of you noticed that @blakeyrat hasn't answered why languages with a word "pointer" anywhere in them or in their derivative works are inherently bad?
Admin
Yes. He's constitutionally incapable of admitting he's wrong, so when he shuts up on a topic, that's how you know he's at least realized he's wrong.
Admin
Blakey providing one of the only two instances of where he admitted he was slightly off the truth in 3... 2... 1...
Admin
I'll bet you a pendantry badge that he doesn't.
Admin
You're on. But only if him saying that he CBA to dig it up counts as my win.