DaSpirit's avatar

DaSpirit

The Lonely Programmer
201 Watchers17 Deviations
28K
Pageviews

Alive Yet

3 min read
Just reminding everyone that I'm alive!

My previous journal mentioned that I wanted to take another stab at writing a Pokemon engine and I'm starting to! I've been working on a battle engine for a few months now and although it's been progressing slowly (due to me having a full time job, now), I have confidence that I can finish it. I have a solid base ready and I just need to iron it out before adding some of the more complicated moves. The goal is to have ~30 unique moves implemented by the end of December. By unique, I mean I will only implement moves that do not already share a common effect with a move I have already implemented. So far, I only have 3 moves implemented (with all the bells and whistles of a battle engine included), and I think December is a healthy and doable goal. I will release a tech demo of the battle engine in December, regardless whether or not I have reached my goal.

Also, the battle engine is programming-language-agnostic -- I guarantee that any language, engine or framework that lets you load libraries will be capable of integrating my battle engine. For those who are programmers, you may realize that this simply implies exposing a C API. And obviously, I will make this code open source so anyone can contribute to it or use it for their own purposes. I am implementing it in Rust which aims to be as fast as C++ yet designed in a way that memory leaks are not possible unless you explicitly use an "unsafe" keyword. I aim for this project to use 0 unsafe keywords so it will stable and never cause a crash.

Assuming everything goes smoothly, the plan is to have a battle engine that is easy to use, expand and integrate into Cinder & Foam by the time Cinder & Foam comes out of hiatus. I hope to share more details as it becomes available!

And yes, that means I'll be back working on Cinder & Foam! Some of you may remember me as the original programmer of Cinder & Foam back when I was working on Pokemon 3D Engine Test for it. Although the CF team agreed not to make a 3D game, I will happily be helping out with a nice new 2D overworld engine after the battle engine is feature complete. Great things will surely come in 2017!
Join the community to add your comment. Already a deviant? Log In

Still Alive!!!

2 min read
I've been a bit inactive recently. I decided to take courses during my winter break, so I've been in college full time since August. I'm probably going to continue to be inactive through the summer as I'm planning on getting a full time job. Finally, in the fall, I will be taking my final semester of college and then I'm done and the amount of free time I have will explode. Time flies so fast!

This is to remind people that I'm still alive. I am super stressed right now, as I'm in the middle of midterms week, but I will survive with a bit of effort.

I am really inspired to take another stab at writing a Pokemon engine. GameMaker really improved since I've last used it, and it actually allows me to switch paradigms and allows for hardware accelerated graphics (meaning fast, real 3D is now completely possible).

What is a paradigm, to the non-programmers? It's a way of doing something. Most languages are object oriented. This means, that for each object (say a Pokemon, the player, or a house), it has its own representation in memory. The issues was that GameMaker provides a limited subset of the object oriented paradigm. You can only make graphical objects (so, you cannot represent a Pokemon efficiently) and you are not allowed to make your own functions outside of the default ones (defaults ones include drawing, walking, etc).

This all mades it very difficult to make a Pokemon in memory. Fortunately, GameMaker now lets you use memory references. This lets you create a function, put the memory in the function, and since it's a reference, the function can change the memory. I made a proof-of-concept, and I've successfully emulated a non-graphical object (struct) in GameMaker. Maybe I finally can make and finish a Pokemon engine, but it won't be until I graduate (this December). I'm excited! :D
Join the community to add your comment. Already a deviant? Log In
Hello all! After many requests I've decided to upload the source to the 3D engine used in a few of my deviations. To open the project, you need GameMaker Studio. Since I started, the standard edition became free, so you can download it and run it right away.

With that said, I haven't worked on it in years. I've been tremendously busy with my course work. I still remember how many hacks I had to put in to make it work. To keep that 2.5D view, the player had to be rotated so that no matter what angle the camera is, the player would appear as if it was just a sprite on the screen (orthographically). Obviously, an orthographic projection wouldn't work otherwise the player would always be on top. But with the angled approach, the player would go inside models as he went beside them (the default angle would make his legs visible but his head inside the model). The solution I ended up taking was manually creating a z-buffer and recalculating it often every time the camera projection changed. It was nasty, but it worked well unless you were doing slow rotations, where it was apparent what I was doing as you'll see the depths changing (in fact, I believe the engine lets you rotate the camera with some keys, play around with it).

There are probably a lot of things I could do better next time, due to GM Studio updates (controlling the z-buffer with shaders would be something I'd like to see).

It is provided as-is (meaning that it may not work, it was created in GM Studio 1.2, but the current is 1.4). I opened it and saw that the audo_play_music is deprecated. Changing it to audio_play_sound will probably fix it. You may do whatever you want with the code, but you may not use the artworks or sounds. Download Enjoy!

Edit: I have fixed up all of the compile errors. Unfortunately, the 3D view is messed up. This must have been due to an update for GM Studio. I will not be fixing it up. Hopefully, some scripts are still salvageable.
Join the community to add your comment. Already a deviant? Log In

Twitter

1 min read
Just you guys know I have a twitter. Follow me and I might follow you back! twitter.com/TheSpiritXIII
Join the community to add your comment. Already a deviant? Log In
Most of you know that I program games using GameMaker Studio. It is by far the best application for rapid development, and the programming language is easy, intuitive, and will help get you off the ground for more advanced programming. If you do want to make games, GameMaker Studio Standard Edition is free for a limited time, and it's great for beginners: www.yoyogames.com/studio/downl… It allows you to upgrade as soon as you start it! Have fun!

Just spreading the word! :D
Join the community to add your comment. Already a deviant? Log In
Featured

Alive Yet by DaSpirit, journal

Still Alive!!! by DaSpirit, journal

Pokemon 3D Engine Source Code by DaSpirit, journal

Twitter by DaSpirit, journal

GameMaker Studio Standard Currently Free by DaSpirit, journal