8 Bit Panda is a classic-style platformer for the TIC-80. You can move, run, jump and get powerups (and occasionally fly planes!). It has 17 levels distributed across 6 major areas (isles). Each area has different enemies and difficulty. The game is saved every time you complete a full area (after level 3 of each isle).
This project is open source and available at:
https://github.com/btco/panda
Follow me on twitter: @btco_code (http://twitter.com/btco_code)
trelemar
|
This is really well done! I can see you put alot of time into the world map and menu screens. It really helps make this game shine.
|
btco
|
Thanks! It was fun to build :) I almost ran into the 64k limit for code, I'm at 63.5kB!
|
StinkerB06
|
How do I move to the next level?
|
StinkerB06
|
What part of the code is the number of lives the player starts with?
|
btco
|
Line 564 defines the # of lives you start with. Also, there's a cheat code (hold A, then press up 4 times, then 2 twice), it will take you to a debug menu where you can choose "end level" :-)
|
btco
|
Sorry, I mean "hold A, press UP 4 times then DOWN twice".
|
BMyers
|
I just want to say, this game is great, good job! I really hope you make other games.
|
AlRado
|
Good job!
|
Jackj106_Games
|
pro tip:
i would use a system like this to make the jumps: jumpspeed=4 if jump==1 then jumpy=jumpy+jumpspeed jumpspeed=jumpspeed-0.25 end this makes the player have a more realistic trajectory, as it makes it slow down at the top and speed up as it falls |
btco
|
Thanks!
Has anyone managed to beat the game yet? What level are you on? I'm curious if I made it too easy or too difficult. |
Kolp4k0v1ch
|
Good game man!
|
Tonic
|
Okay, we have super mari... I mean 8-bit panda. Now waiting for legend of zola full version.
|
Matheuz700
|
Incrível, você é um bom criador de jogos, estou no 3 último nível
|
btco
|
@Matheuz700: Ah, sim o 3-3 e' meio dificil, depois vem o mundo 4 que e' divertido, tem avioes. :)
|
StinkerB06
|
How the fuck do I remove every single enemy in the ROM?
|
StinkerB06
|
How the fuck do I remove every single enemy in the ROM?
|
StinkerB06
|
How the fuck do I remove every single enemy in the ROM?
|
btco
|
@StinkerB06: If you want to remove the enemies you can go to the map editor and replace them with the empty tile (0). But what if what you want is to be invulnerable to the enemies, there's an easier way: do the debug menu cheat code (hold A, press UP 4 times then DOWN twice), then select "Invulnerable" and press Z. Then close the menu. You will be invulnerable to enemies. But can still fall into pits, so watch out!
|
StinkerB06
|
But what point of the game do I go to to enable the cheat code anyways?
|
Jackj106_Games
|
@btco, are you going to make your 3d rendering engine available to the public? (i know this is unrelated to this game but i dont have twitter so...)
|
Moico100
|
Terminei todos niveis demorou um pouco parabens melhor jogo na minha opinião amo mt esse jogo
|
Moico100
|
Deixei meu joinha :)
|
btco
|
Yeah, when the 3D rendering engine is stable I'll post it here!
|
btco
|
@Moico100: Obrigado!! Parabens por terminar o jogo!
|
Matheuz700
|
@ Btco you have other games, if you have other games could show the links thanks :)
|
btco
|
I'm working on another game, a 3D FPS, here's a GIF of it: https://twitter.com/btco_code/status/908521605038473216
I'll share it here when it's ready. |
Moico100
|
Enjoyable !!! I like this gif also let me know when it's ready @btco you're good when it comes to creating games :)
|
Moico100
|
I'm going to give a taste :)
|
LlamaLlord
|
There's seriously a reason why this is the number one game right now! This is amazing!!!
|
Spacebyte
|
Really cool game, how much time did you spend with?
|
Spacebit
|
Really cool game, how much time did you spend with?
|
btco
|
Thanks everyone :-) @Spacebit: I spent about 4 weeks (nights and weekends). About half the time was designing and play-testing the levels. The engine itself was mostly ready in about 2 weeks.
|
StinkerB06
|
Will you represent keys Z X A S as buttons A B X Y?
|
btco
|
Yeah, this is a bit confusing for people playing the game on mobile. All the keys reflect the desktop key bindings. Hmm maybe the TIC API should have a way to detect what the controls are, so that the right keys could be shown on the screen. I'll see what I can do.
|
oohun
|
hey btco plz give me some cheats
|
btco
|
@oohun: To get to the cheat menu: hold A, press UP 4 times then DOWN twice. This will open the debug menu, where you can get invulnerable, fly around the level, warp to arbitrary levels, etc, etc.
|
gemSquared
|
Wait... so this guy even adds a cheat code to his already amazing game... * facepalm * Why didn't I think of making a warp command... debugging would've been so much faster xD
|
btco
|
The cheat codes were there since the beginning, that's how I debugged stuff. I also have "editor-only" code, stuff that only gets triggered through the debug menu to help me with level editing (packing and unpacking levels, for instance). I think having a debug menu since the beginning helps a lot with development.
|
BabyGhast6
|
lol best game
|
Moico100
|
@btco você é brasileiro?
|
btco
|
@BabyGhast6: thanks!!
@Moico100: sim, sou brasileiro! |
StinkerB06
|
|
Ornitorrinco
|
Me ensina a criar um jogo
Ou faz um vídeo pro YouTube |
StinkerB06
|
For people who are used to gamepad buttons ABXY instead of keyboard keys ZXAS
Hold X, then press up 4 times then down twice. |
StinkerB06
|
|
snrf
|
Very nice, but jumping is a bit floaty!
|
btco
|
True! A lot of people brought this up. It's too late to fix now but if I ever do 8-bit Panda II, I'll improve the jump :) Maybe use acceleration on the way down.
PS: the reason I didn't do it is because I use the fact that the player falls only 1 pixel/frame as a hack for a bunch of physics things. |
btco
|
What would be a cool set of features if I were to do 8 Bit Panda 2?
|
StinkerB06
|
Probably bosses and bonus levels. 8-bit Panda 1 (i.e. this cart) is a bit lackluster in my opinion.
Also, since TIC-80 is a step closer to being a "16-bit" fantasy console, why not call it 16-bit Panda? There's a $5 (i.e. pro) version of TIC-80 that has 8× the room of assets due to bankswitching. |
CameramanTv
|
Good job!
|
CameramanTv
|
3000+ linhas de codicos e para poucos hein!
|
btco
|
Thanks!
Yeah, in the end I was constantly running up against TIC-80's 64k code size limit. |
StinkerB06
|
@CameramanTv What brings you to TIC-80?
|
DanAtuch
|
How do you stop players from getting to the next level without finishing previous?
|
StinkerB06
|
@DanAtuch Any level can be finished at any point from the red (or gold if you're on the last level) finish or the debug screen. The more leaves and food you eat, the greater the score gets.
I mean, those "leaves" should've been called bamboo. Because they're green and a panda's most iconic food of that color is bamboo. They do even look like it shining. @btco There's a $5 version from Nesbox on itch.io. You can have 512 kilobytes broken up into 8 blocks of 64k each. There's also 8 different banks for everything else, and only one of each can be used at a time per frame. |
btco
|
@DanAtuch: you mean on the world map? I store (in PMEM) the highest level that the player has cleared. Then when the player moves on the map I just compare to that number. If the level the player is on is greater than that number, then they can't proceed and can only return from when they came, not continue on to the next level.
|
btco
|
@StinkerB06: true! the leaves should have been called bamboo and the bamboo should have been something else, but it's too late to change now :)
Does bank switching allow for more than 64k of code? No, right? |
Sammy6
|
Awesome game! I'm actually making a similar game, and I was wondering how you detected where the enemies are and when you hit them. If you could tell me that would be awesome.
|
btco
|
The core logic to hit enemies is rectangle intersection. If you know the player's position and you know the enemy's position, then you check if those two rectangles intersect. If they do, the player hit the enemy. Here's the function in the 8-bit panda source that does this (RectIsct):
https://github.com/btco/panda/blob/master/source/panda.lua#L3265 Notice that it takes two rectangles, each of which has x,y,w,h. These rectangles are generated by starting with a collision rectangle and then calling RectXLate on it to translate it to the right position: https://github.com/btco/panda/blob/master/source/panda.lua#L3260 The collision rectangles for the various types of things are in the CR global: https://github.com/btco/panda/blob/master/source/panda.lua#L288 So for example, the player's collision rectangle is CR.PLR. So I translate it with RectXLate to the player's position, then do the same with the enemy's rectangle, then call RectIsct on those two, and that lets me figure out if the player was hit or not. |
B1tGuy
|
One of the best games i ever seen on TIC
|
masternama
|
|
ZanertheSlayer
|
I'm Making A Super Mario Bros Mod for this game called, "Super Mario Island". It will change this game into a Mario Game.
Some Levels where changed enemies were coded to act like the original Super Mario Bros and I changed the sounds, music, some of the enemies and music were made by me. I hope I can get it done. If it's ok with you btco. |
Kalpar
|
Is awesome the details of games, like to learn tutorial :)
|
Oleg
|
GREAT!
|
Mr_Pixel92
|
Wow! I didn't even pass the first level, but it's one of the biggest projects on thes platform!
|
btco
|
Thanks! The levels are designed to slowly ramp up in difficulty. Btw, the game saves at the start of each island, so if you make it to island 2, you can always restart from there
|
Blockhead
|
Simple and lovely graphic, fantastic
|
btco
|
Maybe the graphics are too simple, though. If I was going to do this game again, I'd make the graphics a tiny bit more polished.
|
Oleg
|
BUT. IT. IS. NOT. 8. BIT. GAME!!! WHY IT'S 8-BIT PANDA??? IT'S TIC-80 PANDA! TIC-80 AND 8-BIT THESE ARE ABSOLUTELY DIFFERENT THINGS! THERE ARE DIFFERENT LIMITATIONS!
|
Oleg
|
Sorry please, but can you tell me where you learned TIC-80? (I apologize for the previous comment, I wrote it in capital letters, because it is important to know. I'm not angry 😄)
|
StinkerB06
|
@Oleg It is considered "8-bit", because of the rudimentary graphics and audio quality used.
Fantasy consoles like the TIC-80 and PICO-8 have such limitations in order to spark creativity, without being overwhelmed by choice fatigue. These limitations make them easier to use than mainstream game engines, like Löve2D or Unity. |
btco
|
@Oleg: yeah, you're right, "8-bit" is a bit of a misnomer. If anything, the capabilities of TIC-80 are much closer to what 16-bit consoles could do, rather than 8-bit consoles.
But as StinkerB06 said, it's a reference to the intentionally rudimentary style of graphics/audio, rather than the specific tech. As for where I learned TIC-80, I just read the TIC-80 docs, and other than that just figured things out by trial and error. The great thing with fantasy consoles is that after you figure out how a couple of things work, you can pretty much understand everything, because the API surface isn't really that big. |
Oleg
|
@StinkerB06 But still, these are DIFFERENT THINGS.
|
Oleg
|
@btco Ohh... I would never call my TIC-80 games 8-bit)
|
Oleg
|
My TIC-80 doesn’t work. There is sound, but nothing is visible, I see only a black-black-blue-violet screen. Can anyone help?
P.S. The problem with the TIC-80 is only in the browser. |
Oleg
|
And the second problem - the sound comes later than necessary. This problem is both in the browser and in the PC version.
|
PedroGM23
|
Nice
|
uniofleicester
|
Is it possible if i could see the coding behind this piece of master work.
|
btco
|
Naturally! It's an open source project. Here is the source code for your perusal:
https://github.com/btco/panda |
Worlagua
|
This game is great! Well done!
|
scottpalmer04
|
very great game
|
btco
|
Thank you!
|
Doomerismo
|
Nice game.
|
Wonderconter32
|
Good game and i found error the panda died in the void and im not touch the controls
|
btco
|
Ah! Interesting. Can you describe how to make this happen?
|
thedon
|
yeah tell us!
|
Hexiter
|
so much great game
|
Worlagua
|
Will there ever be an 8 bit panda 2? I would love to see one!
|
ShadowKnight64
|
how do you make the semisolids?
im making a platformer but cant figure out how to make these |
btco
|
Do you mean the tiles that are only solid one way but not the other? I just check in what direction the player is moving when checking those -- if the player is moving down, then they are solid, if the player is moving up then they are not.
|
myname_mud23
|
Very Enjoyable!
|
myname_mud23
|
|
masternama
|
today is christmas
|
StinkerB06
|
Late to say, but congrats on having the first TIC-80 cart to get over 100 likes!
|
masternama
|
Where is Cheat Code?
|
btco
|
To get access to a cheat menu, hold A, then press UP 4 times then DOWN twice.
|
btco
|
(note: in the debug menu, you can use UP and DOWN to select a command, and LEFT and RIGHT arrows to select a level)
|
StinkerB06
|
Please remind everyone: If anyone expects game pad buttons instead of default QWERTY keyboard bindings, assume (X) instead of [A] as the button for the DEBUG menu.
Why don't you use this parentheses + square-brackets system in your future TIC-80 games? |
super_dup_yt
|
catchy music. great game :)
|
XDavid
|
good game
|
btco
|
Thank you! This was my first platformer game so I made lots of mistakes, glad it worked out somehow :-)
|
Miguel
|
Incrivel. Vc e um bom criador
|
MegaBits21
|
Hi. I'm new
|
Wonderconter32
|
this is one of the best carts in TIC-80 nice game
|
corgi42
|
i made it 130 likes :)
|
Jon597
|
Gostei! I like it!
|
btco
|
Thanks everyone! Happy to see that this silly game of mine is still at the top of the charts after so long :-D
|
SONENEIS
|
this is the best game of tic80, very good man
|
Oleg
|
remembering my cringe comments
|
deidara
|
It is a nice game!
I've never managed to play through the game... |
IgorXaves
|
É um meu jogo do tic.80 favorito :)
|
IgorXaves
|
I wanted to know what a Sonic game made by you would be like
|
Darkgamer9594
|
i love this!
|
Darkgamer9594
|
Five stars for rating❤❤❤❤❤
|
Darkgamer9594
|
sorry cant find stars
|
TitledLNRD
|
The player doesnt have any friction or acceleration, and the player jumping feels like the Panda is as light as a feather. Good job though, i liked the game a lot!
|
LURGX
|
Good game bro i love style of this game
|
krvoje
|
Randomly bumped into here to check the engine out, and I have to say - this is a very well done game :) Kudos to you for the work!
|
IgorXaves
|
#19059 but these are hearts :>
|
btco
|
Thank you!!
Yes, the panda feels a bit light due to the lack of friction and inertia, maybe when I do 8-bit Panda II I'll make the movement more realistic! |
mfontanadev
|
Hi Bruno, your coding is excellent. I did a game based on your code structure and I want to ask for permission to release it here. DM me at twitter @mfontanadev. I would like to talk with you about programming. Many thanks
|
adamecki
|
My fav game for tic80!
|