Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Post What's on Your Mind

Uni has me making games from scratch right away. We were made to pitch ideas, then the 3 ideas that were the best were chosen and then we were put into groups and told to make a demo for them within two weeks.
My pitch was one of the chosen 3 pitches (which makes me feel great) and I was put into a team with two other great people so we've been steaming ahead with the concept. Within one week I've successfully coded the movement system which might not sound super hard but I've had to get used to a lot of new concepts and I've been plagued with random ass bugs that made it do weird things. Luckily my team, tutors and even people in the years above me have all lent a hand when things got too difficult to manage. We have 4 more days to (hopefully) get some form of enemy going and the mock battle system up, which is not a lot of time, however at the very least we have movement which is more than any other team I think.
 
Sounds like you're having an awesome time already.

I've just spent an hour hacking the shit out of snes9x to allow two players on one client for netplay (default is to only allow 1 player per client, so can't do two people on one computer online). Snes9x sucks - but it's easy to hack so when things are broken or features are missing I can just go ahead and make the changes myself.

It's cool seeing some old-ass source files with Bisqwit's name in the list of copyright holders. That dude really gets around in the emulator/TAS community.
 
So I'm thinking of making a kind of game where

OK so it's kind of like a web comic where you get a new little bit of the story every week or so.

But instead that comes in the form of a quest?

(Am I asking you or telling you? Who knows!)

Because fuck I'm never gonna makegame
 
Here's a screenshot from early last year to make it look like I'm stil working on shit

Mxr9Qyi.png


Yeah
 

Jason

Awesome Bro

Amy":x9ip67wh said:
Because fuck I'm never gonna makegame

Yup I realised this a while back which is why I decided to say fuck it and just gave up, since I had so many ideas and things half built but could never commit to finishing just one thing before moving onto another, and it's actually a little upsetting that I've been dabbling in it for so long with absolutely fuck all to show for it since I never managed to release anything.

I was actually complaining about this earlier today/tonight/whatever with my girlfriend, I was clearing out and found my dead hard drive, the one that had EVERYTHING I'd made game making related (Including pixel art and templates I'd made and shit too, even some work I'd done for other people), I tried a while back to get it working again and even took it to a guy who claimed to be a specialist yet managed to do fuck all either, lol. I said I wish I could've at least finished and released just ONE of my old projects since I had SO MANY... she tried talking me into picking it back up again and starting something new, bitch please I'm not falling for that again!
 
Jason and everyone else, have you considered making just one very small game? It seems like a lot of the people around here start on huge projects that eventually get abandoned. Maybe you can come up with a project that you can finish in a month or something like that.
 

Jason

Awesome Bro

Yep, in fact the one game idea that has always stuck with me since before even coming here, I always planned to be about two hours long, with a good chunk of that being cutscenes anyway. I actually made like a chunk of it when I first got RPG Maker XP, then I realised all the other stuff I could do, so put it on hold until I learned new things, eventually starting new projects and such, then VX came out and the same happened, then VX Ace came out and guess what, yup, the same happened there too, although I did actually manage to go more in depth with the game and made a proper introduction and opening cutscene which went pretty well... I've not bought MV though since I don't want to feel like I've wasted money again. It WOULD be nice to be able to start a third time and actually get the game I've always wanted to make, made, but meh... seems like a lost cause for me now.
 
Uni has been teaching me very useful things about just "starting" games. MVPs are so useful because it lays out all the features of your game and then you go and think about how to make that into a 2 hour long session. Then again we're doing computer science so we're thinking of games as a computer science problem and not a story telling one.
 
HiPoyion":l34z8lrq said:
Then again we're doing computer science so we're thinking of games as a computer science problem and not a story telling one.
Good. Good. Good. Good. Good.

You can learn design and story telling on your own time; it costs nothing and anyone can do it, so you should never be paying anyone to "teach" this.

Defining the MVP is a tremendously valuable production skill, it's something that project managers should have a strong understanding of. All my design documents, market analysis, prototyping, cost analysis go towards defining what the MVP is and that tends to decide viability of projects (which is why my game projects are left dead at design or prototype, just so damn expensive even a relatively simple game).


Nathaniel3W: I'd love to do something like a collaborative HBGames branded project, but there's complex administrative stuff to sort out first. I also think there's a lack of artists/composers compared to designers/mappers. I sort of imagine it being the case of ending up with lots of ideas, prototypes and tools built but no assets to actually finish even a "short" game.

I've got designs for a modular RPG that's built around the concept of the player party "resolving" lots of smaller stories - so the start and end of the game bookend pretty much a collection of whatever mini short story the team wants to tell. I see that as being a good way to allow room for content to be cut when needed and for the production team to contribute their own scenarios to the game. Basically get as many short stories as possible crammed into this one game, pull out the stories that aren't working (merge, re-use, etc) and then focus on what's left.


EDIT: I'm open to discussing ideas more and seeing where it goes.
 
Part of my crazy Gameboy Advance experiments led me to investigating writing an ELF loader for the console. The current C toolchains (and a limitation in the C language in general, tbh) means that if you want to execute code in memory then any code to be used in memory must be copied over before the main program starts (most execution should happen ROM, unless it's a link cable multi-boot game).

ELF is a file format that compilers produce that describe how a program should be laid out in memory, complete with pointer relocation information; so the idea is you can compile ARM library code into an ELF and then treat it as a DLL on the GBA. A ridiculous solution for a ridiculous problem that almost no-one has. This is going towards the realm of writing an operating system for the GBA, which I consider a stupid idea.

I want to do this for the sake of banking the ROM memory map with Flashcarts (to access their operations) without having to keep a stupid chunk of code constantly in memory that might only get used once or twice. The other benefit would be the ability to swap out high performance game code depending on the configuration desired. So a 3D engine could swap out a high-resolution mode for a low-resolution mode without being forced to keep both modes in memory together.


If anyone wants to make the most ridiculously over-engineered GBA game ever created then I'm probably the person to ask.
 
I had to tell my team today that we will have to put development of one of our core features on hold as I'm currently unable to create the system without it being disruptive to everything else. I've been trying to implement "swipe" gestures into the game however there's currently a bug with our buffer which differentiates a click from a swipe. The other issue is that while the player has clicked the game has to wait for mouse to be released which means that during that time it's stuck in a loop without updating anything else. For now I think we'll switch to a "wasd" movement system so we can move onto implementing more important features and come back to swipe gestures when we can. This is my first time coding a game from scratch and while it has been fun, I've discovered that I'm not a competent programmer and one of my fears has been realised: My inexperience has led to me being a detriment to my team. They basically had to hold all development on the main codebase of the game because I needed to rewrite it (because we had our event loop and game loop entangled) which has led to a lot of lost time.
Still I'm learning a lot and it has been a massive experience. My team are super good at supporting me, I just feel I try to take too much onto myself.
 
Keep at it potion it's these kinds of things that teach you more than anything else. Swipe gesture is pretty tough to code, I think the first time I did it was in my placement job - just need to break it down to its components.

Pseudo code for a shitty object drag, click and fling detection system when you only have information for the mouse x/y and if it is pressed or not. This is frame time dependant (which is bad).
C++:
int mousePosX;

int mousePosY;

Object touchObject = null; // Initially nothing is being touched by the mouse

 

void OnUpdate() {

    if ( IsMouseDown() == true && touchObject == null ) {

        // Record starting mouse position

        mousePosX = GetMouseX();

        mousePosY = GetMouseY();

        

        touchObject = HitTest( mousePosX, mousePosY ); // What are we touching?

    } else if ( touchObject != null ) {

        // We are touching something since last frame

        if ( IsMouseDown() == false ) { // Touching something, but the mouse is no longer down

            int releaseVelocityX = GetMouseX() - mousePosX;

            int releaseVelocityY = GetMouseY() - mousePosY;

            

            if ( VectorLength( releaseVelocityX, releaseVelocityY ) > <span style="color: #0000dd;">10 ) { // Release velocity above 10px/frame

                touchObject.OnSwipe( releaseVelocityX, releaseVelocityY ); // Released at a high velocity is probably a swipe

            } else {

                touchObject.OnClick(); // Released at a low velocity is probably a click

            }

     

            touchObject = null; // Let go of whatever we were touching

        } else { // MouseDown == true

            touchObject.OnMove( GetMouseX() - mousePosX, GetMouseY() - mousePosY ); // Haven't let go of object, so move it by the vector

    

            // Record new mouse position for this frame

            mousePosX = GetMouseX();

            mousePosY = GetMouseY();

        }

    }

}


EDIT: Also Amy that's HB Sauce. A pun on HP Sauce?
 
Xilef":2ydmgtfg said:
Keep at it potion it's these kinds of things that teach you more than anything else. Swipe gesture is pretty tough to code, I think the first time I did it was in my placement job - just need to break it down to its components.

Pseudo code for a shitty object drag, click and fling detection system when you only have information for the mouse x/y and if it is pressed or not. This is frame time dependant (which is bad).
C++:
int mousePosX;

int mousePosY;

Object touchObject = null; // Initially nothing is being touched by the mouse

 

void OnUpdate() {

    if ( IsMouseDown() == true && touchObject == null ) {

        // Record starting mouse position

        mousePosX = GetMouseX();

        mousePosY = GetMouseY();

        

        touchObject = HitTest( mousePosX, mousePosY ); // What are we touching?

    } else if ( touchObject != null ) {

        // We are touching something since last frame

        if ( IsMouseDown() == false ) { // Touching something, but the mouse is no longer down

            int releaseVelocityX = GetMouseX() - mousePosX;

            int releaseVelocityY = GetMouseY() - mousePosY;

            

            if ( VectorLength( releaseVelocityX, releaseVelocityY ) > <span style="color: #0000dd;">10 ) { // Release velocity above 10px/frame

                touchObject.OnSwipe( releaseVelocityX, releaseVelocityY ); // Released at a high velocity is probably a swipe

            } else {

                touchObject.OnClick(); // Released at a low velocity is probably a click

            }

     

            touchObject = null; // Let go of whatever we were touching

        } else { // MouseDown == true

            touchObject.OnMove( GetMouseX() - mousePosX, GetMouseY() - mousePosY ); // Haven't let go of object, so move it by the vector

    

            // Record new mouse position for this frame

            mousePosX = GetMouseX();

            mousePosY = GetMouseY();

        }

    }

}

The current issue is simply how I'm resolving the release event.

Code:
 

def event_resolve(events_list, sprites):

    moving = False

    if events_list[0]:

        mouse_click_position = mouse_tracking.get_pixel_at_click() # store players click location to compare to the release location

        while not events_list[1]: # We then wait for the player to release the mouse button

            events_list = event_loop.get_events(events_list) 

            if events_list[1]:

                mouse_release_position = mouse_tracking.get_pixel_at_lift() # stores players release location for comparison

                direction = mouse_tracking.get_player_facing_direction(mouse_click_position, mouse_release_position) # Compares the values to give the player a direction to move

                moving = True # We consider the player to be moving with the intention of stopping any input during that time.

                return direction, moving

    if events_list[2]:

        terminate()

 
The part that is messy should be obvious but it's the "while not events_list[1]" loop. This is because it entirely halts all progress of the game until the player releases their mouse. "Have you tried just calling the two separately" Yes. Yes I have. Can you guess what happened? It never enters the release statement (which would normally be "if events_list[1]")
 
I tried to keep it as close to what you have as possible, but I'm not sure if this is correct to how event_resolve is used.
Python:
EVT_MOUSE_DOWN = 0

EVT_MOUSE_UP = 1

EVT_QUIT = 2

 

moving = False # This needs to be held outside of the event_resolve logic

 

def event_resolve(events_list, sprites):

    if events_listEVT_MOUSE_DOWN]:

        if not moving: # Logically this can be combined with the if statement

            moving = True

            mouse_click_position = mouse_tracking.get_pixel_at_click()            

    elif events_listEVT_MOUSE_UP]:

        if moving: # Logically this should always be true (can't lift the mouse if it wasn't already down)

            moving = False

            mouse_release_position = mouse_tracking.get_pixel_at_lift()

            direction = mouse_tracking.get_player_facing_direction(mouse_click_position, mouse_release_position)

            # At this point direction = swipe movement vector

            return direction, True

    elif events_listEVT_QUIT]:

        terminate()
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top