Seems I accidentally submitted to the daily DJ streak and the monthly one. Can't submit a new post, so...editing time!
Rust learning picks up again after an unsuccessful Ludum Dare weekend (thanks, health). Going to aim for steady progress going forward on both learning and developing new things.
A lot has happened this April, though I have little concrete to show for it.
A vastly improved knowledge of Rust and engine building has made me interested in using Rust for many projects. Most of my streak posts have been about Rust, and I've enjoyed it greatly.
Ludum Dare went poorly, in part because I attempted essentially constructing a Rust engine on top of two frameworks that I barely understood. I'll be taking some time away from jams for now (Decade Jam aside), and I expect I'll be heading into the next several only with tools I'm fairly solid on.
The real victory this month has been using Anki to learn Rust and Toki Pona (a tiny conlang). Rust in particular has been a nice surprise - my health is now less of an obstacle with the knowledge so well embedded in my head through spaced repetition and so frequently reviewed. I need to apply the same treatment to C# and GDScript, as well as algorithms, design patterns, and more. Game design itself I can do to a decent degree of success all the time, thanks to years of constant thinking about it, so it's a matter of being able to implement what's in my mind.
Productivity is my goal for May, with an emphasis on product. The Decade Jam Community Project Task Force is ~~steadily lengthening its acronym of DJCPTF~~ hammering out the final details of our game and I am even now working on early code for it. Test projects for a custom engine are underway as well, and I expect to have multiple test games to show off in next month's summary post.
While I expect to continue to focus on Rust and Godot, I am not opposed to a return to Unity or Phaser as well. I hope to construct a strong portfolio over the next two months, and while I think my skill in game design, mechanics, and AI are solid (always worth improving, though), I think my generalist knowledge is another strength. I'm trying to be a T-shaped person, as some say. Being able to work across several engines and frameworks will not only improve my skills, but make me more likely to be available to help with a particular task or job, plus help others cross such divides.
Here's hoping for plenty of productivity next month.
Finally you can make some damage!
I added an attack animation and pixel blood particles as well as some methods and callbacks to handle damage etc
blood particles were too small but I changed them after I made the gif (note to self: make gifs when wrapping up)
Also, stats are now scriptable objects
See the changes here:
Rolling on with the new project. Instead of long blog posts I think I'm going to go for shorter lists of things completed. Feels like less of a chore.
What I completed:
What I don't like:
is the mother of every product... or so?
I wasn't particularly fond of my last submissions so I decided to not program anything but rather spend some time in planning until I know what I want to the fullest detail.
Also, I decided to delete all the UI stuff because it was getting pretty convoluted and concentrate on the mechanics. When I know how the mechanics work, I can reimplement UI
When I had to guess, I'd say I lanned about 50% done and I'm happy with the results, planning makes thing so much easier.
No changes today, no github link
Spent most of the day creating the promotional materials for Aniballs. This actually included a little bit of work on the game itself as I updated the logo, icon, and primary background color:
I also uploaded a bunch of screenshots and updated the text on the presskit:
Finally, I shot an edited a very basic 30s trailer. This is where the title of this post comes in. While on a free trial, Camtasia Studio 9 only lets you render videos with a big stinking watermark. Of course I didn't realize this fact until I was 100% done with my shooting/editing (2+ hours in). Wah wah. I was pretty pissed. This wasn't the case in Camtasia 8 and it didn't even occur to me that it might be a limitation.
But I would not be denied.I devised a devious plan to screen-record my own video playback within Camtasia. Enter ShareX, right? Or not. After take #1, I observed that my video had no sound what so ever, but then I remembered @Fussenkuh's post about tweaking the FFMpeg settings to get audio working. Try as I might, I couldn't ever get system audio to record in my ShareX-captured videos. Enter Icecream Screen Recorder, another free screen recording software. As soon as I instaled it, I could tell that it was a very Freemium product. Nearly every setting requires the non-free Pro version. I couldn't even change the output format from anything other than WebM. Initially, I thought this was a deal-breaker because I wanted an MP4 or at least an AVI, but then I realized that Youtube can still upload WebMs and I don't really need a MP4/AVI for anything.
So after shooting & editing with Camtasia, screen-recording my Camtasia project with Icecream Screen Recorder, and uploading to Youtube, I finally have a trailer! Behold:
Not a super inspired night, but I managed to add some new functionality to attack abilities. Now, in addition to being instant AOE, they can also be a 'targeted AOE'. This means the user needs to select a tile first from within the allowable tile mask, and then a second mask defines the area that is actually effected by the attack (rather than just the targeted tile). This represents things like grenades.
There is no TileMaskVisualization for the grenades actual effected area yet. Initially, I envisioned a secondary tile mask marker that updated in real time as the user moves the cursor around, showing the 3x3 area in a different color. However, this won't work on mobile since there is no concept of hovering. It will probably require clicking once to show the effected area mask, and then again (in the same tile) to confirm the attack. That means that it will take 3 clicks in total: 1 to select the grenade ability icon, 1 to show the effected area from a possible target tile, and 1 to confirm. That seems a little clunky, but I can't think of a better way...
First, lets state the obvious: Everyone else is Streaking, why shouldn't I? Even though I've been working on my latest game for several weeks and even though @FunkyJive and @NoStyleGuy have been pestering me to write something, I've neglected to resume Streaking. That neglect ends tonight (or this morning, or whatever)! We'll see how it lasts ;-)
Tonight's battle revolved around Unity's Timeline feature. A few days ago, I figured out how to hack it sufficiently to use it as a way to activate my enemies at the appropriate time. Tonight, I felt compelled to actually attempt to extend the Playable API to write my own custom Timeline track controller. Why?, you ask. Because, it would be cool if I had an easier way to script my enemy movements and actions in a semi-straightforward drag-and-drop way. My current enemy control mechanisms work but they're kind of a pain to fine tune. I'm hoping time spent trying to understand how one extends Timeline will make my life easier.
I still don't fully understand all the details of what I'm doing, but, after studying the examples in the Default Playables asset (free from Unity Technologies) I've constructed an extension that will basically let me send arbitrary 'messages' to an enemy. At the moment, I can command them to FIRE, POP OUT OF COVER, and RETURN TO COVER. The duration of the message bars in Timeline dictate how long the enemy will take to do each command. Adding new 'messages' ought to also be fairly easy.
It's still fairly basic, but, even in its early state, it already is looking like using this tool is going to save me time in the long run.
Refactoring code to make it not just a bunch of gigantic static classes with a million static functions. Breaking apart code into smaller chunks for clarity. I realized with how asynchronous this game is it will quickly get out of hand if I can't keep everything organized. So-far, so-good. I think I'm on the right track.
I implemented a simple Inventory with UI
it might be a bit hacky, but it does the trick :D
current latest commit:
I'm out of room in the board area for troop reserves and killed units. Thus I need to bring the camera back a bit which I think is going to force me to make camera movement the next priority before any more game logic.
Was lacking motivation after working all day and going to class, but I still managed a little bit of work:
* Added 6 more (free!) classical songs from www.ourmusicbox.com. Brings the total up to 12, which I think is enough diversity.
* Started porting to iOS. All I did was pull the project down from SVN on my mac pro, build an xcode project, and make sure it actually compiled. It actually took 2 tries because Aniballs had an outdated version of the Lunar Console 3rd party asset, but going to the asset store, doing an update, and recompiling just worked. Bottom line: the iOS build compiles, but I didn't even run it yet (the wife's Lightning cable was 1 room away, and I was lazy).
Tomorrow, I'll tackle actually testing on iPhone, making the Apple Store page, etc. Maybe I'll even submit it for review. Then its just down to shooting a new video, and releasing this thing!