For some background, this cart was one of my very first experiences with pico-8 and coding. I started this shortly after @TRASEVOL_DOG 's Tiny Tv Jam. And by god I knew nothing! I had the idea in my mind, but not the skills to produce it. So taking Zep's Collision demo, I set out on my 3 and a half year journey. I can tell you one thing, coding without even knowing how the language works is a frustrating experience. I was, and still am in some ways, a total noob. But I brute forced my way through it, learning from reading through other people's carts, and literally spending days reading the Pico-8 API. I'm proud of what I've achieved, and even though I wanted to complete this before I moved on, I must know when to call it a day.
Firstly, the big point, the map. I used every single tile available in pico8's map data, creating an intricate city, with varying levels, snaking streets, and lots to get lost in. This is fully complete, and free for you to use in a game if you'd like to. There is also extensive use of sprite flags. One for collision, one for stairs, one for shadows, and then the rest went into making a bridge you could walk under and over (must admit, quite proud of that) Water is animated, and there is also randomly placed items to collect throughout the map.
What didn't get done?
My grand plan for this game was a plethora of side-quests. Ranging from collectathons, to races etc. Something to incentivise exploration and give satisfaction of discovery. However my code was far too headwrecking, and having left it for so long, it was basically foreign work that was not worth the effort.
Many thanks for checking this out, hopefully you enjoy. And hopefully you can look forward to seeing some actual games from me in the future.
The game is built on Zep's Collide.p8 demo. I'm basically placing "Items" (Musical Note etc.) into the map at specified locations marked by Red Squares. I have a function which basically checks for the Coordinates of the Red Squares, which it stores in a table and reduces to just 6 locations which are ordered randomly each time.
The problem is that all the Item data is in _Init() and cannot be anywhere else, and the Location data is made in a function. So everytime the game loads, the Items are in the same default position in the Table which they are set to.
How can change this so the Locations are sorted and randomized first, or is there anything that can be done to fix this?
(To navigate the cart: Orange Numbers are Player Coords, Yellow Numbers are the Coords of the second Item in the "ILoc" table.)
I haven't been able to stop thinking recently about how possible text to speech synthesis would be in Pico-8. A lot of people have tried creating synthetic speech and struggled profusely, however I think I have an idea which could simplify the whole process.
Basically, you would start by breaking everything down to phonetics. Each letter of the alphabet having it's own individual SFX, the remaining SFX slots dedicated to combined sounds like "CH", "SH" etc. These would be called upon together to craft full words and sentences.
For the actual text to speech system, each letter of the alphabet would be numbered. Not neccesarily in order however. The system would check sentences by multiplying and/or adding numbers. For example, the letter "H" could be assigned the number "3", while "C" could be "6" and "S" be "9". The outcome will depend on what multiple the system gets when multiplying the assigned numbers of the word, thus allowing "CHASE" and "SHADE" to use the correct phonetic for "C" and "S".
Actually executing this concept is far beyond my scope in both code and audio, but I thought I'd throw it out there maybe to even kickstart discussion. I have a feeling this would work even better with Japanese, since Katakana and Hiragana are constructed with basic syllables.
I'm currently working on a game where you collect items from different areas in a map. I have around 10 spots on the map where I want items to be, but I feel like only 6 or so should actually have items in them when playing as so to create some mediocre replay value. I'm currently detecting the spots using map flags, and sending that data to a function in which I'll create an entity spawner. However I dont know how I can create these exceptions in the code when generating where the items go, does anyone have any hints or ideas for solutions to this problem?
I've been trying to learn code for a long time, and Pico-8 was my first successful endeavour in making code I actually understood. It's been a few years since then, and I'm making progress on my first proper game. However, I've basically just been implementing simple features using incredibly basic code and I feel like it needs something more (especially since I have no actual gameplay of sorts yet)
I see such incredible art made on Tweetcarts with such minimal code, and games with incredible features which workings I don't understand, but I'd really love to understand!
Are there any resources or writeups around that detail the basics of how implementing maths into games work, or if anyone would be able to explain to me how Math is used in Pico-8 code that would be amazing! Thanks in advance!
Previous Version: https://www.lexaloffle.com/bbs/?tid=31728
-Player Moves Slower on Stairs.
-Player Sprite Darkens when in Shadows.
-Bridge that can be walked Under and Over.
-An Arrow above the player to distinguish Direction.
-Map has been fleshed out further.
What's to do
-Finish the Map
-Make Sprites for when walking upwards.
-Make actual the actual Game element, a Collectathon.
Overall, I've made a load of progress on this recently. Considering how little coding skill and knowledge I have, I'm amazed that this works as well as it does. (Must admit I'm fairly proud of the Bridge) The Arrow was added after the inability to distinguish direction was pointed out by someone in a previous upload I did. As for the Game element, I plan to have collectable items scattered across the map, however they will be in different places each time to make it less predictable. Current, these positions are marked by the Map Pin, however in the final version they'll be items of some kind. Once again, I'd love to hear any criticism and advice you have! Till the next update!
To Do List:
- Reverse Engineer collision system and rework into a detection system for character shadows and slower speeds on stairs.
- Overall world design.
- Fine tuning of 'animated' water.
- Character shadows need to be separated and overlayed on top of the character sprite to prevent flipping.
Polishing of Character animation or control. Animation needed for facing upwards, unsure if character should run diagonally automatically.
Any other tips or opinions would be really helpful!
I'm working on a game using a large map, though it's made using about 6 sprites that make 3D buildings. I'm wondering if there's a way of using the Sprite Flags in the sprite editor to only Hitbox my 6 sprites instead of having to hitbox the entire map manually. Thanks in advance!
For my first ever game on Pico-8 I'm fairly happy at how it turned out! (Thanks to Trasevol_Dog, as for without this Jam and his tutorials I would never have found how enjoyable coding is)
I made the TV skin based on the Macintosh 128k (you don't say, eh?) It's one of my favorite "Retro" Computers. I even copied the original boot-up sound for the cart! All in all, I'm really pleased at how it turned out.
As for the game.. where to I begin, I was learning everything along the way. I knew what I wanted to make but I didn't know how, I ended up using several tutorials at once while having 2 cheat sheets open and then learning other needed functions from various Pico-8 games (Thank you community!) At one point I spent 2 hours trying to fix an error in my code.. only to find out that I used END twice... I know, I know. The only thing I wanted the most was on on-screen scoreboard. The closest thing on any other Jam entry at the time was a giant scrolling level indicator, which wouldn't fit in my game at all. I instead decided to come up with a 2x3 number alphabet using only 2 colours and by god does it work well as a substitute. The only problem with this method was the sheer amount of code needed. Each number needed around 20 lines of code each. Hence the score stops at 60 and loops (it was wasting too much time) Obviously there are probably workarounds with code etc but I didn't have much time and I was only just starting but I think it does the job.
Anyhow, enjoy the minigame and thank you for playing!