Games!
By Name
By Date Added
By Last Update
By Rating
By Type
[Advanced Search]
The Linux Game Tome
 
Register
Login
News Submit a Game Forums About/FAQ

Nikwi Deluxe

Version: 1.0
Author: Kostas Published by Slashstone
Category: Abandoned Rate this game yourself!   Average of 3 Ratings:4.324.324.324.32

Nikwi Deluxe Screenshot A platform game where you control a boy and your goal is to collect all candies.

In Nikwi game you play the role of a 9 year old boy in his absolute dream: a world made of sweets! Guide Nikwi through his dream to eat everything in each of the 30 levels, while you avoid the monsters who try to turn Nikwi's dream into a nightmare.

Nikwi features hours of gameplay in 30 sweet-themed levels made of five candy themes, more than 10 different monsters and obstacles -each one with it's own unique behaviour- and new gameplay elements in every theme.

License: free

Additional System Requirements: SDL

Sound: Play in X: Play in Console: Multiplayer: Network Play: 3D Acceleration: Source Available:
yes yes no no no no yes


If you try this software, don't forget to come back to this page and rate it!

Submitted by Bad Sector on 2006-08-24.


[ Submit an update about this game ]


[Post a new comment]
Comments

  excellent posted by lopzided @ 68.184.133.6 on Sep 14 2006 7:29 PM 55555
this game rocks my junk tbh
 
[Reply]

  Small update posted by Anonymous @ 89.210.251.27 on Aug 28 2006 3:07 AM  
Hi all, i'm the creator of Nikwi Deluxe.

To solve some problems:

1. Sorry for not adding SlashFX alone somewhere. You can get it now from http://www.slashstone.com/more/slashfx/ (it's the .tar file).

2. bmake is my own make wrapper. The only reason i made it is because i don't like the Makefile syntax. It's to be used mostly by me (as said in the site :-)). This is why i give binaries for Linux too.

3. Nikwi Deluxe was compiled using GCC 3.4, the version that comes with Debian Sarge. So it requires libstdc++6 (or whatever is called).

4. badcfg can be downloaded from http://www.slashstone.com/more/libbadcfg. Sorry for this too, i don't have internet connection at my home, so i wasn't sure if it was "badcfg" or "libbadcfg" :-(.

5. You *can* use fullscreen mode by running the game as "nikwi --fullscreen". Sorry for leaving that out from the manual.


I will do an update soon and i will fix these issues. The current release was a quick one, so problems were expected. Thank you for your replies, i really loved them :-).

PS. Nikwi Deluxe *is* a Linux game :-P. Actually i developed the game under Linux and _later_ i ported it to Windows (well, as hard as porting a SDL game would be... :-P).

Kostas "Bad Sector" Michalopoulos
 
[Reply]
  Re: Small update posted by frostwork @ 84.170.53.31 on Aug 28 2006 3:26 AM  
Hi, Kostas! Thanks a lot for explanation & the working links! :D cheers, Marcel "Frostwork" Unbehaun
 
[Reply]
  Re: Small update posted by frostwork @ 84.170.6.239 on Aug 28 2006 3:51 AM  
Argh! my ppc-machine (with gcc-4.1.1) doesn't like the (x86)-asm lines in nikwideluxe/src/main.cpp & in slashtdp/demo/main.cpp :( . I also had to comment out in nikwideluxe/src/gfx.cpp line 40 & 87 (?). Maybe an empty "lib" dir in the dependencies would make sense, as else the bmake-files can't create their libs... The built ppc-bin with commented-out asm from above lead (surprise :D ) to a black screen... friendly, frostwork
 
[Reply]
  Re: Small update posted by Anonymous @ 89.210.251.27 on Aug 28 2006 4:08 AM  
The problem is that i don't have a big endian machine to test it :-(.

The lines below line 40 set up the SDL 16bit format (which Nikwi uses). I'm not sure what they are in big endian (a quick guess is that they would be the reverse of the lines below :-P).

The lines below line 88 are very important since they decode the width and height of a graphics tile. The lines below *may* work:
	width = *((unsigned short*)(data + 4));
	height = *((unsigned short*)(data + 6));
        width = ((width >> 8)&0xFF)|((width&0xFF)<<8);
        height = ((width >> 8)&0xFF)|((height&0xFF)<<8);
(in other words: i'm using the same data, i just swap the bytes).

The rdtsc() function was used for debugging/optimization purposes. You can modify it to return zero instead.

Please try and tell me if that works :-)

Kostas "Bad Sector" Michalopoulos
 
[Reply]
  Re: Small update posted by frostwork @ 84.170.53.44 on Aug 28 2006 4:18 AM  
Hi again! Thanks for being interested in having it ppc-compatible :) The problem seems to be even harder than I thought: just rebooted the system & started nikwi again. My whole kernel crashes... Will give the clean sources a new try :) >The lines below line 40 set up the SDL 16bit format (which Nikwi uses). I'm not sure what they are in big endian (a quick guess is that they would be the reverse of the lines below :-P). I'm no programmer, but your guess is probably right (its this byteordering thing, isn't it? ;) ) But I meant exactly line 40 & 87 - i.e. gcc doesn't like #error makeit & #error redo ! >The rdtsc() function was used for debugging/optimization purposes. You can modify it to return zero instead. sound good! ;) cheers, frostwork
 
[Reply]
  Re: Small update posted by Anonymous @ 89.210.251.27 on Aug 28 2006 4:40 AM  
The #error directive makes GCC to produce errors (thus the name). They're here to make the game NOT compile because i didn't knew how to implement the big-endian stuff myself (lacking a Big Endian machine).
 
[Reply]
  Re: Small update posted by frostwork @ 84.170.75.2 on Aug 28 2006 4:47 AM  
Hi! OK, but it doesn't make it easier for people to test if it works on ppc :). Maybe some "WARNINGS" would be better to let gcc continue... Just built again. The kernel crash is gone - no idea where it came from (maybe as I used the data-pack which came bundeled with the linux-x86-version?). The game crashes with following valgrind-output: ..... snip..... ==7720== by 0xFF00130: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.0) ==7720== by 0x100033D4: initGfx(char*) (gfx.cpp:178) ==7720== by 0x10002CE4: main (main.cpp:235) ==7720== ==7720== Invalid write of size 1 ==7720== at 0xFFBDCF8: memcpy (mc_replace_strmem.c:405) ==7720== by 0x1001FF08: readBuffer (in /usr/src/sources/Aug/8/srcdistO/nikwideluxe/nikwi) ==7720== by 0x1001FFDC: readEnvelope (in /usr/src/sources/Aug/8/srcdistO/nikwideluxe/nikwi) ==7720== by 0x100201DC: ssfxLoadEffectFromMemory (in /usr/src/sources/Aug/8/srcdistO/nikwideluxe/nikwi) ==7720== by 0x100132A0: initSound() (sound.cpp:109) ==7720== by 0x10002D30: main (main.cpp:252) ==7720== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==7720== .....snip.... I hope this can be of some help! friendly, frostwork ps: Sorry for general lame question, but how to I jump to a next line in this forum? (shame on me ;) )
 
[Reply]
  Re: Small update posted by frostwork @ 84.170.56.40 on Aug 28 2006 5:00 AM  
Me, again! gfx seem to load correctly! I removed all if SDL_BIGENDIAN lines and included SD_endian.h & SDL_byteorder.h (no idea if it had any effect). then I commented out line 252 in main.cpp (for testing) & the title-screen loads... Of course when starting the game it crashes... I'll give the sound a deeper look later this day & report any results... cheers frostwork
 
[Reply]
  Re: Small update posted by Anonymous @ 89.210.251.27 on Aug 28 2006 7:07 AM  
Now that i think about it... by regenerating the graphics files, you shouldn't have problems with the endianess.

But the world files are still a problem. To -possibly- solve it, modify line 105 of world.cpp to:
newWorld(SDL_SwapLE32(*((uint*)&data[0])), SDL_SwapLE32(*((uint*)&data[4])));

and add after the bracket in line 110, before if (*tileCode) the following:
*tileCode = SDL_SwapLE32(*tileCode);


Note that i haven't used SDL_SwapLE32 before. I've just looked it up on the net some seconds ago, but it seems to be the right thing :-).
For linebreaks, use HTML code: <br>.
 
[Reply]
  Re: Small update posted by frostwork @ 84.170.73.239 on Aug 28 2006 10:10 AM  
Hi!
Thanks for the hint with the linebreaks :)
I applied your "diffs" above: The game still crashes :
With " initSound();" commented out in main 252.cpp - valgrind gives following debug-output:

----snip....
==23998== by 0xFF00130: SDL_Init (in /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0x100033D0: initGfx(char*) (gfx.cpp:171)
==23998== by 0x10002CE4: main (main.cpp:235)
==23998==
==23998== Invalid read of size 8
==23998== at 0xFF36A38: (within /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0xFF1DF9C: (within /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0xFF4F4A0: SDL_LowerBlit (in /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0xFF54104: SDL_Flip (in /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0x100117D4: Transition::updateScreen() (transitions.cpp:85)
==23998== by 0x10011980: DoubleLinesTransition::play() (transitions.cpp:222)
==23998== by 0x100108AC: ImageScreen::showImage(Screen*, char*, int) (imageScreen.cpp:57)
==23998== by 0x10002FA4: main (main.cpp:284)
==23998== Address 0x425A020 is 8 bytes before a block of size 614,400 alloc'd
==23998== at 0xFFBBAA8: malloc (vg_replace_malloc.c:149)
==23998== by 0xFF4E6F8: SDL_CreateRGBSurface (in /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0xFF520FC: (within /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0xFF53548: SDL_SetVideoMode (in /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0x10003424: initGfx(char*) (gfx.cpp:173)
==23998== by 0x10002CE4: main (main.cpp:235)
==23998==
==23998== Invalid read of size 8
==23998== at 0xFF36AA4: (within /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0xFF1DF9C: (within /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0xFF4F4A0: SDL_LowerBlit (in /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0xFF54104: SDL_Flip (in /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0x100117D4: Transition::updateScreen() (transitions.cpp:85)
==23998== by 0x10011980: DoubleLinesTransition::play() (transitions.cpp:222)
==23998== by 0x100108AC: ImageScreen::showImage(Screen*, char*, int) (imageScreen.cpp:57)
==23998== by 0x10002FA4: main (main.cpp:284)
==23998== Address 0x42F0028 is 0 bytes after a block of size 614,400 alloc'd
==23998== at 0xFFBBAA8: malloc (vg_replace_malloc.c:149)
==23998== by 0xFF4E6F8: SDL_CreateRGBSurface (in /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0xFF520FC: (within /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0xFF53548: SDL_SetVideoMode (in /usr/lib/libSDL-1.2.so.0.11.0)
==23998== by 0x10003424: initGfx(char*) (gfx.cpp:173)
==23998== by 0x10002CE4: main (main.cpp:235)
==23998==
==23998== Invalid read of size 4
==23998== at 0x1000B948: Object::Object(unsigned) (objects.cpp:431)
==23998== by 0x10007438: World::createObject(unsigned, int, int) (world.cpp:205)
==23998== by 0x10007F2C: World::loadWorld(char*) (world.cpp:131)
==23998== by 0x1000E4FC: Game::restartLevel() (game.cpp:130)
==23998== by 0x1000F010: Game::newGame(char*) (game.cpp:115)
==23998== by 0x1000FB2C: MenuScreen::handleEvent(SDL_Event&) (menu.cpp:227)
==23998== by 0x10002AB8: mainLoop() (main.cpp:211)
==23998== by 0x10002FA8: main (main.cpp:286)
==23998== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==23998==

If you like we could continue this per MP, to not fill this forum too much with debug-outputs ?:)
friendly, frostwork
 
[Reply]
  Re: Small update posted by Anonymous @ 62.254.128.7 on Aug 31 2006 2:18 PM  
Heh, bad sector, haven't seen that name in a very long time, really nice game, good simple fun. Good to see you've moved on from allegro ;)
 
[Reply]

  Keys don't work alright? posted by MaxPain @ 84.230.128.109 on Aug 26 2006 5:07 AM  
I'm having trouble with the keys, they seem unresponsive. There is a slight delay before anything happens when you press a key, and the left key is almost useless - the only way to move left is to keep pushing the button fast. Anyone else having issues? I'm on Dapper..
 
[Reply]
  Re: Keys don't work alright? posted by tinan @ 82.36.79.74 on Aug 26 2006 5:31 PM 4444
Not here. I would imagine, although I'm no expert, that input is regulated through X, perhaps an exotic entry in your Xorg.conf regarding keyboard input might be a cause? It's a long shot, but it's the only thing I can think of (the game works for me fine).
 
[Reply]

  Nikwi Deluxe posted by Anonymous @ 84.170.41.1 on Aug 26 2006 3:05 AM  
I'd like to build this nice looking game on my ppc gentoo. Unfortunately I can't find the sources for Slashstone SoundFX... Any hints? friendly, frostwork
 
[Reply]
  Re: Nikwi Deluxe posted by tinan @ 82.36.79.74 on Aug 26 2006 5:39 PM 4444
From the build.txt in the top of the srcdist directory (a bizarre thing to unpack sources and then find a srcdist instead of nikwi-src or whatever directory, but hey),

In order to build Nikwi you will need:
1. bmake - get it from http://www.slashstone.com/more/bmake
2. libbadcfg - get it from http://www.slashstone.com/more/badcfg
3. libslashfx - this is included with Slashstone SoundFX Builder. Get it from http://www.slashstone.com/

That last one is the important link for you, my friend. Although I dare not try building this myself, and so haven't tested it, I would start off there.
 
[Reply]
  Re: Nikwi Deluxe posted by frostwork @ 84.170.21.107 on Aug 27 2006 12:32 AM  
Of course I have read the build.txt. In fact either the text or the www.slashstone.com should be updated, as only the bmake link works. I found the libbadcfg link via google: http://www.slashstone.com/more/libbadcfg/ ! Only download reated to Slashstone SoundFX Builder http://www.slashstone.com/ is the windoze-exe here: http://www.slashstone.com/prod.php?id=7 . So again - where can i find the soundfx-sources? friendly, frostwork
 
[Reply]

  bmake??!! posted by Joshua @ 203.129.33.126 on Aug 25 2006 10:23 PM  
what the hec is "bmake"?
 
[Reply]
  Re: bmake??!! posted by tinan @ 82.36.79.74 on Aug 26 2006 5:40 PM 4444
It's like make, but b-roken ;)
 
[Reply]

  Professional quality retro platformer posted by tinan @ 82.36.79.74 on Aug 25 2006 4:17 PM 4444
This is definitely a well-produced number. Alright, it's a run-of-the-mill old skool platformer type, but the cutesy graphics are well drawn, the controls smooth, the sounds good (although lacking in-game music) and the overall standard of gameplay is perfectly acceptable.
Nostalgia creeps in, even when you read the scenario of the game, and this is confirmed by the game setup; the player has to jump around platforms on a screen until all the candy is picked up, avoiding anything that moves (or face starting again from scratch), and some things that don't (e.g. lava pits), and then picking up an über-candy to move on to the next screen. One nice thing on a thematic level is that it appears (I thought, anyway) that parts of the landscape shaped like apples and other healthy foods actually act as obstacles given their uneven shapes - a nice touch. Every so often a password appears allowing you to pick up from where you left off - there is no save/load function, which is again straight from the days of the 8-bit machines. The game correctly promises hours of play, and I shall explain why.
Don't be fooled by the cutesy graphics or the relative languor of the first couple of levels, this game is tough, at least by modern standards. There are a lot of objects to collect on each level, accompanied by a fair dose of enemies each having its own patterns of movement and attack which need to be learned. This especially since on later levels it helps to exploit those patterns to move the enemy into a position you can negotiate around. In addition to this, the maps quickly become devilishly difficult, with some having points of no return which require a restart should you fall into one. Dying becomes a regular affair, but have no fear, as their is no "lives" counter to be concerned about, one simply restarts the screen from scratch having fallen to one's death/been shot/crashed into a fish.
That last becomes a point of contention; it's nice to never be returned to the start screen, but since often the last jump is the hardest, one finds oneself having to redo a whole level again; which gets kind of frustrating. This especially since the password system, whereby passwords are not given after every screen but after every so many screens, makes the game follow into the "sadistic" category of addictiveness - fearing having to do the prior x number of screens again, the player wildly tries to complete the present one just to get the password. Hmph.
On the other hand, the game does reward persistence in the form of new cutesy sweety graphics, new and ever more outlandish enemies to jump over, around or more often than not into, and of course increasingly difficult maps. The game quickly moves from straight out action platformer to strategic puzzler as the player needs to consider his route quite carefully to ensure survival through the map, and one gets a real sense of satisfaction from completing a screen once thought beyond the norms of human capacity.
Of course, that is slightly marred by the fact that pausing the game causes the game screen to change into the title screen, so one cannot sit back and consider - again, this falls for me into the "sadistic" category. Other gripes are the lack of a fullscreen option - certain enemy attacks are no more than a few pixels large and until I changed my X windows resolution I was stumped as to why I was dying all the time. There remain a couple of little bugs in the AI, sometimes enemies get "stuck" on map features and as a result ruin any chances of completing the screen. It's a bit of a jibe at a game which is aimed at kids maybe more than adults, and it is another retro feature, but the messages are outright patronising. I can only read "Oops" (i.e., you're an idiot!) so many times before turning off, and I had collected several lollies before even realising that the game helpfully tells you to go and get them - right out of Microsoft's book on unhelpful help messages. Finally, whilst this game offers a lot, certain features, like... ummm... a scoring system, are absent. No chance to boast about your highscore on this one, it's all about completing the screen and getting that little closer to finishing it.
And I wonder whether, once finishing it, anyone will ever come back for more. This game, although great in its own right, and supplied in easy-to-play binary form (try compiling at your own risk from the available sources, they require a couple of more exotic libraries and binaries), offers nothing other than a well-produced retro platformer. If you are into that kind of game, get this now, you will definitely love it. For everyone else, this is still well-worth picking up. It provides at least a couple of hours of gameplay, even if it is eventually abandoned, and I suspect that it will be returned to every once in a while... just don't lose your passwords.
 
[Reply]
  Re: Professional quality retro platforme posted by dowoshek @ 78.8.18.177 on Aug 27 2010 1:24 PM 55555
Nothing to add to tinan's comment. But 5 stars from me relatively to an average Linux platform game...
 
[Reply]

  Sorry false alarm posted by Anonymous @ 88.247.5.132 on Aug 25 2006 3:53 PM  
It seems the "System Requirements" part of Nikwi Deluxe was not updated. It says it requires Windows but you can download the Linux binary and sources.
 
[Reply]
  Re: Sorry false alarm posted by Anonymous @ 80.1.224.5 on Aug 26 2006 12:40 AM  
indeed. And the dependencies are "weird" to say the least.
Mine wouldn't work cos it wanted a libstdc++ version I don't have, so I tried the source. Lots of stuff I'd never heard of required. The most odd being bmake.

What's wrong with standard make?
The standard everyone's been using for over a decade?
bmake can't add anything can it, it's just a make. a means of controlling what needs to be compiled when changes are detected.

As for the other stuff... errr, ok, never heard of them either.
If it uses SDL, what's the rest for? SDL does all the media stuff most games require.
 
[Reply]

  windows game? posted by Anonymous @ 88.247.5.132 on Aug 25 2006 3:50 PM  
It seems Windows 2000/XP is required for this game. What the heck is it doing in happypenguin.org?
 
[Reply]
  Re: windows game? posted by Anonymous @ 217.155.41.100 on Aug 31 2006 6:33 PM  
Try again look at http://www.slashstone.com/more/nikwi/download.html "If you are using Linux in a x86 system, download this file (approx 873KB). You'll also need bzip2 to uncompress the archive and SDL to run the game (most distros include both)."
 
[Reply]

News Submit a Game Forums About/FAQ

Copyright © 1999-2005 Bob Zimbinski. Feedback to staff@happypenguin.org.