Git Product home page Git Product logo

terri-fried's Introduction

Terri-Fried

Terri-Fried is a multi-platform C++ game made in 72 hours for Ludum Dare 46. It is currently available on PC, Web, PS Vita, PSP, Wii, GameCube, and Nintendo DS. Builds for each platform can be downloaded here.

Screenshots

Background

After participating in Ludum Dare 46, I challenged myself to port my entry to as many consoles as I could using various homebrew libraries. The game is a simple platformer where you launch an egg between platforms to avoid falling in lava. The code was written in 72 hours so it isn't perfect, but I decided to provide the source regardless to hopefully help anyone interested in making games for these platforms. Feel free to ask any questions if you need anything to be clarified!

Compiling

Windows

raylib

After installing raylib, execute make in the /raylib directory.

SDL2

Tested with msys2. Install the SDL2, SDL2_image, SDL2_mixer and SDL2_ttf packages with pacman, then execute make in the windows/sdl2 folder. Finally, copy the resources folder to the output executable location.

PS Vita

Compiling for PS Vita requires vitasdk. Then, execute cmake .&& make in the /psvita directory.

Nintendo DS

NightFox's Lib does not need to be downloaded as it is already integrated into this repository, but you'll need to install the libnds libraries with devkitPro. Then, run the compile.bat script in /nds.

Wii

Compiling for Wii requires the libogc libraries that can be installed with devkitPro. You will also need GRRLIB. Then, execute make in the /wii directory.

GameCube

Compiling for GameCube requires the same libogc libraries from devkitPro but a different fork of GRRLIB that can be found here. Then, execute make in the /gamecube directory.

Original Xbox

Clone this fork of nxdk directly next to the Terri-Fried folder, then install the nxdk prerequisites. Follow the instructions here to fix the XGU headers in nxdk. This is a temporary fix for some duplicate symbol linker errors.
Now cd to the Terri-fried/xbox folder and run make. An XBE file should be built in the bin folder. Copy the contents of the bin folder to your Xbox and run default.xbe.

Nintendo Switch

Requires devkitpro, devkitARM, libNX and the following packages to be installed via dkp-pacman:
switch-pkg-config, switch-SDL2, switch-SDL2_mixer, switch-SDL2_image switch-SDL2_ttf
Once installed, cd to Terri-Fried/switch and run make. Copy the resulting NRO file over to your Switch's microSD card in the switch folder and launch via nx-hbmenu.

Contributing

Feel free to create a fork of this repository if you want to port the game to additional platforms! The code can also be used for any other noncommercial purposes.

terri-fried's People

Contributors

polymarsdev avatar tuxinal avatar voxel9 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

terri-fried's Issues

PSP code missing

Hello!

I'm currently a psp dev and would love a chance to fix the issues talked about in your video about this game.
I saw you mention multiple issues and I would like to address those for this port.

In addition It's months late and probably my fault for poor SEO but I have updated and ported intrafont (shown in your video as 9 years old). It now is totally fixed on the psp and also is ported to windows and the Sega dreamcast.
Lives here: https://gitlab.com/HaydenKow/libintrafont

I would also like to redo your audio code and then create examples for the toolchain examples folder that is in dire need.

Take care and thank you for sharing your game, the journey and the source.
-HaydenK

Terri-Fried ds

When I open Terri-Fried on my ds the screen goes black and I have to reboot.

game

so you know that video you made on how you made the game for 5 consoles in 48 hours? Well I was wanting to know how you made the game for the Wii version step by step. I'm trying to make a homebrew game for Wii called "Call of doody, when you got to go" and basically its like call of doody but with fart jokes and also its for those people who cant afford cod. Also hears a Wad file for it https://drive.google.com/file/d/1eGS8_dYm9QSp8K5PU-Uui0ceDsSXLLzM/view?usp=sharing also this is supposed to be a joke game. But if you can help me that would be Great

Download page needs updating

The download page needs updating to allow you to download the compiled versions of the new ports for the switch, og Xbox &, etc.

type 'double' cannot be narrowed to 'int' in initializer list [-Wc++11-narrowing]

main.cpp:17:93: warning: variable 'player' is uninitialized when used within its
own initialization [-Wuninitialized]
...player(platforms[0].getX() + platforms[0].getWidth()/2 - 26/2, platforms[0].getY() - player...
~~~~~~ ^~~~~~
main.cpp:318:50: error: type 'double' cannot be narrowed to 'int' in initializer
list [-Wc++11-narrowing]
...SDL_Rect platformSprite_rect = { platforms[i].getX(), platforms[i].getY(...
^~~~~~~~~~~~~~~~~~~
main.cpp:318:50: note: insert an explicit cast to silence this issue
...SDL_Rect platformSprite_rect = { platforms[i].getX(), platforms[i].getY(...
^~~~~~~~~~~~~~~~~~~
static_cast( )
main.cpp:318:71: error: type 'double' cannot be narrowed to 'int' in initializer
list [-Wc++11-narrowing]
...platformSprite_rect = { platforms[i].getX(), platforms[i].getY(), 100, 3...
^~~~~~~~~~~~~~~~~~~
main.cpp:318:71: note: insert an explicit cast to silence this issue
...platformSprite_rect = { platforms[i].getX(), platforms[i].getY(), 100, 3...
^~~~~~~~~~~~~~~~~~~
static_cast( )
main.cpp:327:44: error: type 'double' cannot be narrowed to 'int' in initializer
list [-Wc++11-narrowing]
SDL_Rect playerSprite_rect = { player.getX(), player.getY()...
^~~~~~~~~~~~~
main.cpp:327:44: note: insert an explicit cast to silence this issue
SDL_Rect playerSprite_rect = { player.getX(), player.getY()...
^~~~~~~~~~~~~
static_cast( )
main.cpp:327:59: error: type 'double' cannot be narrowed to 'int' in initializer
list [-Wc++11-narrowing]
...SDL_Rect playerSprite_rect = { player.getX(), player.getY(), 32, 32 };
^~~~~~~~~~~~~
main.cpp:327:59: note: insert an explicit cast to silence this issue
...SDL_Rect playerSprite_rect = { player.getX(), player.getY(), 32, 32 };
^~~~~~~~~~~~~
static_cast( )
main.cpp:330:45: error: type 'double' cannot be narrowed to 'int' in initializer
list [-Wc++11-narrowing]
SDL_Rect lavaSprite_rect = { 0, lavaY, 800, 48 };
^~~~~
main.cpp:330:45: note: insert an explicit cast to silence this issue
SDL_Rect lavaSprite_rect = { 0, lavaY, 800, 48 };
^~~~~
static_cast( )
1 warning and 5 errors generated.

Suggestion: Mobile Port

Alright, listen, im not a good coder. I can't even make an HTML website look good without some form of template, and my C++ knowledge is basically nothing. However, after watching the video on the process of porting the game to so many consoles, I realized this would be a really good mobile game! I was surprised PolyMars didn't make a mobile port.
After the idea, I frantically went through the GitHub code to possibly find a port that would be good for a mobile base (I don't know what to call it lol, basically just one that could be turned to a mobile game) but no luck.
I was wondering if anyone else could help with this idea? Im really committed to it now and it's been on the back of my mind for a while.

ps: sorry if my grammar is bad, English isn't my main language and my brain is ᵗⁱⁿʸ

PSP version source code.

Hi. Can you share source code for PSP version of the game?

I want to add some new functionality.

👏ALWAYS👏 COMMENT 👏YOUR👏CODE

Okay, so, obnoxious title aside, you broke the first rule of programming, and also makes contributing significantly more difficult. AFAIK this looks done and dusted, but, don't ever do this again.

Bring all ports together into one whole abstracted source tree

With more ports being added recently, it's only going to become more difficult to add new features and fixes due to each port pretty much having its own entirely separate source.

Things we should abstract:

  • graphics (a big one, but with a project of this size it shouldn't be too much of an issue. I kind of modelled my Xbox port in an abstract-y fashion that could be used as some sort of a base)
  • Audio
  • Input (need to consider that some ports have multiple methods of input and others only have one)

One way I'm quite familiar with already is having abstracted functions in one separate folder for each platform, so that game sources can include the appropriate abstracted functions for the platform being built for, through something like #define PLATFORM_XXX
(And there will still be separate Makefiles for each platform, so the specific folder with abstracted functions for that platform can be added easily)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.