By Gergely Orosz, the author of The Pragmatic Engineer Newsletter and Building Mobile Apps at Scale
Navigating senior, tech lead, staff and principal positions at tech companies and startups. An Amazon #1 Best Seller. New: the hardcover is out! As is the audibook. Now available in 6 languages.
To understand the significance of the "240x320" specification, we must first understand Java Platform, Micro Edition (Java ME). Before Android and iOS dominated, Java was the universal language of feature phones. Every manufacturer supported it.
, original J2ME mobile versions usually utilized the number pad: SourceForge : Move Left / Right : Fire / Duck : Jump or Select download link for one of these 240x320 versions, or are you looking for installation instructions for a modern emulator?
Optimized for numeric keypads (usually 2, 4, 6, 8 for movement and 5 for action). Common Versions
// Draw sky g.setColor(Color.CYAN); g.fillRect(0, 0, WIDTH, HEIGHT);
public class GameLoop private Mario mario; private Platform[] platforms; private long lastUpdate;
| Optimization | Technique Used | |--------------|----------------| | Off-screen rendering | Pre-draw static background tiles into mutable Image | | Dirty rectangle updates | Only redraw changed 16×16 tile regions (optional, but implemented) | | Sprite flipping | Graphics.drawRegion(..., TRANS_MIRROR) instead of storing two sprites | | No object allocations in game loop | Reuse enemy/coin arrays; reset state instead of new | | Sound/Music | Minimal – only Manager.playTone() for jump/coin (avoiding heavy media) |
Developers compressed the iconic Koji Kondo soundtrack into MIDI or basic WAV formats to ensure the audio didn't lag the gameplay.
You cannot find this game on the Apple App Store or Google Play Store. Nintendo has aggressively removed these versions. However, for preservationists, here is how to play it:
Super Mario Bros " for Java (J2ME) with a 240x320 resolution
The explosion of iOS and Android ultimately rendered the Java ME platform obsolete. By 2012, the era of dedicated Java gaming phones was over. Yet, the games themselves, those precious .jar files, have been lovingly preserved. You can still play these classic Java titles today.
Do you need help finding a safe for modern Android or PC devices? Share public link
The book is separated into six standalone parts, each part covering several chapters:
Parts 1 and 6 apply to all engineering levels: from entry-level software developers to principal or above engineers. Parts 2, 3, 4 and 5 cover increasingly senior engineering levels. These four parts group topics in chapters – such as ones on software engineering, collaboration, getting things done, and so on.
This book is more of a reference book that you can refer back to, as you grow in your career. I suggest skimming over the career levels and chapters that you are familiar with, and focus reading on topics you struggle with, or career levels where you are aiming to get to. Keep in mind that expectations can vary greatly between companies.
In this book, I’ve aimed to align the topics and leveling definitions closer to what is typical at Big Tech and scaleups: but you might find some of the topics relevant for lower career levels in later chapters. For example, we cover logging, montiroing and oncall in Part 5: “Reliable software systems” in-depth: but it’s useful – and oftentimes necessary! – to know about these practices below the staff engineer levels.
The Software Engineer's Guidebook is available in multiple languages:
You should now be able to ask your local book shops to order the book for you via Ingram Spark Print-on-demand - using the ISBN code 9789083381824. I'm also working on making the paperback more accessible in additional regions, including translated versions. Please share details here if you're unable to get the book in your country and I'll aim to remedy the situation.
I'd like to think so! The book can help you get ideas on how to help software engineers on your team grow. And if you are a hands-on engineering manager (which I hope you might be!) then you can apply the topics yourself! I wrote more about staying hands-on as an engineering manager or lead in The Pragmatic Engineer Newsletter.
I've gotten this variation of a question from Data Engineers, ML Engineers, designers and SREs. See the more detailed table of contents and the "Look inside" sample to get a better idea of the contents of the book. I have written this book with software engineers as the target group, and the bulk of the book applies for them. Part 1 is more generally applicable career advice: but that's still smaller subset of the book.