Was quite busy lately, nevertheless added few minor things to the project (also some models, but those I will showcase later, when I finish the animation). Added some shader based night with lightning. Not perfect but I am happy with result so far (the two lights were added just to test blending).
Iāve been testing JDialogue today. All of the functionality is done, and to see how it all came together, I made a test program that will let me test dialogue. I ended up making this beauty with it.
And the JDialogue editor counterpart:
The reality of what people are going to actually use these tools for when it comes to Robot Farm is starting to set in. You have a world editor, a lua mod editing tool, and a dialogue editor. What could go wrong?
EDIT:
Itās feature complete! Going to implement it into Robot Farm and see how it fares, and then Iāll post it here.
Looks good :). There is an extra line between the nodes? Any specific reason for it to be there?
Check out the output I posted, the dialogue loops on itself if you answer no. Thatās why the one at the end is connected to the one at the beginning. I know it looks weird, Iām not sure what I can do to make connections like that look better. Lol
EDIT:
Fixed it
EDIT 2:
Itās implemented into Robot Farm. I did some tests with the Hello World dialogue, itād take about thirty minutes to an hour to make the set of dialogue the old way (manually coding it), whereas it takes about ten minutes to make the same thing in JDialogue and import it into Robot Farm. All in all, Iām really happy with the outcome. Iām also excited to share it with you guys and Robot Farm modders in the future too.
EDIT 3:
Reported some bugs to the RichTextFX team. Once thatās ironed out, I think JDialogue is about ready for an āofficialā release.
Created a āSegmentedButtonā. I saw it as part of ControlsFX, and thought itās a neat idea!
Worked on ābossā level for Bee Amazed (in Bee Amazed a ghost can chase youā¦ if it catches you, it will take you to itās dungeon, and since the ghost used to be a teacher, it will force you to solve an equation within 10 seconds ;D).
The blue bar represents the available time (shrinking towards the center), and the ghost moves around a bit while fading in and out (and sometimes distorts). The bee looks up in awe. Ofcourse, there are ghostly sounds.
(and yes, the ghost is a warped/distorted picture of myselfā¦ however, I do look better than that. really, I do.)
Edit: changed āsumā to āequationā. Silly me.
I added support for custom syntax. You can import a text file with the syntax your game uses and itāll highlight it for you so you donāt accidentally type the wrong thing:
Some elaboration:
When youāre editing:
Today I optimized an algorithm that slowed the game to a crawl so that it can run once per frame without significant performance loss, among other things. Very refreshing compared to the bug-fixing, refactoring and re-design that takes up a lot of my time.
Yeah, I wrote it with JavaFX last week. The fact that itās in Java gives java developers a lot of benefits, such as being able to use the software as an API itself in games. I plan on including a stripped down āAPIā version that just contains essentials for use in games, but you can also get the full executable jar as well with the UI attached.
Finally got support in for āGlobal Configurationsā of worlds, i.e. calling lua code when you do things in the world. In the screenshot below, my new āsmall_talk.luaā file is being called by the game when you interact with NPCs. Iāll be replacing our old systems with lua code for stuff like this so that the player can fully customize the majority of major interactions with the world, such as dialogue and events. Of course, important stuff like the more complex AI and game mechanics will stay in the actual Java code. Basically, the goal is to allow players to mod the game into different flavors, while still keeping the base intact.
Which is controlled by:
--Should be called when the player interacts with an NPC, in that case, we'll try and initiate a greeting
function Main(gameTools, worldTools, hudTools, playerTools, interactingWith)
print("Test small_talk.lua:"..interactingWith:getName())
hudTools:newTextBox(interactingWith, "What's up [[PLAYER_NAME]]?")
end
Next up, Iāll start tying this functionality together with the new JDialogue stuff.
Started implementation of TabPane
Used FileOptimizer to compress optimize 211 png files with a total disksize of 469 Mb to a mere 7,41 Mb (losslessā¦amazing!). Took 1.5 hour, but was worth it since it downsized my jar from 210 Mb to 187 Mb. Still a few hundred pngās to go, so the jar will be even smaller.
Iāve been working on my new game which will eventually be an RPG about pirates. I still donāt want to put it in a WIP thread yet because its still a major prototype, but I have tiles, three characters that follow each other (that will eventually the player will be able to switch between all three because they will all have different weapons). I also have a half assed weather system with rain, lightning flashes with a screenshake, and lighting bolts (thanks to @Cero and @Phased - I used that lightning bolt code). I also have a really bad particle system implementing fire which will be changed later I think unless all the other graphics fit it. Hereās the crappy video of what I have (keep in mind almost all graphics are protos:
DW0Xz7QLcZw
Anyone thatās wondering, Iām still working on the game for kids with my friend, but I only code that when sheās here because she wants to learn how itās made. So far that game only have a crap load of questions and answers and a screen and a button lol.
If you need help with anything, feel free to message me. I can probably help make the party members follow you a bit smoother, we have the same kind of stuff in Robot Farm.
I started playing around with pathfinding today and got this far:
[It starts inside the ābowlā on the left and tries to reach the blue circle on the right]
There is no grid here, its doing circle overlap checks to crawl through the map, every green circle is a node that got evaluated.
The performance depends mostly on how many objects you can filter out before they are checked for overlap,
since there are up to 11 collision checks against all nearby objects for every green node.
The benefit of this method is that different unit sizes are taken into account naturally (tiny soldier vs bulky tank) and that there is no need for memory heavy grids or work intensive/static nav meshes, which is perfect for large sparse areas. I could also vary the size of the test circles dynamically to reduce the amount of checks even further when itās just going through an empty area.
The downside is that itās not guaranteed to provide an optimal and fast solution if the path-width is getting close to being the size of the unit that tries to traverse it.
tl:dr => began developing my homebrew gridless A* today
We plan on trying to release our big Robot Farm video by the end of this month! Itās going to be a big changelog video around 5-6 minutes long. Iām so excited to show it off!
Forgot what I did today, but I know what Iām doing nowā¦ eating emmenthaler bites with mayonnaise and ketchup! ;D
Iāve been polishing Bee Aware! for the last two months, and am rounding up the last bits. A new demo is planned for this week, together with new screenshots and videoās. Bee vs Mites (a topdown scroller) has been upgraded, and now includes realistic, thick smoke effects, water and leaves effects, a smoother gameloop and a boss level. Bee vs Mites is playable from the demo, as is Bee Puzzled (jigsaw game).
More updates:
- The playable bee now has animated wings.
- Improved interface for the quizzes (Bee Smart - 5 quizzes, 20 questions each).
- A set of 18 new card foregrounds and 75 new images (total 150) for the memory game (Bee Remembered).
- New (small) end animation for Bee Remembered.
- Added a ghost to Bee Amazed (maze game). If it catches you, youāre forced to solve an equation (the ghost used to be a teacher).
- New (small) end animation for Bee Puzzled.
- Added 20 images to the jigsaw game, which makes a total of 50 images.
- Made 4 themes for Beeāt the Bear (puzzle game), summer, autumn, winter and a desert theme.
- Added three difficulty levels to Bee Fast (arcade game).
- Implemented a day/night cycle in Bee Fast (I love it when the lights of the tractor and plane are activated).
- Added a lot of nonsensical text to BB, a bee that talks too much ;D, whichs brings me to a total of 211 silly texts.
- Improved overall gameplay, cleaned up unnecessary code, improved graphics where needed etc. etc.
- Added extra achievements for Steam (beat the boss, solve an equation etc.).
I need a break.
The pathfinding is in a working state now
[Warning: 7mb gif]
It takes like ~2 milliseconds each to calculate these paths (and post process them), which is not that bad considering i threw ArrayLists, bloated objects and comparators at it. Also thereās no quad-tree or gridmap to rule out objects before doing collision checks, so iām pretty confident that i can get it down to <10% of the current calculation time.