Sunday 28 January 2024

Pirate Software Game Jam 14 - It's Spreading

 I did a game jam. It was fun. This is what I made. 

Friday 2 June 2023

A year later.

 So here I am, over a year later from my last post. I'm not going to say something foolish, like I'll try to post more. I would like to.

Time will tell.

Game design is still a passion for me, but I struggle with motivation. I keep house. I raise 3 kids. One has recently been diagnosed with ADHD, the other was born with a fairly significant genetic condition. The economy seems to be circling the drain as the cost of living rises. I sleep little. I hurt more. 

I waste my little leisure time with endless youtube tutorials, devlogs, philosophy,  psychology, and yes, much mindless drivel. It is hard to justify spending hours of my life for what may never produce an income. On games no one may ever see, stories that touch no mind. Something worthwhile will take so much time, something quick and easy will not be worthwhile. Quick is relative, even then there is hours of learning required, and there are standards I hold myself to that drive me to unattainable perfection.

And yet, every night, I think of games I wish to make. Of what I can produce that I am actually capable of. Dreams, maybe, but ever persistent. 

What I have done is mess around with matrices to simulate zombie hordes for a post apocalyptic base building strategy game. The math is flawed, but the proof of concept is there. To the back shelf that one goes, it would take significant time to produce and I do not feel ready to do it justice. Good practice, though.

Then I play with procedural generation, with simplex noise and shaders. Fun, but leads nowhere.

I did make a complete, though very small and simple game. It took 8 days, about 40 hours total. It's a puzzle game featuring a train and you can find it here.

It's not much, but I was proud of myself for producing something. 

Since then, I've made solitaire. It works, but is ugly. Polishing it would take a lot of time, but maybe I will finish it, and launch it on google play, monetized with a single ad banner. It would be lost in a sea of more refined versions, but it would be reaffirming to even earn a single cent on something I've made.

Lately I've been thinking of a vertical scrolling shooter with procedurally generated waves of enemies, in somewhat of a roguelite fashion. I used to love the arcade game Raiden and it's sequel, so it would be nice to pay homage and hopefully give me something I enjoy to play.

Time will tell.

Enough rambling into the void.

Tuesday 1 March 2022

My First Practice Project

 So you wanna make games... well, where do you begin?

I spent a little time learning about what goes into a finalised game, and first things first... how do you build it?

Do you code an engine from scratch? If so, what language? 

Do you use an engine? What one do you use?

So many questions, with no universal answers. At first I considered building my own engines with C++ or C#, so the research began. I knew very little of programming, at this point I had mostly learned in BASIC and Python. Yes, BASIC!

Python is very versatile, with a million and more libraries to handle any situation with relative ease, but it seems not the common choice for game dev, so I looked into C. Now there is a big difference in a loose language like Python and C, and to be honest, it was overwhelming. I stuck with it, but it seemed like there was a large amount of work just to get an image on screen, let alone move it. So I looked into libraries for C to expediate the game development process, but there was so much to learn, about architecture, filesystems, etc. Progress was just too slow. I thought it was time to explore a prebuilt game development engine.

Unity and unreal are the most known contenders, but as I looked into the pros and cons of using either, I was frequently recommended Godot. Open source, MIT license, beginner friendly, and a very Python like scripting language. The door had been opened, and before me was for the first time, a clear, paved path.

Maybe it's like training wheels, but this was a god-send. It reminded me of my teen years fooling around with Game Maker (before Studio!), it let me jump right into testing ideas, and seeing games come to life within minutes, not hours or days. Not to mention there was no cost involved, other than time.

And so I began to learn, reading and watching tutorials, following along and tinkering with the results. Then came what I call a practice project. The goal was to explore how to implement various ideas, how to use the engine. My children are very much into the children's show Bluey, so as a way to have them interested in what I was doing I decided to start building a Bluey themed platformer.

I made sprites out of animated gifs from the show, I clipped audio from streams, and I gathered a handful of free assets from around the internet and got to work.

It was a messy, convoluted process, but I had a workable state machine, got practice with the engine's physics, handled collisions, tried out particle systems, got a decent HUD going. There was no emphasis on level design, or even game design as a whole, just taking what I had seen elsewhere and trying my hand at them.

I was particularly proud of the way I handled the health display, the usual bar of hearts you've seen in the likes of every Zelda game. Could have it been done better? Definitely, but now I know that, and probably wouldn't if I hadn't tried.

 
A simpler approach that my usual over-complication.

I also enjoyed what I did with the enemies, even if they didn't really meet my initial expectations. There are slimes, blue and red. Blue were simple, move left, move right, don't move, don't fall off an edge, jiggle. Red did just a little more, sometimes it would cast a series of rays, along the full trajectory of a jump, giving horizontal speed, initial jump power and gravity. A messy series of IF/ELSES would decide on how good of a jump it was, and if it wasn't good enough, try again with different initial values. My years of highschool physics came in handy there. I even allowed for a sliding landing. Again it could have been done much better, but I learned so much in just trying it out. The end results were pretty satisfying to watch, a jiggly little blob make a graceful jump from one platform to another.

Very messy, and it only got worse just outside this picture, but it worked as intended.
Raycasts in red.

I'd be a fool not to reflect on what I didn't like about what I had created. Immediately, the quality of the sprites I had made. They change in size and position from one frame to the next and they're cropped poorly. I had saved gifs from the internet, and resized and touched them up frame by frame, the end result being jittery and pulsating, and took far, far longer than was warranted, but to be fair on myself, it doesn't look half bad. Also, the background was supposed to be giant grass, though what I ended up with was giant seaweed.

I also struggled a lot with how to handle collisions, especially between rigidbodies and kinematic bodies, and the sounds of constantly colliding cardboard boxes are heard throughout each level.

The single thing I'm most proud of with this creation is this:

A humble, tattered cardboard box, but I one I crafted myself, pixel by pixel.

Another hand-crafted creation are the coins that explode out of aforementioned cardboard boxes.


Not my best work, but I do like them. Feel free to use these coins in your own creations.

In total I probably spent about 2 months on this practice project, and it taught me so much about the engine, about programming conventions and game design in general. A very positive experience, that left me hopeful for my future career as "Most Amazing Game Dev to Ever Live".

Now that wasn't the end of my practice, but I'll save that for future projects, for now, I'll leave you, good reader with a video of the masterpiece in action.


Sunday 27 February 2022

 Hello from Good Value Games.


As any coder does when learning a new language, first we say "Hello, world!"

In a way, a devlog is a new language, and blogging is an entirely new environment for me, let alone language. If you continue to visit, you'll see me learn in real time.

I'm SkotDude, the one and only employee of Good Value Games, an independent game developer from Australia.

My passion for game design goes back to 1994, playing games like the first Duke Nukem and Lemmings on PC, Gunstar Heroes and Streets of Rage on Sega Megadrive (known as Sega Genesis, elsewhere in the world). The industry was already well established, but it of course has grown much since then.

My interest continued, finding a love for all games, unwittingly studying the design, the stories, the art. Come the time for high school graduation I was dedicated to a life of being part of that world, having self taught myself the very basics of programming, and even making a lot of projects with the original Game Maker, none of which have survived in any form to this day.

So off I went to university to study game design, hopeful, yet naïve. Passionate about game design, but completely oblivious to the business of games. This was 2008, World of Warcraft was dominating the space, and they were much more overt in their design philosophies.

Addiction. They'd seen it in EverQuest(EverCrack), how do they refine that? How do they monetise that best? It seemed the entire industry was shifting, paid DLC, microtransactions, player psychologists, forming habits. Manipulating players was first, it was permeating every subject and I suppose that's how the world spins. You gotta make money after all, otherwise you can't make any games.

Morally I could not reconcile with this. I continue to struggle with it. Game design become a child's dream then, and my life took a very different path. I left university and I got a "normal" job. Retail, sales, management, etc. I worked hard building a career in pawnbroking, buying and selling and loaning. Game design was always there in my heart, but my time and focus was elsewhere. Business came first, and then came a family. With three kids and a wife, provisions must be made.

Along came the year 2020. I found myself without a job, and with health problems. Maybe I worked too hard, maybe I didn't work on my body hard enough, maybe it was something else, but in the end my back gave up on me, and so did my career.

The game industry has changed in the meantime, as all things do. What I consider morally loose practices still abound, but the indie scene has grown into something so much more.

So, here I am, with a promise to work towards delivering good value games, with good values.