Crash Bandicoot N. Eurosis (designers, modellers and texturists wanted)

As if I wouldn’t get tired from trying to do such complicated programming alone.

As if my plan isn’t solid enough

You just said you were losing yourself in your own code / layout.


@jesusmora were you the developer for this game?

Doesn’t make sense, what does “calling an object” mean? You can interact with any object by looking up properties, you can even store functions inside the game properties with Python, then it would be like object['function'](arg1, arg2, ...) (not that I recommend doing it, but it is possible).

You can also have your functions to interact with objects take the target object as parameter:

if 'destroy' in hitObject:
    hitObject['destroy']()

I mean, here the issue seems to be your own lack of organization.
But you are not really to blame, because I’m not sure anyone has a magic way of working on the BGE that would work 100% of the time and address all use cases.

Again, project management issue, fault of the devs. Making a game requires a whole lot of thinking.

But you cannot think about everything, so be sure to be ready when you will have to rewrite what was not correctly written. It just happens. I do refactorings around once a week on my projects as well, to make the code more clean and flexible.

Never refactor and you just pile junk on top of more junk until you throw up.


So, someone else should get tired?

So far the major issue has to do with properly organizing/writing the logic.

I have the same issues, and I think other people too even if they don’t notice it.

In my case, the solutions I came up with come from multiple years of programming in different domains, that I then applied back on the BGE. And even then everything is not just working right away without you having to solve issues that only exists in your particular case.

@Guyus_Matlow what do you hope to achieve here?
You asked for people to join, so far no one responded, what are you doing now?

I could say a lot of things about this thread and the attitude of the project owner.

Instead I will just mention one thing that stands out to me as a sore thumb.

jesusmora is an ex project member. It is clear to me he has contributed a great amount to the project. Yet, all I taste from the OP is disdain for the fact he quit. I sense no gratitude for work done, no appreciation for the time and effort he put in, no understanding that with the passing of time people eventually move on.

Even if jesusmora did things in a manner that was not perfect (noone will be perfect btw) this alone is enough for me to stay far, far away from this project. Apart from whether I find the it interesting to resurrect an old game, that alone makes me think you are an unapreciating, entitled human being and horrible to work with.

I don’t think this will register with you because some other people have already tried pointing out similar things to you but who knows… I think its something you need to tackle for yourself before deciding whether its worthwhile to keep pursuing this dream in the manner you currently have.

1 Like

no you can’t. i know how to get an object with bge.logic.getCurrentScene.objects.get(“object”), i do it all the time. but i can’t change nor execute actuators belonging to other objects if there is no link, i’ve tried and blender gives an error.
i think i did:

other.actuators["actuator"].activate()

when i got the error the first time. i don’t remember if i could change the values of the actuator from a different object, but i do remember that i could not execute the actuator. so if i want to “break” a crate (play the animation before breaking it, or playing an animation when a collision happened) i had to set up a sensor inside the crate object to execute an actuator, instead of doing it all from a single file.

my way of working is more of the “if it ain’t broken don’t touch it”. which became problematic when i was asked to add new features, the code was made to do something and it suddenly had to do something completely different. i made sure to make it modular so i could copy and paste code with minimal modifications, it became problematic when i had to change all the functions that used similar code, to change a variable, dictionary or function inside of it, so i had to look at every line and find every function.

guyus asked for a programmer, i joined and found a game relying heavily on logic bricks. i though it could not get too far with such chaotic design, so i ported almost all the logic bricks to code (nobody asked for this), then added new features like level loading, which was fun. then came bug fixing and making it work the way he wanted it.
i felt like i had “broken” the game mechanics from the feedback i got, so i kept trying to fix it (you can look at the video in this thread, the first one is of the “broken” game, the second is the “fixed” version).
i honestly feel bad for trying to do things my way, i feel like all the code i added just made it hard for any future programmer to work on it, but i don’t have a point of reference to really know if that’s the case.
i imagine that the last programmer just wasn’t as good as to understand the code and work on it and that’s why he left.
i added a lot to the game, but i had to do other things and it was getting distracting. understand that guyus is not a programmer but an artist, he made models and animations and the design of the game, but also that he is inexperienced in game making (doing things one by one instead of planning everything out before starting), tho i think nobody who works in bge is, as there are no serious “complete” games made on it, only small tests and tech demos.
still, the experience from being able to work on a complex game was very welcomed, as i woul’ve not be able to do the same had i had to make the models and animations too.

no, not for the game, for the code.

your plan for the game is very complete. so theres no excuse not to have well planned code.

block diagrams, flow charts, states, class structures, etc.

If it is the first time you are trying to do this, failure should be one of the first expectations, followed by improvements. Learning means falling and getting back up. It takes time too.

In this case it really sounds like this project won’t go far unless Guyus changes his attitude (or finds another poor programmer to just put his expectations onto).

It is the right approach, but future problems are kinda today’s problems, if you can prevent as much as you can it will always be beneficial. Then again with experience you will be able to see what already works but still needs to be “fixed”, refactorized.

Yes because Logic Bricks don’t allow you to do that, but I wasn’t talking about bricks, I was talking about interacting with objects using only Python, and have the functions of the form:

def doSomething(object, param):
    if object.get('prop', None) == param:
        object.applyRotation((0, 0, .1)) # idk...

Then everytime you want to apply a function to an object, instead of the usual way object.function(param) you can do function(object, param).

This is just one way of going about it.

Your feeling is mostly right here, I don’t know of many people here (haidme? sdfgeoff?) that know how to push a game to completion, no idea what their workflows are, tools, etc…

So yes, doing things one by one is the way to go when discovering a new thing, but it comes at the cost of having to rewrap things as you go, maybe even re-doing all over some parts of the project because of the mistakes made in the beginning when not knowing shit.

@jesusmora you seem to be of the likes of people that can get their hands dirty, so don’t let that project sink your motivation, at least you did something, big, and that’s just plain experience. Sleep on it, and maybe do something else with it, if you are still into programming :stuck_out_tongue:

Can be anything, BGE related or not, idk… Anyway, just saying that because of the feelings you described, don’t let that sink you down. Big failure = big experience.

Most of what you described seem to be correct!

My knowledge of good coding now comes, in part, from what I have done in the Godot engine, the passing game happens to be really easy there. For BGE, you could try activating and manipulating actuators inside of functions and just activate the function remotely (though if there’s nothing to get other objects other than a single “get” function for the whole scene, even that could be difficult).

Now you mention fundamental features breaking in UPBGE with each version. This level of flux in release quality indicates a potentially bad sign in the quality of the commits going in as well as UPBGE’s future as a viable solution. I expect to hear the UPBGE users say not to worry as they engineer their latest workarounds, but a good quality engine should make you confident that the only time the code does not work is because you wrote it wrong.

Offtopic, but regarding the quality of the commits, it came from good intentions: maintaining a project which wasn’t touched by the core devs anymore, yes it can be whacky but it is also collaborative, yet only so few were working on UPBGE… Other engines might have more people behind it, but I always cringe when I see people expecting the same standards from such a small benevolent team on UPBGE, but have no intention of adding commits, no.

Then the solution is simply to move to another engine indeed :slight_smile:

Or contribute and fix the issue, up to the person.

Anyway, even Godot has bugs, maybe less, maybe less dramatic, but oh well, that’s software for you!

Well, supposedly there’s a few builds that are good enough for people like Haidme to get their games done, so that is at least better than what BF BGE was.

About standards, a small team could at least try to test for regressions and revert offending commits (so as to avoid the “pick your poison” approach or downloading builds frequently to find a golden one). That means being careful to avoid situations like UPBGE’s current navmesh bug (which appears to even be affecting the engine’s top promoter).

thinking back, there are some tricks that could be done to get some things working, like using factories for sound, or the python animation functions. but there’s still the problem of time. sometimes you need an object to wait before doing something, but the script in bge runs on a single frame. putting a script or logic bricks in the objects becomes kind of unavoidable then.

i gained experience working on that project. now i’m doing some c++ tutorials and it seems much easier than last time i tried. knowing python helps a bit with it, so i don’t consider bge to have been a waste of time.

many people who use upbge could not make commits even if they wanted to, i am among them. upbge is written in c++, it has thousands of functions and calls and classes and all kinds of stuff, and almost no explanation of what they do, or a wiki or image explaining how things work.
i started to study c++ to try and help, but i don’t think it will be that easy.

upbge does need some kind of guidance, as many of the features added recently, in my opinion, were not necesary (the update to bullet 3, gpu skining, the change in libraries). there should be some kind of priority for more practical features and bug fixes and add over what already works, to allow a working game to be made. i mean i’m not even sure if some of the commits were actually increasing performance, simplifying the code, or some technical stuff on something that didn’t need it.

Tristan refactored stuff - tried to modernize it and add new features.

I have my first commit the other day, (fixed a compound physics bug)

it’s not that much different than py.

as far as timing and making things happen you need a pythonic state machine.

(something where you can write states as functions in py, and the actor calls them using a sort of ‘cache’)

I use

def state():
   ##do state stuff
   ##process input or not
   ##exit condition
   

stateDict = { "StateName":state }


def main():
   if 'StateStrip' in actor:
      stateString, args = actor['StateStrip'][0]
      state = stateDict[stateString]
      state(args)

and in main I have a list stored in the actor that it the statelist / cache that calls the function and packs arguments.

when a state has met it’s exit condition it just pops itself
(calling the next state)

Whatta discussion broken loose here, if you know what I mean. But I would lie if I say those replies are giving me any hope for this project.

Activision and Vicarious Visions screwed up Crash’s origins by poorly remaking them for modern consoles, and fans, instead of booing and boycoting, they became obsessed of that imposter and are now treating it like a f***ing God’s work. It’s like they’ve gotten blind to what original PS1 versions had better and more correct, and threaten to neglect it.

This it the problem I want to solve with this fangame. To make both fans and developers realize that this innoncent classic could still stand out as it is and that there was never any point or reason for those massive, inconsiderate changes no one really asked for, Crash turned into retard hobo, Coco borrowing Crash’s moves, sfx poorly recreated, soudnndtrack recreated for no reason, wrong font…

Another problem I want to solve is game companies’ unhealthy urge to only focus on pointlessly high specs, as the people that have low/mid end PCs, like myself, are left absolutely nothing, forcing them to commit suicide. And if I have a game company in future, I could also look forward to save optical drives from possible demise.

You see, the less restricted system requirements and availability, the wider audience can enjoy the game.

1 Like

this is a small adaptation to the game3 template which allows the camera to follow a curve (sort of).

Do you believe you could share me that camera system and guide a little what each piece of it does, so that I can reassemble the paths?
Or a tutorial so that I can make one myself?

Ok, I still have no idea what you had against me, Crash N. Eurosis or vanilla BGE, but due to your lack of enthusiasm and support towards to them, and from @Daedalus_MDW’s suggestion, I’ve started to port this fangame into Godot.

It’s not a total rollback in terms of assets, but codes have to be redone - which is claimed to be easier in Godot than in other engines, even easier than BGE’s logic bricks, but that isn’t sure just yet - and some materials have to be retooled.

As for you all in this forum, you might be more help with designing, modelling and texturing. So if you’re interested to do at least that, reply this thread, PM me or contact via [email protected]

1 Like

@Daedalus_MDW must’ve either lied to me, or just overrated Godot, when he claimed it being easier and more supported than BGE. It didn’t really make things any easier. I actually regret that I switched the engine and been considering that I’ll revert back to BGE.

But should I expect anybody to assist me with fangame’s bge version? Or has every last member of this forum become an UPBGE obsessed sadist? Cause if I give up and cancel this fangame, the suicide will end up being my only option to avoid that imposter that is now manipulating Crash Bandicoot fanbase.

You don’t want that, do you?

So if you read this, I want you to prove me that there are kind and sensible BGE experts in this forum who would like to co-program Crash N. Eurosis with me, no matter what. It’s not too much to ask, it won’t kill anybody and it wont result the end of the world! Then again, there is NO SUCH THING AS THE END OF THE WORLD.

Besides, there are several other unpaid BGE teams here, so who says I can’t join them, or have one such team of my own?