Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
The Glumslinger
Sep 24, 2008

Coach Nagy, you want me to throw to WHAT side of the field?


Hair Elf

xzzy posted:

Only optimize when you find performance problems. Programmers loooove to get hung up on writing perfect code, but it's pretty rare that they actually need to.

Note that this doesn't justify writing terrible code. Your basic flow still needs to be well thought out or else you'll make refactoring a lot more difficult.

This.

As long as your code is good, it is good to go. Only start rewriting things if you have performance issues or the existing code is too limiting. Don't do it because you figured out a more clever algorithm

Adbot
ADBOT LOVES YOU

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?
Other Unity 3D folks: Is anyone else seeing a crash when you go to compress a big WAV/AIFF? It's hitting 100% of the time for me... really major bug, yet I can't find any reports of it happening for anyone else.

Anyone know of a work around?

(I can't use pre-compressed MP3s/OGGs, because those result in gaps in the music loop - the only apparent way to avoid it in Unity is to load in a WAV and let it do a no-gap trick itself)


EDIT: Ah hah, they had been saved with some goofy sample rate. 88200hz, weird.

Shalinor fucked around with this message at 23:24 on Jul 9, 2012

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
Does it let you loop a range of the sound? That would avoid the start/end artifact issues.

chglcu
May 17, 2007

I'm so bored with the USA.

Shalinor posted:

Other Unity 3D folks: Is anyone else seeing a crash when you go to compress a big WAV/AIFF? It's hitting 100% of the time for me... really major bug, yet I can't find any reports of it happening for anyone else.

Anyone know of a work around?

(I can't use pre-compressed MP3s/OGGs, because those result in gaps in the music loop - the only apparent way to avoid it in Unity is to load in a WAV and let it do a no-gap trick itself)


EDIT: Ah hah, they had been saved with some goofy sample rate. 88200hz, weird.

I thought OGG let you do gapless playback. Is it just some deficiency in Unity's player that prevents it?

Hubis
May 18, 2003

Boy, I wish we had one of those doomsday machines...

crazylakerfan posted:

This.

As long as your code is good, it is good to go. Only start rewriting things if you have performance issues or the existing code is too limiting. Don't do it because you figured out a more clever algorithm

Plan for robustness, fix for performance.

Mug
Apr 26, 2005
I am very much already thinking about how I will handle things "next time". Namely, my implementation of how entities perform graphical animations is terrible at the moment now that I'm having to animate things like doors and interface items rather than just people walking around, but it works and I will do things differently when it comes to another project.

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

prolecat posted:

I thought OGG let you do gapless playback. Is it just some deficiency in Unity's player that prevents it?
My understanding is that it's because Unity re-encodes anything you give it to certain device-specific formats. In iOS's case, it does an mp3.

... and no, you can't specify loop ranges. You can't even do randomized pitch variance without a bit of funky code. Despite being built atop FMOD, the audio engine in Unity kinda sucks. I hope that with Unity 4, they just, you know, actually expose FMOD for those of us that could just use it.

full point
Jan 21, 2006

I haven't used it, but I just checked and apparently someone has made an audio toolkit - and there's a free version:

http://u3d.as/content/clock-stone-software-gmb-h/audio-toolkit-free-version/2Bi

Features state "Many audio parameters, such as: random pitch & volume, delay, looping, etc."


If I had a need for this, I'd check it out (Asset Store is great, I love 2D Toolkit and NGUI).

xgalaxy
Jan 27, 2004
i write code
So, I tried to watch indie game the movie but it only has two audio channels...?
This is unwatchable for me because the sound is so quiet on my speaker setup.

Is there a different version somewhere?

Mug
Apr 26, 2005

xgalaxy posted:

So, I tried to watch indie game the movie but it only has two audio channels...?
This is unwatchable for me because the sound is so quiet on my speaker setup.

Is there a different version somewhere?

Did you buy the movie? There was like 4 versions to download on the site. Maybe one was surround?

Top Bunk Wanker
Jan 31, 2005

Top Trump Anger

Deki posted:

Edit: To rephrase this better, would it be better for me to go back and change non optimal, but working, code. Or would it be better to keep on working on new sections and optimize everything once it is all functionally complete.

Make it work, then make it work well.

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

full point posted:

If I had a need for this, I'd check it out (Asset Store is great, I love 2D Toolkit and NGUI).
NGUI has certainly completely changed how I view UI in Unity, so hey, maybe Audio Toolkit can change my opinion of audio. Will check it out, thanks.

Incidentally, I can also vouch for Enhanced Editor++'s coolness. The remember tool makes tweaking parameters during gameplay (and then saving them as the real parameters) totally viable and super simple.

General_Failure
Apr 17, 2005
Hi! I want to make game! I have this great idea and just nee someone to program it.

Kidding. I know how to do that poo poo. Even went to university for that. I do have a question right now that is causing me a little issue. It's part hardware, part software.

I'd really like to do something with voxels. Always thought they are awesome. no not like Minecraft's polygon cubes. VOXELS. Last year or something I got a pre loved nVidia 8800GTX so I could play with CUDA because the parallelism etc. appealed to me and I'd love to shove as much as I can into the GPU.

Now, I've started thinking about OpenCL because it actually allows the possibility of making an AMD version without much issue.

besides looking at code examples etc. I haven't even started on the CUDA stuff so there's no real lost time there.

Should I just forget about the whole CUDA thing and play with stuff friendlier to a wider market?

If anything did come of it, I'd probably release the first stuff as free downloads anyway.

I guess I'm asking would people have much of a problem with playing a game which is designed to take advantage of, and probably couldn't function without certain graphics chipsets?

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!
You should do something you enjoy doing, or it will never get done. Go with your idea.

chglcu
May 17, 2007

I'm so bored with the USA.

General_Failure posted:

I guess I'm asking would people have much of a problem with playing a game which is designed to take advantage of, and probably couldn't function without certain graphics chipsets?

Well, according to the Steam hardware survey, which is probably accurate enough for something like this, you'd be cutting out around 55% of potential players if you restricted it to NVIDIA. If for some reason, your game really took off, you'd be pissing off quite a few people. Definitely wouldn't do that with anything I intended to sell, but for a hobby project, it's your call. I'd personally try making things work with OpenCL just because of those numbers, though.

Edit: That said, I don't anything about the merits of OpenCL vs CUDA. It could be absolute poo poo for all I know. You'll need to do that reasearch before deciding.

Edit #2: Incidentally, that survey also shows why I wouldn't choose to make a game that required DirectX 10+ yet. A surprising number of people haven't upgraded from Windows XP.

chglcu fucked around with this message at 02:16 on Jul 11, 2012

Paniolo
Oct 9, 2007

Heads will roll.
DirectCompute would likely be the best option for a game. But you don't necessarily need a GPGPU framework for what you're trying to do anyway; I wrote a voxel terrain engine that runs entirely on the GPU and it just uses vertex, pixel, and geometry shaders:

https://www.youtube.com/watch?v=lKJk0C7xbXA

I put the source up on github, you're welcome to use it as a starting point or just for some ideas:

https://github.com/rengeln/nyx

General_Failure
Apr 17, 2005
Thanks for all the feedback.

Paniolo, I'm definitely going to have a look at that. I've got my own ideas on what I want to do but I like seeing other peoples solutions, especially the implementation like you did.

OpenCL seems like a better choice after some research. It's not like I'd be pushing top of the line hardware to its limits. More like taking advantage of a resource if it exists. Adding to that apparently it's possible to use OpenCL with Android using the NDK. CPU-centric I'm assuming.

Not going to touch DirectX. It just rules out too many people and platforms. Including myself. Closest thing I have to Windows is 7 starter on my netbook which never gets touched anyway because it's a linux dual boot setup, and the copy of XP x64 I run in a VM occasionally.

Crosscompiling to other OSes or even architectures isn't hard if it's planned in advance anyway.

It is indeed a case of doing what I enjoy and seeing if I can get some pocket money from it, at least for now. I'm out of practice. No denying that, but I don't think I've lost it.

Well, at least I've found a nice way of spreading the load out now.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
Apparently CRI ADX produced 50% more error in testing than IMA ADPCM despite taking more CPU to decode and taking up more space.

Middleware continues to baffle me.

Your Computer
Oct 3, 2008




Grimey Drawer


Finally doing some programming again, this time in C# using OpenTK. Loving it so far!
Got a very basic game loop and tile engine running, loading tilemap-textures and manually binding textures with OpenGL, etc.

One problem is that I really would like to learn more efficient ways of using OpenGL, but so far all the places I've seen have either been bad at explaining it or using a very different language (one of the pro/cons of OpenTK is it's seamless integration of OpenGL, which makes it more C#-ish but less similar to standard OGL.) Right there you can see I hover around a (capped) 60 FPS, but if I wanted to use tiles half as small it would bring me down to about 17 FPS max. Most probably because I'm using immediate mode.

Does anyone here have any experience in OpenTK, and/or would be willing to help me figure out VBOs or other, more efficient techniques?

The Glumslinger
Sep 24, 2008

Coach Nagy, you want me to throw to WHAT side of the field?


Hair Elf
I have been using quaternions to some extent for two years. Today I finally learned how to actually use them properly to do things. Why did none of my teachers ever mention these things :negative:

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
I'm not sure if anyone here actually needs intro videos, but I made a thing: An MPEG decoder library with zlib-style stream IO (no blocking!) and a dead easy API.

The only catch right now is it doesn't do YUV decode because you should be doing that in your shaders.

Unormal
Nov 16, 2004

Mod sass? This evening?! But the cakes aren't ready! THE CAKES!
Fun Shoe

OneEightHundred posted:

I'm not sure if anyone here actually needs intro videos, but I made a thing: An MPEG decoder library with zlib-style stream IO (no blocking!) and a dead easy API.

The only catch right now is it doesn't do YUV decode because you should be doing that in your shaders.

This is sweet. You should wrap it up as a unity extension and sell it on the unity asset store. (With a package of YUV shaders)

Question for people who actually make games. If I wanted to do like multi-piece sprite animations, is there some 'normal' animation file format that people use for boned animation (2d in particular)? Or is it just essentially a hand-rolled system every time?

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

Unormal posted:

Question for people who actually make games. If I wanted to do like multi-piece sprite animations, is there some 'normal' animation file format that people use for boned animation (2d in particular)? Or is it just essentially a hand-rolled system every time?
Depends on engine, but Spriter (of vaguely recent Kickstarter fame) looks pretty fantastic.

There's a similar tool for Unity 3D, available on the asset store, EDIT: called Smooth Moves ($75).

I gather a lot of people use Flash these days, too, and dump it as a standard sprite sheet. But I assume you're looking more for the bunch-of-solid-pieces-that-only-animate-at-joints approach.


... those aside, for me personally, I've always treated multi-part 2D animation as no different from skinned 3D animation. I build the assets in a 3D toolset (Maya in my case), export them as skinned animations, etc, it just so happens that the pieces are all flats oriented to face in a given direction / I never rotate them off-axis. I never had any call to get more involved than that.

It does, however, require that you can do the above. Not so bad if you're working with experienced artists a/o have one to ask questions of, and if you've got experience with / own the necessary tool, and if you've already got experience with 3D animations and a related codebase. If not... then you probably want to look at Spriter or similar.

Shalinor fucked around with this message at 23:14 on Jul 14, 2012

Unormal
Nov 16, 2004

Mod sass? This evening?! But the cakes aren't ready! THE CAKES!
Fun Shoe

Shalinor posted:

Depends on engine, but Spriter (of vaguely recent Kickstarter fame) looks pretty fantastic.

There's a similar tool for Unity 3D, available on the asset store, possibly free - will edit once I find it.

Yeah, I donated to Spriter and one of the developers is the brother of a good friend of mine, so maybe I'll go harass them about it and report on my findings... I was planning on digging into it, but wanted to see if there was some other more broadly accepted solution first.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

Unormal posted:

This is sweet. You should wrap it up as a unity extension and sell it on the unity asset store. (With a package of YUV shaders)
Sounds like as a C++ library, it'd only work with Pro, and Pro already supports movies.

Unormal
Nov 16, 2004

Mod sass? This evening?! But the cakes aren't ready! THE CAKES!
Fun Shoe

OneEightHundred posted:

Sounds like as a C++ library, it'd only work with Pro, and Pro already supports movies.

Yeah, but it requires Quicktime on Windows and is different on iOS and Android. Not sure how much work iOS and Android support would take to support all the platforms, but it'd be nice to have a slim embedded solution that wouldn't use extra components like Quicktime.

e: Oh actually maybe the playback doesn't take Quicktime, I guess it's re-encoding it to something or other via Quicktime? Yeah, I guess Ogg video format.

Unormal fucked around with this message at 00:15 on Jul 15, 2012

General_Failure
Apr 17, 2005
I know it's not saying much but I got my other half a 7" Android tablet. Just now I got it to display a couple of the Motodev / Eclipse code samples including the OpenGL surface one. Seeing that droid skinned polygon spinning away on the screen made me immensely happy.

Now I believe I'll order one of those tablets for myself. Just wanted to see something developed (I didn't touch the code, but you know what I mean) at home transferred via ADB and running on it before it was enough to give me a push. I don't dare use hers for that sort of thing because I'm going to be using native code and I don't want to accidentally clobber it.
I'm going to be stuck away from home for periods of time, and will have my netbook. In all honesty I think the dual core cortex a9 / dual mali 400 tablets probably have more grunt than my Aspire One for games. As I said earlier too I like to write things portable too so that could work for me.

I think I'll finish my 3D "engine" and make it portable to Android. In all fairness the so called engine is more of a GLUT based viewer. I love writing engine stuff but aren't fond of doing the graphics so it's intended as a bit of generic boilerplate that I can use to see what's going on in an invisible world.
Nothing unusual there. When I write something usually the output migrates from console output to perhaps a curses / equivalent text output to a GUI toolkit based spite output then something resembling the proper I/O.

I know that sounds like a lot of work but it isn't really with some carefully designed wrapper APIs. I'm happiest when my core programs have no concept of the world around them, which thinking about it is a little odd because I also love writing bare metal code too. Guess I like to keep things separate.

Sorry about the rambling. It's cold and I'm tired, but my mind is currently full of possibilities with this Android tablet.

Unormal
Nov 16, 2004

Mod sass? This evening?! But the cakes aren't ready! THE CAKES!
Fun Shoe

The biggest issue I see with writing native code for mobile apps is that it seems, to me, like the mobile device landscape is going to just be permanently berserk. I don't think it will ever settle down to either Android or iOS winning, and I think you're going to see an increasing number of competitive operating systems and OS variants (Kindle Fire, custom platforms like Ouya, etc) enter the field over the next decade. Before any single platform becomes dominant, something else will usurp it, but the old platforms will be around in huge numbers still.

It seems, from a practical standpoint, learning a cross-platform toolkit like UDK or Unity is the only real option for software development during the next phase of computing's life. We're never going to see a mono-platform environment like Windows+PC ever again, in my estimation.

If you just enjoy writing native code, though, more power to 'ya.

General_Failure
Apr 17, 2005

Unormal posted:

The biggest issue I see with writing native code for mobile apps is that it seems, to me, like the mobile device landscape is going to just be permanently berserk. I don't think it will ever settle down to either Android or iOS winning, and I think you're going to see an increasing number of competitive operating systems and OS variants (Kindle Fire, custom platforms like Ouya, etc) enter the field over the next decade. Before any single platform becomes dominant, something else will usurp it, but the old platforms will be around in huge numbers still.

It seems, from a practical standpoint, learning a cross-platform toolkit like UDK or Unity is the only real option for software development during the next phase of computing's life. We're never going to see a mono-platform environment like Windows+PC ever again, in my estimation.

If you just enjoy writing native code, though, more power to 'ya.

Well... it's more that I have always hated Java with a passion than anything else.

I'm not so convinced that there will be a divergence of mobile OSes. That's already happened. The hardware and software renaissance has passed, as it did for PC hardware in the '80s and early '90s. people just aren't interested in a platform that doesn't support application xyz these days, which is a shame because there are some truly kickass "fringe" OSes out there.

I won't even look sideways at Unity unless they stop being dicks about linux support. no matter what I'm starting from scratch again so anything free really appeals to me.

Previously I was going to have a crack at indy titles for Xbox 360, but there are a few of fatal flaws. It's near the end of it's life, needs a $99 annual fee, returns are pretty lovely, need Windows for a dev machine, and the really big one Australians don't have legit access to the indy game market because of our lovely censorship and content control laws
So, screw that essentially.

I doubt there is much of a market for Linux only games, but games which are cross-platform and have network play likewise are always popular because the Linux nerds can play with their MS faithful friends. As for MacOSX, I really couldn't give a poo poo. Perhaps if I could get a hackintosh running in a VM with hardware acceleration I would but beyond that it seems too much like effort.

Back to mobile devices. Android has really established itself as the MS Windows of the mobile world. Yes there are hardware variations to keep in mind, but that's no different to a PC. Only things like Google Play have this neat ability to say yea or nay on a program before the user tries to download it to their mobile device. Although I can say firsthand that system is far from infallible and needs a "I know what I'm doing. Leave me alone, dammit" option. For example I know for a fact GTA3 plays flawlessly on the tablet but play won't let me purchase it because it says it's incompatible. I could fix that by changing its model name to a Samsung Galaxy S2 but most people don't want to be hacking their shiny little device.
So these compatibility issues are a problem but not a major one.

Can't help but say that if PalmOS wasn't dead and buried because of all those super poor business decisions I'd be developing for that. It was an absolute dream to write programs for. Totally nonstandard entry point and main loop but it was an event driven OS and the APIs were so wonderfully consistent and powerful I could knock something up in a half hour using the device as a dev platform which had a basic engine, perfect drag and edge scrolling and a timed event loop.

Android gives me a loving headache which is compounded by Java, but it's a lucrative market currently, and I can bypass most of the bad bits by writing native and not really needing any of the Android GUI either. Plus that is a big step toward portability already.

I mean I might even just choose to keep plodding away in linux and then port later. It's a personal preference really. Might dust off some of the design docs for ideas I had. Some of them. One of them is essentially Terraria. I even have the engine partially written somewhere. this was pre-Terraria though. Like a lot of my designs, someone else did them during the not so hot periods where I couldn't do poo poo about anything. But I'm not bitter as such. It means that I've had more than a few ideas that work which is a very good thing. It's just a matter of finding one that hasn't been done yet.

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

General_Failure posted:

I won't even look sideways at Unity unless they stop being dicks about linux support.
As it happens, Unity 4 is adding linux support finally. Which is pretty darn cool.

I'm more or less with Unormal. Once upon a time, I sunk years into making an engine, and getting it up to where it could make a basic game - and even used it in a AAA prototype for a pitch at my first job - and it still lacked a toolset even a tenth as good as its contemporaries of the day. These days, I'm all about "whatever will let met hit the most platforms the fastest," which is quickly becoming Unity, UDK, Corona, etc.

I feel like the days of the basement coder making a custom engine for their games are kind of over, and that we're down to either you enjoy making tech (and make just tech / maaaaaybe get it big enough to be useful to other people / mostly do it for education and fun), or you enjoy making games/apps (and use existing tech that you can modify to suit). Even if the platforms don't continue to fracture, they're already fractured enough as to make it a giant pain.

EDIT:

General_Failure posted:

Yes if I want to do a currently competitive indie title it'd probably need to use a prefab engine. Doesn't mean that I don't like writing my own things from scratch.
Nothing at all wrong with that. There's people that dig higher level, and people that dig lower level. Then there's the intersections, where gameplay ideas aren't really compatible with generic lower level code if you want decent performance (ie. trying to do Minecraft-scale cellular automata in Unity would probably be a bad idea, unless your min-spec is quite high).

Shalinor fucked around with this message at 01:32 on Jul 15, 2012

General_Failure
Apr 17, 2005

Shalinor posted:

As it happens, Unity 4 is adding linux support finally. Which is pretty darn cool.

I'm more or less with Unormal. Once upon a time, I sunk years into making an engine, and getting it up to where it could make a basic game - and even used it in a AAA prototype for a pitch at my first job - and it still lacked a toolset even a tenth as good as its contemporaries of the day. These days, I'm all about "whatever will let met hit the most platforms the fastest," which is quickly becoming Unity, UDK, Corona, etc.

I feel like the days of the basement coder making a custom engine for their games are kind of over, and that we're down to either you enjoy making tech (and make just tech / maaaaaybe get it big enough to be useful to other people / mostly do it for education and fun), or you enjoy making games/apps (and use existing tech that you can modify to suit). Even if the platforms don't continue to fracture, they're already fractured enough as to make it a giant pain.

You have a point. It's the life cycle of any technology. Not just games. It applies to vehicles, electronics, well all sorts of things really. It starts out where anyone can make a difference or a large advance. Then it starts requiring specialty skills, then groups, then delegation to smaller specialty groups etc. until an individual can't do anything remotely up to the current status quo of the technology.
I can work with electronics not a problem. I can't do much to a SMD SoC based board but I can fix an Apple 2 and design my own circuits from scratch. I couldn't design a modern F1 race car, but I can (and did) rework my old VW to take advantage of available parts. What's that saying... Any technology once advanced enough appears to be magic. or something like that.

Yes if I want to do a currently competitive indie title it'd probably need to use a prefab engine. Doesn't mean that I don't like writing my own things from scratch. Been wanting to knock out a few fairly original ideas for years that I don't think current engines would be able to do without modification, so even if they are just for me and not polished I'd be happy to give them a shot.

edit: Forgot to say, that Unity 4 news is good! Now if KSP would migrate I'd be happy, and in a bottomless pit of lost time.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
Regarding mobile being "berserk": Technology tends to converge on a small number of platforms unless there is a drat good reason for there to be multiple of them. Right now, the mobile situation is really toxic because despite the similarity of the devices to users, development on them could not be more disparate, which is resulting in a lot of exclusives.

It's only a matter of time before this causes one of them to develop an app ecosystem that overwhelms the rest.

Shalinor posted:

I feel like the days of the basement coder making a custom engine for their games are kind of over, and that we're down to either you enjoy making tech (and make just tech / maaaaaybe get it big enough to be useful to other people / mostly do it for education and fun), or you enjoy making games/apps (and use existing tech that you can modify to suit). Even if the platforms don't continue to fracture, they're already fractured enough as to make it a giant pain.
Sort of, sort of not. It's hard to say whether stuff like XNA fits this profile for instance, because it does quite a bit by itself, but it's still just boilerplate and you still have to effectively make an "engine" out of it. That much has been doing well, there are a fairly modular things you can plug together and get a library.

I really wish it wasn't the case, but the main problem with making tech right now is that there are huge gaps in stuff that you'd probably want to piece together for it, and it's more due to lack of interest than feasibility. The state of level editors for example, outside of commercial products, is absolutely dire. Scripting was in really sorry shape until Lua was created. Content authoring still leaves much to be desired.

I wish it was more like the commercial landscape where there's middleware that can do practically anything, but apparently everyone wants to make rendering tech and nobody wants to make the things that haven't advanced in 10 years.

OneEightHundred fucked around with this message at 04:53 on Jul 15, 2012

Unormal
Nov 16, 2004

Mod sass? This evening?! But the cakes aren't ready! THE CAKES!
Fun Shoe

OneEightHundred posted:

Regarding mobile being "berserk": Technology tends to converge on a small number of platforms unless there is a drat good reason for there to be multiple of them. Right now, the mobile situation is really toxic because despite the similarity of the devices to users, development on them could not be more disparate, which is resulting in a lot of exclusives.

It's only a matter of time before this causes one of them to develop an app ecosystem that overwhelms the rest.

Historically, this has been true but my opinion is that this has changed as the general speed of technological innovation and software development continues to increase. The side effect of that is that we're going to be moving into a time where innovation is going to outpace the ability of the market to converge on a single platform like that.

Just as one example, look at web browsers. For awhile browsers would converge on one or another, first mosaic, then netscape, then IE, but as development pace sped up, there's so many competing browsers, each leapfrogging each other in speed and feature support, that even the dominant player only holds a fraction of the market.




I could certainly be wrong, but I feel like we're in the middle of a sea change in the way computing platforms develop and mature.

Certain supported standards will converge (Blu ray, SOAP, OpenGL, etc), but actual platforms are going to be increasingly fragmented. I really don't think we're ever going back to monolithic platform bases ever again.

Unormal fucked around with this message at 05:12 on Jul 15, 2012

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
It's a very different story when you're dealing with a product that is attempting to conform to a standard. Firefox doesn't have to convince IE users to abandon every site that works in IE, most of its value is in just being compliant and users can flow pretty easily between them because the thing they're most interested in is available in all of them.

Mobile development on the other hand doesn't even happen in the same language for the 3 major platforms.

OneEightHundred fucked around with this message at 05:29 on Jul 15, 2012

General_Failure
Apr 17, 2005

OneEightHundred posted:


Mobile development on the other hand doesn't even happen in the same language for the 3 major platforms.

qft. That's the big problem here. My friend went from being an in-house PSP developer to being a founder of a company that specializes in iOS stuff. He's doing well but still finds some things utterly infuriating with obj-C and with all the weird restraints Apple has put on their software. No VMs, seriously? That really fucks portability straight off. Has The Sims been released for iOS? I have no idea. If it has, I have to wonder how.

The language issue is big. but Android has options. besides Java via Dalvik, I've seen C/C++, OpenCL (Still C but an older standard for some of the stuff), Pascal and Lua. I have no doubt there are others too.

the comment about scripting is really apt too. It gave me the shits and I'd tend to write a C or Pascal program instead of grappling with scripts. Lua seems okay enough given the first time I actually looked at it was a few days ago to play with ComputerCraft in MineCraft. However it just seems like another pointless halfway point language. It falls in between a few others in syntax and functionality. I suppose sacrifices had to be made in the syntax to allow for immediate mode, but surely that could be worked around?

I'd like to develop in C/C++ for Android because that way I can target a currently popular platform with the added bonus that the code isn't otherwise worthless. Like what the hell would I do with a heap of obj-C, or Java code after myself or the world have moved on? Not a whole lot. It's not really all that reusable.

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

General_Failure posted:

Like what the hell would I do with a heap of obj-C, or Java code after myself or the world have moved on? Not a whole lot. It's not really all that reusable.
But if you think about it, how often do you reuse C code from several years prior either?

General_Failure
Apr 17, 2005

roomforthetuna posted:

But if you think about it, how often do you reuse C code from several years prior either?

You'd be surprised. I'm at a bit of a disadvantage because most of my past work was destroyed, but besides device specific code there were quite a few helper libraries and other bits I'd written intentionally to be reusable like robust linked lists, specialised math libs, basic genetic algorithms, that sort of thing. No sense reinventing the wheel when I already have (or had rather) things I had made to suit my purposes to save a lot of time in writing and debugging.

Even that Lua script for minecraft I mentioned earlier. It's being rewritten into something less hardwired so I can extend on it. No better way to learn a language than by controlling a robot. That's because robots are awesome, real or otherwise.

dizzywhip
Dec 23, 2005

General_Failure posted:

You'd be surprised. I'm at a bit of a disadvantage because most of my past work was destroyed, but besides device specific code there were quite a few helper libraries and other bits I'd written intentionally to be reusable like robust linked lists, specialised math libs, basic genetic algorithms, that sort of thing. No sense reinventing the wheel when I already have (or had rather) things I had made to suit my purposes to save a lot of time in writing and debugging.

Even that Lua script for minecraft I mentioned earlier. It's being rewritten into something less hardwired so I can extend on it. No better way to learn a language than by controlling a robot. That's because robots are awesome, real or otherwise.

Since Objective-C is a superset of C you could just keep all of those libraries in C and maybe add a light Objective-C wrapper around them as necessary.

Unormal
Nov 16, 2004

Mod sass? This evening?! But the cakes aren't ready! THE CAKES!
Fun Shoe

OneEightHundred posted:

Mobile development on the other hand doesn't even happen in the same language for the 3 major platforms.

It does if you're working on a framework like Unity, UDK, or Monotouch. Utilizing an abstracting framework, I can do all of my development for all the major platforms in C#, and outsource the very specialized, and increasingly dynamic, platform-specific knowledge to subject matter experts at the engine-production company. That, plus the fact that there's (in my opinion) going to be MORE platforms in 10 years, not less, is the point I'm trying to make. [e: even if phones converge, there will be AR goggles, wacky 3d projection platforms, and whatever else the future holds, each arriving and being adopted faster than the last]

Like Shalinor, I spent many years writing bare-metal engines. I love doing it; but pragmatically, in a world of increasingly dynamic technical platforms, it's just no longer realistic to build your own engine if you want to reach a majority of your audience.

Adbot
ADBOT LOVES YOU

xgalaxy
Jan 27, 2004
i write code
For games dev you can do 99% of the project in C/C++ on both iOS and Android. And with the WinRT stuff on the new Microsoft devices they accept C/C++ as well now too albeit using DirectX though.

The rest is just platform specific boiler plate which quite frankly requires very little code to get working, and once it is, very reuseble across projects.

With WinRT, the hard part is going to be porting / abstracting your graphics layer to work with both OpenGL (for iOS and Android) and DirectX (WinRT). This can be difficult but it isn't impossible.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply