Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

John McCardle

20
Posts
3
Topics
5
Followers
1
Following
A member registered Dec 23, 2021 · View creator page →

Creator of

Recent community posts

Thank you! You make good observations about my interface and the sokoban puzzle solver (both the bugs and the simplistic complexity).

Do you mind if I drop you a line when I get around to revising this project?

Made a brief “midpoint devlog” post. I had a pretty killer kickoff, then had some difficulties over the weekend, but now I’m off work and ready to focus on my game engine for five straight days.

https://kn4obl.net/mcrogueface-engjam-midpoint-devlog.html

(1 edit)

Mentor Interview: Mike Blodgett from (Halftone Gaming)

Developer of BloodDome99.

The Steam description for BloodDome99 says:

80s arcade meets modern horde-survival roguelike. Create unique builds, master dozens of weapons, and kill ever-growing hordes of contestants in the retro-futuristic gladiator gameshow BLOODDOME99

BloodDome99 is a twin-stick shooter with randomized powerups, available for wishlist on Steam and planning a Q4 2023 release.

The powerup select screen of BloodDome99

I’m very grateful to have received some of Mike’s time to talk before EngJam. BloodDome99 is written with Unity, and is slated for release in Q4. Making your own engine is rarely a requirement for making your own game, and if your goal is actually completing a fun game, then I suspect Mike’s perspective will move you in the right direction.

What follows is Mike’s own responses verbatim to my questions (the headings).

How did you get into programming and game development? What games inspired you?

I got into programming / tech as a way to get out of the restaurant industry into something more stable. I had sort of moved away from video games but during Covid I came back to them in a big way and rediscovered a lost passion. I had been wanting to pursue some self-driven projects for a while and video games were a great way to combine my technical background with my creative impulses.

As far as inspiration, I could spend hours answering that. I try to draw inspiration from everything I encounter, not just games. That being said, I’ll specifically call out the game Downwell because I don’t hear it mentioned very often. I’m very inspired by games that do a lot with very little, and Downwell is a great example.

What led up to the development of BloodDome99?

BloodDome was originally an entry in a game jam. It’s heavily inspired by 80s action movies, bullet heaven / survivors-like games and arcade action like Smash TV and Metal Slug. People responded very well to it and we were having a lot of fun with it so we decided to keep working on it and expand it into a full release.

Any fond memories on languages or systems from the past? Anything you were glad to see go out of style, or are there any features or core lessons missing from modern development tools?

Hm. I’m not sure I’ve been at it long enough to feel nostalgic. I also think, for the most part, things don’t really ‘go away’. Every change or innovation is another tool to add to your kit. It’s always up to the individual to decide which tool to use.

Do you still play games “just for fun”? Is developing the same kind of fun as playing?

Absolutely. I probably play more than I ever have, although in a different way. I tend to try many games and devote less time, in general, to each game. Though there is definitely something to be said for developing being a form of play. Especially if you develop with a focus on intuitive systems it can be really fun to combine your own systems to make new and exciting things.

What’s still fun or most inspiring to you?

Again, inspiration is a tough topic to tackle because there’s just so much. I like to think of myself like a sponge.

What’s a classic game (whatever you decide that means) that still gets you pumped up?

I’m still blown away by how good early Nintendo (NES, SNES) games feel. Super Mario Bros still feels tighter and more exciting than almost any platformer that’s come out since. I think a lot of games from the arcade and early home entertainment period have a lot of good stuff going on. There was big focus on fun.

Other things you would want to share?

Steam: https://store.steampowered.com/developer/halftonegaming Halftone Games Discord: https://discord.com/invite/MCbpwWdjrU Instagram: https://www.instagram.com/halftonegames/ Tiktok: https://www.tiktok.com/@halftonegaming Twitter: https://twitter.com/halftonegaming

May people message you for help or feedback?

Sure

Do you have any tips on persistence and overcoming problems? Do you code on a schedule? Do solutions come to you in the shower or while dreaming?

I think staying organized is extremely important. I use Airtable personally. I keep an extensive list including specific changes, additions, backlogged features, half-formed ideas, etc. Every week I give myself ‘tickets’ to work on for the week. I definitely think about my tickets when I’m not at my computer. In fact, usually, by the time I start working on a ticket I already have a pretty good idea of how I’m gong to implement it.

How can one decide if they need a custom engine?

I have only ever used Unity for development. I haven’t really felt limited yet tbh. But I will say that whenever possible I build myself ‘tools’ rather than hardcoding things. For example, every gun in BloodDome99 is built on the same script. It’s got probably close to 100 different fields and variables that all interact to determine the behavior of a gun. So just by changing variables I can create a gun that shoots bees, a flamethrower, a tractor beam, etc.

Do you prefer rushing towards a minimum viable feature, or do you build to support your entire feature list?

Definitely MVP, if I understand the question. I want to get a playable proof of concept as quickly as possible, then I want to expand and polish it.

How do you balance between extensibility and simplicity? How can newbies avoid rework of delicate, inflexible code versus overengineering?

I think you have to learn by doing. I started a project last year that’s on the backburner right now. When I go back I’m pretty sure I’m going to redo it from the ground up. If you’re always learning there’s always going to be rework. But, as I said above I think the biggest thing is making intuitive systems and tools rather than just trying to solve a specific problem.

What game engines did you try? What did they have as far as pros & cons?

Only Unity. I don’t use the asset store at all and I spend a lot of time writing scripts. For what I’m doing I like it, though I’ve got nothing to compare it to.

(1 edit)

Mentor Interview: Octoshrimpy

Pixel artist, game developer, extremely helpful and friendly individual: Octoshrimpy. He’s my best friend, he’s my pal. He’s my homeboy, my rotten soldier. He’s my sweet cheese. My good time boy. I’m quite fond of him and I’m definitely stealing his MarkDown organizer scheme for my Obsidian vaults.

I know Shrimpy originally via his work to expand Public Domain sprite set, 16x16 Mini World (originally created by Merchant Shade) and his relentless good attitude in one of my favorite cozy discord servers, Very Epic Tavern. We are all indie hackers there and Octoshrimpy is just one of the skilled and gregarious folks you will find there.

Tranquil Tunnels, just one of Octoshrimpy's magnificent pixelated creations

I’m grateful for his time and I’m grateful to know him. You can catch Octoshrimpy’s various software and artistic uploads at his brand new blog which he created just so I could plug it.

What follows is Octoshrimpy’s own responses verbatim to my questions (the headings).

How did you get into programming and game development? What games inspired you?

I got into programming twice, haha. first time was making a css-less website for my youth scout troop, with events and calendar, and then again when I discovered that minecraft could be modded with plugins and mods.

What led up to the development of <recent thing>?

I have a lot of “current projects”, but the one I’m most focused on at the moment is an exploration game that I have spent nearly a year looking for, and nobody has made anything like it, so I decided to do it.

Any fond memories on languages or systems from the past? Anything you were glad to see go out of style, or are there any features or core lessons missing from modern development tools?

features or core lessons missing from modern development tools? I always look back and smile to my days in high school: I made a chat system piggybacking on the school’s pc network system using telnet, and wrote my own app launcher using vbscript that would auto-launch from a USB drive, so I didn’t have to log in into the city library computers, as it would open the apps above the screen lock they ran, haha.

Do you still play games “just for fun”? Is developing the same kind of fun as playing?

I do! currently playing through Cloudpunk and occasionally Odd Realm. I do find building the systems for my own games is nearly as much fun as discovering someone else’s systems within their games.

What’s still fun or most inspiring to you?

Toby Fox from undertale/deltarune, Eric “concernedApe” from stardew valley, Thor from heartbound; I look up to them and their efforts towards making good games with all kinds of players in mind.

What’s a classic game (whatever you decide that means) that still gets you pumped up?

I love dwarf fortress, even if I don’t play it anymore. (it’s been replaced by odd realm haha)

Other things you would want to share?

I’m octoshrimpy everywhere, but lately i’ve been moving away from non-federated sites like twitter/reddit and moving into activity-pub-supported versions of those like mastodon and lemmy.

May people message you for help or feedback?

My DMs are always open, and I do my best to share any knowledge I have. :)

Do you have any tips on persistence and overcoming problems? Do you code on a schedule? Do solutions come to you in the shower or while dreaming?

Sometimes persistence means walking away and letting the ol’ two brain cells fight about it in the background until they settle on a solution. With that said, ideas always come to me (and people) in the shower, but that’s because the shower is a place where we don’t really have electronics or distractions, and our minds can wander freely in a safe, comfy space. I recommend planning “boring times” where you just sit and do nothing, except write down ideas that come to you. Being bored is great, and brings about a lot of new ideas you would not have thought of otherwise. In the current age we’re always distracted by something around us, or doom-scrolling one app or another. Planning for boredom times helps exercise the creativity muscles, and gives our brain a quiet time to process all the background thoughts into foreground ideas. As far as coding on a schedule, my usual time to write code is around 8PM - 10PM, when the world goes dark and quiet. Less distractions, less overwhelming of the 5 senses, and I can focus more.

How can one decide if they need a custom engine?

Most of the time, you don’t need a custom engine. There have been billions of humans on the planet, and statistics say at least a few of them have ran into the same problem you have, and a couple of those have come up with a solution. BUT in case you’re one of the first ones coming up with it for the future peeps who will think of it, sometimes we do have to sit down and create something new.

Do you prefer rushing towards a minimum viable feature, or do you build to support your entire feature list?

I personally do a mix of both. I outline the features in the MVP, and then accidentally let feature creep add in new features 😅

How do you balance between extensibility and simplicity? How can newbies avoid rework of delicate, inflexible code versus overengineering?

comments. write in comments what you want the code to do, then go over it in passes. refine the logic, still in comments, and then when you have a good grasp on everything your code needs to do, ony then start writing the code. it’s very difficult to write code that you don’t know what it will do (overengineering) or that you think you know what it will do without more analysis (hardcoded inflexible code)

What’s your organization system like? Trello, post-it notes, “// TODO” all over the code files, etc…

I run my life on markdown haha. I’ve built my own system to keep track of tasks and projects, but mostly it’s like a flat-list kanban board like trello. the system goes as follows:

[ ][ ] your task name

[ urgency ][ status ]
    @status: note about it if necessary (block, delegate, think)
    
[!][?] rewrite collision mechanics
[ ][/] redo hitboxes of bosses
    @block: collision mechanics

---

## urgency
[!] rush
[>] important
[ ] neutral
[*] icebox


## status
[?] more thought - internal block
[/] blocked - external block

[ ] todo
[o] ongoing
[x] done
[-] cancelled
[~] delegated

What game engines did you try? What did they have as far as pros & cons?

i’ve played with unity, scratch, unreal, godot, gdevelop, pico8 and a couple more I can’t recall. every engine has its pros and cons, but in the end I settled for godot because i’m a very big FOSS advocate and the engine does everything I need it to.

(as an engine developer) What missing features drove you to develop / fork your own engine?

I built a POSIX render engine (not game, just render) for quickly drawing graphics into the terminal, because there wasn’t anything like it (other than the absolutely ancient Curses). there wasn’t anything out there that could run on any POSIX-compliant shell without any dependencies, so I figured I’d make one.

(as an engine user) What compelling features helped you decide that your engine was the right one?

FOSS is always a big one. ease of use, and proper docs are also important to me. if I have questions on how to do anything, I like browsing forums to see if I can find a solution to my problem.

(1 edit)

Mentor Interview: Palandus (Jason Roberts)

Developer of Empires of Eradia: Cataclysm of Chaos.

Palandus was kind enough to speak with me about his work on TCOD and the customizations he had to make to support his requirements. His project has been in development since 2018 and I’m incredibly grateful for his input. We share a lot of the same influences: I’m thrilled to run into another Alpha Centauri fan in the wild! I also cut my teeth on AutoIt! I don’t want to editorialize too much, but it’s very validating to see other devs turn similar humble beginnings into hours of satisfying playtime.

RogueBasin says about EOECOC:

Empires of Eradia: The Cataclysm of Chaos, offers many unique twists on the classic roguelike formula. Instead of the typical dungeon layout with rooms and hallways, combat takes place in large open battlefields against multiple foes at once. Treasure, secrets and portals are scattered all over the map, and your vision is not blocked by solid walls but thick fog clouds you can pass through.. but not without risk! The game also offers a unique permadeath system, crafting and multiple disciplines to master.

EOECOC is a traditional roguelike, with an ASCII interface:

Screenshot of Empires of Eradia: Cataclysm of Chaos

You can find Palandus and EOECOC online at:

What follows is Jason’s own responses to my questions (the headings). I’ve edited lightly for formatting and organization.

Modifications to TCOD used in EOECOC

  • Resolution switching at runtime. I’d like to have a better solution for this eventually, but, it was locked to whatever size of font file was loaded. I had to figure out an ingenious way to kill the console, and load a new font file, to allow resolution switching at runtime.
  • Single Input Taking. So the main way my version of TCOD does input checking for Mouse and Keyboard, the documentation says it takes the input once and clears it. There was a bug with my version, that took the input twice then cleared it. I had to come up with a very duct-tape solution to clear the first input, so that only the second input was registered. Took me over a year to figure that one out. So as an example, you have two menus layered upon themselves in like a character selection. Say choosing race and class. If you selected option B in race, it would select option B in class, if you didn’t clear the inputs.
  • Cursor highlighting. TCOD had no feature for this, but in a 2D roguelike, you need to know what is under the mouse and the mouse cursor isn’t always the best for that. So I had to figure out a way to highlight underneath the cursor and then on the next rendering of the console to clear it. But this had lots of problems, such as that any time you’d take the mouse to the areas outside of FOV it would leave ghost images. So it took me a while to have the cursor highlighting and eliminate the ghost images.
  • FOV Gradient. I’ve always liked that in modern games that you could have torchlight that faded out to the limits of your vision. The FOV calculation in TCOD only allows for determining if a tile is lit or not. Creating a systerm wherein I would be allowed to change the color of the floor, based on distance from the player without taking half a second each frame to calculate, took me a fair amount of work.

Engine Features showcased in EOECOC v54

  • Cursor highlighting in menus. You’d think that if I could get it to work in the gameplay that it would be easy to get it to work in menus… Wrong. I had to fully redesign how I did menus to get it to work. The menu code that came with the python tutorial for TCOD at the time, wasn’t cutting it anymore, and I had to create a brand new menu generation and manipulation system, and now can create beautifully intricate menus (with a border) all properly aligned, with cursor highlighting in menus now.
  • Metric bars in menus. Again, easy to implement on the main UI, really painful to implement in menus.
  • Menu System types. So I’ve spent a lot of time improving my interfaces in V54, and a big thing is the creation of menu systems. Each one has a different way of manipulating the users input to create an a specific output, or take them to a specific new menu system. My systems are Directory, Distributor, Hub, Entry, and Singular. The user doesn’t understand the complex nature of these systems, but it really makes creating new menus a lot easier for me.

The reality of game development is that if your engine/library lacks something you need, you gotta put it in yourself or find a library or addon that will do it for you.

How did you get into programming and game development? What games inspired you?

  • I’ve dabbled with mod creation for decades, with the first game I created small mods for being Alpha Centauri. The games I made the biggest mods were for Space Pirates and Zombies 1, Skyrim (original), and Majesty Gold HD.
  • In high school, I learned a smattering of Visual Basic, HTML, and AutoIt (an automation based language that performs tasks for the user automatically without need for their input).
  • I tried to get into programming in my early College career, but found the rigid deadlines of class work too difficult to learn programming quickly enough.
  • Over the years I’ve been able to learn how to read a lot of different languages, though I’m not very good at writing in them as I never really learned the syntacal rules for them, but I can understand the flow of stuff going on. I can read LUA, C++, C#, Python, and JavaScript, though I’ve not touched ancient HTML in years.
  • I first got into game development by trying to build a game in UE4 v8 (2015), but that ended in disaster when my data got corrupted and lost the entire project. Since then, being doing backups.
  • Then started working on a simpler project (2016-2017) (well simpler than a UE4 title at least), in Quest. It was a text-adventure roguelike dungeon crawler, and tried to get into GOG Game Development Program, and although they liked it a lot, they didn’t think it would sell without graphics or sounds. So, I canned work on that project, as I was trying to create a commercial product.
  • Then I recreated the game in many aspects into an ASCII roguelike starting in (2018-Present). I tried once again to get into GOG’s Game Development Program and failed, and haven’t tried since. I might give it another go once the game is more polished, but probably won’t bother. The point of the program is for GOG to teach the developer all the things to do with social media, promotion, advertising, etc… but I’ve had to learn most of that if not all, by myself, so not sure the point of the program at this point.
  • As for games that inspired me, its a long list. I’ve taken inspiration from other non-roguelike games to create features for it, that aren’t commonly seen. Like I was playing Doom 2016 and liked the auto-pickup, so I created an auto-pickup system in my game. If you want all the games on my inspiration list, I’ll provide it.

Oh yeah, here is a link to my text adventure. It is playable in browser, and has 3-5 hours of content. Its a decent game that I put quite a bit of time and effort into, if you wanted to see my previous work. Link = http://textadventures.co.uk/games/view/rvnjlvi4heq6u7-namkaxa/the-cataclysm-of-chaos-v9

What led up to your most recent project?

  • 2015 = Failed UE4 project
  • 2017 = Cancelled Text Adventure
  • 2018 = Started work on Cataclysm of Chaos (yes my roguelike was originally named after the text adventure)
  • 2019 = Renamed it to Empires of Eradia: The Cataclysm of Chaos (this was due to feedback that it sounded too similar to Cataclysm Dark Days Ahead).
  • 2020 = Heavily reworked a lot of the story, mechanics, and created the turnscript system. Thus the 2020 version is basically a different game from the 2018 start.
  • 2022 = Started a major rebuild of the entire game, so that it addresses a lot of the story, mechanics, and performance of the 2020 version. Ongoing.
  • I’ve also continued to do modding, and have released mods or took on an abandoned mod and added to it. In 2020 I took on an abandoned mod for Legend of Grimrock 2. In 2021, I released the only functional mod for Subterrain. And early this year I released a mod for Void Bastards.

Any fond memories on languages or systems from the past? Anything you were glad to see go out of style, or are there any features or core lessons missing from modern development tools?

  • Fond languages = I did like learning HTML but it was too hard to create even the most basic webpages with it. I liked Shockwave Flash, but never was a great artist. I remember how a lot of early 90s games were made in C (like Quake 1), but C isn’t the easy to work with.
  • Fond systems = I enjoyed the Sega Genesis, even though we only ever had side scrollers. I had an Atari for a short period and remember playing Adventure on it, but not much else. I remember how technology soared in leaps in bounds from our 486 to our Pentium 1, P2, and P4. I really liked Windows 3.1 and 95; those were spartan in terms of features but just plain worked without a huge RAM footprint.
  • Glad to see go out of style = The massive number of graphic card companies and imcompatibility with games… like before Nvidia and Radeon, there was like 6-7 different care manufacturers and it caused so much grief. No mouse look in games; ie Duke 3D originally had no mouse look so you had to use PGUP and PGDN to look up/down. FPSes that ran at 15 FPS or less (probably a hardware issue with my old computers and demanding games). Netscape Navigator. Dial-up modem. VHS tapes. Floppy Disks.

Do you still play games “just for fun”? Is developing the same kind of fun as playing?

  • I don’t know what “just for fun” means.
  • I play games to de-stress, to mine ideas for my current title or future titles, to provide feedback for developers, to achieve ingame goals, and to experience something new. I don’t know if I am ever having fun though. What is fun in the context of a video game? I really can’t say.
  • Developing is certainly not fun. Its addicting, its complex, its enriching, it allows me to take idea and make them manifest. But fun? No. Draining and exhausting and fulfilling sure, but not fun.
  • Playing my own game may approach being fun, but it often involves me still observing my observations, looking for bugs, and looking at weak areas to rebalance things.
  • I like to play other indie games, to provide feedback to them. I know what its like to go for months without feedback, so I like to pay it forward as often as I am able to and give other indies that critical feedback. Its why I like Steam Next Fests, as it gives me ample opportunity to do so.

What’s still fun or most inspiring to you?

  • With my excessive stress levels, I find it difficult to enjoy life or be inspired. Some mornings I don’t even care to wake up.
  • Fun = Playing with my Niece (6) and Nephew (4). Successfully completing a game build or new mod. Reaching the pinnacle in a game and utterly dominating. I dunno, I have a hard time defining fun.
  • Inspiring = John Carmack and Bob Ross. Otherwise I don’t know how to answer the question, as I’m inspired by things or people in a transient manner, being inspired for say a few months and then losing interest and moving on to the next thing or person. I don’t know why I’m the way I am.

What’s a classic game (whatever you decide that means) that still gets you pumped up?

  • Card Game = Star Realms or Crazy Eight or Gin Rummy.
  • Board Game = Stratego or Monopoly or Chess.
  • D&D 3.0 Edition.
  • 90s Game = Doom (generally with GZDoom), Alpha Centauri, and Majesty: The Fantasy Kingdom Sim
  • 2000s Game = Halo 1, Supreme Commander 1, and Elder Scrolls: Oblivion.
  • 2010s Game = Diablo 3, 7 Days to Die, and Dragons Dogma.

Other things you would want to share?

  • Plan to eventually have a GitHub and an Itch.io, around V54 release window.
  • Plan to sell the game eventually, but only when the game hits at least Early Beta (currently Late Alpha)
  • Plan to eventually do cross compilation to Linux and Mac.

May people message you for help or feedback?

  • Certainly. I’ve received emails, PMs, and conversation in Discord in the past, and always like interacting with newcomers, be it chatting, bug reports, or suggestions or even just words of encouragement. Wish I didn’t run into as many internet trolls though. They are draining.

Do you have any tips on persistence and overcoming problems? Do you code on a schedule? Do solutions come to you in the shower or while dreaming?

  • Tips for persistence = Have an end goal in mind. Since I wanted to commercialize it, any major problem I eventually work out because the end goal is money and hopefully the livelihood to create games for a living. If you have no end goal in mind, such as its a throwaway project (which I’ve had several small throwaway side projects), the first major problem will stall development.
  • Tips for overcoming problems = Playing other peoples games gives me insight into ways to solve my problems. Putting it aside and coming back to it after sleeping for 8+ hrs. Brainstorming possible reasons things are happening (ie for an annoying bug that you can’t quickly solve). Using debug messages (for Python that is print) at specific places in the codebase to help you find slowdown or infinite loops to narrow down where the problem is occurring. Sometimes just working on other aspects of game development for a few months until you come up with something ingenious (most of my major accomplishments were a result of this).
  • I do not code on a schedule. I might bughunt on a schedule before a release, but otherwise no. Most of my coding is often doing something new, so there is always a ton of designing that needs to be done first and that just takes time. Trying to force myself to code at a specific time doesn’t work for me… probably why classwork programming never clicked. I don’t have the discipline to force myself to code, but once I’ve hit a groove, I can code for 8+hrs in one go without breaks.
  • Most solutions come to me after sleeping for a while. Some of my most innovative ideas came to me when I was severely sleep deprived, caused by being viciously violently ill, and thus unable to sleep for 24 hours, and in my totally warped, sleep exhausted brain, I come up with interesting ways to address longstanding problems. Like most recently how to make the Runestone better, with a fixed map system. Or before that, having window popups instead of a side panel to display information.
  • But a lot of solutions come from playtesting other indie games or from playing a new video game, seeing a cool feature, and going, “wow that would totally solve this issue in my game”

How can one decide if they need a custom engine?

  • Usually its a matter of things like: Is there a tutorial on that custom engine, Is it well documented, Does it have critical/core features you need to make the experience you want to create, Is there available assets that work nicely with that engine, Is it performant for a game that requires good performance, Is it easy to debug (UE is not easy to debug), and do you know how to read/write that language required for it?

  • Most people will prefer to use things like Godot, Unreal Engine, Cry Engine, Unity, or Gamemaker, to create games, depending on their skills, scope for the game, and such forth. But creating certain types of games, like ASCII roguelikes are extremely hard to do in these engines, so you have to often find a custom engine to do them in… or pay a lot of money to get asset packs and script packs to work together nicely in one of these engines. Not an easy task either.

Do you prefer rushing towards a minimum viable feature, or do you build to support your entire feature list?

  • My games are too complex to figure out what I would define as a Minimum Viable Product. Since most systems are critical, to achieving the right experience and gameplay loop, its hard to say which ones would be needed in a MVP… probably all of them, but that usually takes months. And the point of a MVP is to create something in 3 months or less with the bare minimum features to see if its good or not.
  • For EOECOC, I was also learning a lot while coding, so from 2018-2022, I made a lot of poor mistakes, which resulted in months-long refactors of the codebase. The current V54, in progress right now in 2023, is more like building to support my feature list and creating a MVP, with an idea of how I want both to look like, in its phased development.
  • I’d like to do things differently for future projects, but right now that is what I’m doing.

How do you balance between extensibility and simplicity? How can newbies avoid rework of delicate, inflexible code versus overengineering?

  • When I complete EOECOC, I might have an idea on how to answer this question. But as I’ve been a newbie for a while and had to rework delicate inflexible code or refactor overengineered stuff, I don’t have any specific advice here. V54 is meant to achieve flexible, easy to read and work with code, that is properly engineered. However, a lot of stuff still isn’t finished yet.

What’s your organization system like? Trello, post-it notes, “// TODO” all over the code files, etc…

  • Haphazard. I’ve tried out at least 20 different websites (ie Trello) or programs (Over a period of 6 years) to try to organize things, and the only thing I’ve found to be effective is an old software called DM Genie meant for D&D 3rd Edition. It has a Campaign Manager that lets me easily organize vast amounts of information, with good labels and easy navigation. I’d prefer to use something else as it has its own share of bugs, but its the best system of organization thus far. I got the DM Genie over a decade ago when I was playing 3.5 Edition. Currently I’m in the process of transfering all my notes from other organizational systems to DM Genie, but its a huge project and balancing that with code development is difficult.

What game engines did you try? What did they have as far as pros & cons?

  • For EOECOC, I tried a few different things, before settling on Python and Libtcod.
  • I looked at 3-4 custom engines, but they all had several issues. ie they had poor documentation, used a weird programming language (ie D), or weren’t commercially sellable, so good for a personal project and nothing else.
  • I looked at TOME. It has a custom engine built for it with lots of features, but I found it hard to comprehend, and wasn’t commercially viable at the time, so I moved on despite it having really good tiling capabilities.
  • I looked at Godot and Unity, but couldn’t find anything free to use to start up a roguelike on and wasn’t prepared to sink money into asset packs, when I barely understood their programming languages or if the asset pack would be the only thing I needed.
  • I wanted to do Python 3 and Libtcod, but at the time in 2018, the tutorial wasn’t even started yet, so I went with Python 2 and Libtcod. If there wasn’t a tutorial for Libtcod, I wouldn’t have gone for it, but it seemed to be the most ideal situation with the features I needed to create the game I wanted to create. The initial game was built into the tutorial and around it. But over time I replaced tutorial code with my own code, and now with V54, there is no trace of the tutorial code left.
(5 edits)

I have 7 interviews with mentors to share over the course of the jam, and may have as many as 14-15 if some responses come in during the jam. I’ll be publishing them on my personal blog as well as in this forum thread.

Video Interview with Action Jake: https://www.youtube.com/watch?v=qnwuoGtu-Ho

Correspondence Interview with Jason “Palandus” Roberts: https://kn4obl.net/engjam-mentor-palandus.html or in this thread.

Correspondence Interview with Octoshrimpy: https://kn4obl.net/engjam-mentor-octoshrimpy.html or in this thread.

Correspondence Interview with Mike from Halftone Games: https://kn4obl.net/engjam-mentor-halftone.html or in this thread.

Correspondence Interview with u/JTStephano, dev of StratusGFX (open source rendering engine): https://kn4obl.net/engjam-mentor-jtstephano.html

Correspondence Interview with Dane “Splosions” Singleton, developer of Noia Online: https://kn4obl.net/engjam-mentor-noiadev.html

Correspondence Interview with Prof. Dave Churchill, Associate Professor at Memorial University: https://kn4obl.net/engjam-mentor-churchill.html

This concludes the interview series (unless I get a late email at this point).

Here’s my own kickoff video, in case anyone needs some ideas on how to plan:

(1 edit)

Greetings! EngJam has begun.

I hope everyone has a fun and productive jam!

I’d like to kick off the jam with a video interview with Action Jake:

However, I am going to now exercise the first guiding principle of our jam (“Work-Life Balance”) and spend the first 8 hours of the jam asleep. This is a pace I can get behind!

I’ll be streaming throughout the jam, and I invite everyone to share stream schedules, social media links, and dev blogs / vlogs in this thread or one of your own.

Kind Regards,

-John

(1 edit)

Greetings,

EngJam is seeking Mentors to answer a brief set of questions over email or Zoom. Your interview will be shared with jam participants to motivate and inspire them.

Some questions might include:

  • how did you decide you needed a custom engine?
  • Do you prefer rushing towards a minimum viable feature, or do you build to support your entire feature list?
  • How do you balance between extensibility and simplicity?
  • What keeps you motivated to continue?

If you have other questions you’d like to get answered by mentors, please post them here.

Other questions or relevant battle stories or personal anecdotes would be excellent inclusions.

Looking for real time chat / Discord? Because this is our first year, I’m not starting a new Discord server for this jam, and I recommend participants to come chat in the Linux Game Jam Discord server, which is open to the public. I think a lot of the values for these two jams overlap and I’d encourage EngJam participants to focus on employing your engine in the next Linux Game Jam!

I appreciate the discussion. I have some thoughts on this too:

  • It truly would be impossible to “compete” against a long-term project getting new features with a scratch-built engine during a 2-week jam. There definitely should be some categorization between these.

  • I generally prefer open source, so I think that should be worth bonus points. But I can understand situations when someone is not ready to share their code, and I don’t think it should be mandatory.

  • Let’s not forget that this is a friendly competition: the prize is the progress you make on your game engine, or the wisdom you gain while solving problems. A closed source engine or a long-term project are welcome entries which wouldn’t invalidate the rewards anyone else gets from their open source and/or brand new project.

This was so fun. I found the “speedrun” route first and thought, maybe I’ll try to not lose any HP by going the long way around. NOPE.

Also I have zero foresight so I literally had to reset every room until I figured out what to do, so I can’t wait to see this with some checkpoints!

what are you building with? If you are compiling C/C++, you can include an rpath (example: “./lib”). Your executable will look for shared objects there, and you can include all of your dependencies.

Thanks for keeping this jam going, your cheeseness.

Last year I submitted a heap of junk - https://jmccardle.itch.io/empty-simulator - an incomplete RTS implementation. I’m not sure what I’m going to make this year yet, but that code is going to live on in this new project. I worked out my executable distribution issues for 7-day roguelike earlier this year.

(3 edits)

oh no! My distro’s version of libc is 2.31. Your game was built against 2.34.

$ ./run.sh 
./pheasantfarm: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./pheasantfarm)

Thanks for the feedback! The dev team feels the same about a lot of the pacing and Spare Time usefulness issues you’re mentioning.

I recognize this style from the Summer incremental game jam, and while this one was fun and interesting, it definitely feels a little derivative compared to Resource Starve. The ability to move around and build gives a lot of freedom to the usually more linear incremental genre.

I had some performance issues on Firefox, especially once the building count starts getting up there.

I didn’t play through to the end. I really liked your art style, it’s clearly bespoke and downright gorgeous and theme-rich compared to some of the UI-only type of incrementals.

I’d appreciate more instructions and notifications: for a while I was just clicking on stuff. I was playing on a TV with some friends and family around the living room, and we couldn’t really make out what the icons meant from the couch.

I played this one through to the end over about 4-5 sessions. The pacing was great for an incremental game, but probably hurts the game in the jam. The initial 5 minutes was quite the pressure. The dynamism of the tool count and tool effectiveness values kept me coming back to this one.

“gold” is accidentally labelled “iron”, but otherwise works fine.

I managed to crash the game when spending like 1e10 faith on Chronomancy. So a cap would be nice (though I was probably past done with the game at this point)