6 ms·
A recreation of the first level of Super Mario Bros. in Python
- Spittie 13y agoDMCA takedown in 3, 2, 1... Still a cool project anyway.
- sheetjs 13y agohttps://github.com/Diogenesthecynic/FullScreenMario https://github.com/Diogenesthecynic/FullScreenMario is still there, even after a legal complaint from Nintendo.
- Spittie 13y agoBut they did have to close the site. And I guess that Nintendo could easily bring them to court and win (not that they will, it's a small non-profit target). My comment was meant as a "funny" way to say that Nintendo is usually very unforgiven with clones of their games.
- dsirijus 13y agoYou're not very funny.
- guidedlight 13y agoThe only thing that infringes copyright are the images and music... And those can be sourced very easily. So if he removes those, he should be fine. Those images could easily be replaced with placeholders too.
- stefan_kendall 13y agoMaybe spend an afternoon learning up on copyright and trademark law. Why would you spend so much time on something that clearly violates the intellectual property of Nintendo?
- sebastianavina 13y agofor the sake of learning? EDIT: Also, if you check the commit history, I'm quite sure he didn't spend way much time.
- stefan_kendall 13y ago133 commits? And you have to violate copyright or trademark to learn? Please.
- notsrg 13y agoI'm pretty sure you care more about this than Nintendo ever will. Get off your high horse. As someone who has never used PyGame, this is really cool to look into and learn from.
- sebastianavina 13y agomost of the commits are done on the last days... some of them are just some line changes... (https://github.com/justinmeister/Mario-Level-1/commit/586b964b812d1f2f60202cdd7aa1446474dd099f https://github.com/justinmeister/Mario-Level-1/commit/586b96...) I code on my free time too, On the night I turn on my laptop and code for a couple hours, I am a bussiness owner, most of my day is related with other activities, and I just want to think in another thing and relax. Coding it's the perfect choice, but you need a project to feel motivated, something not related with your day work and something easy enough to be accomplished in a couple days (so you can fell your progress and feel proud). I see he completed level 1, my intuition says he won't go more far away to another level, because he just got the satisfaction he needed. Probably now he will choose another project and develop it.
- Patrick_Devine 13y agoExactly. You do it for the same reason why people try to paint famous works of art. You get to really see many of the pain points that the original artist went through and connect with something on a different level unlike any casual observer. In this case, the medium that is being used for the implementation is different, but you still get to solve many of the same problems.
- baddox 13y agoI would have liked to see all the sound and music done with FM synthesis (or whatever the Nintendo used) in Python as well, instead of .ogg files.
- baddox 13y agoAlso the palette shifting that they used to get different colors out of the same assets.
- pekk 13y agoWhy do you want to see these things? These are adaptations to the platform that the original game was developed on (and its limitations). What would be the purpose of reproducing those limitations in a new implementation for a completely different platform?
- defen 13y agoTextbook skeuomorphism.
- undershirt 13y agoI spent a year remaking Pac-Man and many of its peculiarities. (Namco shut it down on github, while a thousand other pacman remakes there remain.) Games will be considered a form of art someday. And it is the whole form of an art piece that is important (i.e. the medium, inner workings, presentation). In the future, the innards of classic games may become increasingly important, perhaps from an anthropological perspective. When video games become centuries old, I feel they will be artifacts of an emergent art form.
- baddox 13y agoI'd like to see it because it would be cool. Why implement the game at all in another language? Why not just play the game on the Nintendo, or distribute a ROM for use with an emulator?
- hernamesbarbara 13y agoNo way. This is awesome. Any plans to do other Mario levels or other classic games?
- userbinator 13y agoSo you took a game that used to take a few dozen KB of memory and an 8-bit CPU running at less than 2MHz, and turned it into one requiring many orders of magnitude more memory and CPU speed? I'm impressively disturbed.
- moccajoghurt 13y ago>So you took a game that used to take a few dozen KB of memory and an 8-bit CPU running at less than 2MHz, and turned it into one requiring many orders of magnitude more memory and CPU speed? That's what I thought too. Not sure why it's getting as much attention. Maybe because it's the combination of Python and Super Mario. A very popular language combined with a very popular game and a breeze of nostalgia. However it's a fun little project but being on the HN frontpage is a little too much attention for something like that.
- userbinator 13y agoGoing the opposite direction would be much more deserving IMHO; e.g. trying to fit a Flappy Birds clone in a few hundred bytes or something like that.
- _random_ 13y agoThat would require skills. Also it's not "fun". It's not "fun" to be caring about optimizations or type-safety or general correctness and elegance.
- TeMPOraL 13y ago> Also it's not "fun". But it is fun. It's called "working for hack value"!
- greggman 13y agoNot sure about python but there's plenty of those in JavaScript. Here's one http://js1k.com/2014-dragons/demo/1659 http://js1k.com/2014-dragons/demo/1659 I'm defining a few as 10 :P
- fekberg 13y agoI'm impressed! The code is well structured and you're using Python and PyGame, which is awesome! Well done! For anyone wanting to learn Python and PyGame I'll just leave this here: http://pluralsight.com/training/Courses/TableOfContents/game-programming-python-pygame http://pluralsight.com/training/Courses/TableOfContents/game...
- huskyr 13y agoFor anyone having trouble to run this on OS X Mavericks, you need this pygame binary: http://www.pygame.org/ftp/pygame-1.9.2pre-py2.7-macosx10.7.mpkg.zip http://www.pygame.org/ftp/pygame-1.9.2pre-py2.7-macosx10.7.m...
- atanasb 13y agohttps://github.com/justinmeister/Mario-Level-1/blob/master/data/tools.py https://github.com/justinmeister/Mario-Level-1/blob/master/d... Line 134 & 135. Lol?
- pekk 13y agoWould providing alternative art/music and not using the Mario trademark make this legally safe? If the project is serious about continuing, I am sure any number of people would be willing to help out with legally acceptable replacements.
- PhasmaFelis 13y agoNintendo seems to be pretty lenient about non-profit fangames, actually. Mari0 (http://stabyourself.net/mari0/ http://stabyourself.net/mari0/) and Super Mario Bros. Crossover (http://www.explodingrabbit.com/games/super-mario-bros-crossover http://www.explodingrabbit.com/games/super-mario-bros-crosso...) have both gotten a lot of media attention without any legal issues I'm aware of.
- pikachu_is_cool 13y agoPersonally, I prefer mari0. It's mario with a portal gun. It's written in Lua using LÖVE, it's really cool. http://stabyourself.net/mari0/ http://stabyourself.net/mari0/ https://love2d.org/ https://love2d.org/
- doorhammer 13y agoWhoa. Glad I came in here if for no other reason than to see this. I always get a kick out of people copying quirky new mechanics onto other games to see what happens.
- rjzzleep 13y agodoes that huge lag bother anyone? it might just be an out of sync screen recording, but it seems to me like there is an input lag.
- chongli 13y agoThe real Super Mario Bros. feels that way as well. This is due to Mario's very shallow acceleration curve. It's one of the main reasons the game is so challenging to play! Edit: After having watched the video, it appears to be out of sync and dropping frames.
- austinstorm 13y agoNeat project! You should to tutorials - it's a great learning example
- justinmeister 13y agoI feel like I'm not knowledgeable or experienced enough to write tutorials, but I wrote a list of resources people might use if they want to get into pygame on reddit: http://www.reddit.com/r/Python/comments/1ymn1w/i_recreated_the_first_level_of_super_mario_bros/ http://www.reddit.com/r/Python/comments/1ymn1w/i_recreated_t...
- Daiz 13y agohttps://github.com/justinmeister/Mario-Level-1/blob/master/data/states/level1.py https://github.com/justinmeister/Mario-Level-1/blob/master/d... Why on Earth would you create the level like this instead of using something like Tiled[1]? Pretty much everything you can make a game with has support for TMX tilemaps, and if not making basic support yourself shouldn't be too hard either, and ultimately way less effort. [1] http://www.mapeditor.org/ http://www.mapeditor.org/
- gahahaha 13y agoHe talks about it extensively in the video on the site, and I think he agrees with you that tilemaps would be preferable.
- justinmeister 13y agoSo I created this project (I just found out this morning someone posted it here). To answer a few questions: 1) DMCA/Copyright: I have no idea the legal grounds for this sort of project. There is an Javascript/HTML5 version of Mario that is much better and more complete than mine and it still exists on Github. If I get a takedown notice, I suppose the only people who lose out are people other than me who want to check it out. I'm not too concerned either way, to be honest. 2) Memory / CPU issues: Anyone concerned about these issues wouldn't make a game in Python and Pygame. I'm just a hobbyist who enjoys the language and the particular library I used. 3) Audio Latency: That is purely from the screen recording. There is no latency when you play it on your machine (to my knowledge). 4) Purpose of this project: I have been programming for 7 months, 2 of which I spent on this project. I never expected this project to get this much attention, but I suppose the cross-over appeal of Python and Mario is quite high. Fundamentally this was a learning activity to create something I thought was cool. Like I explained here: http://www.youtube.com/watch?v=HBbzYKMfx5Y http://www.youtube.com/watch?v=HBbzYKMfx5Y , I knew basically nothing about making a platformer before this project. I still have a lot to learn.
- doorhammer 13y agoSo my two cents. Awesome job. I wouldn't have been able to approach anything like this five months after I started teaching myself to code. I don't know how anyone could watch the vid and be so cynical about the choice of game, language or library. It's a clear example of autodidactic exploration. Have you seen the portal gun mario? [1] (I hadn't until five minutes ago; link stolen from a comment down the page here: https://news.ycombinator.com/item?id=7284719 https://news.ycombinator.com/item?id=7284719 ) Might be interesting to think of different and/or bizarre ways you could potentially alter the game mechanics as you go along to create a new experience. I like those kinds of exercises because they help me think about structuring things in a decoupled way so I can arbitrarily modify part of the mechanics without having to rewrite everything. Might be a cool/informative exercise if you keep playing with the game. Either, cool project. [1] http://stabyourself.net/mari0/ http://stabyourself.net/mari0/