1. Dontwait00

    OP Dontwait00 Unknown
    Member

    Joined:
    Sep 3, 2017
    Messages:
    272
    Country:
    Italy
    game-example v1.0.0 (updated on 11/09/2018)


    what is it?
    first, is my first game im creating in C.
    second, is a game made entirely on CONSOLE MODE with no graphics and no sound. I will create a GTA style game in 2D in the near future.


    CONTROLS:

    UP = up
    RIGHT = right
    DOWN = down
    LEFT = left

    A = Unknown still


    game-example must do/finish:
    •add gun
    •add life
    •add zombies
    •add touch screen support (which i want to try this, so you can play it without joycons!)
    •port on Wii: see here
    •port on WiiU
    •port on Xbox 360

    How did you start developing this? :huh:
    Heh, wasn't simple for me.

    I started developing on useless programs, and i wanted to start something less useless to help others noob like me to try coding.
    so then i started developing from scratch, using printf and other basic codes just to see want i could do.
    And then i thought, if i could make a player to move up, down, left, right using variables.

    My idea (which wasn't after i know it) was to use the rows and column as a player to move free
    here's a concept:
    lets make a simple room 8x8:
    W = wall
    f = floor
    P = player

    .....r_o_w_s
    c 0...1..2..3..4..5..6..7
    o..1 W W W W W W W
    l...2 W f...f...f...f...f...W
    u..3 W f...f...f...f...f..W
    m.4 W f...f...f...f...P..W
    n..5 W f...f...f...f...f..W
    ....6 W f...f...f...f...f...W
    ....7 W W W W W W W

    if i press up = [3][6] = floor, which means i can move
    if i press right = [4][7] = wall, which means i cant move there
    if i press down = [5][6] = floor, which means i can move
    if i press left = [4][5] = floor, which means i can move
    Now, after a bit of theory, we need practice on it.
    Lets start:
    ...
    // now lets start using int as variables
    int a, b;

    //then i need to operate like this to use rand()
    srand(time(NULL));

    //now i can use rand() to rand some numbers
    a = rand() % 10;
    b = rand() % 20;

    //now i can assemble a and b to be the player.
    //\x1b[r;cH is for printing on the screen where you want,
    //which r stands for Rows and c for Columns
    printf("\x1b[%d;%dHx", a, b);

    //lets start doing the player move!
    if (kDown & KEY_DUP) {
    //now that we printed the player, we need to delete the footstep behind him
    printf("\x1b[%d;%dH ", a, b);
    a = a - 1;
    //now lets move the player up!
    printf ("\x1b[%d;%dHx", a, b);
    }
    //now we have to do this step every single step for every direction pad.
    if (kDown & KEY_DDOWN) {
    // so on
    ...
    }
    Now we can move the player UP, DOWN, RIGHT and LEFT.
    But we still need the collision like the wall!
    lets start:
    ...
    //we need to compare the collision with a wall called X,
    //so we need a new int
    int wall_y;
    int wall_x;

    wall_y = 10;
    wall_x = 10;

    if (kDown & KEY_DUP) {
    if (a == wall_y && b == wall_x) {
    a = a + 1;
    printf ("\x1b[%d;%dHX", wall_y, wall_x);
    printf ("\x1b[&d;%dHx", a, b);
    }
    }
    //so on with every direction pad
    ...
    I hope i helped you, if so, feel free to drop a like!:creep: thanks

    i may written badly somewhere, feel free to DM me, thanks

    changelog:
    v0.1 - added player moving on screen; bugs everywhere

    v0.3 - added collision! (was my first time using logic interpreters)
    - fixed minor bugs, still a lot of bugs!

    v0.5 - added wall using collision! (those XXXX are walls ;P)

    v0.7 - fixed all the bugs like:
    1) numbers printed on screen when touching end of the screen;
    2) player disappearing from the screen;
    3) collision worked only from the front of the player;
    4) player now cant get out of the screen using collision.
    5) ???
    6) profit

    v1.0.0 - just everything fixed

    Download: https://github.com/Dontwait00/game-example/releases/latest
     
    Last edited by Dontwait00, Sep 13, 2018
  2. KitsumiTheFox

    KitsumiTheFox Advanced Member
    Newcomer

    Joined:
    Jan 9, 2016
    Messages:
    84
    Country:
    United States
    Nice! Its always fun to see new homebrew, even if it is just a learning project :P
     
    lordelan and Dontwait00 like this.
  3. Good job! Keep learning and trying new things, you will soon be able to create more advanced stuff, always nice to see people that are willing to learn.
     
    the_leg, lordelan and renhei like this.
  4. Jay Griggs

    Jay Griggs Member
    Newcomer

    Joined:
    Jan 4, 2016
    Messages:
    34
    Country:
    United States
    Nice! Have you coded in C before?
    I know some C# but no C.:(
     
  5. Dontwait00

    OP Dontwait00 Unknown
    Member

    Joined:
    Sep 3, 2017
    Messages:
    272
    Country:
    Italy
    Not really, no :(

    What i like about C is that you can make it for every OS with just few steps which is awesome! I like program in C, but never did such a big project like this, so im looking forward for this!

    Don't you like C? I thought C# was much more difficult then C.
     
  6. lordelan

    lordelan GBAtemp Psycho!
    Member

    Joined:
    Jan 4, 2015
    Messages:
    4,719
    Country:
    Germany
    I'd say C# is one of the easiest to learn languages out there lol.
    Great work by the way. It was wise to share your work here. As you can see everyone appreciate it although they probably won't stop playing Splatoon for it but it's a good entry. :)
     
    Dontwait00 likes this.
  7. Dontwait00

    OP Dontwait00 Unknown
    Member

    Joined:
    Sep 3, 2017
    Messages:
    272
    Country:
    Italy
    i thought of it, but i like coding and i dont mind people playing it or not. This is just basic project.
    (which now i have released 1.0.0 finally, so if you want to see it is here: https://github.com/Dontwait00/game-example/releases) :ha:
     
    lordelan likes this.
  8. Jay Griggs

    Jay Griggs Member
    Newcomer

    Joined:
    Jan 4, 2016
    Messages:
    34
    Country:
    United States
    Never did C so I cant compare.
    Got friends that do C and they say the biggest differences are that C# is object oriented, C# handles all your garbage collection and with C you need to include your headers.
     
  9. Ghost92

    Ghost92 GBAtemp Advanced Fan
    Member

    Joined:
    Jun 29, 2017
    Messages:
    816
    Country:
    Colombia
    Video, Screenshot?
     
  10. Dontwait00

    OP Dontwait00 Unknown
    Member

    Joined:
    Sep 3, 2017
    Messages:
    272
    Country:
    Italy
    I dont know how to implement screeshots on the thread lol :lol:
     
  11. Ghost92

    Ghost92 GBAtemp Advanced Fan
    Member

    Joined:
    Jun 29, 2017
    Messages:
    816
    Country:
    Colombia
    Well I do not know how you had time to make this thread with two blue and green boxes. Not at all how you got to program a WIP GAME on Switch
     
  12. Kevoot

    Kevoot Advanced Member
    Newcomer

    Joined:
    May 23, 2018
    Messages:
    67
    Country:
    United States
    To OP: It's a good start. You should pick up the book (or steal the PDF) "Introduction to Algorithms"
    Link: https://mitpress.mit.edu/books/introduction-algorithms-third-edition

    Additionally, do some research into using data structures in C. I can see that you have an idea to establish rules and turn that into code which is the first step. The next step is to define the code in a reuseable, readable, and less-time consuming way (both in terms of running time and how long it takes to write). You have a ton of repeated code which is overkill and leads to a litany of issues, those two resources will get you going in a better direction.

    For reference, if you look up my github account and find my checkers3ds, that was where I was at about 4 years ago. Comparing that to the code I write these days makes my butthole clench. Do yourself the favor and look into those topics.
     
Draft saved Draft deleted
Loading...

Hide similar threads Similar threads with keywords - example, console,