News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

Metroid Insurrection

Started by liamnajor, November 23, 2016, 08:19:50 PM

Previous topic - Next topic

liamnajor

I lack patience, and am switching from pygame because I am having severe issues with the use of classes. I am switching to either:
godot engine(https://godotengine.org/)
urho 3d(2d mode[https://urho3d.github.io/])
wimi5(http://wimi5.com/)

EDIT:
I got godot working with no issues, so godot it is.

Quote58

I think if you're that quick to switch the entire library you're using, then I doubt you'll be able to follow through with any of them. I suggest working through the problems you have with pygame because you're going to have issues with everything you use. I can send you a game I made in pygame a couple years ago that makes use of class inheritance for the player/enemies/items/etc. It was when I was first learning to code in Python so it's not amazing code and if you have questions about Python/pygame I'm obviously a lot more knowledge about Python/other languages now. Also keep in mind I made it in a few days for an assignment, so some of the code is rushed, but I used the class structure to explain object oriented stuff to students later when I was TAing.


I will say that pygame is a weird choice for a Metroid fan game. By that I mean Python in general though, since if you're going to use Python pygame isnt a bad choice of library. But I suggest you stick with it, it'll be a good learning experience

Btw you'll have to use classes in anything other than like a drag and drop game maker type thing so if you really want to build the game with your own code you'll need to understand object oriented programming.

liamnajor

#2
I am aware that changing engines is a bad idea, in most cases. but what I've finished isn't anything to write home about, as I've been working on it for 1 1/2 weeks. Also, the engines listed above actually perform better on the pi(from my experiance), and would be WAY easier to debug.
The problom was not the creation or use of classes, it was that the classes either a) refused to do what they were supposed to EVEN AFTER fixing all syntax errors, and b) the other portions of code refused to use the classes correctly.

Zero One

Quote from: liamnajor on November 23, 2016, 10:33:31 PM
The problom was not the creation or use of classes, it was that the classes either a) refused to do what they were supposed to EVEN AFTER fixing all syntax errors, and b) the other portions of code refused to use the classes correctly.


Sounds like you're describing logic errors. Just because code is syntactically correct doesn't mean it'll do what you think it's supposed to do. Computers are dumb. If it is a logic error, switching engines won't fix anything. Of course, if it is really Pygame not working for some reason, it may be worth trying to fix that, just so you know how in the future.

liamnajor

since I was copy and pasting professionally made classes (as the ones I make are WAY bigger than they have any right to be, when considering what they do) and using the said proffesionals example code to get them running, I'm thinking the latter. I've already switched to godot, and got more done in 2 hours than I got done in 2 weeks in pygame.

Mon732

As a programmer for 4 years I suggest never blindly copy-pasting code. Especially when learning programming.
Make sure to read the code and understand what it does, Google is your friend here. It may seem tedious but it really pays off.
Also, don't worry too much about making your code as optimised as possible or doing it in as few lines as possible. That stuff comes with experience, as long as your code works and doesn't slow stuff down then it's fine. :P

Take it one step at a time and don't worry about getting having to get things done asap, a programmer learns best from his own mistakes.

Quote58

Quote from: liamnajor on November 24, 2016, 03:49:01 AM
since I was copy and pasting professionally made classes (as the ones I make are WAY bigger than they have any right to be, when considering what they do) and using the said proffesionals example code to get them running, I'm thinking the latter. I've already switched to godot, and got more done in 2 hours than I got done in 2 weeks in pygame.


Actually since the classes are professionally made, python is a really good language, pygame has tons of documentation from many years of development, and you've clearly only just started programming, I'd say it's vastly more likely that you just didn't understand how to use the classes properly.

I tried to be supportive because I give the benefit of the doubt, but it's time for some harsh truths here.
First off, Zeroone is right, obviously. The problem is almost certainly logic based, not a problem with the engine you're using and the professional classes you simply copy/pasted without understanding. Do you really think that it's the fault of the professional programmers who have spent years and years developing a lightweight, fairly powerful game library, that your program didn't work after putting very little time into it? Because I'd say it's almost 100% your fault here. Again, this is harsh but I think you need to hear it.

Second, you're trying to compare pygame, a very lightweight library that requires you to build the game yourself outside of simple sprite displaying/game loop + functions and classes designed for game development, and something like godot, which after a quick look at the documentation, is clearly more akin to Game Maker. Ie. a graphical way to make games with integrated scripting and large API's in the background that you don't have to understand at all. These are very, very different ways to make games, and saying godot is fixing your problems and getting more done is actually like saying 'I couldn't make the hard stuff myself, so I'm using this game development program that doesn't require me to do it'

Am I saying it's a bad thing to use Game Maker/Godot/etc.? No, of course not. In fact for someone who doesn't have experience programming, I would've recommended not using pygame in a heartbeat. But the fact that you made the commitment to doing it yourself and then when things got hard you blamed the professionally made code and switched to something easier, makes it clear that you don't have a good chance of getting this done in anything at this stage.

Honestly, I think what you should do is try and learn to program in general for a while, before trying to tackle a project like this. For example, you won't get far in game development if you don't understand object oriented programming. Even in Godot you're going to need to understand it or you're going to end up giving up later on. Copying a professionally made class without making an effort to understand it is attempting to take the easy way out of a problem.

I'm not saying you won't get anything at all done with godot, and it's totally possible that you'll end up learning to program well through the project (am2r creator learned a huge amount over the 9 years of development), but the fact that after only a week and a half you switched the entire language/library/system for developing the game indicates that you want the faster, easier way through a problem, and that attitude will not serve you well in game development.

You could've always just asked for help with the problems you were having with the code btw, considering there are tons of programmers on this forum who would've helped solve the problem so you could learn from it going forward.

liamnajor

I agree. I should've admitted that I didn't understand how to use classes, and should've admitted that it was my errors, not the creators of the classes or pygame. Since I am having trouble understanding classes, the graphical elements of godot will serve a beginner like me really well. Sometimes it takes nothing less than a slap to the face to get one to open their eyes.

Zero One

Classes are a fairly simple concept; the hard part is using and designing them correctly. Definitely stick with Godot if that's working for you, but I'd definitely recommend trying your hand at a programming language again, if that's what you want to do. Codecademy has a good series of Python tutorials which should help you get some of the basic concepts down. I went through them myself and found them pretty informative.

liamnajor

godot has its own scripting language, gdscript, and I will attempt to learn it. From its documentation, I beleive it to be based on javascript, with the syntax of python. For now, however, i'll just stick with the graphical editor. I'm very suprised as to how well godot is working, considuring I'm doing everyhing on a raspberry pi 3 b+.

liamnajor

Got a 128gb microsd card for my raspberry pi today, and have to reinstall godot. Luckily, I lost no files in the switch.

Amorsis

Reading this post really makes me want to try and learn some form of programming. if I were to pick it up, which should I start with?

liamnajor

Just don't be lazy and give up like I did :^_^:

Quote58

Quote from: Amorsis on November 28, 2016, 01:20:51 PM
Reading this post really makes me want to try and learn some form of programming. if I were to pick it up, which should I start with?

Did you mean thread?

If you want to learn to program in general I would strongly suggest python as a first language.
Or if you want to hack super Metroid you could learn assembly.

Amorsis

Quote from: Quote58 on November 28, 2016, 08:59:25 PM
Quote from: Amorsis on November 28, 2016, 01:20:51 PM
Reading this post really makes me want to try and learn some form of programming. if I were to pick it up, which should I start with?

Did you mean thread?

If you want to learn to program in general I would strongly suggest python as a first language.
Or if you want to hack super Metroid you could learn assembly.

Yes, I meant thread :P And thank you for the quick response. I meant programming in general. Ive tried my hand at java before, and using Eclipse, but I found it too complicated. That was 4 years ago back when I was still in middle school. Ill try my hand at Python, and see where it takes me. ^.^

Zero One

Ah, Java and Eclipse. Garbage, programmed using garbage.

interdpth

Quote from: Zero One on November 30, 2016, 05:09:22 PM
Ah, Java and Eclipse. Garbage, programmed using garbage.

That's a biased lie and you're horrible. Java is a fantastic and quick language these days.

Eclipse can be slow, but it's powerful.

liamnajor

My Raspberry pi Literally melted (Might have something to do with me overclocking it......oops). Now I am stuck with my android tablet. Can anyone suggest a good graphic - based game engine for android?


liamnajor

NO! SCRATCH DOESN'T COUNT! I HATE SCRATCH! IT IS BRAIN NUMBINGLY SIMPLISTIC!

liamnajor

Hey, I found one! Actually, I converted the browser - based engine WIMI5 to an android apk. I have yet to fully test it, though.

liamnajor

wimi5 didn't work........

What now, you ask?
Well, using my friends PC and Android Studio, I am compiling GDevelop and Godot for my tablet. However, I lost the dev files for Metroid Insurrection and have to start over. I will post a video of the new version in about 2 weeks.

Zero One

You don't need three threads for the one project. I've merged them all. Please do not create any more for this project.


liamnajor

#24
Major update. I switched to the engine gdevelop, and this is the on I am sticking to. I have a build of my engine, and am uploading a video today. one problem: I have a linux pc, and so my engine is only playable on linux. would anyone with a windows pc be willing to compile my builds on a windows pc?
"game"play:
https://youtu.be/Y2mlFFXR9_8
Download:
https://drive.google.com/open?id=0BzERoQWaYkVjMXpjcUJRTDJ5ZkU
EDIT: I checked out the video. Some error made it look TERRABLE. Sorry about that.