Omnispeak v1.1

Here is where to post about the latest Commander Keen fangame or modification you've finished, a new website you've made, or another Keen-related creation.
User avatar
Multimania
Vortininja
Posts: 84
Joined: Sat Nov 10, 2007 8:10
Location: Hiding in a small, cramped corner of the BwB megarocket.
Contact:

Omnispeak v1.1

Post by Multimania »

It's still technically the 15th somewhere in the world, so as a 30th birthday celebration for Goodbye Galaxy, here's Omnispeak v1.1! :birthday

Omnispeak v1.1 is basically just the accumulation of bugfixes and new features that have been worked on in the last ~4 years since Omnispeak v1.0, nicely bundled together so that people don't need to compile it themselves.

You can download it here: New features include:
  • QuickLoad / QuickSave: instantly save and reload within a level
  • Improved Joystick / Gamepad support
  • Support for real Adlib / OPL2 soundcards on Linux
  • Support for the Nuked OPL3 emulator for more accurate sound emulation
  • A new configuration file -- OMNISPK.CFG -- which saves the new options, and allows several tweaks.
  • Support for running the game from different directories (and splitting the savegames/config data into a different directory) with the /GAMEPATH and /USERPATH options.
  • Support for integer scaling for graphics.
  • Improved compatibility with windows systems (due to a new SDL2-based renderer)
  • Several accuracy fixes and other bugfixes.
  • And more things I've forgotten
  • An exhaustive (and exhausting) changelog can be found here
Also, there are several ports to other platforms, done by several talented people, including: Special thanks go to the many Omnispeak Contributors for their hard work!
User avatar
Roobar
Vorticon Elite
Posts: 3267
Joined: Tue Jan 08, 2008 16:12
Contact:

Re: Omnispeak v1.1

Post by Roobar »

Oh that's awesome!
User avatar
Nisaba
Janitress
Posts: 1597
Joined: Fri Jan 01, 2016 23:34
Location: The Outpost
Contact:

Re: Omnispeak v1.1

Post by Nisaba »

Omnispeak is super awesome! this is where source code modding started. this project is like the main key to the future of modding
you guys rock!
out now (link) : Image
NY00123
Vorticon Elite
Posts: 508
Joined: Sun Sep 06, 2009 19:36

Re: Omnispeak v1.1

Post by NY00123 »

Congratulations on getting the release out! The timing is indeed fitting.

While I know that you've been updating the repository before the last release (and also been accepting patches for contributors), this is a good opportunity for potential users to give this a try.

I don't know if the ACTIONS files support more than in Omnispeak v1.0, although there was some work back in 2019.
Regardless, v1.1 clearly adds more on top of v1.0.
User avatar
lemm
Blorb
Posts: 696
Joined: Fri Jul 03, 2009 10:18
Location: canada lol

Re: Omnispeak v1.1

Post by lemm »

This was fun to work on and it looks like we've finally got it running identically to the original games. :pogo
Do you have any more big plans for omnispeak (like modding, multiplayer, or something like that) or is it just going to be bugfixes and portability?
User avatar
Nisaba
Janitress
Posts: 1597
Joined: Fri Jan 01, 2016 23:34
Location: The Outpost
Contact:

Re: Omnispeak v1.1

Post by Nisaba »

lemm wrote: Sun Jan 02, 2022 17:24 Do you have any more big plans for omnispeak (like modding, multiplayer, or something like that) [...]
Some unconventional hacks would be super awesome. Like for instance a 2 player Keen quest, where player two controls all the enemies :poison :garg :korath :dopefish :shockshund :wormouth, and player one plays as Keen :crazy. Besides having a lot of fun playing some good old Keen with a friend, also player two could decide to show no mercy at all and play the enemies ruthless - "Mortimer style". :mort This should make things a whole lot more interesting and challenging. And of course this could be so much fun...

I'd love to see some' like this come true. Do you guys think this could be technically feasible?

And of course this idea isn't knew. I borrowed that idea from a very neat Super Mario World Rom hack:
https://www.youtube.com/watch?v=LPHB6eXajtQ

= = = = = = = = = = = = = = = = = = = = =

Designing levels that can only be beaten in co-op mode would also be super fun. In this scenario both players have to work together to make it to the exit. This could be pretty neat. The main idea would be that team work will need to be used to figure out some puzzles together.
out now (link) : Image
User avatar
Multimania
Vortininja
Posts: 84
Joined: Sat Nov 10, 2007 8:10
Location: Hiding in a small, cramped corner of the BwB megarocket.
Contact:

Re: Omnispeak v1.1

Post by Multimania »

Thanks, everyone for the comments.

I'd had the idea to put the next version together for the anniversary, and while I'd wanted to fit a couple of extra features in, I ended up spending most of the time dealing with some last-minute bugs instead.
NY00123 wrote: Fri Dec 24, 2021 14:19 I don't know if the ACTIONS files support more than in Omnispeak v1.0, although there was some work back in 2019.
Regardless, v1.1 clearly adds more on top of v1.0.
The big change for the ACTIONS file parser is mostly done, but not yet really used in v1.1: the goal is to have a general variable system so that, for example, the text in the game can be edited in a separate STRINGS.CKx file, and other things that are episode-specific can similarly be moved to files.
lemm wrote: Sun Jan 02, 2022 17:24 Do you have any more big plans for omnispeak (like modding, multiplayer, or something like that) or is it just going to be bugfixes and portability?
Bugfixes and portability are the main goals, but I do want to do something to help with modding. The variable system mentioned above was the original plan for that, and probably would be fine for level packs and simple mods, but the big source-code mods probably would need a bunch of custom C code anyway. (The possibility of including either a scripting language or a quake-like DLL system is there, but just adding them as new episodes in C in a "mods" branch or something is probably simpler, particularly seeing C source already exists for AR and RTTS.)

I'm also a bit more open to adding some basic graphics/sound enhancement options than I was, now that there's K1n9_Duk3's reconstruction for the absolutely vanilla experience. They'd still have to be optional, but the thought of playing with something like stereo sound support or work towards supporting other resolutions has crossed my mind. Or maybe just something crazy like CGA support — ReflectionHLE already supports CGA for Keen Dreams.

As for multiplayer, I'd love to do it, but probably would treat it as a separate project from Omnispeak, albeit one which shares a lot of code. I did experiment a bit (quite a long time ago) with just grabbing the NETKEEN and Omnispeak code and merging them together, though life got it the way before anything actually worked.

Of course, these things all require a fair bit of time, so don't hold your breath: the next few months will still probably be just bugfixes and some more support for weird AdLib/OPL2 hardware, which is what I'm currently working on.
NY00123
Vorticon Elite
Posts: 508
Joined: Sun Sep 06, 2009 19:36

Re: Omnispeak v1.1

Post by NY00123 »

Thanks for your updates. Since the CGA code is all out there, it should be usable. Most of Keen Dreams' refresh manager and video manager code specific to CGA is the same as in Keen 4-6.

Basic graphics/sound enhancement options will probably be found welcome by users. One example coming to mind is extending the viewport for widescreen resolutions.

Source modding does have its place. Gridlock's Atroxian Realm is a good example, and so is Frenkel's Tandy port of Keen 4. It's also expected to be the approach in use as long as there isn't a source port which offers enough as an alternative for modders, say in terms of scripting.

On the other hand, there's still something to take into account. I can't say for sure, but I suspect that Commander Genius is still more commonly used for playing Keen games; Obviously for the Android platform, but possibly also for platforms supported by Omnispeak, if only due to familiarity and/or additional features that it offers, like smoother motion.

More generally, certain things might happen, either now or in the future:
- There are people who'll rather not use a DOS emulator at all. There are also the ones who refuse to buy games if all you get are DOS versions bundled with emulators. So, they won't play Keen mods which require a DOS environment.
- Even if a Keen mod is made with a port, users might still like to use a different source port, even if only due to specific features it might offer (like motion interpolation). So, if the Keen mod isn't made with this port in mind, it might be less relevant for them, unless it's made compatible with the port.
- Finally, even if a Keen mod is based on a source port which a specific player uses, it might be based on an older version which lacks certain features. If it's a full source mod, chances are it'll be nontrivial to adapt it to newer versions of the port. It obviously won't be the same as using existing mod data as-is with a new exe.

These can be resolved by appropriate support for scripting and other features, if covering enough of what modders tend to want to change.

Another approach is similar to what certain Quake games use: A subset of the code may be changed, but it's still expected to communicate with a source port using a very specific API. For Quake II, compiled dlls are distributed, but the problem is that they're compatible with specific platforms; ABI compatibility also matters here, not just API compatibility. Having the mod's sources out in the public should make it possible to recompile it, possibly after making necessary changes. It'll obviously still differ from not having the need to do this at all.

Obviously, scripting is expected to have some runtime overhead (mainly on older machines and for quite large mods). This isn't relevant for source mods, albeit what was previously written still applies.
User avatar
Roobar
Vorticon Elite
Posts: 3267
Joined: Tue Jan 08, 2008 16:12
Contact:

Re: Omnispeak v1.1

Post by Roobar »

There's this bug: when you change the quick load key in the settings, it doesn't save it the next time you open the game. Perhaps that's the case with the quick save button as well, but I haven't tested that since I use F5 anyway.
User avatar
Multimania
Vortininja
Posts: 84
Joined: Sat Nov 10, 2007 8:10
Location: Hiding in a small, cramped corner of the BwB megarocket.
Contact:

Re: Omnispeak v1.1

Post by Multimania »

Roobar wrote: Wed Dec 21, 2022 19:08 There's this bug: when you change the quick load key in the settings, it doesn't save it the next time you open the game. Perhaps that's the case with the quick save button as well, but I haven't tested that since I use F5 anyway.
Thanks for reporting this. I've fixed it for the next version (and also in the Operation Station Infiltration version).

I'll try to put out a v1.11 release or something with this fix when I've got some more time.
User avatar
Snortimer
Vortininja
Posts: 267
Joined: Wed Jul 22, 2009 8:04
Location: Toronto, Canada
Contact:

Re: Omnispeak v1.1

Post by Snortimer »

So, I'm not sure if this is the right place to ask, but what are the pros and cons of using Omnispeak vs K1n9_Duk3's Recreated Keen 4–6 Source Code?
NY00123 wrote: Sat Jan 15, 2022 22:40I can't say for sure, but I suspect that Commander Genius is still more commonly used for playing Keen games; Obviously for the Android platform, but possibly also for platforms supported by Omnispeak, if only due to familiarity and/or additional features that it offers, like smoother motion.
I don't use Commander Genius myself because I want the in-game physics to feel absolutely identical to the originals, and it wasn't close enough last time I tried (which admittedly was a while ago). Also, I like being able to run it in DOS (which can be emulated on most systems these days, and we'll eventually reach the point when this will even be true of $30 emulation handhelds bought off AliExpress).
Member since at least 1998 with... ah... some long absences. I was even a moderator at one point. I'll probably keep coming back here and there as long as this place still exists.
User avatar
Multimania
Vortininja
Posts: 84
Joined: Sat Nov 10, 2007 8:10
Location: Hiding in a small, cramped corner of the BwB megarocket.
Contact:

Re: Omnispeak v1.1

Post by Multimania »

Snortimer wrote: Tue Jul 04, 2023 9:09 So, I'm not sure if this is the right place to ask, but what are the pros and cons of using Omnispeak vs K1n9_Duk3's Recreated Keen 4–6 Source Code?
It really depends on what you're using it for. The recreated source code is identical to the normal DOS version of the game — if you're just playing, you might as well use the original game. Omnispeak, on the other hand, is optimised for more modern OSes: it has some DOS support, but it's less polished, and needs a more beefy machine (think a fast-ish 486). However, if you use the Windows or Linux builds of Omnispeak, they'll be much faster (and in some ways more accurate) than using DOSBox.

It'd be possible to add support for extra OSes to both, but it's much, much easier with Omnispeak, as it was made with modern systems in mind.

The biggest differences are for modding: Omnispeak gets you the advantages of being able to use more modern development tools (modern compilers, debuggers, etc), and lets you avoid all of the memory restrictions the original DOS version had, at the expense of some DOS compatibility.

A good comparison is to look at Return to the Shadowlands and Operation Station Infiltration: the first was made with K1n9_Duk3's recreated source code, the latter with Omnispeak. The "DOS16" version of OSI is sort-of a compromise, using a combination of the Atroxian Realm and Omnispeak code to give an experience more similar to the recreated source code versions.

(I'm also working on some systems for Omnispeak to make modding easier, like the EPISODE.CKx file to let some parameters be easily tweaked. But that's not quite ready yet.)

tl;dr: The recreated Keen 4–6 code is better for DOS (including DOSBox) and for changes that fit in memory, Omnispeak is probably better for any other OS, or changes with lots of memory or other requirements.
User avatar
entropicdecay
Mad Mushroom
Posts: 576
Joined: Thu Nov 01, 2007 15:00
Contact:

Re: Omnispeak v1.1

Post by entropicdecay »

I can't seem to find the omnispeak.cfg file. I wanted to disable the creature question for Keen 6.
User avatar
Snortimer
Vortininja
Posts: 267
Joined: Wed Jul 22, 2009 8:04
Location: Toronto, Canada
Contact:

Re: Omnispeak v1.1

Post by Snortimer »

Thanks a lot for that detailed answer, Multimania.
Multimania wrote: Tue Jul 04, 2023 12:00The biggest differences are for modding: Omnispeak gets you the advantages of being able to use more modern development tools (modern compilers, debuggers, etc), and lets you avoid all of the memory restrictions the original DOS version had, at the expense of some DOS compatibility.
So, which development tools would be recommended for working with Omnispeak, vs which ones would be better for the recreated source code? (sorry if this is mentioned on the Keen wiki already somewhere...)

I actually haven't played either Return to the Shadowlands nor OSI yet. But I've been impressed with some of the source code changes made to Foray in the Forest while playtesting it, and that seems to have the same emulation requirements as the original Keen games, as far as I can tell.
Member since at least 1998 with... ah... some long absences. I was even a moderator at one point. I'll probably keep coming back here and there as long as this place still exists.
User avatar
Toothpick
Vortininja
Posts: 151
Joined: Sat Jun 12, 2010 3:42
Location: Deltona

Re: Omnispeak v1.1

Post by Toothpick »

entropicdecay wrote: Tue Jul 04, 2023 15:36 I can't seem to find the omnispeak.cfg file. I wanted to disable the creature question for Keen 6.
I'm having the same problem. I also can't erase the quick save I accidentally made during gameplay. What folder is this program interacting with?
Post Reply