Thursday, October 10, 2019

ReGenesis

When I last worked on the arcade-style space mining game I had achieved an endless universe of randomly generated planets and elements. Minerals and fuel could be gathered. Fuel was burned up and the game ends if the player ran out. Planets could be landed on (Their topography was randomly generated) and walked around. There were enemy bases and the player could shoot.

But I had HUGE problems doing collisions. There were major issues with the navigation and position detection portions of the code. These issues were at the core of the game's logic. They were so bad that I didn't even want to attempt to code enemies.

Now that I am circling back to it I felt that a rewrite was necessary. So tonight I built the core game loop and the coordinate logic. I also coded a movement class and game element class. Wrapping when going off screen is simply a flag same with random repositioning on wrap (For the starscape). Reverse movement is also a flag so that the player can stay in the center and the background moves opposite the key direction for the illusion of the player moving.

I've created a test element to verify the moving etc works. Next I will code the collisions to ensure position checking etc is now good.

Once collision is coded I will begin building the various level types, starfield, planet, maybe even inside bases. Then I will build all the random generation / restoration logic.

So far it is going FAR smoother than the previous attempt.

Thursday, October 3, 2019

Reaper Bug

I use subprojects often in Reaper. Recently I've begun using two levels of subprojects more often than not. I do this so that I can duplicate my VST tracks without them blowing up Reaper. I've been burned that way more than once.
I've found that doing such crazy subprojecting can result in Reaper crashing. Such a crash happened the other night. When I relaunched Reaper, my first level of subprojects was showing blank events instead of rendered waves.

Fortunately I was able to work around this issue. Instead of double clicking the tracks to open their subprojects I manually opened the first level subproject. Just doing this seemed to resolve the trouble.

Monday, September 9, 2019

Awesome

I like the idea of tiled window managers. In the past I've tried the Suckless solution as well as others, but the learning curve was more than I felt like dealing with or the default key combinations messed with apps like Blender etc. I recently saw a review of Awesome WM and decided to give it a shot. Out of the box it is great. Once you learn it keyboard combinations, most activities work well. However it seems to not like my Java Swing window used in the Galaxynet space mining game project.

Also I haven't been able to get it to run some of the start up commands and apps I've tried to specify. So sadly, at best I'll have to use it 3/4 of the time.

Also it would be nice to be able to autohide the main task bar, but so far the solutions I've tried for that are kind of buggy and weird, and I haven't been able to get their scripts to run at start up.

I'll probably mess with it more in the future but will likely use Plasma for the most part.

Wednesday, August 7, 2019

Pff DataStage.

Kill me now. My first impression of DataStage was: 'Eww'. So all the beautiful SQL queries are hidden inside horrible GUI 'stages', in text fields that become single line textboxes when you double click (You know, like when you are selecting a word). So all day I'm turning fields into single line textboxes on accident... because that's useful.

As solutions grow, you get to scour through dozens - or hundreds - of jobs, filled with who knows how many stages. What if you need to find something? Hehehe. Welcome to DataStage.

What if you have a job that pulls data from a database and runs that data through a dozen stages (You know to do joins and stuff, cuz SQL is haard) and outputs it to a dataset or something. Uhoh, you forgot you needed the LastName column. Hehehe. Get your mouse finger ready. You get to double click every single stage, click on inputs and outputs and mapping tabs. Type out the column name, specify its datatype etc, drag stuff around, go back and forth hooking up your new column to pass it down the chain.

Time to debug? Hehehe. Get Toad or SSMS fired up, because you get to go back and forth from DataStage to the actual database. Records are getting dropped somewhere? Hehe. Good luck with that. Stage X SHOULDN'T be dropping my record. But it is. Have fun.

Maybe DS isn't so bad and I'm just a noob - but my team supports apps built in it - and I have two days to make it happen.

DataStage. Pffffff.

Monday, July 29, 2019

Back to the Back to the Map

I returned to my work on the terrain builder. My thought was I would update it to build the land masses outward from their centers. I wasn't sure how I was going to go about it. In my head I was seeing it as working in a circular path outward.

The more I thought about it the less I liked it. Fortunately as I was coding the solution hit me. Recursion. So instead of going in circles around the center I would begin at the center with a distance variable set to zero. As I work out, passing that variable to iterative calls, I used it to decrease the likelihood of cells being land further from the center.
Each call checks the current point and calls the function for its neighboring points. The result vaguely looks like a continent crossed with a confetti explosion. When zoomed in to game play distance it actually looks pretty good. It even builds out some ... acceptable mountain patterns.

Now I need to work out collisions, currently it isn't quite right. Actually I need to do some collision work - game wide. Then I need to improve the variety of the terrains based on modifiers specified in the library files.

Tuesday, July 9, 2019

Back to the Map

I've decided to re-attempt the planet surface generation logic. My previous attempt was ... not so good. So this time around I've decided to keep it simple. The maps it generates are fully ASCII and everything is contained within the main class, no OOP classes etc, just methods within main.

I have some modifiers that will later be passed in to create different types of worlds - temperature, landmass counts, etc. These affect what is created. I start with the polar arctic regions then I create random landmass centers and work out from those.

I'm currently walking up and down the center then east and west from those points. That is working ... Ok. I need to tweak it to work all around the center outward, I think that will give me better shapes.

Once I am happy with those I'll move on to features like mountains, rivers, and lakes.

Then the trick will be making it OOP and converting ASCII to image tiles.

Wednesday, May 8, 2019

Clipboard Trouble

In my foray into c++ so far there's one piece that is still eluding me: copying to the clipboard.

I want to be able to copy field values directly to the clipboard. So far this is eluding me. I've seen qtclipboard snippets but I've yet to get that class successfully added to my includes - even after installing qt on my laptop. I think that part of my problem is I'm trying to maintain a single code base. I don't mind needing to build windows binaries all the time, I DO need to structure everything so I don't have a nix directory and a windows directory (AND yet not have messy directories). I want one copy of the code files, one copy of the help defs, that's it.

At this point, after trying a few different options, I've put it on the back-burner.

Introduction to WorldWeaver

A New Iteration  I've been working on the second manifestation of my Interactive Fiction engine - WorldWeaver - for about a year now. I ...