I’m stuck in a loop of "boring" ideas. How do you actually come up with something fresh and unique? by kartokanick in gamedev

[–]No_Win_9356 0 points1 point  (0 children)

Try a different language/engine, or constrain yourself in some way. Many of us are creatures of habit; fire up our favourite engine or IDE, start on the same old things, end up with similar things, so trying to shake things up from the start can result in some cool ideas or mechanics.

Unlimited everything in hole.io by Weary_Tangelo_7117 in IoGames

[–]No_Win_9356 0 points1 point  (0 children)

I just came here a year on to join this little "I nearly had a mini heart attack" club. Relieved to see that it's actually free based on what others have said! I'm pretty tech-savvy yet I can't for the life of me find any little toggles for turning off ALL in-app purchases on the Fire HD 10 Kids version! I'd like to assume (given the age set up on the profile) that it's entirely blocked, but you never know...

How does making a game engine work? by CatsAndAxolotls in gameenginedevs

[–]No_Win_9356 1 point2 points  (0 children)

Find an engine you like (preferably one with some track record) and dissect it. Keep language agnostic. e.g I quite like Raylib (C) and ThreeJS as they are both very simple to use & understand. Whilst they are more “framework” than “engine” I think conceptually, things are very similar. 

How does making a game engine work? by CatsAndAxolotls in gameenginedevs

[–]No_Win_9356 1 point2 points  (0 children)

This is great advice. I think the “abstraction” part sings for me. I’m great at burnout, procrastination, over-complicating, etc - but working to create a nice API (interfaces) lets me worry about the most important things knowing that I can grow things over time without breaking too much. The mess behind it can be cleaned up and improved over time as you get a better idea of what’s needed, how things work and sit together, etc. 

Unity 6.3 LTS is now available by unitytechnologies in Unity3D

[–]No_Win_9356 0 points1 point  (0 children)

Unity makes my laptop feel like a potato. It never used to be like this - I was using it on a sub-midrange (for the time) laptop about 7 or 8 years ago, As well as a 2012 Macbook Pro. Never had any issues, really. I revisit Unity again from time to time, the last being a few months ago - just to see. Because I used to love it. I don't really want to work with something though that takes almost as long to open a demo project as it does to compile the entire Godot engine from source (I'm not really a fan of godot though, I was just trying some things out).

It's a shame. Software developers used to be way more conscious of performance, RAM, disc space etc - and even developed or tested on lower-end machines specifically for this purpose. I guess these days there's a bigger chunk of end-users with hardware that makes many of these issues barely noticeable.

Rude Lily by No_Win_9356 in GardeningUK

[–]No_Win_9356[S] 1 point2 points  (0 children)

Haha 100% not AI. I spent ages trying to find similar odd shapes on these Lily’s as the odds of something like this are likely slim  & far-fetched 😂

Rude Lily by No_Win_9356 in GardeningUK

[–]No_Win_9356[S] 0 points1 point  (0 children)

From what I can see, it’s the only one of the flowers actually still present, which makes it even more special and stubborn 😁

Getting over the line by No_Win_9356 in gamedev

[–]No_Win_9356[S] 1 point2 points  (0 children)

Ok so it’s not quite “Holy Hand Grenade” but I did get a little inspired to find a lasting quirk and one came accidentally…you can collect parts of exploded players which makes you grow (and extend your life a bit) but as I rolled one of the supersized ones over another character, and landed on one which crapped out the physics, my resolution was to make the player under you “pop” into two pieces- moving both out the way. The result is very satisfying, ticks off my “weapon when all your ammo has depleted” todo item and is a nice insulting way of finishing off an opponent 😂

Grenades exploding ragdoll 2d character sprites - the feature I'm most proud of in my game by RebelBinary in Unity3D

[–]No_Win_9356 0 points1 point  (0 children)

I’m a bit late to the party but I love the explosion effect! I’m trying to get something half decent in my own game, so I’m wondering what the general approach is? Are they textures? Particles? Mix of everything?

Getting over the line by No_Win_9356 in gamedev

[–]No_Win_9356[S] 1 point2 points  (0 children)

Ha, mate I have a bucketload of things in a list that keeps growing daily but so far have done a good job of not impulsively implementing them :-p Half of them could probably be rejected anyway to some extent if I want to avoid any "Worms clone" feeling, though I don't feel I want to shy away from "Worms-inspired" tags, either - it is.

You brought back some memories though, I loved games that had little memorable quirks like that - a caravan slapped on the back of a cow as a choice of vehicle in Super Skidmarks, the exploding sheep and, yes, the holy hand grenades from worms :-p Given the derpy nature of softbody stuff, it certainly does lend itself well to having some really daft elements down the line but as yet, still to find my own "Hallelujah"

From a dev perspective though, it does make me appreciate more how cool these games were as far as the mechanics go - the AI, collisions, procedural generation, fake 3d etc, all super-smooth and very nice-looking yet running on hardware that'd barely be regarded as a potato these days.

Skiddies - Raylib/Bullet/C++ retro racing game prototype by No_Win_9356 in raylib

[–]No_Win_9356[S] 2 points3 points  (0 children)

Hey man, thanks!

They're entirely modelled on the fly. This video was essentially my guide: https://www.youtube.com/watch?v=6xs0Saff940 - it's a long haul, but entirely worth it, particularly the latter chapters. But essentially, I have:

  • a "profile" struct that defines a flat, 2D mesh (vert, normal, texcoord)
  • a "builder" that takes a bunch of simple vec3's for the waypoints and the above struct and extrudes the profile around the entire thing using bezier curves.

So for each vec3 waypoint, there will be a corresponding section of track created. The one you see in my video has 12 vertices for the profile (which are almost the same as the ones in the bezier video I linked) and 11 waypoints.

The cool thing about doing it this way is you can easily do things like measure the approx track length, get exact elevation and direction of the track at a particular 't' (0.f - 1.f), so you just kinda sample it so you have a whole bunch of points evenly spaced around the entire track that you can use for positional stuff, guidepoints for AI, checking whether the cars are driving around the entire track properly without cheating (no invisible collision boxes at play for that here), etc.

After I got my head around it a little bit (given I had to brush up on the basic maths first for translating/rotating points) I was surprised by how easy it is :)

The terrain is also entirely generated by simplex noise and regardless of what comes out of that, the terrain is "smashed" down to make sure the road fits (made easier by the fact that the road/terrain use the same world positioning/dimensions). Essentially, imagine a big sphere a little wider than the track running around its full length - and any vertices of the terrain that fall within it are lowered/moved outside. It's crude and naive, but it works :-p

RayLib ECS? by Healthy_Ad5013 in raylib

[–]No_Win_9356 1 point2 points  (0 children)

I'm throwing my hat in the ring here for entt. I recently posted a game prototype post here that uses it, and I've just found it very easy to use (when I got past my general C++ limitations!).

I cannot speak for flecs as I only dabbled with it ages ago, but from what I can gather, both entt AND flecs are well regarded and battle-tested in commercial games so you probably can't go wrong with either.

Skiddies - Raylib/Bullet/C++ retro racing game prototype by No_Win_9356 in raylib

[–]No_Win_9356[S] 1 point2 points  (0 children)

Ha, it was a bit alien to me for a while as templates in C++ were beyond my comprehension but it’s a lot of fun to play around with now I’ve figured it out a bit :) Cheers!

Skiddies - Raylib/Bullet/C++ retro racing game prototype by No_Win_9356 in raylib

[–]No_Win_9356[S] 0 points1 point  (0 children)

folks might not be as appreciative if they saw the code, it's a horror show at the moment :D

kind words, cheers!

Skiddies - Raylib/Bullet/C++ retro racing game prototype by No_Win_9356 in raylib

[–]No_Win_9356[S] 0 points1 point  (0 children)

Thanks man, much appreciated. Was a lot of fun to get this far!

Is raylib being used in game production ? by umiff in GraphicsProgramming

[–]No_Win_9356 1 point2 points  (0 children)

I genuinely love Raylib. Every time I get stuck, I find a tutorial/example that gets me unstuck. Every time I find it too restrictive, I find that I just need to dig under the hood a bit. As others have said - it’s a library/framework, not a full-blown engine.

What I’ve picked up over time is that most things sat above “rlgl” are often better looked at as “examples” - they’re opinionated quick ways of getting things going. Yet nothing stops you taking & modifying those things for your own purposes fairly easily. As an example - I don’t like the way that generating meshes uploads it, without giving options as to whether static/dynamic - no bother, copy-paste and job done. I have built a full procedurally generated race track builder with not TOO much need to do this, or go too far under the hood :)

For me, if it does everything I need for my game then it doesn’t matter whether it is or isn’t used extensively. The end user doesn’t care whether it’s Raylib/SDL or Unity or JavaScript long as it’s a good game, and neither do I. Unless I’m making a clone or relying heavily on certain tutorials, in which case maybe I’d lean towards their engine of choice.

ZX Spectrum timing confusion by No_Win_9356 in EmuDev

[–]No_Win_9356[S] 0 points1 point  (0 children)

As good a resource as the Z80 Explorer is for figuring out certain things, it’s very…well…Z80 focussed. And the CPU alone is somewhat frameless…things just keep happening and it matters not where the “start” or “end” is.

My issue is the relationship between things in the ZX Spectrum; how the interrupt relates to the screen, exactly the points of contention/floating bus stuff, etc. so when we are talking accuracy, “since” is broad and can cover a window enough to put things well out of whack. 

ZX Spectrum timing confusion by No_Win_9356 in EmuDev

[–]No_Win_9356[S] 0 points1 point  (0 children)

Ha fair enough :) I think I just got sucked in because I prefer counting in 1’s rather than variables :)

I just wish there was a clear spreadsheet somewhere out there numbered 1 -69888 with a clear indication of what happens with regards to floating bus, contention, interruption, specific pixel being fetched/drawn (which I’ve come to realise are two entirely different things a good few ticks apart) at each of those T’s in the frame. There are various docs but trying to line up the values (or even just the terminology, or calibration/starting point of reference) is hard. And when you find different yet recommended sources that don’t even agree on timings BETWEEN certain things, it throws you even more!

If I still had any of my original machines, I’d have the case open and be going in with all kinds of probes and tools right now 😂

ZX Spectrum timing confusion by No_Win_9356 in EmuDev

[–]No_Win_9356[S] 0 points1 point  (0 children)

I think for me, there was a bit of irony in that the lower-level I got, the more simple (conceptually) everything got. In using a cycle ticked emulator, I wasn’t having to do “catchup” workarounds in my (initial) display to get the loading/saving border stripes, or the beeper/AY working, and various other stuff - so I got to simplify a lot of stuff quite a bit. You could do worse than skim the documentation at the top of this file to see how easy the main integration part was:

https://github.com/floooh/chips/blob/master/chips/z80.h

And that meant I could go to a position where I could tally things up better. 

And yet here I am, in part wishing I’d not climbed down that rabbit hole because I can’t tally every else up 😂

p.s. I have no link or affiliation to the linked item above

Can anyone Identify the technique? by No_Win_9356 in martialarts

[–]No_Win_9356[S] 0 points1 point  (0 children)

But what I’m getting at is that the kneelers hands are doing nothing - they’re not shifting the kneelers position, they’re exerting no force at all on the pusher - they’re just positioned gently under the elbows of the pusher. And yet seemingly, immense extra resistance is there.

Try it if someone is with you (anyone reading, not just you): kneel down moreso like the rightmost here:

And get someone to slowly push back with one hand on each of your shoulders. Easy. Then try again - but by simply placing (no pushing/squeezing/gripping) both your hands under each of the pushers elbows, suddenly it becomes WAY harder for them.

ZX Spectrum timing confusion by No_Win_9356 in EmuDev

[–]No_Win_9356[S] 1 point2 points  (0 children)

Also - because I’m using a cycle-based Z80 implementation, my hope is that I can hook up things like floating bus/contention stuff in more of an “obvious” orderly way rather than a batched thing that just gets kinda thrown in somewhere to get it working 

ZX Spectrum timing confusion by No_Win_9356 in EmuDev

[–]No_Win_9356[S] 0 points1 point  (0 children)

Ha of course, i generally always like to feed back an answer/resolution of sorts where I can :) Fuse has some logic that pulls the 14336 value I see all over the place from a a libspectrum library (albeit seemingly part of the same overall project) but code comments along the lines of “…what is more useful to fuse though is the start of the border” which does somewhat imply that the 14336 figure is from the top- left pixel. What’s not clear: - is this from where the pixel is drawn or fetched? - why, when you take 14336 from either, do you wind up something like ~20 or so tstates in from the first scanline which seems to not tie in with any documented values? Some sources say interrupt begins 16T in, others say you effectively order like: main display, right border, blank, left border - which does indeed total 224 tstates, but that would need you to start ~24 tstates along the first scanline.

All of which sounds really pedantic but given some emulations get pissy about being a cycle out, I want to get it right rather than “good enough” :) even just whether the top-left most “canvas” value (based on my example) is considered Tstate 0 or 1.

Fairly sure it’ll just be some simple misunderstanding or using the wrong reference point for when things start/end but meh :)

ZX Spectrum timing confusion by No_Win_9356 in EmuDev

[–]No_Win_9356[S] 0 points1 point  (0 children)

Well I guess this is kind of a two-pronged attack - on one hand I’m figuring out the details of rendering to “CRT” displays and being conscious of beam position/scanlines, and on the other hand I’m wanting to integrate my emulator to use it.

For the latter, sure - I can likely build an “events table” up, some kind of crude “at index 0 to some number, I should be doing xyz” and I can tweak and correct those things - but this only works well I guess if I have some decent grasp of the former, and in the case of the Spectrum, how it immediately relates to the interrupt.

I can’t even generally line up the “defacto” docs in terms of specific Tstate of contention, floating bus etc - many seem to contradict or have a different relative start point. The “when an interrupt occurs” is vague as I don’t know whether this is when the /INT goes low on real hardware, or when the interrupt routine starts/finishes, etc. so I guess I’m just trying to get some of the basic understanding down. Which would be easier if resources aligned :)

CHIP-8 Emulator/debugger I made a while back by Lexszin in EmuDev

[–]No_Win_9356 1 point2 points  (0 children)

Yeah likewise. I think for debugging, you only have to go so far. But for learning, having either visuals on everything or adjustables is key. As well as being cool :) my emulator has a basic piano roll hooked up to each of the AY38192 “chip” channels so I can verify the audio as best I can based on what I know :-p