jackalsoftgames
jackalsoftgames
Jackalsoft Games
56 posts
Don't wanna be here? Send us removal request.
jackalsoftgames · 7 years ago
Text
Sorry I haven’t been as active with my posts on here. I’ve been busy with work and life, and even then, most of my updates are on Twitter. It’s nice scrolling through my dash and seeing all the hard work that everyone has been doing. Keep it up!
4 notes · View notes
jackalsoftgames · 7 years ago
Photo
Feature.
Tumblr media
Ok so I don’t have my water quite figured out yet…
187 notes · View notes
jackalsoftgames · 7 years ago
Link
Made some progress for batching draw calls in SFML. Also crossposting from Twitter, to see how that goes.
Source: https://hastebin.com/hekegazusu.cs
9 notes · View notes
jackalsoftgames · 7 years ago
Video
tumblr
Like a fish out of water. The bullying never ends.
143 notes · View notes
jackalsoftgames · 7 years ago
Video
tumblr
Added new door graphics, with separate opening animations for each
5 notes · View notes
jackalsoftgames · 7 years ago
Video
tumblr
4 tWell, got SFML more or less working how I expected it to work.
I didn’t want to manually change and update a hundred Sprite objects, I wanted to use something like XNA’s SpriteBatch so I went off to create a similar object. SFML doesn’t have a nice interface for that sort of thing, so I had to do low level stuff, eg make a Vertex[], pass the primitive types, etc
Turns out that my efforts were kind of in vain since it has a VertexArray that more or less does this; so I retooled what I did into an extension method that generates a quad and passes it into the vertex buffer, where it can do a bunch of batched draw calls.
So... long story short, I ended up doing manual sprite updates anyways. Go figure.
This video is 1,024 sprites, 60 fps, 4 trig calls per position change, and only accounts for ~2-5% cpu use, so it should still be plenty fine.
4 notes · View notes
jackalsoftgames · 7 years ago
Text
Moved to SFML
Right, so for a long time, I’ve been using XNA because  of how simple it was to get running out of the box (and later FNA). I cannot emphasize how horrible I am at setting up programming environments, but I've been getting better at it.
Anyways, I was fussing about how it handled some things, such as the content pipeline, and some other bloaty things I would never take advantage of. I really like the simplicity of SFML and I finally got around to using it a bit and I'm quite liking it.
It only has 5 modules and it fits into a handful of .dll files (with only like 12 dependencies), so it's pretty lightweight. I really like the way it handles asset files - you can load textures and audio straight from a new Sound("filename") object constructor, which is rad.
It doesn't have a ContentManager, it doesn't have a build pipeline, it just reads the goddamn file (and lots of file types too!) without a problem.
Font rendering was obtuse in XNA, because you’d have to read a system font file, which might not exist, build it into your game as a SpriteFont, then load it at a fixed resolution (eg 12 points) during the build, etc etc. With SFML I just drop a .ttf file into the folder and away it goes. It even measures it based on pixels, instead of normalized 0..1 values or picas, which is great for me. And if I want to use a custom font, I can just make one or use a spritesheet. Easy.
Learned about streaming sounds and music and found a bunch of assets to steal for those for a little bit, too. While my game has technically less that it ever has, I feel a lot more confident about the whole process, which I’m told is a good thing.
3 notes · View notes
jackalsoftgames · 7 years ago
Photo
Tumblr media
@-vikkus drew Spike Spiegel and 12 Oz. Mouse on my board!!
1K notes · View notes
jackalsoftgames · 7 years ago
Link
Hey, check it out! Youtuber Cryptic Hybrid did a Let’s Play video of my game Harry Houdini and the Mummified Meanies. Watch the video on youtube, and grab the game from itch.io. :)
21 notes · View notes
jackalsoftgames · 7 years ago
Text
So anon helped me out with my fussing over my app.config issue.
Apparently with NuGet, you can install a .NET package called FODY, which weaves the compiled IL to do other things. In particular, including the app.config, the .dll files, and compression. According to their use of it, they took about 20 mb of libraries and squished it into about a 4.3 mb exe.
2 notes · View notes
jackalsoftgames · 7 years ago
Video
I like that sleeping isn’t necessarily a “bad” status, you could have a self-inflicted status to heal, or a badge that gives you more defense while asleep, or something.
What about a status that makes timed hits harder to perform?
I also thought the shell was going to be kicked into the other one, lol.
youtube
12 days until our crowdfunding campaign!
Be careful with Numbnails! They’re a bit trickier to deal damage to, unusually bulky, and can put you to sleep!
When asleep, you can’t act or block…but at least you recover 1 HP every turn!
44 notes · View notes
jackalsoftgames · 7 years ago
Text
In other news (rambling)
I've finally moved from XNA to FNA, which is an open source and more modern implementation of XNA, which doesn't have any OS-dependent code by design, so that means porting it around should be a snap.
FNA was annoying to compile. I'm sure they packed it up right, and but it would not compile no matter what I did. Visual Studio wasn't having it for some reason, so I had to break out the MS Compiler VS was using and command line it, and it compiled instantly with a problem. Go figure.
I hit a snag with my project setup as well. Originally, I wanted to have the root folder contain ONLY the .exe file, plus a /data/ folder with assets, and a /lib/ folder with the dlls. Unfortunately, I have to have an app.config file alongside the exe so it knows where to find the dll files. I think I'm "okay" with it.
I also happened to remember Python and installed 3.6.4 and tried a Hello World with it, then a simple socket networking tutorial, since I never did it before and it only took maybe 20 lines between the server and client code. Despite being an older tutorial that couldn't send a string (it needed byte data) it was actually really easy to create the client/server handshake, and I did learn a little bit about it.
That said, I also also happened to take a look at https://benchmarksgame.alioth.debian.org/ and saw that for several tests, C was the fastest with Java being about half the speed. C# was somewhere in the middle and C++ was closer to C. Surprisingly, JavaScript (Node.js) was roughly about the same speed of Java, maybe half speed at worst. Python is about 10 times slower than Java, and Lua is even WORSE. LuaJIT makes it much better, comparable to C++ or C#, apparently.
That said, those are just random benchmarks, and it comes down to individual optimization etc etc, but it was interesting to see how widely the performance could vary across several general purpose languages. As easy as soft-typed languages go, I think I'll stick with C-family for now.
3 notes · View notes
jackalsoftgames · 7 years ago
Text
What I've been working on
Sorry I haven't posted much progress over here. I'm more active over on Twitter and tend to put my bigger, meatier updates over here (of which there have been few).
So back in November, I had enough assets to cobble together a simple demo, but didn't even manage to do that. The biggest hurdle I've been having with my game so far is how to manage behaviors, and I keep wavering between two or three different approaches and muddying the waters and rewriting boilerplate again and again.
Where I'm at right now, I have a rough idea of the objects and how they'll behave, as well as how I'll store the underlying data, but not how to manipulate it. Basically I have all the pieces but I'm missing the glue that holds them together.
For example, I know how a rock would fall, or sink in water, or how a gem would damage a player if it fell on them, but not how to write it as interactable snippets of code.
One approach was to use behavior flags (IS_FALL, IS_COLLECT) to make it behavior in a common way across several objects. But then there was another issue with things that have a specific interaction, such as a button triggering floor tiles to a different state, such as a barrier from solid to not solid.
Then something like that became a can of worms: Do I have a bool[] of similar size to the level map? What if I just attached it to the Tile object? Should I just shove it in the behavior flags? Then I had an issue with how sorted things were, like whether Tiles and Actors should be managed by the same state manager object or not.
Our (/agdg/'s) next demo day is scheduled for Feburary 2nd. Would I like to participate? Absolutely. Would I have anything to show off? Knowing my rate of progress, probably not.
That said, I'm happy to keep working on my game in the meantime and seeing where it ends up.
1 note · View note
jackalsoftgames · 7 years ago
Video
tumblr
Finally got my code backend sorted out again, started working on behaviors again, which is wanted to start in December.
I have a common GameState object that points to a bunch of managers, and is passed around for behavior args. All the queryable game functions eg AddTime(), CreateActor() exist on these managers.
Actors and tiles exist separately and just "happen" to work together. For example, only one Actor can ever exist in a particular spot, they check for existing Actors before moving. If that is acceptable, then they move into the new tile and then raise the appropriate tile behavior.
6 notes · View notes
jackalsoftgames · 7 years ago
Video
tumblr
Enemy movement patterns are in.
Not sure if I want to add more variation or if I’ll keep it at this for the sake of finishing it by the deadline.
23 notes · View notes
jackalsoftgames · 7 years ago
Text
Well I set up a Ko-Fi if anyone ever feels like throwing money at me
https://ko-fi.com/X8X87MHY
2 notes · View notes
jackalsoftgames · 7 years ago
Video
tumblr
More object fluff
8 notes · View notes