Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs

PixelPaladin

103
Posts
9
Topics
62
Followers
39
Following
A member registered Oct 13, 2015 · View creator page →

Creator of

Recent community posts

Okay … I just realized that this song actually was not about cake … ^^°

Haha, lol 😃
What a funny idea! 🍰️🍰️🍰️

Sorry about that. It’s really not intuitive but it helped keeping the code size smaller.

Thank you!
A map is definitely helpful (I always had to draw one so that I don’t get lost in all that rooms ^^). It can also be a bit confusing that there are no circles – which means that going NORTH→EAST→SOUTH→WEST does not bring you back to the same room. It is more like the tunnels connecting the rooms are different in length (implementing it this way was the easiest way to get a procedurally generated dungeon that is different each time while keeping the code size small).

I hope that helps.

Could be some kind of bug since I remember removing one in the later version but I don’t know if it already existed in this early version. But it could also be that the structure of the dungeon is not that intuitive. The dungeon is different every time and the layout of the rooms is basically a tree structure, so there should be no circles … it’s more like the corridors connecting the rooms can be different in length. Going NORTH→EAST→SOUTH→WEST does not mean that you went in a circle.

 Not like this:       |  More like this:
                      |
 #######     #######  |  #######     #######
 #     #     #     #  |  #     #     #     #
 #  2> .......  3  #  |  #  2> .......  3  #
 #     #     #  v  #  |  #     #     #  v  #
 ###:###     ###:###  |  ###:###     ###:###
    :           :     |     :           : 
    :           :     |  ###:###        : 
    :           :     |  #  ^  #        : 
    :           :     |  #  1  #        : 
 ###:###     ###:###  |  #     #        : 
 #  ^  #     #     #  |  #######        : 
 #  1 5....... <4  #  |                 : 
 #     #     #     #  |  #######     ###:###
 #######     #######  |  #     #     #     #
                      |  #  5  ....... <4  #
                      |  #     #     #     #
                      |  #######     #######
If you have have problems finding your way through the dungeon you can try to always stay at the right or at the left wall. This also works in most normal labyrinths (but not in labyrinths with circles).
(1 edit)

Thanks! Like I wrote it would be possible to reduce the size of the code and make the card more readable. I made a simpler version at first with a bigger font size and even a qr code that linked to the page on itch.io. But I think the final version is a lot more fun.

Just in case you want to test it, this is the smaller earlier version:

<html><boby><textarea id="a" rows="24" cols="64" readonly>
</textarea><br><input id="i" type="number" ></body><script
type="text/x">$i=%E('i');$a=%E('a'); i.focus();$P=(t)=>{a.
value+=t+'\n'}; $C=()=>{a.value=''}; $S=(a)=>{ a.sort(()=>
Math.random()-0.5);->a};$L=(a)=>a.length;$T=(a)=>a[L(a)-1]
i.addEventListener('keyup',(e)=>{if(e.keyCode===13){e['p'+
'reventDefault']();SO(i.value-1);i.value='';UP()}});$io={}
$o=[];$RO=()=>{o=[]}; $or=[]; $on=['north','east','south',
'west'];$CR=(p,dn=0,e=0)=>{$r={d:S([0,1,2,3]),o:[],AO(op){
op.t=4;op.on=1;if(!r.o)r.o=[];if(op.id){io[op.id]=op}r.o<-
(op);->r},BK(){cr=p},dn:dn};if(p){$d=p.d.pop();r.d.splice(
r.d.indexOf((d+2)%4),1);p.o<-({t:d,on:1,f(){cr=r},});r.o<-
({t:(d+2)%4,on:1,f(){cr=p}});if(!L(p.d))or=or.filter((v,i,
a)=>v!=p)}if(!e)or<-(r); S(or);->r};$GR=()=>T(S(or));$HO=(
)=>{$l=[];$oi=1;if(cr){cr.o.sort((a,b)=>a.t-b.t);$s='';$d=
''; cr.o.forEach((o,i)=>{if((o.on==1)&&(!(cr.dn)||o.t>3)){
l<-(o);if('DE' in o)d=o.DE(); s+='\n  ['+oi+'] : '+(o.t<4?
'go '+on[o.t]:o.TS());oi++}});d=d?d:'The room is empty.';P
(d);P('\noptions:');P(s)}->l}; $SO=(i)=>{C();if(i<0||i>=L(
ol))->;ol[i].f()};$DM=(d)=>{lp-=d-_s;if(lp<=0){lp=0;cr=re}
};$re;$N=()=>{io={};mx=5;lp=mx;it=[]; _d=0;_k=0;_s=0;_w=0;
_g1=0;_o=0;re=CR(null,0,1~ON();~N'GAME OVER'~S'new game'}}
);$r1=CR(null,0,1);$r2=CR(null);(r1~Ocr=r2;~N'#Y dungeon'+
' entrance.'~S'enter'}});CR(r2~O_d=1;@on=0;it<-('dagger');
~N'#Y dagger.'~S'#tdagger'}});$r4=CR(r2,1~Oif(_k){_k--;@l=
0;cr.dn=0;@on=0}else{cr.BK()}~N'#Tlocked door.'~S_k?'ope'+
'n door':'go back'},dn:1,l:1}); CR(r2,1~O@eh-=_w?2:_d;if(@
eh)DM(1);if(!@eh){_g1=1;cr.dn=0;@on=0;io[1].on=0;io[2].on=
1; }~N'#Tgoblin (\u2665 '+@eh+'/3).'~S'attack'},eh:3}~Ocr.
BK();~S'flee'},id:1}~O_k++;@on=0;~N'The goblin#dkey.'~S''+
'#tkey'},id:2});io[2].on=0; CR(r4~Omx+=2;lp=mx;@on=0;~N''+
'#Y #P.'~S'drink#P'}});$r7=CR(T(or));CR(r7,1~O@eh-=_w?2:_d
if(@eh)DM(2);if(!@eh){_g1=1; cr.dn=0;@on=0;io[3].on=0;io[4
].on=1}~N'There is an orc (\u2665 '+@eh+'/4).'~S'attack'},
eh:4}~Ocr.BK(); ~S'flee'},id:3}~O_d=1;@on=0;it<-('sword');
~N'The orc#dsword.'~S'#tsword'},id:4});io[4].on=0;for($t=0
;t<2;t++){CR(T(or)~Omx+=2;lp=mx;@on=0;~N'#Y#P.'~S'drink#P'
}})} CR(T(or)~O_s=1; @on=0; it<-('shield'); ~N'#Y shield.'
~S'#tshield'}});CR(T(or),1~O@eh-=_w?2:_d;if(@eh)DM(3);if(!
@eh){_g1=1;cr.dn=1;@on=0;io[5].on=0;io[6].on=1}~N'#Tdrag'+
'on (\u2665 '+@eh+'/7).'~S'attack'},eh:7}~Ocr.BK();~S'fl'+
'ee'},id:5}~ON();~N'Congratulations! You killed the drag'+
'on!'~S'new game'},id:6});io[6].on=0;cr=r1}; N();$ol;$UP=(
)=>{P('\u2665 '+lp+'/'+mx);P('keys: '+_k); P('items: '+(L(
it)?it.join(', ') : '-')); P(''); ol=HO()}; UP();</script>
<script>var A=(t,s,r)=>{return t.split(s).join(r)},K={'%E'
:'document.getElementById','$':'var ','->':'return ','%?':
'.includes', '@':'this.','\r':'','#P' : ' healing potion',
'#Y':'You see a','#T':'There is a ','#t':'take ','~O':')'+
'.AO({f(){','~S':'},TS(){return ','~N' : '},DE(){return ',
'#d':' dropped a ','<-':'.push'},R=(x)=>{for(var k in K)x=
A(x,k,K[k]);eval(x)},C=document.querySelectorAll('script'+
'[type="text/x"]'); for( var i=0; i<C.length; i++ )R(C[i].
innerHTML);/* * *     HAVE FUN!     * * */</script></html>

(EDIT: The code didn’t fit in properly – so I did some formatting …)

Thx! I hope you didn't rip up your version of the card =^_^=

Thank you! It was the first thing that came to my mind when I saw the jam. But – to be honest – I don’t think that this was the original idea behind the rule ‘Your game should fit onto a business card ...’ :)

Thank you! 😄️

🤔 Hmm … so … do you think it is against the rules?

😺

Well, I don’t have time to make YouTube videos right now. However there already are a lot of good tutorials out there.

First of all – all the tools and assets used to create this game are completely free.

For the graphics I used KolourPaint, which is a bit like the old msPaint from Windows XP (but for Linux and with support for alpha channels). But I would not recommend this tool anymore since in newer versions there are a lot of bugs – so I switched over to Aseprite (which is awesome).

https://www.aseprite.org/

Aseprite costs 15$ but you can also download it from GitHub for free and built it from source (not sure if you can use it for commercial projects that way).

https://github.com/aseprite/aseprite

If you need good tutorials on Aseprite or pixel art in general, this guy has a lot of useful videos:

https://www.youtube.com/user/atMNRArt

There are countless tutorials on the web.

Retro style sounds effects can easily be made using something like sfxr (I think I used bfxr for this game which is essentially the same).

https://stammel.net/projekte/sfxr/

Music is always my biggest problem. But there are a lot of free assets online that can even be used commercially (when using free assets you should always be very careful about the license). One of the best places to find free game assets (not only music) is opengameart.org.

https://opengameart.org/

Programming was done in a language called MonkeyX2. But I also code a lot in CerberusX (which is a fork of the predecessor if Monkey2). Both are completely free* and can be used for commercial games. The communities are very small for both of them but the people there are extremely friendly and will help you if you run into any problems.

https://www.cerberus-x.com/

http://monkeycoder.co.nz/

I hope that helps at least a little bit.


* please support the developers if you like these tools.

Ha - I defeated the lich lord! That was a lot of fun :)

Sorry, I checked this again – the (windows) application is 32 bit, not 64 bit. So it should theoretically run on your system. But I don’t know why it doesn’t run on your PC. I will let you know as soon as I have a solution or an idea that could help you.

There could be different reasons for this kind of problem.

First of all: did you unzip the game? (It will not run from within the zip archive.)

Do you use a 32 or a 64-bit system? This game is a 64-bit application and will not run on a 32-bit system.

If this is not the case then the reason could be a missing library. Maybe it is a graphics issue (despite the fact that this is a pixel art game, it makes use of some more advanced graphics functionality).
If you are a more experienced user you could try to start the game from command line:

  1. press Win + R
  2. type "cmd.exe" and hit enter to open the command line
  3. navigate to the folder where you unzipped the game (something like "cd C:\path\to\the\game\")
  4. type "TinyPixelWars_Windows.exe" and hit enter to start the game

If the command line spits out some error message then please let me know.

I will also see if I can find something that might cause this problem.

Hello! Do you get any error message(s)? Which operating system do you use?

Thank you :)

Sure, I will.

By the way, I won the competition :)

Thank you! Yes there is a lot to improve: lots of small bugs and glitches – and the ai really needs some fixes. At the moment I don't have much time but the game will definitely get some updates and maybe some new features – eventually there will come a campaign, too.

Okay, I fixed the bug, and uploaded a version that missed a file. If it didn't work, it is not your fault. I have uploaded It a second time – this time with all needed files – hope it works now ;)

I found a bug with the game Window – the fixed Version is on-line. I hope this solves your resolution problem.

Hey thanks for playing!

Btw, if you want units to attach enemies on their way, send them with the »attack« command (press [A] or click the crosshair button in the bottom left corner before sending them). Saves you a lot of time and trouble ;)

@Postmodestie: I have sent you an email (schro…@live.de).

Thank you! Overheating was part of some games that I played as a child and somehow I really like this concept ;)

Thx! New formations can be added easily and the balancing will also be adjusted no time – however I will do this after the voting.

This was exactly what I thought, but I was not sure whether this effect was intended or not, since it fits the idea of playing a monk in the game ;)

Thank you! After the voting I will fix some minor issues (balancing …) and eventually add some new enemies and behaviors so that there is a little bit more variety.

The bullets should be a lot faster in my opinion. This would make hitting enemies much less random.

The minimalist graphics style is super cool ^^

Tank you so much!

Well, this is a nice concept. These drawings look super cool, too.

Buy the wrong stuff and you are dead – it's »buy or die«!

Overall a fun game – simple concept but still quite challenging.

This is an interesting game. I really like it.

At first I was so focused on stirring, that I didn't hear the bell ^^

These drawings are really cool!

This3D model looks pretty good – especially the display. There are even shadows under the lcd tiles...

I solved it, but I have no idea how ^^