Just make the units zombies.
Paint their skin green or grey and maybe make them more dishevelled.
Or skeletons if you want to be a bit more original.
I recommend a min-heap.
Just make the units zombies.
Paint their skin green or grey and maybe make them more dishevelled.
Or skeletons if you want to be a bit more original.
I recommend a min-heap.
Yeah, that’s the idea for units, a bunch of various monsters. That’ll be fun to draw for sure!
For the min heap, I’ll have a look when I’m on it, thanks for the suggestion!
Today, I implemented a new unit:
Shield Bearers fare well against Sworders. Note how the lone one manages to keep two Sworders at bay for a moment.
Slappers are somewhat a counter to them. This might become more true in the future.
A single one can slow down defeat 4 Brawlers.
Controlling a Unit will provide you with a way to disturb a line of Shield Bearers. Nothing like a backstab, hey? It might be best to choose a faster unit for that purpose tho,
Next Features:
Sorry to nitpick, but why ‘sworder’?
Such an obsolete word seems out of place among all the other titles.
Was it an attempt to avoid ‘swordsman’ being an arguably gendered term,
or simply because you want all the unit names to end in -er,
or maybe something else?
Also I’m not criticising it because I think it’s hilarious,
but are you aware of the alternate meanings of the word ‘slapper’?
Yeah, it’s an attempt at not having a gendered term! Also, that conveniently matched the pattern Weapon/Items + er
Those are temporary terms anyway (that might end up in the comp release because my focus is somewhere else). The Slapper might be renamed into Slap Giver or something. I knew about how obsolete was “Sworder” but I didn’t knew the alternate meaning of Slapper haha
I might just name them for the weapon they hold in the end.
Today, I’ve made all Units more physical than ever:
A lengthy GIF showing the Targets, how the units spread out more, and the Performance Bar on the Bottom.
Next Features:
If I might make some suggestions,
you could have ‘Swordbearer’ (to match ‘Shieldbearer’),
or if you want something different then maybe ‘Swordfighter’?
Both are still used in modern English, both are ‘neutral’, and both end in -er.
‘Slap Giver’ just sounds terrible.
‘Slapper’ should be fine as long as you’re happy with Britons (and Aussies, and the Irish, and possibly people from other commonwealth nations) giggling about it when you aren’t looking. :P
Sadly I’m not surprised.
Swordzombie, Shieldzombie, Fistzombie, Palmzombie etc. could work.
This is probably one of the most underused ways of making good use of processing power.
Though in fairness it’s made a lot easier by languages that have coroutines or ‘fibre’ (lightweight threads) support.
For a long time most major languages have let coroutines slip through the net,
but they’re slowly gaining more recognition and more uptake.
The ISO C++ committee is planning to add coroutine support in C++20.
On HW/Emulator (as opposed to seeing performace information in FemtoIDE)? If so that is very cool! Are the sources somewhere?
Thanks a lot of the suggestions!
That game is kind of silly anyway, and as french people, we have to show off our terrible English to the whole world
I’m going to keep in mind those patterns!
As for the coroutines, I got to have a look at that as well. They seemed like an elegant tool, so I’m glad C++ will eventually have them!
Yeah, the performance information is running inside the game (because of that it’s eating away CPU itself!). It’s actually pretty simple and because of that, quite inaccurate and buggy at times. But it does help me see grossly how the work is done. Plus it looks cool for me and sort of reminds me those Power Bars in the Command & Conquer series too.
onStateInit
, onStateUpdateStart
, onUpdatedUnits
, onRenderedUnits
, onFlushedScreen
, onStateUpdateEnd
, onStateShutdown
, …), which are manually called from various points.onXxx
methods simply measure the time in ms using System.currentTimeMillis()
since the previous measure, and store it into a variable.onStateUpdateEnd
however will also limit the FPS, measure how long the whole frame was (including the FPS limitation).value = (value * 7 + newValue + 7) / 8
(which is acting like a cheap lowpass filter).draw(screen)
which renders the bars at the bottom of the screen. It’s using a lerpi
method I made into my Tools, and do an integer interpolation in order to scale the times to the pixels.
draw(screen)
method will give a somewhat inaccurate rendering, because it’ll be called before the flush, whereas the total frame is measured after it was flushed.As for the sources:
I didn’t publish the source yet, thought I intend to do so.
It’s partially to preserve a few secrets inside the game until the comp is finished. It’s mostly because, for various silly and less silly reasons, I never opened any of my source code, so I’m kind of totally clueless about which license to choose, where to host the code, how to make it properly, etc (for instance, my github account is totally empty). I’ll do that after the comp, when I’ll got the time to do so.
Also, I don’t want to be interfered too much about my coding habits during the comp, as it’s very distracting to me
(no, really it is. I’m always seeking out ways to be a better coder and that can be obsessional at times).
Today, I’ve worked on a lot of things related to Player Control, as well as the Camera.
Exploring the surroundings of a quite heated battle,
Camera focusing on the last destroyed Target. Later it’ll come with a slowdown for a more dramatic effect.
Introducing the new LifeBar . It’ll stress you out when it starts blinking. Shall I add some annoying repeating music to that?
Locking Directions in order to have a higher chance of beating someone else.
Next Features:
As am I. I’m already quite familiar with them because Lua has had them for ages.
There’s a good introduction to Lua coroutines here and a more in depth explanation here.
(Though personally I don’t like the second link characterising coroutines as threads because coroutines don’t run in parallel like threads do.)
Technically that means they actually are fixed points because 16 is a power of two and multiplying by 16 is equivalent to shifting left by 4.
Assuming you’re using 32 bit integers, that means the format is ‘Q24.4’.
(Whether or not they stay in that format is another matter.)
The short version:
I won’t discuss the GPL here because it’s too complicated to sum up in 1-2 sentences and I’d recommend against it anyway because of the number of restrictions is has and its viral nature.
If you want more info then feel free to ask (here, in another thread, or in a PM) and I (or someone else) can provide you with more info.
GitHub or GitLab is ideal. (Personally I find GitHub easier to use.)
If you choose to use GitHub and need help doing anything then again, feel free to ask.
If you choose to use GitLab you’ll have to ask someone who is au fait with GitLab (e.g. @drummyfish).
I’m not sure how you’re planning to do this, but if you’re thinking of randomly generating the herb positions and storing those positions in a list then I know of a good alternative that could save you memory.
I’ll ask in time for sure, thanks!
I know a few ways to have those random grass and that’s part of the fun to make them look as such also I’ll make them move like a wave
Yesterday and today was all about zombifying the game a bit:
Humans were better organized here and survived with 4 units left, although they were overpowered both in cost and numbers!
Zombie dying.
Skeleton dying. Also, they wear a hat because they’d get a cold otherwise!
Next Features:
This game is looking better and better all the time
Today, I finished the Pike Bearer:
Introducing the Pike Bearer. They’ve got the bad habit of poking around stuff.
They’re overpowering all Units right now. That might change when the Archer will be added tho…
When behind Shield Bearers, they’re quite destructive too, as that essentially give them more HP and defense.
Next Features:
Today, I’ve focused on the Archer.
Because of their range, Archers beat most Melee units…
… unless they’re numerous and/or sturdy enough to reach them…
Controlling the archer shows a target. The target will continue moving as long as A
is held.
On tight battles, they’re often the only survivors.
Next Features:
So much things I had to cut unfortunately…
The next release will be my submission on the itch.io comp page!
Those last days were intense for sure! In an effort to keep focused on finishing, I neglected a bit this log.
Math.sin()
, the output is rather “interesting”.
The submitted comp’s title screen.
The fixed title screen. It features the Zombie Brawler, Lilas (Ditched out unit - A Zombie hero with an HP-absorbing melee attack and a special Zombie Raising power), Zombie Mage (Ditched out unit - Ranged, splash-damage unit), another Brawler and a Skeleton Slapper.
My true achievement.
MUST. RUN. I WILL REST ONLY WHEN DEAD.
Controlling a Dasher will make you feel powerful. Also, a big HP bar!
They’re great at distracting a lot of people while Archers rain down their arrows on them too.
Undocumented feature - Time control by using A+B. Very useful to speed up -or slow down- large battles! This will often be laggy for obvious reasons.
Ditched out conveyor as a victory pose (also ditched) for the Dasher. Now you should have a good guess at who the Dasher is inspired by!
Thank to everyone for allowing me to have gotten this far!
Ditched out Content
Ditched out Features
Ditched out Units
Stats
I spent at least 130 hours (most likely 150h) working on that game. That’s partially because of the length of the jam, but mostly because I neglected my sleep. Those were 130 hours of well spend time for sure!
What happens now?
Shortly I’ll have a proper debriefing session on that game, where I’ll check its weaknesses, its strengths as honestly as possible. I’ll also analyze my decision taking - I did a lot of things because it was fun to do so (like music playing) or to satisfy an obsession, not because it bring more to the game. That might take the form of a post-mortem, which will complete this very post.
After that … since I grew to love this game, my plan will be to remake it in C++. It’s mostly because I need a tighter control about how the memory is used, multiple kind of fixed point numbers, more easily defined static data too. I feel like only C++ will help me take this game where I originally intended to lead.
Its name will change in the process, as it won’t be exclusively related to zombie anymore - but it might still features them, maybe as a specialized campaign.
As for the sources, the competition version’s ones (code + arts) will be published in my github account on the next week. The C++ remake will also be published there, as soon as it’s started.
Additionally, I’ll start a wiki for the C++ version, to provide more insight about the development, how things work inside, etc. I don’t intend to do so for the Javitto version, but I already commented a good deal of the code, so that shouldn’t be hard to read for all you great minds. Well, it might actually, because of my broken English hahaha
Thank you for having followed the development of that game!
(Will be updated with more information after the Debrief session)
I meant to review this also, but this is such an unfamiliar genre to me, that it is more fair to leave that to someone else. What I was testing, it worked well. It is technically impressive to have this much “intelligent” objects on the screen at the same time (with the game logic, the bounding rects etc.), in Pokitto
@carbonacat , I edited the title so that the bot picks up the game into the game list
I did this because I assume [complete] means you are ready with it
I hope you approve
No problem!
I’ve published the sources:
Thanks to @Pharap whose guidance helped me to do so!
The second link is 404-ing.
My bad! I forgot to make it public. Should be good right now!
(Thanks for noticing me)