[HN Gopher] Before the iPhone, I worked on a few games for what ...
___________________________________________________________________
Before the iPhone, I worked on a few games for what were called
"feature phones"
Author : tosh
Score : 483 points
Date : 2021-05-20 13:12 UTC (9 hours ago)
(HTM) web link (twitter.com)
(TXT) w3m dump (twitter.com)
| acdha wrote:
| I remember BREW but barely used more than the demos: we were in
| San Diego and Qualcomm was trying to get local developers
| interested. We had a few clients considering it but the terms we
| were getting were eye-watering: if memory serves, it was $50k or
| more _per carrier_ just to be listed for sale, plus a big chunk
| of the purchase price, and that was just a floor -- the carriers
| wanted to adjust up based on your perceived ability to pay. We
| had some household name clients but just having money didn't mean
| they would entertain the idea of adding so much fixed cost to the
| project just to see if it'd eventually become popular enough to
| break even.
| andrepd wrote:
| I had a blast spinning up J2ME Loader on my phone (it's on
| f-droid) and playing games I had on my Sony Ericsson W595 back in
| the day :)
|
| Worms, Zombie Infection, Sims, loads of Fishlab games, a silly
| GTA clone... Massive nostalgia hit
|
| I expected it just to be the nostalgia, but actually those games
| hold up pretty well especially considering the limitations of the
| platform! Certainly they are a breath of fresh air compared to
| the microtransaction/ads/spin-the-wheel/spyware - ridden games
| for mobile platforms today.
| shpongled wrote:
| I remember playing Orcs and Elves on an old flip phone! Such a
| fun title.
| [deleted]
| pizzabearman wrote:
| GC feels like this magic box. Does great things for you without
| having to worry about memory leaks, which is great. But like
| anything that is magical you give up some control. I guess it's a
| tradeoff
| eru wrote:
| Well, malloc and free are black boxes as well. And in typical
| implementations can potentially take arbitrary amounts of time
| to run, too. (Though they usually don't.)
| Agingcoder wrote:
| It depends on your allocator - ptmalloc, the default linux
| allocator - is open source, and there's plenty of very robust
| open allocators (jemalloc, mimalloc, tcmalloc, etc).
| Understanding how your allocator works can be very important
| in certain contexts.
|
| On windows I'd expect the default allocator to be a black
| box, but I might be wrong.
|
| For garbage collection I strongly recommend this book (on top
| of the source code of your gc if available!)
| https://gchandbook.org/
| MaulingMonkey wrote:
| > On windows I'd expect the default allocator to be a black
| box, but I might be wrong.
|
| The UCRT is at least "source available" on Windows, up to a
| point, and distributed with the Windows SDK. The release
| heap codepath is a bit boring: malloc:
| C:\Program Files (x86)\Windows
| Kits\10\Source\10.0.19041.0\ucrt\heap\malloc.cpp
| _malloc_base: C:\Program Files (x86)\Windows
| Kits\10\Source\10.0.19041.0\ucrt\heap\malloc_base.cpp
| HeapAlloc: (kernel32.dll alias for
| ntdll.dll!RtlAllocateHeap() on my machine)
|
| The debug codepath is a bit more interesting:
| malloc: C:\Program Files (x86)\Windows
| Kits\10\Source\10.0.19041.0\ucrt\heap\malloc.cpp
| _malloc_dbg: C:\Program Files (x86)\Windows
| Kits\10\Source\10.0.19041.0\ucrt\heap\debug_heap.cpp
| heap_alloc_dbg: C:\Program Files (x86)\Windows
| Kits\10\Source\10.0.19041.0\ucrt\heap\debug_heap.cpp
| heap_alloc_dbg_internal: C:\Program Files (x86)\Windows
| Kits\10\Source\10.0.19041.0\ucrt\heap\debug_heap.cpp
| HeapAlloc
|
| HeapAlloc itself is a bit more of a black box (AFAIK), and
| contains a lot of the fun details about the actual process
| of heap allocation - although there's a bunch of hooks,
| debug functions, documentation, articles, alternative
| implementations (ReactOS), etc.
| Agingcoder wrote:
| Thanks! I was wrong then.
| alex_smart wrote:
| Wouldn't the garbage collection for most common runtimes
| also be open source?
| MaulingMonkey wrote:
| Technically, but they tend to be much harder to hack on.
|
| It's trivial to replace malloc/free with
| my_malloc/my_free - and integrating libraries that
| replace malloc/free as-is without renaming also tends to
| be straightforward. In C++, you can overload new/delete
| to use my_* with little hassle, or placement new to
| instantiate classes on previously allocated memory
| directly.
|
| Meanwhile, C# and Java provide absolutely no means of
| creating instances of their classes via anything other
| than their built-in GCs. You can't just distribute a .exe
| or .jar with a replaced GC - instead, you need to
| create/distribute/install an entirely new runtime, and
| even that doesn't really provide any sane means of having
| multiple GCs living side by side. This is all
| theoretically technically possible, but orders of
| magnitude more work.
| pjmlp wrote:
| C# has structs and support for native heap management,
| and as of C# 9 very few features missing versus something
| like Modula-3 or even D.
|
| You can provide your own GC on .NET via the COM API.
|
| https://github.com/Potapy4/dotnet-
| coreclr/blob/master/Docume...
|
| Just like Java since version 10,
| https://medium.com/@unmeshvjoshi/writing-your-own-
| garbage-co...
| intsunny wrote:
| John Carmack writes:
|
| > Unlike most emulator projects, Kemulator turned out to be
| closed source abandonware
|
| It is amazing that in the past two decades most emulators
| transitioned from closed source closely guarded secrets to open
| sourced and often under a popular license.
|
| The preservation is unparalleled.
| meibo wrote:
| Mind that this doesn't mean that they are not commercialized -
| modern console emulators make a _lot_ of money on patreon(in
| some cases up to $80k a month) for "private builds" that can
| run certain games, especially newer ones, better, and online
| features in some cases.
| nexuist wrote:
| Which is how it should be, IMO - the base model is available
| to anyone for free. If you want extra features after using
| the base model, then a small donation to the developers for
| their time is a worthwhile tradeoff.
| kelnos wrote:
| The problem is that it then gives the developer weird
| incentives. If someone in the community decides to build
| the same feature that the main developer kept as a paid
| feature, then the main developer won't want to merge it
| into their version.
|
| Then you're stuck: the community member could certainly
| fork the project with their new feature, or maintain a
| patchset and forward-port to each new version of the
| original software, but both of those things are a ton of
| work.
|
| Meanwhile, users are the ones who lose out; someone decided
| to build the feature and give it away for free, but users
| have to jump through hoops to use it.
|
| As someone who has done a lot of open source work over the
| past ~20 years, I don't think anyone is entitled to find a
| business model in there. Sure, if you can find a way to
| work on your project full time but still support yourself,
| that's great. But often the ways people do so make for some
| (IMO) bad trade offs and perverse incentives.
|
| I like the dual-licensing approach, where commercial users
| need to pay, but that's not workable for all projects.
| soylentgraham wrote:
| Or once the new feature is paid for... then release it.
| Someone has paid for your time (to develop the feature).
| They get their feature, (which they need enough to part
| with money), the community gets it too (whether they need
| it or not)
|
| It doesnt benefit from the massive scale revenue, but if
| it's paid for your time...
| selfhoster11 wrote:
| > The problem is that it then gives the developer weird
| incentives. If someone in the community decides to build
| the same feature that the main developer kept as a paid
| feature, then the main developer won't want to merge it
| into their version.
|
| See VirtualBox, and to some extent Chrome. For
| VirtualBox, I'm sure that the Extension Pack could be
| covered with an open-source effort by the community, and
| in the case of Chrome, their refusal to accept *BSD
| patches.
| renox wrote:
| I remember reading recently about a "Firefox bug" caused
| by a buggy "portability" patch of one of their
| dependencies.
|
| Accepting 'portability patch' isn't free..
| jbjbjbjb wrote:
| Could you give examples? I can't picture the use cases, I
| don't game often.
| Deathmax wrote:
| yuzu, a Switch emulator, had introduced network play
| support a while ago that was gated behind Patreon
| subscriptions but was subsequently removed. https://yuzu-
| emu.org/entry/yuzu-x-raptor/
|
| IIRC, for a while cemu (a Wii U emulator) had builds with
| support for Breath of the Wild gated behind Patreon early
| access as well.
| BEEdwards wrote:
| It wasn't so much that builds with support for it were
| behind paywall, more that the latest build which
| supported BOTW more were.
|
| BOTW would still play just worse, then they'd release the
| next version on patreon and make the last one free.
|
| Now it just runs well.
| jonny_eh wrote:
| One I'm aware of is: https://www.patreon.com/rileytestut
| DistressedDrone wrote:
| It surprises me the number of people who thought they could
| make money selling emulators, in what is and has always been
| almost exclusively dedicated to piracy.
| pjmlp wrote:
| Not at all, emulators are also a way to keep old games alive.
|
| Like still being able to watch that old VHS movie on BluRay
| HD, or listening to Swing records from 1920 in 2021.
| wtetzner wrote:
| They're also a way to help developers write new games for
| old platforms.
| scraft wrote:
| It surprises me that people think that it isn't possible to
| make money selling emulators.
|
| https://play.google.com/store/apps/details?id=com.dsemu.dras.
| ..
|
| Over one million downloads, price PS4.99
|
| ;)
| DistressedDrone wrote:
| You got me there! It shows the kind of market that can
| emerge when piracy is less practical than purchasing the
| software.
|
| My point still stands though for emulators on PC where I
| believe software piracy remains popular.
| cat199 wrote:
| There are, "and always have been" commercial emulators for
| keeping old software running when the original system no
| longer exists (PDP, VAX, etc)
| neurostimulant wrote:
| Well, I remember the moment No Cash suddenly had some cash
| after making the latest version of his popular emulator paid-
| only.
| renrutal wrote:
| Well, some emulator devs are making huge sums of money
| nowadays in "donations"/crowdfunding, to much chagrin of
| others in the emudev scene.
|
| It seems they got the business model right this time.
| newman8r wrote:
| 3dSen seems to have done a decent job monetizing - but they
| added a lot of value.
| bennysomething wrote:
| I pretty much only play emulators these days as having a load
| of consoles and cables under my TV is a pain in the ass.
|
| I recently paid five dollars for redream Dreamcast emulator.
| Totally worth it. There's a free version that doesn't run hi
| Res and that's fine.
| mkw2k wrote:
| The premium Redream is definitely worth the $
| amalcon wrote:
| I'm sure that Nintendo's Virtual Console emulator series has
| made them quite a bit of money.
| thaumasiotes wrote:
| Well, they stopped doing it, so perhaps not.
| ascagnel_ wrote:
| They don't offer emulated games as standalone purchases
| anymore (and, frankly, the idea that they charged
| repeatedly for games is insane to me) -- instead, now
| it's tied to the Switch Online subscription service.
| jefft255 wrote:
| The library of retro games on Switch Online is laughably
| small and is one of my biggest gripe with the Switch
| compared to the Wii (U).
| thaumasiotes wrote:
| > and, frankly, the idea that they charged repeatedly for
| games is insane to me
|
| I've been curious whether Switch libraries will follow
| you to whatever the next Nintendo console is. They
| haven't done that in the past, but online purchases might
| be so common now that they can no longer get away with
| not doing it.
| AnIdiotOnTheNet wrote:
| I will admit to paying for Bleem! in the long long ago. I
| still have the CD. Frankly, it was pretty damned amazing.
| crtasm wrote:
| Did burned game CDs work with Bleem? I assumed it made some
| check for an official disc.
| tombert wrote:
| I never had the PC version of Bleem, but I can confirm
| that a burned copy of Metal Gear Solid worked for the
| Bleemcast port of it.
|
| My parents wouldn't let me buy M-rated games, so the
| easiest way for me to play MGS was on my Dreamcast with a
| copy of Bleemcast that I found used at Gamestop for four
| dollars with a pirated copy of the game.
| AnIdiotOnTheNet wrote:
| I'm afraid I don't recall. I feel like it probably did if
| it was possible, as a defense against being called a
| piracy tool, but I'm not sure if there was any way for a
| consumer CDROM to check for the wobble groove. I owned a
| PlayStation and official games so I only recall using
| those.
|
| P.S.: Some googling suggests that it played "backups"
| just fine.
| tmccrary55 wrote:
| The CD Key
| someperson wrote:
| Your comment is completely wrong. There is a cottage industry
| of emulation developers funding their development through
| Patreon. There is a huge number of emulation enthusiasts who
| are adults with high levels of disposable income willing to
| fund the development of emulators they enjoy using. Some of
| the larger emulators get tens thousands of dollars per month
| on Patreon.
|
| Checkout the following links:
|
| https://www.patreon.com/yuzuteam
|
| https://www.patreon.com/cemu
| tylerhou wrote:
| They are not completely wrong. Crowdfunding a product is
| not the same as purchasing that product because often
| people only decide to donate _because_ the resulting
| product is free. (For example, I give $5 a month to
| Lichess, but I am unwilling to pay for a Chess.com
| subscription.)
| tinus_hn wrote:
| Strange, if the software expects this little memory wouldn't it
| be better to just limit the JVM to less memory?
| MaxBarraclough wrote:
| mukesh610 had the same thought. [0] I think papercrane's
| response is correct: it makes more sense to disable explicit
| GC. Running a full GC cycle every frame is going to severely
| undermine a modern generational garbage collector. Disabling
| explicit GC, and using a modern low-pause GC, seems like the
| way to go.
|
| [0] https://news.ycombinator.com/item?id=27222631
| ezoe wrote:
| Invoking GC on every frame has different performance
| characteristic on old feature phone and modern PC.
|
| Reminds me of a technical document of Doom 3 BFG edition.
|
| https://fabiensanglard.net/doom3_documentation/DOOM-3-BFG-Te...
|
| In 2004, it was a best practice to keep data on memory. in 2012,
| CPU and GPU performance was increased a lot but memory
| performance wasn't increased much so calculating the necessary
| data on demand is faster than keeping it on memory and retrieving
| it.
| kmeisthax wrote:
| Also reminds me of all those framerate pacing hacks people put
| into old Flash movies. They literally spin in a loop until the
| current time advances to the next frame. AFAIK Ruffle
| explicitly pads out the time scripts see just to defeat this
| particular coding antipattern.
| mbb70 wrote:
| Had the same fix to a wildly different situation. A long running
| Spark job that accepts 100s of jars and runs 1000s of stages over
| its lifetime was having intermittent massive GC pauses. Too
| intermittent as it happens, practically periodic. Turns out Spark
| runs System.GC() every 30 minutes by default. DisableExplicitGC
| fixed everything right up.
| SNosTrAnDbLe wrote:
| I used Qualcomm brew in grad school to create an accelerometer
| based app to detect falls for senior people. I remember the first
| time it detected a simulated fall !! I was new to such
| sophisticated phones and it felt like an amazing achievement. I
| remember talking to a Qualcomm engineer who helped me with the
| internal API and the whole setup. Fun times!!
| ingenieroariel wrote:
| I worked on a J2ME app that needed to access location on phones
| without GPS, I was in touch with the operator and got a list of
| cell ids with lat, lon.
|
| With that I created a daemon in Symbian that would query the cell
| id and open up a socket server to give it to the J2ME app.
|
| With that we developed an app to request a taxi service, but none
| of the taxi companies wanted it. Some of the complaints were:
|
| 1. GPRS data plans were too expensive for end users 2. No one
| would put an expensive Sony Ericsson touch phone on a windshield,
| the windshield would be broken by thieves to steal it. 3. Looking
| at a screen on the windshield while driving was never going to be
| approved by authorities.
| [deleted]
| umeshunni wrote:
| To be fair, all 3 of those are valid complaints.
|
| #1 was true all the way till ~10 years ago when 3G became
| popular.
|
| #2 is still true is most 'urban' areas. People just take their
| phones with them when they get out of their cars.
|
| #3 is interesting - I think some regions had tried to ban
| mounting phones on the dashboard, but at this point, they must
| have given up
| zepearl wrote:
| Confirming #2: I live in Switzerland (low crime rate etc...)
| but I would not even dream of leaving my phone visible in the
| car.
|
| Btw. in the 90' I used to detach each-single-time that I
| parked the car the front panel of the car's radio to then
| carry it with me (leaving the storage box in front of the
| passenger seat open, to show that I didn't just put it in
| there) to discourage people from breaking into the car to
| extract the radio (front panel & main car radio were
| individually coded to only work together, that's at least
| what I believed).
|
| What a silly thing to do, hehe, but to be fair the price of a
| fancy radio at that time was similar to today's phones
| ("Pioneer" and "Sony" were high on my list - some models had
| quite complex display animations/colors/equalizers/etc &
| sound modes).
| zerocrates wrote:
| The detachable faceplate for anti-theft reasons was (is?) a
| very common feature for aftermarket radios/head-
| units/whatever in the US. Built-in ones have just
| increasingly moved to not being a discrete, accessible,
| interchangeable component, another way around.
|
| I still remember when my dad had bought an aftermarket
| tape-deck-only radio, a Sony I believe, well into the era
| of the ubiquitous CD player (he just wanted a working tape
| deck). Someone broke into the car at some point and stole
| it and I can only assume they were very disappointed after
| looking closer.
| grishka wrote:
| > a daemon in Symbian that would query the cell id and open up
| a socket server to give it to the J2ME app
|
| Why not just make the entire app native in Symbian if you
| require it anyway? Or did the Symbian SDK suck even more than I
| remember?
| jazzsax wrote:
| what product was this?
| mwcampbell wrote:
| > 3. Looking at a screen on the windshield while driving was
| never going to be approved by authorities.
|
| The solution to that seems so obvious: make the phone speak to
| the driver instead. Was turn-by-turn navigation not feasible
| back then? Or what else am I missing?
| blakes wrote:
| Back in the before times, taxi drivers knew how to navigate a
| city just by memory. Give them an address and they'd probably
| know how to find it.
|
| Most likely this app was not navigation. Remember, feature
| phone, probably had less than a couple hundred MB of memory
| for the entire device. I assume the app would just give the
| taxi driver address details and what not.
| jmkb wrote:
| Dispatch knowing drivers' locations in realtime would have
| made this a killer app imo. Car services used to assign
| pickups based on drivers reporting their location by radio.
| mwcampbell wrote:
| Oh, even easier then; the phone would just have to read the
| address aloud. Symbian phones were able to run text-to-
| speech as far back as 2002; my best friend is blind and
| used a Nokia phone with a screen reader back then.
| surfsvammel wrote:
| This is me guessing: This sounds like before turn-by-turn
| navigation was possible. If they had to approximate location
| via a set list of cell ids, then that doesn't give very
| precise location data. Also, back then, I am guessing, there
| where not as good map data available, especially not that
| would fit in a phone. I would also think that this was before
| synthesised speech was really possible to do on a phone.
|
| The world is a different place today.
| asdff wrote:
| GPS navigation is 90s tech, though. I had garmin barking
| turns at me in the early 2000s same as siri today. In fact
| usually better reception than my cell phone if it was a
| clear day, since cell coverage is still terrible where you
| really need need it out in the boonies where gas stations
| are miles and miles apart.
| pbhjpbhj wrote:
| Devices like the Garmin [0] were chunky though, weren't
| they, like a few cm thick, even compared to phones of the
| times they were big. And to my [limited and shaky]
| recollection people had car mounted antennae for GPS (in
| the late 90s) because they worked poorly without it?
|
| The first retro-fittable GPS was in 1997, the Alpine
| CVA-1005 [1], which weighed >3kg and had a display of
| 26cm across; it connects for nav to a CDROM drive
| containing base unit [2]; here's the wiring diagram [3].
|
| [0] https://spectrum.ieee.org/consumer-
| electronics/gadgets/the-c... [1]
| https://ndrive.com/brief-history-gps-car-navigation/ a
| good review of early GPS [2]
| https://www.ebay.co.uk/itm/Alpine-NVA-N751A-Navigation-
| Syste... [3] https://elektrotanya.com/alpine_cva-1005_wir
| ing_diagram.pdf/...
| sithadmin wrote:
| GPS nav hasn't improved much since the 90s, but
| smartphone nav relying on multiple positioning methods
| has improved remarkably in even the past 5-6 years. It
| used to be neither a dedicated GPS device nor a
| smartphone could handle dense urban areas (where
| buildings cause satellite interference) if you were
| moving much faster than a pedestrian.
| excalibur wrote:
| True, but also your phone utilizes the same GPS signals.
| It's all about the maps. Your Garmin typically had maps
| for the whole country preloaded, your phone typically
| downloads them on the fly. So in the boonies your phone
| knows exactly where it is in terms of longitude and
| latitude, but hasn't a clue where anything else is.
| flir wrote:
| "Good idea but before it's time" crashed so many mobile
| startups pre-iPhone.
| asdff wrote:
| Point 2 and 3 are baffling to me. Garmins mounted on the
| windshield have been a thing in vehicles since the early 2000s
| at least.
| sneak wrote:
| A lot of people have entirely different perceptions of risk
| than actual risk exposure.
| tannhaeuser wrote:
| Can confirm. Had a Garmin/Palm handheld (iQue 3200 or sth)
| with Garmin mapping software for Windows to prepare/preload
| map tiles onto SD cards, plus a complex setup involving
| VirtualPC and NoMachine NX to make it run on my PowerBook.
| drewmol wrote:
| Regarding point 2: When I worked for a valet parking company
| not too many years ago it would astonish me how many people
| would 'remember' they must secure their GPS in the glove box,
| despite leaving much more expensive items like
| iphones/laptops/purses/wallets in plain sight strown around
| within their vehicle. They were an easy and common theft
| target at one time I guess .
| wearywanderer wrote:
| In 2009 somebody smashed my car's window to steal my
| garmin. Even if the GPS is worth little, they are worth
| hiding because thieves are morons who will smash your
| window for it anyway.
| awaaz wrote:
| Oh man, do I have fond memories of developing on feature phones!
|
| Started wayyy back in 2007, and was a cofounder of a startup that
| made popular J2ME games available for free to people by wrapping
| it in our proprietary ad serving software. We launched more or
| less the same time that AbMob did, invented more or less the same
| stack (ad delivery to mobile phones), but we focussed on the
| product (games) whereas they focussed on the platform (ad
| delivery). A few years later AdMob was acquired for mega $$$ by
| Google, whereas we just kind of limped along and died a slow,
| natural death! Many years later I discovered that my cofounder
| just let our 4 letter domain expire (www.hovr.com) and I think
| it's up for sale now :(
|
| Also remember developing games on the BREW platform by Qualcomm,
| circa 2005. Whereas I was in India which mostly had GSM J2ME
| phones, BREW was much more popular on North American CDMA
| handsets. I, along with a friend, developed one of the first
| real-time multiplayer games called Blingster Battle, which was on
| top of Verizon's charts for a brief period of time! Truly
| groundbreaking stuff at that time..
|
| The most amazing bit, though, was when we made some BREW apps
| around 2013. By then iOS and Android had firmly taken over the
| smartphone market, and all the cool kids were downloading
| apps/games on them. However there was a very significant portion
| of the market - primarily composed of the elderly - who were
| still hanging on to their old CDMA feature phones and were still
| interested in buying new apps. We made a couple of quiz types
| games, that actually generated a couple of thousand dollars in
| revenue every month till _last year_ , until Qualcomm finally
| pulled the plug on BREW!
| mukesh610 wrote:
| Is there any disadvantage to limiting the emulator's JVM heap
| size to match the original execution environment (in this case
| what seems to be 128k), instead of explicitly disabling GC?
| papercrane wrote:
| Ultimately it's just as complicated as disabling explicit GC
| calls, and since we have a lot more RAM to use now you'll get
| better performance if you just let Java have a bigger heap.
|
| To be clear as well, the flag he added doesn't explicitly
| disable GC, it disables asking for GC explicitly, e.g. it makes
| "System.gc()" a no-op. The JVM will still garbage collect when
| it's heuristics decide it should.
| chongli wrote:
| _Ultimately it 's just as complicated as disabling explicit
| GC calls, and since we have a lot more RAM to use now you'll
| get better performance if you just let Java have a bigger
| heap._
|
| Will you get better performance? Or will it end up using a
| large amount of memory and then having a long GC pause that
| causes your game to drop a frame every now and then?
| papercrane wrote:
| Every application is different, but I'd wager it would
| strictly be better. The current GC implementions are very
| good, especially ZGC for pause times, I'd be surprised if a
| j2me game had a max GC pause time over 1ms with ZGC.
| kaba0 wrote:
| The JVM heuristics are quite good, and the GCs are state-
| of-the-art and a beast, so I doubt you would have frame
| drops because of GC. More often than not you are better off
| not tuning the JVM.
| mraza007 wrote:
| Yesterday i just ordered myself a feature phone and now I see
| this tweet about game development on feature phones
|
| What a coincidence !!! Anyways has anyone still using feature
| phone, i would love to hear your experience
| yjftsjthsd-h wrote:
| What feature phones can get on modern networks? I thought LTE
| "needed" a smartphone for some reason
| jonny_eh wrote:
| https://www.thelightphone.com/
| mraza007 wrote:
| Nokia latest phones offer 4g I'm not sure about LTE but they
| do get the job done
| INTPenis wrote:
| No way. There are plenty of dumb phones. I never heard the
| term feature phone before but when I google it I see it
| described as dumb phones.
|
| I have a great Alcatel dumb phone with dual sims and NO OTHER
| FEATURES. :D That's exactly what you want from a dumb phone.
| It works just fine on any mobile network today in Sweden. It
| cost the equivalent of 24 USD.
| EarthLaunch wrote:
| I worked at a startup, Javaground [1], where we ported and
| developed games for J2ME phones. We had a room full of dressers
| full of all the different mobile phones of the day.
|
| Each phone had different implementation quirks, such as variable
| audio delay when playing a file, audio/image formats that were
| faster/slower, odd button events (some used press, some used
| ondown, some had no ondown, etc). A lot of our work was learning
| all of these quirks and implementing them into the automated
| porting platform.
|
| Then the iPhone came out and started to build momentum.
|
| I still have my old flip phone, the one with the least quirks,
| with some of our games on it.
|
| 1: https://en.wikipedia.org/wiki/Javaground
| meheleventyone wrote:
| My very first industry job was making J2ME games and oh my god
| does it still give me nightmares.
| pjmlp wrote:
| If you miss it, just try Android, contrary to Google
| arguments against J2ME, the fragmentation experience is kept
| unchanged.
| throwaway894345 wrote:
| Especially with respect to Bluetooth quirks. Every single
| phone has a different set of bugs in its bluetooth
| components, and none of those sets are remotely empty. In
| the end, we decided we could only afford to support the 5
| most popular models of the day and if you don't have that
| phone, then too bad for you.
| viraptor wrote:
| That one doesn't seem like purely on Android. I've never
| seen a device without Bluetooth bugs. The protocol is so
| complicated and implementation relies so much on chips
| that never get fixes that I'm surprised it works
| anywhere.
| throwaway894345 wrote:
| I wasn't criticizing _Android_ , I was criticizing
| _Android phones_. I 'm sure iPhone doesn't implement the
| protocol perfectly either, but we certainly observed
| fewer issues. Whether that's because our BT stack vendors
| did more testing with Apple devices or because Apple has
| fewer bugs or both, I'm not sure.
| grishka wrote:
| But then they still insist on removing the headphone
| jacks because "wireless is better".
| selfhoster11 wrote:
| Don't get me started on programming with BLE on Android.
| *shudders*
| throwaway894345 wrote:
| Our management kept asking us to fix these issues with
| software. We tried things like transparently rebooting
| our BT module and prompting the user to do common fixes
| (e.g., "turn your phone off and on again") but most of
| the time these wouldn't work, unsurprisingly.
| grishka wrote:
| It's gotten much much better in the modern times. Android
| 2.x would break your app in many spectacular ways, but
| Google has been steadily adding more coverage to its
| "compliance test suite" that a device must pass to be
| eligible for Play Services preinstall. On 4.x, there were
| some Chinese phones, like Xiaomi and Meizu, that meddled
| with notifications, action bars and list views, sometimes
| to the point of making your app crash, and I do remember
| having to work around them. But if you support Android
| 6.0+, like many new apps do these days, you don't have to
| worry much about device compatibility.
| moshmosh wrote:
| It's not as bad as it used to be. The "drawers full of
| devices", all terrible and broken in unique ways, gave me
| flashbacks to the Android 2.x days.
| m45t3r wrote:
| We have many more issues supporting multiple versions of
| iOS than supporting multiple versions of Android. But
| neither are not even close to the nightmare that was J2ME.
| pjmlp wrote:
| Another one that wasn't blessed with OEM deviations from
| AOSP.
| m45t3r wrote:
| We have "been blessed" with OEM deviations from AOSP (we
| have a big number of clients and most of them are using
| Android because of regional characteristics), but still
| we have way more issues with customers using out-dated
| iOS versions than users on those devices. For comparison,
| we have way more iOS issues than Android ones, even if
| Android is the vast majority of our user base (~70% of
| our customers).
|
| Anyway, even including those cases it is still very far
| from J2ME days.
| pjmlp wrote:
| - Bluetooth issues
|
| - Camera is hit and miss, even after the renewed API
|
| - Apps randomly killed on the background
|
| - Intents that don't launch as expected
|
| - NDK debugging that cannot attach to the server running
| on the device
|
| - Unstable GPGPU drivers
|
| - Keyboard handling
|
| - Perfectly working code that needs to be rewritten just
| because
|
| Yeah so much better than J2ME.
| m45t3r wrote:
| You know, even if you're right we still see much more
| issues in iOS. For example, a simple Xcode minor upgrade
| can randomly break some flows.
|
| > - Perfectly working code that needs to be rewritten
| just because
|
| This issue is much more frequently on iOS than Android,
| since iOS deprecates features much faster and there is no
| compatibility layer between versions.
| EvilEy3 wrote:
| > - Bluetooth issues
|
| Aren't they rewriting this thing in Rust?
|
| > - Camera is hit and miss, even after the renewed API
|
| Give it time. CameraX is already vastly better than what
| we had before.
|
| > - Apps randomly killed on the background
|
| Up to OEMs.
|
| > - Intents that don't launch as expected
|
| ?
|
| > - NDK debugging that cannot attach to the server
| running on the device
|
| Welp.
|
| > - Keyboard handling
|
| Fixed.
|
| > - Perfectly working code that needs to be rewritten
| just because
|
| ?
| pjmlp wrote:
| - Devices never see updates, other than a select few
| flagship models
|
| - It does not matter if the blame is on Google or OEMs,
| it is still fragmented
| SLWW wrote:
| > Java be like, "we are cross-platform" > mobile manufacturers,
| "hold my phone"
|
| The problem with cross-platform development in a nutshell.
| Still to this day writing an Android/iOS app using PCL code is
| a headache
| viraptor wrote:
| At least adapting to another private API was easier because
| the scope was pretty small. It's probably lost forever now,
| but I had a project which repacked jars to add a few wrapper
| classes to convert Nokia-specific j2me games to be compatible
| with my Siemens.
| tauntz wrote:
| Ah, it's nostalgia-a-clock. I worked on Skype for J2ME with a
| 3-4 person dev team. Custom UI kit, 128x128 screens, 128kb
| available memory and other fun limitations.. I think we re-
| wrote our text rendering/styling/wrapping code more times than
| there were actual releases of the app :)
|
| I honestly miss these times - it sparked so much creativity
| when one needed to achieve something in such a limited
| environment.
| Andrew_nenakhov wrote:
| Also that version of Skype was way better than this hot
| steaming pile of manure currently shipped by Microsoft.
| mgkimsal wrote:
| > I honestly miss these times - it sparked so much creativity
| when one needed to achieve something in such a limited
| environment.
|
| As someone from the c64/apple][/atari generation... it was
| constantly amazing to see how much people could push a single
| device. Lots of creativity, as you say. But... we seemed to
| hit a wall with the whole j2me-era of "just get creative to
| work around things!" mindset. Because, IIRC, there were
| dozens of different devices that all didn't work the same way
| - you'd have to get really creative to get things to work in
| 128k, but then do it again and again and again for each
| target device.
|
| There were millions of C64 units in people's hand in, say,
| 1986. And similar for Apple ][ units. You could be assured of
| a decent audience/sales/users if you ported to that platform,
| even if there was a lot of 'creativity' to deal with. The
| j2me device world always seemed a lot more fragmented to me
| (but maybe it wasn't?). But just saying "this runs on a java
| device" was different from distribution - allowing 'regular'
| people to get something in to a centralized
| store/distribution point seemed another big win for the
| iPhone world.
|
| EDIT: fwiw, this made me spend a few minutes in youtube
| looking at old c64 and apple and Atari demos. what people
| ended up doing with those devices - years after they were
| mainstream - is still crazy to me.
| TacticalCoder wrote:
| > fwiw, this made me spend a few minutes in youtube looking
| at old c64 and apple and Atari demos. what people ended up
| doing with those devices - years after they were mainstream
| - is still crazy to me.
|
| The craziest ever, to me, is the following in 256... bytes.
| Bytes (including the music ofc, which is the whole point).
|
| https://youtu.be/sWblpsLZ-O8
| usertrjx wrote:
| I worked with a few people from JG. I also worked on a bunch of
| J2me games. It was an interesting time to be in mobile.
| kwanbix wrote:
| Here: https://threadreaderapp.com/thread/1395089205986988043.html
| ineedasername wrote:
| I'm not sure that in the present day of massive teams and > $100
| million budgets that there's much room for new celebrity game
| developers to emerge on that scale. Pretty much every gamer knows
| who he is.
|
| Now, even the biggest breakthrough indie game with a 5 person dev
| team wouldn't become a household name. These days it's the
| studios themselves that get most of the credit. Which may only be
| fair: When there's 100+ people on a project, it's such a group
| effort that singling out a handful doesn't really represent the
| achievement.
| pie420 wrote:
| Cliff Bleszinski worked on $100M+ projects, Martin O'Donnell
| did, so did Notch. Definitely still possible.
| cm2012 wrote:
| ConcernedApe with StarDew valley has more revenue than any sega
| genesis game had back in the day.
| the_lonely_road wrote:
| I think you are right. The closest I can come to a modern
| example would be Darkest Dungeon (made by 2 people) and Slay
| the Spire/Stardew Valley (both made by single devs) however
| owing to your point I don't remember their names despite
| reading about them at least a few times. I would recognize John
| Carmacks face in a crowded room not to mention obviously
| unlikely to ever forget his name.
| IggleSniggle wrote:
| Now that you mention it, I know the names of a few of the
| roguelikes I play. I think part of this stems from it being
| the work of very small teams that ALSO do all their own game
| marketing, so your "representative" for the game is the
| creator themselves.
|
| Dwarf Fortress comes to mind, and I know it's made by Tarn
| and his brother, but I don't know their last name...but I
| guess it's not exactly modern.
|
| Similarly, Kyzrati/Josh Ge, of Cogmind & REXpaint fame, and
| pender/Brian Walker.
|
| To the point above about "who does the representing," even
| though I happen to know their names, I think of them by their
| monikers, pender and Kyzrati, not their real-world names.
| twright0 wrote:
| I believe Megacrit, which built Slay the Spire, is two
| people, Casey Yano and Anthony Giovannetti. But to the
| broader point I knew the name of the studio off the top of my
| head while I needed to look up the names of the individuals.
| sizediterable wrote:
| Toby Fox and Undertale also comes to mind
| m4rtink wrote:
| Dwarf Fortress?
| rblatz wrote:
| It's not as recent as it seems in my mind, but Notch is a
| relatively well known game dev. And in the younger crowd he may
| be even well known than Carmack.
| mcphage wrote:
| He hasn't really done much--or completed anything--since
| selling Minecraft. At one point, yes, I'd agree, but I don't
| think that is the case anymore.
| lostgame wrote:
| Notch ruined his popularity tho by being a total bigot and
| jerk. :/
| cryptoz wrote:
| https://en.wikipedia.org/wiki/Markus_Persson#Controversy
|
| He's said some truly awful things. It's too bad people are
| downvoting you - this is part of the story of gamedev.
| Carmack would never say these kinds of things. Persson did.
| One is a famous and well-known and loved developer, the
| other is relegated to parroting talking points of alt-
| right/Nazi discussion boards and does not associate much
| with the rest of society.
|
| Notch could have been more famous and well-loved than
| Carmack even, but his personality and hatred of minorities
| stopped that from happening.
| albrewer wrote:
| Ever since Mojang was sold to MS in 2014, I'd say his
| notoriety has dropped quite a bit. Most people that would
| have been familiar with him are now in their mid teens at the
| youngest.
| kllrnohj wrote:
| Even before Notch left I'd say others like Jeb or
| Dinnerbone were more commonly known in the Minecraft
| communities as they were more active in the community &
| posting about upcoming things.
|
| (then of course Notch went off the deep end and most
| communities rapidly began distancing themselves from
| him...)
| ineedasername wrote:
| And the fame associated with these names was only
| possible because they canes from a small indie group that
| broke through to the mainstream so massively successful
| that I can't think of any other example on that scale in
| the last decade.
|
| In the 90's and early 00's, many big names practically
| _were_ studio, the brand.
| kllrnohj wrote:
| There are definitely still "well known names" in the
| indie scene. They may not hit mainstream success, but
| there's for example there's some pretty well known
| members of the Factorio team in the Factorio community
| (kovarex & Klonan come to mind). There's people like
| Maddy Thorson of Towerfall & Celeste fame. If they decide
| to embrace it I imagine one of the very few people on the
| team behind Valheim would also fit this, but it doesn't
| seem like they are interested in that.
|
| There are still small indie groups that make breakout or
| successful games that hit mainstream awareness (Untitled
| Goose Game anyone?), but it seems like many prefer to use
| a company branded twitter than make their own name(s)
| public or just let the game stand on its own.
| omega3 wrote:
| It happened recently with Markus Persson and Jonathan Blow.
| klohto wrote:
| Jonathan is definitely not on the same scale as Notch. There
| is only a brief period where Jonathan was well known and
| mainly due to Indie Game: The Movie
| pjmlp wrote:
| Most people on AAA studios certainly know Jonathan, if
| nothing else for his contributions at GDC.
| ineedasername wrote:
| That wasn't a dev coming out of a major studio though, which
| is what I think is significantly harder these days. Notch got
| there only because it was a small indie team that hit a black
| swan event to hit the mainstream in a massive way, at the
| same time that it caught fire on YouTube with many current
| game streamers and channels having their roots in the early
| days of Minecraft videos.
|
| Had Minecraft come from a major studio, even hitting it just
| as big, I don't think we associate it nearly as much with
| particular devs, and I can't think of another indie hitting
| it like that in the last decade. But if big names do still
| emerge, I think it will be from small breakthrough indie
| teams.
| adamrezich wrote:
| well yeah there's less crucial core stuff to pioneer these days
| VRay wrote:
| nobody's figured out a UX for VR yet so far as I know
| adamrezich wrote:
| it's a much bigger problem space with lots of different
| ways to do things based on hardware capability etc.
| sumedh wrote:
| I guess you remember the names who make history. You remember
| the names of the astronauts who first went to the moon but no-
| one knows the names of the other people who went to the moon.
| blackoil wrote:
| Don't know about the person or his work/fame, but Brendan
| Greene is PlayerUnknown(PU) in PUBG.
| meheleventyone wrote:
| Fame in gaming has largely moved into "content creators". The
| most famous game developers are almost certainly YouTubers
| first and game developers second. There are some fairly big
| channels now that produce memey content about making games in
| nearly exactly the same way as people make memey content about
| Minecraft or Fortnite.
|
| People like danidev:
| https://www.youtube.com/channel/UCIabPXjvT5BVTxRDPCBBOOQ
| bluedino wrote:
| Related .plan update:
|
| http://fabiensanglard.net/fd_proxy/doom3/pdfs/johnc-plan_200...
| ricardobayes wrote:
| I tried running games from 2004 earlier this week and all failed
| in a spectacular fashion. I thought Windows was all about
| supporting legacy 32-bit applications.
| neurostimulant wrote:
| You might have better luck running those old games under Wine
| or Proton.
| jonny_eh wrote:
| There's a Windows version of Wine?
| galgalesh wrote:
| You might have more luck running them in Proton or Wine.
| practice9 wrote:
| Also ScummVM
| nicetryguy wrote:
| GC every frame? Jesus. Gamedevs jump though hoops to avoid it.
| __s wrote:
| Probably added after profiling on that system found that the GC
| pauses would fit within frame budget, whereas not running it
| every frame would have a long pause eventually drop frames
| jonny_eh wrote:
| This! If you GC every frame, you can almost guarantee that it
| runs fast enough to not cause a frame skip.
| kaba0 wrote:
| Only true for Java runtimes at the time. With modern JVMs
| with generational GCs, it is detrimental even. Profile it,
| and only let allocation rate increase to an acceptable
| level that can be reclaimed easily. Or nowadays one can use
| a low latency GC as well.
| zlynx wrote:
| Your other choices are:
|
| - Never GC via using object pools. This code is nastier than
| C++ because Java is not intended to be used this way.
|
| - GC whenever needed randomly. The game will just pause
| occasionally. Very annoying as a player.
|
| - Write the actual game in C++. Make a few JNI calls here and
| there. On feature phones I only remember this being possible
| for some vendor apps.
| kaba0 wrote:
| Depends on when. If we are talking about modern day JVM, than
| even the non-latency optimized default GC would have <10ms
| stop-the-world pauses for up to gigantic allocation rates,
| much less for the presumably minor one of a simple game. And
| then there are two latency optimized ones, Shenandoah and
| ZGC, with the latter having <1ms, meaning that your OS
| introduces more latency with thread switches.
|
| So I think writing a game while profiling allocation rates
| and paying a bit of attention to not spam new everywhere, one
| should get decent performance without any framedrops. At
| most, optimize the hot loops with primitives, arrays.
| banana_giraffe wrote:
| If these phones were still around, I'd imagine there'd be
| another option now:
|
| - Write your game in C++ and transpile it to Java using some
| fancy framework that dances around never using GC.
| kllrnohj wrote:
| You'd have to do something like allocate a single byte[]
| for everything you'll ever need, and reading & writing data
| would just be a constant tax since you can't just in-place
| cast that to an int or whatever. It wouldn't be very fun.
| zlynx wrote:
| But it would be transpiled so the programmer would never
| need to look at the very ugly stuff. The idea reminds me
| of the original asm.js
| kalleboo wrote:
| These phones had like 1 MB, 2 MB, 4 MB of RAM. And these were
| 3D-accelerated games running on them. A GC language was
| definitely the wrong choice for the platform, but J2ME was the
| industry standard because portable. So if you're allocating a
| dozen objects in a frame it's best to GC them in the same frame
| or you're going to lose tens of frames later.
|
| Even in modern times, for the longest time Android Java apps
| had laggy scrolling due to GC hitches that the refcounting iOS
| Obj-C apps avoided.
| pjmlp wrote:
| Refcounting has glitches as well.
| CodeArtisan wrote:
| These games are turn and grid based like Legend of Grimrock or
| Chess where input lag is much less important.
| joenathanone wrote:
| Imagine having John Carmack randomly contribute a patch to your
| project, pretty awesome stuff.
| fmax30 wrote:
| Would absolutely blow my mind, I would even merge it without
| multiple approves. :D And add a new contributors section in the
| readme with John Carmack at the top.
| Retr0spectrum wrote:
| John Carmack is awesome, but I find this level of deification
| (of any individual) kinda creepy - it just feels unhealthy.
| Would you like to be treated that way, in Carmack's position?
|
| I realize that your comment was likely made in jest, but it
| still bugs me.
| BTCOG wrote:
| Eh, well while I agree, he's far better than Bezos, Musk,
| or Zuckerberg COMBINED, and look at all the idolatry those
| guys receive.
|
| Purely in terms of a programmer. Things he's created.
|
| Everyone should be able to have heroes. You don't need to
| necessarily elevate them to the level of Gods, but John is
| very readily a video game real life hero.
| moosebear847 wrote:
| Interesting, yeah it's probably hard for a famous person to
| connect with you on a real level if you're busy groveling
| and kissing the ground they walk on.
| bombcar wrote:
| I think the joke is that you write a program, and someone
| well known like Carmack or Linus submits a minor patch, and
| you from then on say "Linus and I wrote ..."
| sharken wrote:
| Yeah it's all in good fun, kind of like you have the
| Chuck Norris memes.
| zdragnar wrote:
| If the attention bothered him, the simple solution is to
| create another account under an alias. I do it to keep the
| worlds apart, and I am not even famous.
|
| Given all that he has accomplished and the influence his
| work has had on multiple generations of computer and gaming
| nerds, I don't see the celebrity status as terribly
| unwarranted.
| Retr0spectrum wrote:
| So if people wish to be treated like normal human beings,
| they must hide behind pseudonyms?
|
| That may be the current reality of the situation, but it
| doesn't mean we have to keep it that way.
|
| I'm not saying he doesn't deserve his status, I'm just
| saying let's not get too fanatical about it.
| gmadsen wrote:
| fame and fame admiration is as old as civilization. And
| yes, using pseudonyms has been used for 100s of years for
| the same reason. You are complaining about something that
| is deeply human in nature.
|
| I don't think the comment was fanatical at all, it was a
| lighthearted joke.
| Retr0spectrum wrote:
| Just because it appeals to nature, doesn't make it good.
|
| While I agree it was likely lighthearted, that does not
| exempt it from criticism.
| abnercoimbre wrote:
| You've had several HN readers suggest your criticism is
| unwarranted. I agree as well. Seriously, nothing from the
| OP indicates anything fanatic or out of the ordinary.
| sbarre wrote:
| No one is doing pilgrimages to his house or stealing his
| garbage or following him around here..
|
| We're just acknowledging that he is an exceptional
| contributor to our industry, and that his work has
| inspired a TON of people.
|
| To have someone of that stature contribute to your
| project is exciting! There's nothing strange or creepy
| about that, and if people want to celebrate that in their
| own way like printing a Git commit or something,
| whatever!
|
| Imagine being an indie film director and having Kathryn
| Bigelow show up on set one day to give you some notes and
| feedback on your film. You might frame that piece of
| paper.
|
| Imagine being a local chef in a restaurant and having
| Julia Sedefdjian stop by for a meal and compliment your
| food. You might get a photo to keep on the wall in your
| kitchen..
|
| Nothing wrong with any of that, I think you are
| characterizing things to an unwarranted extreme here.
| Turing_Machine wrote:
| I wouldn't bet that it's "no one".
|
| Carmack, while not Cardi B or whoever, is famous enough
| that I'd bet he has at least a few extreme worshipers and
| extreme haters.
|
| That said, if Carmack contributed to one of my projects,
| yeah, I'd be sure to let people know that. :-)
| Retr0spectrum wrote:
| I don't take issue with anything listed in your comment.
| The comment I was originally replying to described:
|
| a) Bypassing their own code review processes.
|
| b) Creating a contributors list, just so they can put
| Carmack at the top of it (what about all the other
| contributors?!)
|
| IMHO this crosses a line. Not in a big way, but one
| worthy of comment.
| texasbigdata wrote:
| If he breaks something just go fix it. Would be a funny
| story.
| garbagetime wrote:
| Sure, it's a simple solution, but it comes at a cost.
| There are a lot of reasons to use one's own name when
| writing.
| Rolpa wrote:
| Something tells me Mr. Carmack himself wouldn't approve of
| such engineering practices, no?
| tmccrary55 wrote:
| I think I'd have to find at least one thing to have him
| fix, haha.
| fmax30 wrote:
| Of course, I made the comment in jest. But it certainly
| would be an honor for anyone nonetheless.
|
| (if it did happen for real the most I would do is print out
| the commit hash with his name next to it :D, because he is
| one of the people I look up to in CS, others being Knuth
| and Tarjan among others, I would do the same for them, but
| then again I don't think they are active open source
| contributors)
|
| Nonetheless, Carmack is still one of the most impactful
| programmer of the modern era.
| duxup wrote:
| I'd take a screenshot and hang it up on my wall like a trophy.
| ComodoHacker wrote:
| Worth introducing a bug that would annoy him enough. /s
| max_ wrote:
| I played my first games on my brother's Nokia 2600 C.
|
| I played titles like Assassin's Creed, and found them way mir
| entertaining than current smartphone titles.
| nanna wrote:
| Must be fun being related to John Carmack.
| corpMaverick wrote:
| Just a fun question. If you had a choice; would you rather be
| John Carmack or Tony Hawk?
| mikestew wrote:
| For the general case, it's going to be a lot easier when
| you're 80 years doing Carmack stuff than it will be Hawk
| stuff.
| morelisp wrote:
| 80? Tony thinks he recently did his last ever 540 - at
| "only" 53.
|
| https://twitter.com/tonyhawk/status/1372425655913123840
| typon wrote:
| Jim Keller. He looks like Tony Hawk but is technical like
| Carmack.
| diegoperini wrote:
| Amount of injuries Tony Hawk had to take to become this good
| is horrifying. That is enough for me make me choose John.
| lsllc wrote:
| I love the way John uses \ as a continuation character to the
| next tweet -- ever the C/C++ programmer!
| hnjst wrote:
| In the same vein I remember the first time I was able to use a
| phone to access "internet" from a computer. The "internet access"
| that the phone had to offer was called "WAP" and I was
| communicating with the phone via infrared (wireless \o/), you had
| to dial cabalistic symbols from the computer and to be really
| careful using their proxy to avoid sell-an-organ level out of
| plan charges.
|
| After that Android's deceptively straightforward tethering
| feature was almost saddening...
| Tijdreiziger wrote:
| > After that Android's deceptively straightforward tethering
| feature was almost saddening...
|
| Ha - you should've seen early iPhone tethering. Back in those
| days, net neutrality wasn't a legal right yet (at least here in
| the Netherlands), so the carriers would push a profile to your
| phone that disabled tethering. The solution, of course, was to
| jailbreak your phone and install a tweak that turned it back
| on.
| jdlyga wrote:
| I used to love WAP on my flip phone. It was perfect for
| scrolling through bash.org
| m4rtink wrote:
| I remember using infraport tethering from my Sony Ericsson 68i
| to my Palm Tungten T and it worked fine - good enough for ICQ,
| telnet and IIRC some lightweight webbrowsing. Also you could
| feel finally living the future. :)
|
| Even though I never did get a Sharp Zaurus in the end, I
| migrated directly from Palm TX Neoo FreeRunner and to Nokia
| N900 and the rest is history. And I'm running Sailfis OS on my
| Xperia X now. :)
| dgritsko wrote:
| "Well, we are programmers, we should be able to fix it."
|
| What an awesome "beginner's mind" perspective. It's too easy to
| write off a potential solution as difficult or impossible - but
| why not adopt this attitude, and at least try?
| EvilEy3 wrote:
| > It's too easy to write off a potential solution as difficult
| or impossible - but why not adopt this attitude, and at least
| try?
|
| You forgot the part where dude in question is a programming
| Jesus.
| draw_down wrote:
| Beginner's mind, you say.
| sharken wrote:
| Absolutely, and having 30+ years of troubleshooting experience
| on a wide range of hardware and software platforms also help :)
|
| It's very inspiring to read about a problem and having the
| solution explained as matter-of-factly as here.
| neurostimulant wrote:
| "it's either off by one error or caching problem" -- Carmack
| probably
| BEEdwards wrote:
| I really want to play the Doom RPGs again, I've never gotten them
| to work in emulator.
|
| Maybe I should try again with the GC off.
| ziggus wrote:
| So, the bytecode instrumentation as post-compilation functional
| modification tool is pretty interesting. More info here:
| https://blogs.sap.com/2016/03/09/java-bytecode-instrumentati....
|
| I wonder if there's any 'defense' against this kind of thing.
| stonemetal12 wrote:
| For as long as I can remember there has been the capability to
| sign jars. So you can detect tampering, though not prevent it.
| amelius wrote:
| > Before the iPhone, I worked on ...
|
| Did Carmack work on the iPhone? Or should I parse this
| differently?
| Narishma wrote:
| Working on the iPhone means writing apps for it.
| kevinmchugh wrote:
| Before the iPhone existed, there were feature phones, and
| Carmack wrote games for feature phones.
| Andrew_nenakhov wrote:
| I think this means that after the iPhone appeared, j2me phones
| went extinct.
| hulahoof wrote:
| Worst part about decent Feature Phone games was the device /
| carrier lock in.
|
| I was always upset as a massive FF7 fan that there was a
| canonical game only released for certain (one?) feature phones
| tied to a Japanese telecom, and despite my best efforts I was
| unable to obtain a phone with a copy of all episodes downloaded
| (though I did find some translated transcripts that I could read
| for the story).
|
| Very happy that it will now be included as a part of Ever Crisis.
| TechHypes wrote:
| <a href="https://www.techhypes.com/the-5-best-wireless-keyboard-
| in-20... article is very helpful</a>
| blt wrote:
| It blows my mind that a garbage collected language without
| aggregate value types was the language of choice for games on
| these tiny phones.
| tenebrisalietum wrote:
| Qualcomm MSM chipsets in feature phones probably all had ARM
| CPUs with the extensions that had the JVM acceleration
| instructions.
| sjansen wrote:
| It makes more sense if you lived through the marketing hype.
|
| I'd compare "Java as solution to everything" to the more recent
| "web scale" and "NoSQL" crazes, but with the backing of a PR
| firm instead of Internet echo chambers.
| marcodiego wrote:
| Two friends of mine used to work on projects that depended on
| BREW. Brazilian videogame console (zeebo) was also dependent on
| it. At the time they didn't spoke negatively about it. With my
| free software roots, I had a very negative view on proprietary
| platforms and dev tools.
|
| A few years forward, no zeebo game can be played on non-original
| hardware that is no longer manufactured for about a decade. These
| games will become unplayable and unsalvageable too. Although not
| spectacular, losing part of history is always a dent on culture
| preservation.
|
| Basically the same happens with the BREW software that won't run
| anywhere else and brew devices that simply became unusable
| because they require signatures.
|
| Locked down platforms should be regulated or laws should exist to
| force companies to open specifications after some time and
| release signatures.
| MaxBarraclough wrote:
| The chain all in one place, such that it's readable:
|
| > Before the iPhone existed, I worked on a few games for what
| were called "feature phones": Doom RPG 1&2, Orcs&Elves 1&2, and
| Wolfenstein RPG. Qualcomm's native-code BREW platform had better
| versions, but I haven't seen any emulators and archives for it,
| so they may be lost at this point. The J2ME (java mobile)
| versions are still floating around, and can be emulated.
|
| > My son wanted to get O&E2 running, so we set out on a little
| adventure. Kemulator ran the game, but audio was glitchy and it
| hung after you died in game. Well, we are programmers, we should
| be able to fix it. Unlike most emulator projects, Kemulator
| turned out to be closed source abandonware, so we moved over to
| freej2me, which is a live github project.
|
| > The hang didn't happen, but audio was even worse. Missing sound
| effects was a simple bug fix -- MIDI sounds weren't seeking to
| the start on replays. We will submit a patch. Still, everything
| was glitchy with audio underruns. We noticed that the emulator
| was taking an absurd amount of CPU, despite the game being built
| for <100 MHz mobile CPUs.
|
| > We spent a frustrating afternoon exploring java profiling
| tools, but finally, Flight Recorder and JDK Mission Control
| pointed out the root cause: explicitly invoked garbage
| collection. A vague memory of having to call system.GC() every
| frame to avoid problems on some mobile phones bubbled up. We
| couldn't change the source on the game, but the jvm has a handy
| option -XX:+DisableExplicitGC that fixed everything right up.
|
| > This is an interesting case where an operation is >10x slower
| on a modern computer.
|
| > A GC sweep on a phone with 128k of heap is a very different
| thing than a desktop with a multi-GB heap.
|
| > Some old writing about the early cell phone work:
| https://web.archive.org/web/20060502175605/http://www.armadi...
| ups101 wrote:
| You could also insert the Carmack'y "ah-ehm" between tweets :-)
| CodeGlitch wrote:
| I wish John would move over to a proper blogging site like
| medium, rather than a Frankenstein string of tweets.
|
| He has enough material to gain a good following.
| theandrewbailey wrote:
| He used to use Facebook for these things, back when he worked
| there.
| IvyMike wrote:
| Bring back .plan files!
| posharma wrote:
| Yes, I've wondered if there's any advantage to using twitter
| if you've to say something more than a single tweet. Is there
| any blocker to using good old blogs for this? There's no rule
| that a blog should be at least a page long; it can be short.
| brianberns wrote:
| Thank you. Twitter's user experience is the worst.
| [deleted]
| david422 wrote:
| Has someone written an extension to aggregate tweets into 1
| large tweet yet?
| iudqnolq wrote:
| nitter.com is an alternative ui that shows the whole thread
| on one page without needing js
| 0-_-0 wrote:
| For example:
|
| https://nitter.42l.fr/ID_AA_Carmack/status/13950892107097
| 866...
| RaoulP wrote:
| The correct link seems to be nitter.net
| iudqnolq wrote:
| Whoops
| leetrout wrote:
| Dunno about an extension but there are apps
|
| https://threadreaderapp.com/thread/1395089205986988043.html
| beaconstudios wrote:
| Yeah, @threadreaderapp
| bonoboTP wrote:
| The worst is when lots of people each reply "unroll
| thread!" to a thread. So much noise and junk.
| abnercoimbre wrote:
| It's unfortunate. I'm guessing it's because people need
| that dopamine hit of getting a notification, just for
| them.
| mestoslaw wrote:
| They are working on it
| ricardobayes wrote:
| Although there is no reason why he didn't post on say medium
| and post the link. He chose to use a 140-char-limit site to
| write a novel.
| judge2020 wrote:
| 280 now ;)
|
| But I'd rather him use Twitter than the centralized broken
| mess that is medium.
| genericone wrote:
| Better the centralized broken mess you know than the
| centralized broken mess you don't
| ComodoHacker wrote:
| Is it really Twitter or the habit to write everything there,
| even lengthy posts?
| ALittleLight wrote:
| It's interesting to think about why that habit exists. It
| seems like a low barrier to entry to me. If Carmack had
| wanted to post to Medium or something he would've had to
| write and edit the whole essay and get people to come read
| it.
|
| On Twitter Carmack posts a paragraph as it comes to him.
| Could do the whole thing at once. Could take days to
| complete the thread or longer. It could be as long as he
| wants. One tweet or one thousand. No real expectations of
| edits. No one would be surprised if it's only a three
| paragraph thought whereas going to read an essay that might
| feel a little brief. Nobody expects really profound or
| serious insight, just the thoughts on top of his head.
|
| Readers also have the same low barrier to entry. No need to
| go to a separate page or app. Look at the first or first n
| paragraphs. Scroll by anytime.
|
| The user experience for something like this may not be
| perfect on Twitter, but I think Twitter has a lot to
| recommend itself as the appropriate tool for sharing
| thoughts like this.
| UnpossibleJim wrote:
| Reading Carmack's thought to text style writing (a la
| Joyce's Ulysses) might be the only thing the get me to
| wade into the sess pool that is Twitter .... Holy crap,
| that was the most arrogant, self agrandizing post I've
| ever made =( I wish I didn't feel that way, but I do =)
| sidewinder128 wrote:
| Awesome thank you!
| delecti wrote:
| I'm curious how the UI looks to other people, because "all in
| once place" isn't really a complaint I can understand about the
| Twitter UI I'm seeing. There's buttons and stuff between
| tweets, but with 280 characters per tweet (140 was definitely
| less readable) they're not significantly more difficult to read
| on Twitter than they are in the paragraphs you posted.
| stefan_ wrote:
| The Twitter web UI if you are not logged in is purposefully
| broken. Every so often, it will just show you "access denied"
| or "you don't have permission". It is the peak of dark
| patterns.
| garaetjjte wrote:
| It seems to require randomly from 1 to 5 page refreshes to
| display anything (and don't be fooled by helpful retry
| button, it won't work, you need to use browser refresh). I
| thought it was just broken, but you say it works when
| logged in? WTF.
| tyingq wrote:
| Try copy/paste of the URL into a brand new browser tab.
| Works for me, every time. Which means it's probably
| something to do with the Referer header being set? Anti-
| flooding/hotlinking maybe?
| darkwater wrote:
| Most probable explanation: logged and notlogged requests
| go through a different path in the infrastructure and the
| not logged one doesn't work that good and they have no
| pressure in fixing it. Maybe it's not a dark pattern but
| it smells like one for sure.
| anonymousab wrote:
| This happens regardless of whether you are logged in or
| not. IIRC it's some weird implementation bug with how they
| use webworkers. There was an HN thread on it a couple of
| months ago that prescribed some fixes. It varies by
| browser, browser version and some other things like what
| chrome may be a/b testing for you. The fixes are temporary,
| though.
|
| Dunno why Twitter seems to have completely deprioritized
| the issue though. They change the error message every once
| in a while but nothing else.
| simias wrote:
| On top of that this particular chain is quite egregious
| because Carmack didn't even bother editing his text to be
| twit-friendly. It just breaks in the middle of sentences.
|
| It's pretty amusing to me that this modern, high-res,
| multi-megabyte page has worse usability than when we could
| just "finger" Carmack's .plan from a terminal 20 years ago.
|
| Maybe we should try to bring finger back. We could pretend
| that it uses the blockchain to drive adoption.
| dan1234 wrote:
| We just need to sell an NFT each time a .plan changes.
| tempest_ wrote:
| It has been like that for years too.
|
| I basically wont read Twitter threads because of it,
| perhaps I am better off for it.
| delecti wrote:
| That's entirely possible. I don't really ever browse it
| without being logged in.
| tyingq wrote:
| I noticed it almost never happens if you copy/paste the url
| into a browser. Seems related to navigating in with a
| Referer header set.
| wlesieutre wrote:
| I think this is a bug rather than deliberately blocked. The
| on-page retry button will continuously fail, but if you go
| up to the address bar and keep hitting enter it will
| eventually work.
|
| Still embarrassing for a tech company of twitter's size.
| Displaying a tweet to a logged out user should be the
| single simplest job their service has, but it's usually
| broken.
| thrdbndndn wrote:
| >embarrassing for a tech company of twitter's size
|
| I'm a heavy user of Twitter. They have the most
| ridiculous bugs all the time
|
| Let me list a few I can remind in recent two years:
|
| 1. A serious bug that makes the private lists' name,
| member count, and description visible to everyone for
| half a way
|
| 2. ANOTHER private list exposure bug after a year
|
| 3. Lots of their features are semi- or totally broken,
| the most obvious example being Moments. Some minor ones
| are like "twitter anniversary" etc.
|
| 4. Media files being totally lost/404, especially for
| some older tweets
|
| 5. UI: "Checked" mark for adding people to lists being
| invisible for at least a week
|
| 5.1. UI: some UI elements suddenly become black for a few
| weeks regardless what theme you use
|
| 6. Outage: Like function broken for almost a day
|
| 7. Outage: Timeline broken (no update) for half day
|
| 8. This probably isn't a bug but a "shadow block"
| feature, but I can't follow some accounts (and their
| following/follower count doesn't show) if my IP is in
| certain region.
|
| 9. Huge feature disparity between web and app, or iOS and
| Android
|
| And needless to say, their support is beyond unhelpful,
| and they don't really have a proper place to report
| technical issues/bugs of their service.
| madeofpalk wrote:
| I was surprised by being able to see a tweet from a user
| who had blocked me after someone mentioned it in my
| replies.
| Lorin wrote:
| Don't forget videos appearing as a blocky mess for the
| majority of playback time no matter how good your
| internet connection is.
| Pulcinella wrote:
| Yeah Twitter's video compression is practically a parody
| of bad video compression.
| jaypeg25 wrote:
| The fact that threaded tweet links like this don't work
| on non-official apps (I use Talon on Android), to me, is
| a sign that this is deliberate.
| supercheetah wrote:
| Thinking that it was intentionally made broken, or
| deliberately broken at some point is rather presumptuous.
| As has been said before, don't assume maliciousness when
| incompetence is a better explanation.
|
| That said, I would buy that ignoring and any fix for it
| is deliberate.
| thrdbndndn wrote:
| https://github.com/klinker-apps/talon-for-twitter-
| android/is...
|
| Twitter's thread/reply API has been changed a lot. It
| definitely works better now.
|
| I will also be honest, Talon basically isn't really
| updated any more.
|
| I remembered the last time I used it, it has a bug that
| it will always re-save/re-compress the image when you
| download, which is very easy to fix, but the author
| didn't do anything about it. I just checked, the bug is
| still there..
|
| https://github.com/klinker-apps/talon-for-twitter-
| android/is... and https://github.com/klinker-apps/talon-
| for-twitter-android/is...
| newsclues wrote:
| They need users, they rather avoid non-users that just
| want the content.
|
| Twitter is a private company but it has also become a
| public space for political discourse.
|
| The need for profits and open free speech are butting
| heads.
| speedgoose wrote:
| Twitter has not fixed this bug for many many months. I
| think they are very happy to have it because I do not
| believe Twitter cannot fix it if they want to.
| hamburglar wrote:
| Years. I've never used a Twitter app, but this bug has
| occurred a high percentage of the time I view a tweet in
| the browser of every smartphone I've ever owned.
| teucris wrote:
| Thank you! I had given up on reading any HN post from
| Twitter because of this issue.
| thrdbndndn wrote:
| Yeah, I prefer threadreaderapp over Twitter's native UI for
| reading long threads all day everyday, but don't find the
| native one difficult to read.
|
| My only complaint is when the thread is long, Twitter will
| start not showing it all at once. You have to click the last
| tweet to see anything after it.
|
| But again, threadreaderapp itself also has trouble to feed
| all the parts of a super long thread.
| flanbiscuit wrote:
| Thank you for this! I have seen this before but I forgot
| the name. Bookmarking it and I'll probably create a simple
| bookmarklet so that I can quickly open it up on the current
| tweet
|
| edit: in case anyone is interested, here's the code for the
| bookmarklet to turn the current tweet into a threadapp
| thread. This is not very deeply tested but it worked with
| the current tweet above so YMMV:
| javascript:(function(){window.location.href =
| 'https://threadreaderapp.com/thread/' +
| window.location.pathname.split('/').pop(); })();
| bonoboTP wrote:
| And you have to click on "Show this thread" at the end to see
| more, otherwise you only see some of the tweets.
|
| And yes, it's absolutely horrible that there are all those
| buttons and a repeated profile pic intruded at random points
| in the text, like _in the middle of a damn word_.
|
| I get that you need to tweet to get views and nobody reads
| blogs any more but this "Twitter thread" concept is a UX
| horror.
| aeyes wrote:
| And "Show this thread" takes me to the comments first, I
| have to scroll up to see other messages by the author and
| the order seems incorrect.
| scld wrote:
| Not being a programmer, I never have any idea what Carmack is
| talking about, but I'm always enthralled.
| corysama wrote:
| https://m.imgur.com/xA8LLRu
|
| Is a reference to both the many enthralling presentations
| Carmack has given and to
| https://www.youtube.com/watch?v=X68Mm_kYRjc
| kleiba wrote:
| A lot of times, even being a programmer, you never have any
| idea what Carmack is talking about...
| underyx wrote:
| In case you want a simple explanation for this story: he tried
| to run an old pre-iPhone mobile game on a computer. The game
| runs very slow on computers, which is surprising considering
| the performance difference between these old phones and a
| modern computer.
|
| The reason turned out to be that the game runs a memory
| cleaning command to avoid bugs arising from lack of space.
| Since modern computers have 10000x more memory to clean up,
| these commands now take way more time to complete, and thus
| slow the whole game down.
| jandrese wrote:
| It seems kind of crazy to me that people were using a GC
| language on a device with 128kB of memory. John even mentions
| how he was forced to run the GC on every frame to avoid
| problems. I would think when you are that constrained you
| would be closely tracking your memory usage. It's probably a
| miracle that those games weren't constantly hitching and
| crashing due to slamming up against the memory limits.
| tannhaeuser wrote:
| Best practice was to pre-allocate everything, or at least
| not allocate insane amounts of objects per-frame if at all
| possible such that System.gc() would become a no-op up to
| tracing and maybe defragmentation anyway.
| munificent wrote:
| Garbage collection was invented for Lisp, which initially
| ran on a machine with 18,432 bytes of RAM.
| kllrnohj wrote:
| > It seems kind of crazy to me that people were using a GC
| language on a device with 128kB of memory.
|
| Look up JavaCard which apparently is a thing that still
| exists. It uses the Java language _without a GC_ - that
| programming environment is truly miserable to work with.
| xNeil wrote:
| That was very helpful, thank you!
| chitowneats wrote:
| I'd follow a Twitter alt dedicated to ELI5-style summaries of
| John Carmack tweets.
| kllrnohj wrote:
| > Since modern computers have 10000x more memory to clean up
|
| The understated insane part of this is that emulating a
| 100mhz ARM CPU with 128kb of RAM apparently takes gigabytes
| of RAM to accomplish. What on earth is that emulator doing?
| nolok wrote:
| Given the details in the tweet, it might be simply
| translating GC run from emulated to host context. Not what
| you would ever want to do but it's abandonware from years
| ago after all, it might have been "slow but bearable" back
| when it was being developed.
| gyulai wrote:
| Hmm. Although they were not actually called feature phones.
| Feature phones was what we started calling phones that weren't
| smartphones after smartphones came to be a thing/word.
| Yuioup wrote:
| I played some of those games back in the day. Smooth and very fun
| to play.
___________________________________________________________________
(page generated 2021-05-20 23:00 UTC)