Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411433 Posts in 69363 Topics- by 58418 Members - Latest Member: Pix_RolleR

April 20, 2024, 08:36:03 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperPlaytestingDinothawr – a freeware, cross-platform puzzle game
Pages: [1]
Print
Author Topic: Dinothawr – a freeware, cross-platform puzzle game  (Read 13294 times)
Kingel
Level 2
**



View Profile WWW
« on: January 27, 2013, 08:01:39 AM »




Dinothawr







The game
Dinothawr is a simple puzzle game I'm making with Themaister, creator of the RetroArch/libretro project.

The goal of the game is to save your frozen friends by pushing them onto lava so they can thaw.

Changelog

(13-09-21)

  • Made win animation skippable
  • Fixed bug: Solving last level in locked chapter allowed for skipping the rest

(13-09-16)

  • Added background music by Themaister
  • Tiles have been polished
  • Level redesigns and additions (50 levels now)
  • Chapter sizes are constant
  • Added level reset button
  • A handful of shaders included (for powerful devices)
  • Threaded audio to prevent crackling when using demanding shaders
  • Pixel purist mode (no bilinear filtering)

Feedback
The most important feedback you can give us now is feedback on difficulty. We've done our best to arrange the levels in increasing order of difficulty, but we could really use some input from others. We wanted to avoid tutorials and have the mechanics explain themselves through the easier levels. The puzzle mechanics you need to master are demonstrated in the first five levels. Once the first chapter has been unlocked, you can play the remaining levels in any order.

Sometimes there are trivial level solutions we've missed, so if any of the later levels seem strangely easy to solve, we'd like to hear about that too (the push count is a good indicator). We'd also like some feedback on the level selection menu (it looks a little empty right now), any bugs you find, and any other problems you experience when running Dinothawr or RetroArch.

The engine
The game is written in C++11 and runs as a core in RetroArch, a cross-platform retro game/emulator frontend. Our implementation of the libretro API allows the game to run on any platform supported by RetroArch, as long as it has a compiler compatible with C++11.

For now we've limited the platforms to the systems we have reasonable access to, so we haven't been able to make a Mac OS X version yet, but Mac and other ports are also possible.

The levels are XML files created in Tiled, so they can be easily edited. Adding new levels to the XML level list is trivial as well. We'll make a short level design guide for Dinothawr when it's finished, so that it'll be possible to make custom levels easily if there's a desire for that.

These last few months, we've been mainly working on the Android port. Dinothawr has been nominated for "Mobile Game of the Year" at Norwegian Game Awards, so we're excited about that. We'll provide builds for other platforms as soon as we have time.


Dinothawr running on the Nvidia Shield Wizard
« Last Edit: November 25, 2013, 12:05:40 PM by Arachne » Logged

Rosse
Level 0
**



View Profile WWW
« Reply #1 on: January 27, 2013, 09:14:43 AM »

Hello Arachne and Themaister,

lovely little game, I like it a lot. Great graphics and animations, simple and addictive game mechanics. I played around 30 minutes or so and I'm 50% into the game.

I solved the levels in the correct order (1-1 up to 3-8). I'd say the learning curve is alright. 3-3 took me quite some time compared to the ones before and 3-4 was kind of hard. But after I solved them, I saw that they were relatively easy and it was just me having a wrong idea how to approach the solution. 3-8 on the other hand was too easy, because the way to solve it was already obvious at first sight and it was just chore to solve it instead of thinking.

I'm not so sure about the level selector. Is there a reason you made the level sets:

1->4 levels
2->6 levels
3->8 levels
4->7 levels
5->6 levels
6->5 levels ?

I like the possibility to play every level right from the beginning. Reminds me of Sokoban with the Elevator Level selection.
When you finished the last level of a set, you should be directed to the fist of the new set and not the one directly below of the level selector, I think.


I'm looking forward to solve all the levels. I will post futher comments when I completed it.  Hand Joystick
Logged

Kingel
Level 2
**



View Profile WWW
« Reply #2 on: January 28, 2013, 12:44:32 PM »

Hey! Great to hear that you like it! Grin

3-8 on the other hand was too easy, because the way to solve it was already obvious at first sight and it was just chore to solve it instead of thinking.

Yeah, I see what you mean. Looking at it, I can make a version with 9 pushes instead of 14, which should make it less tedious.

Quote
I'm not so sure about the level selector. Is there a reason you made the level sets:

1->4 levels
2->6 levels
3->8 levels
4->7 levels
5->6 levels
6->5 levels ?

We don't really have a clear idea of how to arrange the levels right now except based on difficulty, so the chapter division is fairly arbitrary. I guess an even split would make more sense.

Quote
I like the possibility to play every level right from the beginning. Reminds me of Sokoban with the Elevator Level selection.

Initially, we were going to have the chapters locked until you'd completed a certain amount of levels, so, for demonstration, we just left a single level locked to make testing easier. However, the few comments we've gotten on the level selection so far seem to indicate that people like having the freedom of the current system, so it looks like we might keep it fairly free. I was thinking we could have the first four levels be mandatory or something to make sure players are familiar with the main puzzle mechanics before they move on.

Quote
When you finished the last level of a set, you should be directed to the fist of the new set and not the one directly below of the level selector, I think.

Good point. We'll fix that.
Thanks a lot! Beer!
Logged

koiwai
Level 1
*



View Profile
« Reply #3 on: January 28, 2013, 04:50:15 PM »

Fun game!

Got stuck on the level 4-2. Level 3-3 was a really tricky one too.

Controls "x" and "z" were a little confusing for choosing levels. I wish I simply could select levels with the Enter key.

As a sidenote, I am using Arch Linux, but ran the windows version on Wine, because did not really want to install two AUR packages. Though, now I am googling what the reproarch is, and it looks interesting! If I understand it correctly, if you write your code for libretro, it will work on all those platforms, right? Roll Eyes
Logged

Themaister
Level 0
*


View Profile
« Reply #4 on: January 29, 2013, 05:22:45 AM »

Fun game!

Got stuck on the level 4-2. Level 3-3 was a really tricky one too.

Controls "x" and "z" were a little confusing for choosing levels. I wish I simply could select levels with the Enter key.

As a sidenote, I am using Arch Linux, but ran the windows version on Wine, because did not really want to install two AUR packages. Though, now I am googling what the reproarch is, and it looks interesting! If I understand it correctly, if you write your code for libretro, it will work on all those platforms, right? Roll Eyes

libretro in an API which games and emulators can expose. The way RetroArch/libretro works as an "engine" is quite different from say, SDL.
With SDL you use the library actively to output video, sound and input. The application itself must be handled by the game itself. SDL is just there to help you out with platform specifics like video/audio/input, and that stuff.

The RetroArch/libretro model swaps things around. RetroArch concerns itself with the "boring" application logic. Video, audio, input, window handling, OS specific tweaks ... The game is completely shielded from all this. For input, we've standardized an abstract controller called RetroPad (essentially SNES + PS1 extensions like L2/R2, analogs, etc). Games can assume this controller is always available and the frontend maps stuff.

The game itself is implemented as a dynamic library (.so/.dll, etc) which exposes the libretro API. The responsibility of the game is to generate a new frame, produce some audio chunks and poll for input. The major restriction is that video must be software rendered, but for retro-style 2D games, this isn't an issue. The gain is that a libretro implementation can be completely free-standing, without any dependencies outside standard C/C++ libraries. It could then in theory be compiled on any platform, and loaded by a frontend (RetroArch) that can talk to a libretro implementation.

RetroArch is ported to lots of platforms by now:
- Windows
- Linux / BSD
- OSX
- PS3
- XBox360
- XBox1
- Android
- Raspberry Pi
- (maybe iOS)

RetroArch isn't the only frontend. The XBMC team are working on an intergrated libretro player: http://forum.xbmc.org/showthread.php?tid=146711&page=11
The OSX emulator OpenEmu can also run libretro implementations.
Logged
Kingel
Level 2
**



View Profile WWW
« Reply #5 on: January 29, 2013, 05:36:54 AM »

Controls "x" and "z" were a little confusing for choosing levels. I wish I simply could select levels with the Enter key.

The reason we did the button configuration like that was because of the overlay on the Android port. By having as few buttons as possible (level select menu/cancel and select/push) the idea was that we could reduce the clutter on the screen.

However, if it's less intuitive that way, it's possible to have the two different actions triggered by the same button on the Android overlay and assign two different keys on the PC/Pi ports. That way we can still reduce clutter on the Android port, but also expand the available buttons elsewhere. Smiley We can add an additional config option for such a setup in the launcher.
Logged

koiwai
Level 1
*



View Profile
« Reply #6 on: January 29, 2013, 02:03:10 PM »

Thanks for the explanation!
I think, I may try using RetroArch/libretro for small projects Gomez
Logged

Kingel
Level 2
**



View Profile WWW
« Reply #7 on: January 29, 2013, 03:09:50 PM »

Awesome. Grin The RetroArch repository has a documentation section, which might be helpful. We're hoping that Dinothawr can be used as an example when it's done, but in the meantime you could look at some of the emulator cores or game cores (like the libretro port of the Cave Story engine) and see if that gives you a better idea of how it's done.

Themaister did most of the work on the engine since he's already familiar with libretro, but I want to give libretro implementation a go for my next project so I can try it for myself. There are some features I really like so far, such as live streaming to Twitch (via ffmpeg), which means it's really easy to show solutions to puzzle levels and such.

Edit: There's also this libretro test core, which is an implementation with the bare essentials. That should show more clearly what you need as a minimum. Smiley
« Last Edit: January 30, 2013, 10:17:35 AM by Arachne » Logged

Kingel
Level 2
**



View Profile WWW
« Reply #8 on: September 16, 2013, 05:33:35 AM »

Hey, everyone! Grin

We've put together a new Android version of Dinothawr, so it would be great if you'd like to give it a go. Let me know if there's a problem and what sort of device and Android version you're using. See the first post for more details. Beer!


Dinothawr.apk

Logged

wccrawford
Level 3
***



View Profile
« Reply #9 on: September 16, 2013, 08:44:00 AM »

That's a nice variation on the usual push puzzles!  Not a big fan of on-screen controls for mobile devices, though.  Wish you'd found a way around that.
Logged
rgcd.co.uk
Level 0
***


View Profile WWW
« Reply #10 on: September 16, 2013, 01:58:11 PM »

Latest version runs perfectly on the Ouya Smiley You should consider porting it over officially. A really charming little game Agnes! Drop me a line @RetroGamerCD on twitter when the final is out on Android and I'll ensure it's covered at RGCD.

pic.twitter.com/omZXwFmMqR

(How does saving progress work? I need to tick 'SRAM Save' on I guess?)
« Last Edit: September 16, 2013, 02:34:37 PM by Heavy Stylus » Logged
Kingel
Level 2
**



View Profile WWW
« Reply #11 on: September 16, 2013, 09:08:39 PM »

That's a nice variation on the usual push puzzles!  Not a big fan of on-screen controls for mobile devices, though.  Wish you'd found a way around that.
Thanks Smiley And yeah, I think the menu in particular would have been better off with touch controls, but it's not something we had time to implement, as most of the other ports (and other Android devices like the Shield) support gamepads. I don't know how we would have done the in-game controls touch-based, though, as the gameplay is quite gamepad-centric.

Latest version runs perfectly on the Ouya Smiley You should consider porting it over officially. A really charming little game Agnes! Drop me a line @RetroGamerCD on twitter when the final is out on Android and I'll ensure it's covered at RGCD.

pic.twitter.com/omZXwFmMqR

(How does saving progress work? I need to tick 'SRAM Save' on I guess?)

Nice! Grin Like I said on Twitter, porting it shouldn't be a problem. Two of the other RetroArch devs have OUYAs, so they might be able to help us with it.

Hm, saving is supposed to work without having to go through the RGUI interface (which isn't really needed for this game, as it has a bunch of options that only really apply to emulators). It normally saves progress after each completed level. Do you see check icons displayed in the menu for completed levels?

We had a save problem on a Galaxy Note I briefly tested it on. There the check icons would appear for each completed level in the menu, but progress would be reset when the game was restarted. It's possible that a blank save file was included in the .apk in that case (which was overwritten before we thought to check), so it's hard to say if it was a result of a bug in the save system.
Logged

surt
Level 7
**


Meat by-product.


View Profile
« Reply #12 on: September 17, 2013, 02:29:42 AM »

Progress saves fine on my Galaxy Note (with CyanogenMod 9).

The on-screen controls are iffy for me. I often end up taking two steps with one quick tap on a direction.

Touch controls could work with drag in one of the cardinal directions to step in that direction and tap the screen to push.
Logged

Real life would be so much better with permadeath.
PJ Gallery - OGA Gallery - CC0 Scraps
Libretro
TIGBaby
*


View Profile
« Reply #13 on: September 19, 2013, 12:38:57 AM »

Yes, we can upload it for you on Ouya. We might have to do some trivial changes here and there to get it certified for publication (such as removing the overlay).

But I suspect it won't be a big deal.
« Last Edit: September 19, 2013, 02:14:32 AM by Libretro » Logged
Kingel
Level 2
**



View Profile WWW
« Reply #14 on: September 19, 2013, 01:18:12 PM »

Progress saves fine on my Galaxy Note (with CyanogenMod 9).

The on-screen controls are iffy for me. I often end up taking two steps with one quick tap on a direction.

Touch controls could work with drag in one of the cardinal directions to step in that direction and tap the screen to push.

Ah, I see. The problem lies in handling of single steps and multiple steps. The idea was that walking far shouldn't require multiple taps, but we can experiment with it and try to make it less sensitive.

Drag for walking makes sense, and I imagine it could solve the problem with the step count. Something to keep in mind for the future, at least.

Yes, we can upload it for you on Ouya. We might have to do some trivial changes here and there to get it certified for publication (such as removing the overlay).

But I suspect it won't be a big deal.

That would be awesome! Beer!
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic