Suggest a game to do next (a.k.a. Game idea Survivor island, ep. 1)?

Prosecutor:

This case… that woman…

I CAN’T DO IT, GNAAAK!

tenor

Counsel Mai:

WHAT

in god’s name is wrong with this case? Or Miss Template?

Why can’t you prosecute as usual?

mia

That’s the problem

They’re all perfect.

Too perfect.

The game is solid.

The idea is perfect.

The templates look yummy.

There is no case against CASTLEBOY!

And yet… something bothers me about this.

phoenix-zoom(a)

Can the audience help?

Should we just drop the case and do CASTLEBOY?

Is this the end of our trials?

Tune back to find out tomorrow, same bat-channel, same bat-time

4 Likes

There are a lot of positive things to say about Castleboy, but one downside is that it is quite similar to Abbaye. It would be good to have wide variety of genres.

4 Likes

A few extra tasty ones…

A type-safe min function:

namespace std
{
	template< typename Type > 
	const Type & min(const Type & left, const Type & right)
	{
		return (right < left) ? right : left;
	}
}

How to use template specialisation to determine if a type has a const modifier:

namespace std
{
	template< typename Type >
	struct is_const
		: false_type {};

	template< typename Type >
	struct is_const<Type const>
		: true_type {};
}
And a bonus one to give you nightmares

namespace std
{
template< typename … Types >
struct common_type {};

template< typename Type >
struct common_type<Type>
{
	using type = typename decay<Type>::type;
};

namespace detail
{
	// A ternary expression is only valid if both types have an implicit common type
	template< typename FirstType, typename SecondType >
	using common_type_valid_ternary_t = decltype(false ? declval<FirstType>() : declval<SecondType>());

	// Base case, no type
	template< typename FirstType, typename SecondType, class = void >
	struct common_type_binary_helper_base {};

	// When the two types are valid in a ternary expression (i.e. have an implicit common type)
	template< typename FirstType, typename SecondType >
	struct common_type_binary_helper_base<FirstType, SecondType, void_t<common_type_valid_ternary_t<FirstType, SecondType>>>
	{
		using type = typename decay<common_type_valid_ternary_t<FirstType, SecondType>>::type;
	};

	// Base case, decay the types
	template< typename FirstType, typename SecondType, typename DecayedFirstType = typename decay<FirstType>::type, typename DecayedSecondType = typename decay<SecondType>::type >
	struct common_type_binary_helper :
		common_type<DecayedFirstType, DecayedSecondType> {};

	// When the types are already decayed, defer to base
	template< typename FirstType, typename SecondType >
	struct common_type_binary_helper<FirstType, SecondType, FirstType, SecondType> :
		common_type_binary_helper_base<FirstType, SecondType> {};
}

template< typename FirstType, typename SecondType >
struct common_type<FirstType, SecondType>
	: detail::common_type_binary_helper<FirstType, SecondType> {};

namespace detail
{
	template< typename VoidT, typename FirstType, typename SecondType, typename ... Types >
	struct common_type_variadic_helper {};

	template< typename FirstType, typename SecondType, typename ... Types >
	struct common_type_variadic_helper<void_t<typename common_type<FirstType, SecondType>::type>, FirstType, SecondType, Types...>
		: common_type<typename common_type<FirstType, SecondType>::type, Types...> {};
}

template< typename FirstType, typename SecondType, typename ... Types >
struct common_type<FirstType, SecondType, Types...>
	: detail::common_type_variadic_helper<void, FirstType, SecondType, Types...> {};

template< typename Type >
using common_type_t = typename common_type<Type>::type;

}

Rebuttal #1:
We already have permission to make this port.

Rebuttal #2:
At one point the game was mostly working:

Rebuttal #3:
Me and my skeleton army! (No, not that one.)


Except… there’s currently only 10 skeletons in my army, so I’m going to have to recruit some more:

(In hindsight that should say ‘Pharap’ rather than ‘Skeletons’,
but I can’t be bothered to fix it. Artificial aging is tiring.)

2 Likes

CASE #4 VERDICT: EMERGENCY BAT-TURN POLL

FriendlyCriminalAustralianfreshwatercrocodile-small

  • Let’s stop wasting time and just do the damn Castleboy. It’ll be over and done with before you notice, just like at the dentist.
  • No let’s continue thinking about options, srsly.

0 voters

This poll closes tomorrow at 10pm GMT+2 or at 9 votes, whichever comes first.

2 Likes

@Pharap , what’s the current status on the Arduboy lib port?

For Castleboy, I think, instead just porting and coloring it, we could improve it and make it even better.

3 Likes

Excuse my lack of imagination but how do you improve a game like that?

Well if we have to complete a platformer game, why don’t we try to help @trelemar and complete his Doon project instead? At least it’s an original title.

3 Likes

I would much sooner help with the Doon project. I was so excited when I saw it but sad when it got put on hold :frowning:

1 Like

I would prefer opening and reviving Doon as well.

2 Likes

Maybe we must stage a revival!! Doon The Revival!

1 Like
  • Full input
  • Full rendering
  • Full eeprom
  • Most screen functions (there’s ~4 I haven’t hooked up yet)
  • No LED functionality
  • No cookie eeprom
  • No sound

Like I said, at the time I was doing it I sort of stopped because I didn’t think many people were that enthusiastic about it.


Also I ideally want to split the library into three separate libraries - avr-libc, Arduino and Arduboy2, but to do that I’d have to have separate repos and specify the repos in the library files,
and after I’ve done that I’ve been wondering:

  • Should I retain all three libraries on my GitHub account?
  • Should they be passed to the Pokitto account?
  • Should we establish a “Pokitto Libraries” GitHub organisation so that people who want to contribute semi-official/official Pokitto libraries can pass them to that organisation and be accepted as part of the organisation?
3 Likes

By the way @Pharap , I’m not disrespecting the Castleboy. I took some time to learn about it and it is perhaps the best demake on Arduboy. Real quality stuff.

1 Like

In all honesty I’ve never played it, I’ve just seen bits of it.
The main reason I’m doing this is because the original attempt happened a while back and I think it would be a shame if it went unported after all the discussion around it.

I decided to see whether I’d be able to get it working with the Arduboy2 library in its current state.
The bad news is it was using arglib instead of Arduboy2.
(Arglib predates Arduboy2 and was a similar attempt to upgrade the original Arduboy library.)
The good news is that after stripping out all the sound and replacing the Arduboy class from arglib I got the code to compile and run.
The other bad news is that it gets stuck after the start menu.

CastleBoy.bin (60.9 KB)

(But the help and SFX options work at least.)

A similar thing happened when I tried to compile SpaceCab, so it’s probably the same bug.
I’ll try to pinpoint it tommorrow if there’s still some enthusiasm for the Arduboy2 lib port, but for CastleBoy I was hoping we’d do a colour remake at least, with maybe some scaled up graphics.
A straight port would be a bit underwhelming.

1 Like

Every way we can. Better graphics, better audio, more levels, more enemies. E.g.

  • Several parallax scrolling layers for the background and the foreground
  • Different weapons
  • Hit/dying effects

Lets make Castleboy 2, not just a port.

Edit: I have not played Castleboy but I have seen some Castlevania videos lately.

2 Likes

I’ve figured out where the bug is.
It’s in Sprites, but not in SpritesB, which means it’s probably my fault.
(Unless it’s another case of 16-bit int vs 32-bit int.)

The number rendering is still broken for some reason.
(Probably 16-bit int vs 32-bit int - this is why I like to stress to people “don’t assume the size of int, make sure your code works for 16-bit, 32-bit and 64-bit”, else use fixed width types - and be aware of integer promotion.)

Anyway, for those interested:

CastleBoy.bin (60.6 KB)

Oh, and remember the A and B of the Pokitto are opposite to the Arduboy’s ordering.
(I’ll fix that another day. The fix is simple, the bookkeeping is not.)


I was aiming for just a colour port with larger graphics.

I think if we’re going to eventually be adding features,
then we should ask jlauener/dir3kt if they want to get involved.

I know I’d be annoyed if someone made an enhanced edition of one of my games without asking if I wanted to get involved - I’d feel like I’d missed out on the fun.

But before we even get to that stage we should get the initial improvements sorted:
basic functionality, colour, larger graphics.

5 Likes

“You have to win the game” looks awesome, I love platformers!!