Join us on Discord!
You can help CodeWalrus stay online by donating here.

nKaruga, PC demake of Ikaruga (ported from TI-Nspire)

Started by matrefeytontias, September 15, 2015, 05:35:07 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Dudeman313

  • Calculators owned: TI-84 PCE
  • Consoles, mobile devices and vintage computers owned: Android O Phone
Does this qualify as a signature? 
The answer is "Sure."


matrefeytontias

Bump !

I finally, finally found an artist, and goddamn he's a good one. So just like that, development has resumed, and this time I'm working on the second boss ! Just look at this glory !



I'm having a hard time understanding what my code does. It's been nearly a year since I last worked on a boss ... bosses have an engine of their own, with complex math to handle jointed images and all that, so it's really hard to get back into it after so long. I have faith though !
  • Calculators owned: TI-83+.fr, TI-Nspire CAS prototype, TI-84+ CSE, TI-Nspire CX
My TI games (some got their own article on non-calc websites !) : http://www.ticalc.org/archives/files/authors/112/11202.html

My moozik (100% free metal) : http://www.soundcloud.com/matrefeytontias

Dream of Omnimaga

Awesome to see you found an artist. :D Nowadays, pixel artists seems very hard to come by on forums, so much that for calculator games, authors have to program with the mindset that nobody will ever help them making graphics. So I'm happy you were lucky enough to found one.

Anyway this looks very cool in-game and I'm glad the game is still progressing. For some reasons, though, it still seems to have the cropped digit fonts bug, though. Is that really a bug or was it intentional?
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

matrefeytontias

Well the way the font looks is intentional. Basically I have a monochrome font, and I procedurally generate an outline with the color passed as an argument. It's the isOutlinePixel function in n2DLib (you can read it on GitHub) ; I made it look that way intentionally.
  • Calculators owned: TI-83+.fr, TI-Nspire CAS prototype, TI-84+ CSE, TI-Nspire CX
My TI games (some got their own article on non-calc websites !) : http://www.ticalc.org/archives/files/authors/112/11202.html

My moozik (100% free metal) : http://www.soundcloud.com/matrefeytontias

Dream of Omnimaga

Aah ok. It seemed like the outline was cut off, hence why I was asking. I see now, though.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

matrefeytontias

Bumpity bump !

A very late update on this. I successfully finished my competitive exams, which took 4 months, from the start of April up to the end of July, so development has been slow or non-existent during that time. But now, I have a lot of progress going on, as you can see on the playable 0.2.3 build on GameJolt !

To sum it up :
  • Boss 2 is complete ! That means level 1 and 2 and boss 1 and 2 are fully playable, meaning that the full game is technically about 40% playable ! Although it's much more finished than that, since approximately 100% of the core mechanics are written, tested and working, and all that's left is art, level design and AI programming for the future enemies.
  • I moved from Visual C++ to GCC/g++, meaning ... portabilityyyyy ! The source code is platform independent and should compile effortlessly on any platform. Not tested, but heh, you know :P Also, a lot of dependencies issues should have been fixed by that, so the current Windows executable should run flawlessly on every recent-enough Windows version (up to and including XP I think).
  • I found a new artist after the last one stopped answering (due to 4 months of inactivity on my part, granted) ; he drew the two backgrounds for level 2, and I'm currently adding them to the game with the newly-written background scrolling system (which supports normal and parallax scrolling as well as scaling).
  • A much-demanded request, you can now use either WASD/ZQSD or the arrow keys to control your ship. The rest of the controls is still configurable.

    Try out the game and tell me what you think, as always !
  • Calculators owned: TI-83+.fr, TI-Nspire CAS prototype, TI-84+ CSE, TI-Nspire CX
My TI games (some got their own article on non-calc websites !) : http://www.ticalc.org/archives/files/authors/112/11202.html

My moozik (100% free metal) : http://www.soundcloud.com/matrefeytontias

Dream of Omnimaga

Awesome! I was wondering if it had any progress actually. I'll definitively give this a try because the last time I only reached Boss 1. It was very-well polished and I'm sure this version is even more.

I wonder if such game would be feasible in web format or if it would be way too slow? That would definitively be a nice addition to the CodeWalrus arcade section once finished. On a side note, backup often, including binaries, because of what happened to Yoyogames Sandbox. Given that such big sites tend to disappear after a while, we never know if Gamejolt is next.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Lionel Debroux

Portability is a good thing :)
Depending on the graphics layer you're using, it may even be coerced to run from within a modern Web browser, as asm.js + WebGL for now, or WebAssembly + WebGL in the relatively near future.
Member of the TI-Chess Team.
Co-maintainer of GCC4TI (GCC4TI online documentation), TIEmu and TILP.
Co-admin of TI-Planet.

Dream of Omnimaga

Hey @Lionel Debroux nice to see you again. I was worried that you had quit the TI community or something. As for a web port, my main concern is how slow it will run. Just look at how laggy Opossum Massage Simulator can get in the arcade section compared to its PC counterpart O.O (in my case it runs smoothly, but it maxes out my CPU)
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

Dream of Omnimaga

So I played through the first chapter again and the start of chapter 2 and I was curious about how we get past this part without getting hit once? O.O



Also a bug I noticed is that when the game window is in the background (as in, when I decide for example to use Firefox while the game is paused and I'm not focusing on its window), my computer CPU and fan get maxed out. When the game is running and I'm focusing on its window everything is fine.
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

gameblabla

@matrefeytontias
Could you please release your source code for your PC version, even if not finished ?
Or hell, put it on github.

I would like to port this game to the GCW0 but the only source code online is the old nspire version.
Or hell, even port it back to the TI-Nspire and the 3DS thanks to my wrapper library.
  • Calculators owned: None (used to own an Nspire and TI-89)

matrefeytontias

Hey,

I've been actually currently working hard to get this game to work on Linux. Now that it's done (I was done with that yesterday), I'll be able to release the source code. I've had a private GitHub repo for nKaruga for a week or so, so it's here now. Feel free to grab it : https://github.com/matrefeytontias/nKaruga

Also hey, kinda forgot to push the updates here. So nKaruga is now on version 0.2.5 ! I included new parallax background for all released levels, I programmed a super beautiful awesome (and c) transition for level 2 (check it out !)I finally made the necessary changes to my code to load OGG music files and drop WAVs, dropping the package size from 48 MB to 9 MB. I also released the listenable OST on the GameJolt page.

Version 0.2.6 should be the last version before 0.3.0, and will include a time-frames implementation. That is, frames will have a timestamp to them, so that time-dependent things like events related to the music will always be accurate regardless of the framerate. After that, 0.3.0 will be the first release to include (at least a part of) level 3. The artist I'm working with right now seems to be sticking around, which is good :P

So yeah, to sum it up, I'm working on making Linux builds right now. If anybody can build a Linux 64-bits version for me using that repo I just posted and send me the resulting release, that'd be appreciated. Next, I'll implement time-frames and then release 0.2.6, and then on to level 3.

Regarding your ports Gameblabla, feel free to fork the repo and include any other target you wish. My Makefile already offers make windows and make linux targets, so why not make nspire.
  • Calculators owned: TI-83+.fr, TI-Nspire CAS prototype, TI-84+ CSE, TI-Nspire CX
My TI games (some got their own article on non-calc websites !) : http://www.ticalc.org/archives/files/authors/112/11202.html

My moozik (100% free metal) : http://www.soundcloud.com/matrefeytontias

Dream of Omnimaga

Wow that transition is amazing O.O. Also will Windows still be suppirted in future update? :P
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U
Now active at https://discord.gg/cuZcfcF (CodeWalrus server)

gameblabla

Thanks matref !
I see you have a problem with scaling.
Simply replace this :
SDL_CreateWindowAndRenderer(320 * 2, 240 * 2, SDL_WINDOW_BORDERLESS, &sdlWindow, &sdlRenderer);
with this :
SDL_CreateWindowAndRenderer(320 * 2, 240 * 2, SDL_WINDOW_FULLSCREEN_DESKTOP, &sdlWindow, &sdlRenderer);
And SDL2 cleanly fills up the screen.

Now please drop your internal resolution to 320x240.
I'm asking you because it seems you hardcoded it rather than making it parametrable and i couldn't get 320x240 to work without it crashing on exit.

Also, i see you're still stuck with software rendering, even though it's far from optimal.
Dropping the resolution and removing your internal scaling will speed it up a bit but using textures might be better.
I will look at this, in the meantime, fix the scaling issue please.
  • Calculators owned: None (used to own an Nspire and TI-89)

matrefeytontias

@DJ : Thanks, I'm quite proud of it yeah :P

No, I'm dropping the Windows target, and then I'm gonna port it to 3DS and then drop the Linux target :D

@gameblabla : I'm not having any scaling issue, I don't want fullscreen at all, just a borderless window. And yes, I did hardcode 640x480 in it. If you want to make it work with 320x240, you'll have to modify updateScreen.

I'm not "stuck" with software rendering, that's a choice I'm making. I'll remind you that I started this project nearly from scratch (except for HW interfaces and sounds) in order to reinvent the wheel and get better at programming. I'm also doing a demake ; I'm willingly not using hardware acceleration. I know SDL2 provides that, but that's not the point of me making that game.
  • Calculators owned: TI-83+.fr, TI-Nspire CAS prototype, TI-84+ CSE, TI-Nspire CX
My TI games (some got their own article on non-calc websites !) : http://www.ticalc.org/archives/files/authors/112/11202.html

My moozik (100% free metal) : http://www.soundcloud.com/matrefeytontias

Powered by EzPortal