I'm crowdfunding my newest game: reTux (new Mario-inspired platformer)


If your objects/sprites change the positions while playing, do you update your huge level image every frame?

Ever though of a quadtree approach?
 
If your objects/sprites change the positions while playing, do you update your huge level image every frame?
No, you misunderstand. xsge_tmx combines unmoving, non-interactive objects into one. It doesn't affect any object which is not derived from xsge_tmx.Decoration, or that has any amount of movement or acceleration, or that is involved in any sort of collision detection.

Ever though of a quadtree approach?
No, but it does look interesting. Thank you for the suggestion. :)
 
Last edited by a moderator:
Well, this is really neat: a very simple, two-line change has almost doubled the speed reTux runs at. Yes, doubled.

A particular change I made caused reTux's FPS to go down from 38 to 31. I was scratching my head over this, trying to find something that might be causing it. But then I realized something: since the position attributes (x and y) are properties that call certain functions every time they are changed, a function called "move_x", and a corresponding function called "move_y", should really check that the move amount they apply to x and y is non-zero before actually doing it. So I added this check, first to move_x and move_y and later directly to the properties, and with it, the title screen I was using as a reference point runs at 60 FPS, and almost everything runs at 50-60 FPS. "Concept Castle" now runs at 30 FPS most of the time, except for one point when there are a lot of enemies on the screen and it drops to 20 FPS.

That means, barring the RAM limitation, the 1 GHz Pandora could probably actually run reTux almost decently (based on the rough guesstimation of an overclocked 1 GHz Pandora being 1/4 the speed of my laptop, that would be about 12-15 FPS for most levels -- which I should point out isn't terribly slow, as reTux delta times down to 20 FPS).

Also, getting rid of the feature in xsge_tmx which sacrifices a big chunk of RAM to store room-sized images doesn't slow down the game as much now as it did in the past, though it's still quite terrible in Concept Castle (speed drops down from around 30 FPS to around 10 FPS). I think I'll want to add that tile layer feature to replace that, at any rate.
 
After reading this thread, I think maybe "Hase" should be crowdfunded for a modest amount of about $100.000. At least Ziz has some serious multiplatform skills, his stuff does always run great and it's usually more than asset recycling or just a clone of another game.
 
Last edited by a moderator:
$100 seems a bit low, I don't think Hase is quite that bad. Anyway, I don't get the bad vibes. I don't see any lies or misleading statements on that campaign page.
 
$100 seems a bit low, I don't think Hase is quite that bad. Anyway, I don't get the bad vibes. I don't see any lies or misleading statements on that campaign page.
$100.000 aka $100,000
 
$100 seems a bit low, I don't think Hase is quite that bad. Anyway, I don't get the bad vibes. I don't see any lies or misleading statements on that campaign page.
$100.000 aka $100,000
Yupp, the meaning of . and , Separators differ from country to country. Hundred thousand Dollar In Germany is written 100.000$ when using separators.  And Hundred Dollar is written 100,00$. In Other countries point and comma are vice versa when used in numbers. One ot the things that were quite confusing when I learned english in the past. I still must think twice to write the correct version in english speaking boards.  ^^"
 
Last edited by a moderator:
I've learned that when I see three numbers after a decimal point, it probably doesn't mean thousandths of a dollar (or whatever unit) a.k.a. a tenth of a cent, but instead is probably a thousands separator using some other convention.
 
Onpon, you are really going about this the wrong way. From what I can read here, at least it seems to me that you are doing some really basic errors, stuff that even I recognize as bad - and then I'm only looking at it from a really basic computer science perspective, stuff like Ordo awareness in algorithms and so on. I don't even pretend to know things about game development specifics, so that when even I can see the problems, there really is something lacking.

And still, you put that to a crowdfunding campaign? I'd...not. You really, really need to know how to do  something that is actually not crippling itself. Money won't help ou solve that kind of problems, and asking people to give you money when your basic game engine isn't viable will only end in tears.

Close the crowdfunding. Get the big problems ironed out. Reopen when you have an engine that will work, to finance that part which is polishing and optimising (that is, the difficult bits when the basics are down). Otherwise it'll end in very angry backers.
 
I'm only looking at it from a really basic computer science perspective, stuff like Ordo awareness in algorithms and so on.
I'm a software developer, not a computer scientist. I don't think knowledge of computer science is necessary to be a good software developer. Such knowledge also doesn't necessarily make you a good software developer.


Personally, I find computer science to be an overly complex and boring topic, and the various computer science terms and ideas aren't how I think about software at all.

you put that [the SGE Game Engine] to a crowdfunding campaign?
No, I put reTux into a crowdfunding campaign.


I have no qualms admitting that I'm new to developing a game engine, and that I've made tons of mistakes in its development. What is mentioned here doesn't even scratch the surface of it. In the past, the Pygame SGE's cache system was causing RAM usage to grow continuously until the RAM ran out. Even my laptop's 6 GB of RAM wasn't enough to cope with that for long, obviously. My mistake? I was keeping cached values forever. Fixing this problem was a lot of work, but it basically involved making sure the cache is pruned every few seconds, removing values that had not been used in the last minute or so. (80 seconds to be exact, but that was just an arbitrary choice.)


With platformers, I have more experience, however. Two games, in particular:

https://onpon4.github.io/darkside/bowser.html

https://onpon4.github.io/darkside/bowserslaststand.html


Although there was also basic platforming in a third game, Karate Kat:

https://onpon4.github.io/games/karatekat/


The only thing about platformers I've had to learn here with reTux is slopes. Every single other feature I've implemented, as well as every single design decision, in reTux comes almost directly from my prior experience, particularly in Bowser's Last Stand.


Ultimately, your statement here reads to me like: "You're human, and you've made mistakes in your programming. Therefore, you are not ready to commercialize any work you do." I don't agree with this sentiment. My work, like anyone else's, will never be perfect. If I sit in a closet waiting for it to become perfect so that it is worthy of commercialization, then I'll be doing so forever.


Additionally, convincing people to pay money for a game is itself something that you need experience to do well. Something I've learned first-hand in the course of this is why publishers have so much power over culture; publicizing something is truly a difficult job, especially when what you really want to do is actually make your work better (unless you use lots of money, in which case it's just expensive). If I were to wait until I had something people would be really likely to support, I would probably blow it, wasting a perfectly good opportunity. This is one of the primary reasons why I chose a relatively "safe" game to start with. If, as it seems is going to happen, the campaign is a catastrophic failure, everything will ultimately be fine. The game will still be finished, those who chose to support me will still get the game that they paid for, it will still be a valuable addition to my portfolio, and as a small bonus I will additionally get some experience in selling copies. When it comes time to commercialize another game, I will be better prepared for it.

game engine isn't viable
I wouldn't say that. The SGE doesn't work well on the Pandora, sure enough, but it works just fine on any modern PC.


Additionally, the Pygame SGE is a reference implementation, not the definitive version. I've planned from the beginning for the SGE to be re-implemented for reasons like portability and efficiency.

Close the crowdfunding.
That is not permitted by IndieGoGo after someone contributes. Even if it was, it would be an incredibly bad decision. Stupid, even. Just giving up and calling it quits like that when you've already made a commitment would demonstrate an incapability or unwillingness to see something to the end. Who would ever support me again if that is the impression they have of me?

Otherwise it'll end in very angry backers.
Angry by what cause?


I have promised only four things if the campaign does not reach its goal: that the game will be finished, that the game will be good and professional (qualifying "professional" by pointing out examples of graphical defects I won't tolerate), that I will listen to feedback, and that every contributor will get the perk they selected (i.e. everyone who contributes gets a copy of reTux when it's available). Everything specifically mentioned on the campaign describes reTux as it currently is. The videos are real videos of reTux, and the screenshots are real screenshots of reTux.


The only way I can conceive of anyone being angry by how reTux turns out with a low budget is if they randomly assume on their own that something I'm not planning to do is going to be done. Well, I can't help that.
 
Last edited by a moderator:
The only way I can conceive of anyone being angry by how reTux turns out with a low budget is if they randomly assume on their own that something I'm not planning to do is going to be done. Well, I can't help that.
*snickers* Sounds like you also need to get experience in Customer Service... May I suggest you find a call centre or a retail job to work in for a while? ;)


- Neelix
 
Last edited by a moderator:
The engine looks featureful and seems to be working quite well mechanics-wise based on the videos. Congratulations for getting this far :)

Still, I agree with the people voicing concerns over performance. A game like this should not require a modern PC to run especially with anything less than solid 60fps. My guess is you're needlessly copying bitmaps per frame and doing O(n²) collision checking. I'd advise you to profile your code, implement at least quadtree-based collision checking and make sure the only bitmap copying you do every frame is blitting dynamic objects and a pre-blitted static background. A good way to further reduce the footprint is to have optimization flags for your sprites, like "this sprite never moves" or "no collision handling". Having a grid for terrain may sound limiting at first, but note you don't have to put everything in it. Have a grid layer for tile-based stuff that you render to a texture and check collisions against separately. You can have non-tiled and dynamic platforms and stuff in addition to this on a sprite layer.

Good luck!
 
Personally, I find computer science to be an overly complex and boring topic, and the various computer science terms and ideas aren't how I think about software at all.
Yes. I can tell.  Which kinda sorta is the problem. 

However, I'm not telling you that you have to be perfect or whatever. I'm just concerned that you are setting yourself up as another Craigix or that guy whose name I can't remember now who was going to design a new console, make an epic RPG, start a new online magazine and whatnot. Internet fame goes both ways, you know.
 
Personally, I find computer science to be an overly complex and boring topic, and the various computer science terms and ideas aren't how I think about software at all.
Yes. I can tell.  Which kinda sorta is the problem. 

However, I'm not telling you that you have to be perfect or whatever. I'm just concerned that you are setting yourself up as another Craigix or that guy whose name I can't remember now who was going to design a new console, make an epic RPG, start a new online magazine and whatnot. Internet fame goes both ways, you know.
And why should those people care as long as they got the money?

It's way easier to make a bloody lot of money this way than by regular work and I really believe that they don't give a damn about some people far away being miffed about them.
 
Last edited by a moderator:
Yes, well, I peg onpon as someone who isn't necessarily mainly interested in conning a fast buck from internet strangers :D
 
I'm only looking at it from a really basic computer science perspective, stuff like Ordo awareness in algorithms and so on.
I'm a software developer, not a computer scientist. I don't think knowledge of computer science is necessary to be a good software developer. Such knowledge also doesn't necessarily make you a good software developer.

Personally, I find computer science to be an overly complex and boring topic, and the various computer science terms and ideas aren't how I think about software at all
There is a reason, why there is science behind computers...Anyway: I think you are wrong. You need computer science knowledge to be a good software developer. In Germany we usually don't even split these two terms and call everyone "Informatiker". You need at least to know about computational complexity theory.
 
Back
Top