Samphi cover
Samphi screenshot
Genre: Role-playing (RPG), Indie

Samphi

Early Access Update #52 – Samphi, unfortunately, is being put on the shelf

Throughout the development of Samphi I’ve always strove to be as open as possible, so I’ll be straight forward here: I no longer have enough time to continue working on the game.

Between a new career and new apartment (living alone for the first time) I simply don’t have enough free time to work on Samphi regularly anymore. In the last two months, I’ve re-written the tile system to use bit masking, a more efficient method, but that’s about it. Not enough to update the game regularly, and certainly not enough to post updates.

I really hate that this is the case, and I’ve been putting off making this post for a while in the hopes that the situation would resolve, but it just isn’t. You have all been so kind and supporting, and I really wish that I could continue full force, but now University is over and career has started the time just isn’t there anymore.

So, what does this mean? It means that Samphi is no longer an ‘active’ project. I will still most likely do bits of work here and there, and there might even be an update once every blue moon, but will be few and far between. I have every intention of returning to the project and seeing it though, but god knows when that will happen.

Sincere thank you to everyone for the support over the last couple of years. I’ve learned so much during this project, and it’s got me into the industry. I make games every day for a living and that’s happened because people like yourselves supported Samphi, myself, and allowed me to build the skills necessary. I can’t thank you enough for that ... Thank you.

Story mode, multiplayer … I’d love to see these things come to fruition more than anything. But now’s unfortunately not the time. Life has pulled me elsewhere for now, but I intend on returning when the time is right.

“But remember, it’s not goodbye. Oh no, it’s never goodbye, its … see you later.”

Dale <3

Early Access Update #51 - Urm … So, where were we?



Wonder how many of you are left to read this? I’ve been gone for just over 2 months! Holy shit, that went fast. I’m here to give a quick explanation of where I’ve been and what’s next. :)



Unfortunately, I have no exciting story as to where I’ve been. I wasn’t kidnapped by MI5, neither have I been traveling the world seeing magnificent things; I was finishing my degree! In the last 4 months Uni picked up and my updates were becoming less and less. I didn’t want to come back each week with nothing so just decided to step away and get the degree finished. Good news is, I’m done!

As of Friday just gone I am finished with Uni, and as of today, Monday 15th, I go straight to full-time work at a game studio called Red Kite Games*. :) Exciting times. My new schedule also allows me to return to the game, albeit with changes which we’ll talk about next. I have missed working on Samphi!

*Everything I post here regarding Samphi is my own work and my own opinion, not that of my employer. <- Just in-case I say/do something stupid. :D



Up until now, I’ve tried present myself as a studio; Always using the name Greeny Games Studio and being kind of formal with that stuff. Ensuring there is an update EVERY week or two regardless of the quality of whether one was needed etc. I want that to change.

It’s just me, Dale, making this game, and it’s a personal labor of love, so I want that to be portrayed. Keeping strict deadlines with things is great, but makes it feel like a chore. I want it to be fun and spontaneous again, not putting out updates for the sake of it so it looks good that there’s a full update history.

The amount of work I do isn’t going to change, and the amount I show you guys won’t change overall, but the approach will. It’ll be more relaxed and natural; The same sentiment I want to take with Greeny Games overall. I’m working on a new website and am raring to get back to work. :)



I’m going to ditch this part of the update as I think it’s part of the problem. The truth is, the best part of development on Samphi is being able to work on anything at any time. I’m not a big company with set deadlines and goals, it’s just me as I say. I’ll work on what takes my fancy then can come show you guys and It’ll be a surprise!! :D Saying, I’ll have X and Y done for this date just isn’t working out when it’s a hobby project.

I think I lost sight of that. Make no mistake Samphi is just a hobby. I’m so incredibly grateful for all you who have supported the game so far, you rock, and I want to give you the best game possible. For that to happen it needs to go back to being a fun hobby and not taken too seriously.

Thank you very much for reading, and I look forward to cracking on with multiplayer. (Which at this rate will be released after half-life 3. :D)

See you on the next one!

As always you can show your support and keep up to date with development by following me here:

Visit my websites
Greeny Games Website
Samphi Website

Follow me on Twitter
Greeny Games Twitter
Samphi Twitter

Early Access Update #50 – Back at it



Does 3 weeks count as a ‘short break’?? Either way, time to get back to it! Quick update here just to check back in after some time away.



In the last update I explained that I’d be taking some time out of Samphi to partake in a competition. It went well! I find out the results on the 20th I think, so I’ll keep you updated. I thought I’d be back straight after but unfortunately the comp pushed me behind on my Uni work so I’ve been playing catch-up this past week. Things are really busy, and the final year of University demands way more time that I initially imagined.

But, we’re back. Dev on Samphi will be picking up once again, but forewarning, it’s going to be going pretty slow for the next few months while Uni finished up. Rest-assured though, this is not a wind-down to the end, this is a wind-down to an explosion in work. I have something lined up for after Uni and it gives me plenty of time for side-projects such as Samphi. :)



In the next update I’ll be back with some more updates on multiplayer dev! Thank you for the patience with this. I wish I could come back each week with a fat list of changes are really see Samphi fulfil its potential and materialize as the game I see in my head. But, that will just take some time! See you next week for the first progress update in a while!

As always you can show your support and keep up to date with development by following me here:

Visit my websites
Greeny Games Website
Samphi Website

Follow me on Twitter
Greeny Games Twitter
Samphi Twitter

Early Access Update #49 – Taking a short break



Hi everyone! Hope you had a good weekend. So there was no update last week! I sent a tweet out, so if you don’t follow me or Samphi on Twitter you can do so to stay up-to-date. Anyway, the reason there was no update is because I’m taking small break from Samphi until the end of the month.

Tl:dr: I’m part of a game making competition that runs until March 2nd, and that’s taking all my time.

Here’s a more in-depth explanation of you’re interested. As you know by now I’m currently at Uni, and there’s a competition called Search for a Star when game dev students, both artists and coders, can compete. There’s a few stages to the competition and the reward is a big event down in London, and you’re essentially guaranteed to get a good job offer in the industry. I’m through to round 2 so now I have until March 2nd to make a game from scratch essentially.

It’s a great opportunity, and runs alongside Uni, so unfortunately Samphi is the projects that’s had to take a back seat. I hope you all understand. :) This is a fantastic opportunity so taking some time to give it my best crack is the right thing to do! I’ll be back soon with regular updates. Ciao for now!

As always you can show your support and keep up to date with development by following me here:

Visit my websites
Greeny Games Website
Samphi Website

Follow me on Twitter
Greeny Games Twitter
Samphi Twitter

Early Access Update #48 – How Samphi multiplayer works



Update time. Day later than usual. Sorry about that! Things to show are still thin as the multiplayer job is just so massive, but I have made some visual progress on the server and implemented a big part of the core multiplayer protocol. I’ll try not bore you too much with low-level networking stuff, but since that’s all I’m doing right now it’s that or nothing! Here goes …

*Okay, so I’ve just written this and it got into much more depth that I had originally intended. For those into this stuff you might like it. For normal humans, you may want to just stop after the first section. :D



Let’s just start with the server client application itself. Here’s how it looks now:



As we can see it’s looking a lot better than what it did last time you saw it! Then it was just a green box! The buttons are hooked up and ready to do their thing, the background is in and the cursor and things are set. The next job is re-creating the console and handling input correctly.

This is obviously only for the graphical version of the server client, the one that will be hosted personally. There will also be a non-GUI version that will be used for hosting on remote machines, but I plan on not even starting that until the GUI version is complete. I’ll just strip all the graphics code out of it.



If I don’t get into the details I won’t have anything to show for a while! So, here’s a little bit of background on how Samphi multiplayer works. This may or may not be the best way to do this by the way! I’ve never coded a multiplayer server before, so this just the way it made sense for me. It worked in my previous test so I’m going with it again.

It’s actually pretty simple. Each time a player connected to the server performs an action that the other players need to know about, such as moves, places a block, or destroys a block, that action is recorded. Sending information across the internet is expensive, so that action is encoded into a small code.

For example, here’s a packet of information that the server might receive*:



*There loads of other information that packets carry, but this is the information I add and am interested in!

That looks like a random number but it actually contains a complete update with quite a bit of information. Let’s break it down:

1 – This is the id of the originating client. This is used so everyone knows where the update came from
4 – This is the type of command that has been received. There are different codes for connecting to the server, updating the terrain, updating the player etc. Each one is assigned a value so I know how to read the remaining information. In this case 4 means it was a terrain update!
3 – Since we know we’re working with a terrain update event, the next number is the ID of the block that was updated. In this case 3 mean sit was a dirt block.
1 – This next value determines if a block was placed or destroyed. A 1 means it was created.
16 – This is the x position of the block. Since our game world is a 32 * 32 grid however, this number is its actual position/32. This is to send less information. I’d rather a few CPU cycles to get this number back to its original value that increase packet size. This is due to being able to use a smaller data type with this method, but this article is already tech heavy without getting into data types and their sizes. :D
12 – This is the y position of the block in the same format as the x position.

SO! What this all means is that that simple number, 14311612, actually means the following:

“This packet came from client with id 1 and contains a terrain update. A dirt block was placed at position 512, 384.”

Our small number is much lighter to send than that big verbose description! That’s what’s happening under the hood in Samphi. Certain commands get turned into numbers like that and then sent off to the server.

With the packet now built it’s ready to be distributed to all other players to keep their worlds in sync. This process is simple. The packet is sent to the server, the packet type is checked, and if it’s something that all players need to know about it simply broadcasts it to all connected players. That means that each player connected to the server gets the packet sent to them, and then they can process that information.





I’ve just finished this ability to broadcast! Now a test client I’m building in GameMaker can connect to the server, it gets given its id correctly, sends a packet to the server, and that packet is broadcast to all other connected clients. That’s really the core of the server. Now it’s fleshing this out and hooking it backup to Samphi instead of this test application I’m working with. But things are going well!



The image above shows the test client writing a message to the console each time it receives a broadcast packet. This is working reliably with great speed so it’s looking good!



Well I know the next job is working on allowing the server client to read from files. The server needs to be able to load its configuration, read/write level data etc. so that’s the system that needs to be put in place next.

Hopefully this update wasn’t too boring. Most of what I’m doing right now I just writing code so there’s not much to show. Hopefully this little bit of an insight into the work I’m doing gives you all more of an idea as to the state of multiplayer currently.

Many thanks for reading and I’ll see you back here next week! Ciao!

As always you can show your support and keep up to date with development by following me here:

Visit my websites
Greeny Games Website
Samphi Website

Follow me on Twitter
Greeny Games Twitter
Samphi Twitter

Early Access Update #47 – The Grind



Evening players! The last few updates have been short but this one is going to really take the cake … I’ve been busy with Uni this week (assignment deadlines) and all work on Samphi has been boiler-plate stuff on the server client so there really isn’t anything to show. Instead of re-hashing previous updates’ content it’ll be better if we just leave it at that this week. :) Work got slowed by Uni, but work on the multiplayer server is steady!

So just a quick check-in this week! Quick note on the last build. There’s a bug been reported that seems to revolve around the crafting bin. I’m aware of it and am currently working on finding the solution! Other than that, v0.2l appears to be mostly stable so that’s great! Let me know if you find any other bugs!



Same as last week. I have the big server client job on the go, and have my list of in game features that I’ll try pick off if I find the time. Sorry about the shorter updates but this is just what happens when we start a bigger task. :) We’re still very much moving forward, and to such a large goal. Multiplayer! See you next week. Ciao!

As always you can show your support and keep up to date with development by following me here:

Visit my websites
Greeny Games Website
Samphi Website

Follow me on Twitter
Greeny Games Twitter
Samphi Twitter

Early Access Update #46 – Multiplayer, Schedule & v0.2l



Hi everyone! Another short one this week. We have a quick update on multiplayer and a few little things to note. Let’s get to it.



The latest build of Samphi (v0.2l) has now been moved to the stable branch after a quick patch. There a few bugs that people identified, so many thanks for those reports. Check out last week’s update for a reminder of what v0.2l is bringing.



Thanks to a member of the Steam Dev Forums I’ve finally found how to auto-subscribe to the discussions that are being created … it was a big button right on the main page. One of those cases where it right under your nose and you overlook it. So, from now on threads should see responses much faster! The bugs that players reported for v0.2l sat for around a week unread and I hate that! No longer! If you create a thread I will now be notified. :)



Multiplayer! It’s going well, just slow. Since I’m now not working on GameMaker with this the development process is much slower. GameMaker does every for you. You want a button, just stick it in and hook up the correct events, want to read from the keyboard, it handles it for you. Not so with C++.

My main area of work this week has been with input, so not a great deal to show there, keyboard typing isn’t exactly mind blowing. BUT! A huge part of the networking process has been cracked:

https://www.youtube.com/watch?v=qj9uI17LQ0o

That might look underwhelming, but that’s the heart of the networking done. What’s happening here is the window to the left is the server and waits for a connection from someone playing Samphi. When the Samphi game loads it connects to the server and receives the message “Hello World” that the server sent it.

With the ability for Samphi and my C++ server to talk I can now start moving the networking logic over! A huge part of the puzzle is already solved. And it took no time at all thanks to SFML.* What’s going to take time is all the GUI stuff. I initially chose to create the server client in GameMaker as I wanted to create the most easy-to-use and accessible server client possible. I don’t want hosting servers to be a chore. I don’t want to let that slip, so will be taking time to ensure that the experience is just as nice with this new C++ client as the GM one was.

*If you’re a programmer looking to make games etc. check it out. Super cool library with lots of functionality.



Fridays. Fridays is normally update date, but starting this week I’ll be moving to Saturday mornings. I work and have Uni Fridays and as school gets busier I’m up later and later, sometime staying up until 4am to get them. At that time the work gets sloppy, mistakes creep in, and I feel like I’m rushing which is no good. By moving it to Saturday there’s no rush to get it out. Small change, but wanted to address why the upload date will be slightly different from this point forward. :)



More multiplayer. This is a big job so will be taking most my time. Like I always say, I do have a big list of jobs that I’d like to get done and if I want a break from multiplayer I’ll likely sift through this list and see if there are any smaller jobs that I could get knocked off.

Thanks for reading and I’ll see you back here in a week! Ciao and enjoy your weekend. :)

As always you can show your support and keep up to date with development by following me here:

Visit my websites
Greeny Games Website
Samphi Website

Follow me on Twitter
Greeny Games Twitter
Samphi Twitter

Early Access Update #45 – Multiplayer development is a go!



Short update this week, but something big has started. Really big! There’s not much to show of it yet, but let’s just get too it.



First and foremost, v0.2l is now in the beta branch. It mainly undoes the cosmetic changes that were done over Christmas. Here’s the full changelog:

  • Undone Christmas details. 36X days to go
  • Added item name tooltip to crafting icons
  • Added longer grass and flowers around trees. A step towards biomes.

For more information on any of these in more detail check out last week’s update here. Since not much has changed I intend on only leaving this in beta for one week instead of two. In the next update I’ll move it to stable if there’s no bugs. :)



I’ve decided on multiplayer. We’re going to ditch the server I currently have (made in GameMaker) and create a custom one. The architecture will be the same, so all the work I did on how the game communicates with the server is staying the same, but the server client itself will be re-written. What this means for multiplayer is that it will come slightly later, but when it does it’ll be right first time. Launching with the GameMaker server client would just be the wrong thing to do for several reasons.

So, where are we? I’m going to show a screenshot that won’t invoke much confidence right now aha! But, you know I like to show everything from start to finish. Here’s the server client as it stands:



We have a window and a test button! I’ve also been playing with some of the networking code hiding behind this and hope to have something to show next week, but for now that’s where we’re at. It’s the first step of a long journey, but we’ve started!



I’m not sure how the updates are going to be effected by working on multiplayer. If you remember back to the overhaul of the item system, the updates got a bit thin as all my time was on one system. I still have a bunch of things I’d like to implement so I’m going to try balance the two, but things will likely get thinner as work on multiplayer ramps up.
That’s everything. Small one as things are a bit in the air. New tech, new huge system to build etc. But it’s exciting! Multiplayer is coming! Ciao!

As always you can show your support and keep up to date with development by following me here:

Visit my websites
Greeny Games Website
Samphi Website

Follow me on Twitter
Greeny Games Twitter
Samphi Twitter

Early Access Update #44 – 2017 … Where do we go next?



Welcome back folks! Hope you had a fantastic holiday and new year. Got a few things to show and a big question regarding multiplayer. Won’t keep you too long though. Nice easy one to get us into the new year. Got your tea?



So I’ve done some more work that’s moving us towards having biomes. First it was the weather effect in the form of snow, now we’re moving towards building forest areas and creating a distinction between that and flat farm land.

You can see around the base of trees the grass is much longer now and contains wild flowers:



Even this small change is bringing a bit of dynamism to the landscape! I’m going to make it so that you can’t plant crops on this long grass, only flat farmland. That will then lead to tools which enable you to cut grass etc. but they’ll come later!



Couple of other small things I’ve worked on. Crafting icons now have tooltips! It was basically just an error that they didn’t! I’d added them to one set of icons and not the other. Now we have this! It makes things a bit clearer.



We’ve also gone back to pre-Christmas graphics I’m afraid! No more snow, Christmas trees or presents, we’re back to greenery for the time being.



I get asked about Multiplayer quite a lot. Quite rightly, it’s a huge part of the game that’s advertised and isn’t yet here, so I want to clarify its state.

The Samphi client you download through Steam contains MOST of the code for multiplayer already. It used to work, I used to play with a friend who lives at the other side of England to me, but it’s a bit decrepit now and will need touching up, but it’s mostly there.

There is also a separate game server client that’s coded. This is a separate app and it’s all setup in Steam to go whenever it’s ready. I’m almost certain I’ve showed it before, but here’s what it looks like:



As it currently stands multiplayer is handled though that server client that’s written in GameMaker. That means it requires you to use Hamachi and means public servers are a nightmare. But, on the flip side, a lot of it is already done so the turnaround on the first implementation of multiplayer would be fairly short(ish).

Now, another option is for me to code a new client from scratch, outside of GameMaker. It would give me full control, mean you wouldn’t have to use Hamachi, and mean that there could be public servers easily. Downside is I’ve never done this before and I’d be starting from scratch.

So what would be the best way to go for you guys? Would you rather a quicker, more restricted multiplayer, or have me bite the bullet and start on a better version from the start? Any feedback here would be greatly appreciated. I’m currently leaning towards the ‘start from the beginning’ so it’s right the first time and easy as possible to use.

Food for thought as multiplayer moves its way up my priority list. I here you, and we’re not far from sticking out teeth into it.



It’s been two weeks since 0.2k was released, and since there’s no bugs reported it’s now moved to the stable branch. Here’s a reminder of what it contains:

  • Fixed issue with chests not opening/closing correctly
  • Added a new tree* (See breakdown above for more info)
  • Added a few more tips to the main menu screen
  • Fixed some inconsistencies with textures when custom_textures was enabled.




Not sure really! In the last update I identified player animations, sounds, and a background update as priorities, and they still are, so I’ll likely start one of those to some extent. Multiplayer is steadily working its way up my priorities list as I don’t want to get too far into dev before trying to implement it. It’s a tough decision balancing everything! Let’s leave it open ended. :)

Many thanks for reading! See you back here next week. Please do leave feedback on the multiplayer options, It would be really helpful! Until next week. Ciao!

As always you can show your support and keep up to date with development by following me here:

Visit my websites
Greeny Games Website
Samphi Website

Follow me on Twitter
Greeny Games Twitter
Samphi Twitter

Early Access Update #43 - Winter update 2 of 2 (v0.2k) New Trees!



Merry Christmas Eve! 3am here and the build and update are complete. Today I’ve pushed the final holiday update to the beta branch! Finally Samphi has a second tree! This has required quite a few big under the hood changes so there’s a few things to go through and a couple of things to watch out for all those brave souls who use the [beta] branch. I’m rambling, let’s get to it.



Jumping right into the meat of the update, we have a new tree. I’ve wanted to do this for a while now to bring some diversity to the wood blocks in the game. We already have the light oak tree, so I’ve added a darker pine tree. Here it is:



And as it’s Christmas we have to have a festive version right? Here’s what the pine tree will look like over the holidays:



I’m not 100% happy with the art, but it’s a solid start! So what does having a new tree mean? Well for starters we have 4 new items:

  • oak block
  • oak wood
  • pine block
  • pine wood

And we’ve lost:

  • wall
  • wood

When you cut a tree before you got ‘wood’ and you could craft it into ‘walls’. As you can see that’s now been broken down into specific wood types and blocks. The old ‘wood’ item is now the ‘oak wood’ item, and that’s what’s used for all crafting recipes. Currently, ‘pine wood’ is only used to create ‘pine block’ with a crafting table. These are simply a building block with a different color. You can see them in the image below as I use them for my roof:



Since ‘oak wood’ is way more useful than ‘pine wood’, only 1 in 4 trees will be a pine tree. This value will likely be tweaked as we find more used for the pine wood. So that’s the new tree! Hope you like it and the new wood variety not only makes the landscape more interesting, but also gives you more building materials to play with!



On a final note, tree type is currently not saved, so if you reload the game, trees that were once oaks may now be pines and visa versa. This will be rectified in an upcoming update but I don’t think it’s a priority for now. :)



Now onto an update that has no affect on gameplay at all, but … IT’S CHRISTMAS. Chests have been re-skinned as present boxes!



Really doesn’t affect anything, but I love little things like this so enjoy opening all your presents! :D I’ve also fixed up the chests as there were bug with how they were opening and closing, so they should now be working fine!



So I completely forgot I own YoYo Compiler. This is something that just compiles your code better and does more strict checking of your code. Ran it, and oh my god the errors! No idea how the game was even running before, there were code errors everywhere. They were all cases where things have changed but the changes weren’t carried out across the whole code base. For example, I change the name of a font and forget to change it somewhere. (The cause of a bug in the last build)

Anyway, I’ve done my best to put things back in line and from initial testing everything seems fine, but I have no idea if there will be further ramifications! With the new wood variant quite a lot of the back-end has changed including save data! I need to convert your save data from the old ‘wall’ item to the new to ‘block_oak’ item!

I’ve written that into this version, and will keep it in for the next few releases, a few months, so hopefully everyone’s data get’s ported to the new version then I’ll remove that and tidy the code up. I did a bunch of testing and it seems fine, but if you have a really big important level you may want to make a copy. To do so just go to your AppData/Local/ folder and copy the Samphi folder somewhere.

TL:DR – Back-end has changed a bit and save data will be converted. It’s been tested, but you might want to backup your save data.



Okay, so here’s a full changelog for 0.2k which is now in the beta branch:

  • Gave chests a festive makeover
  • Fixed issue with chests not opening/closing correctly
  • Added a new tree* (See breakdown above for more info)
  • Added a few more tips to the main menu screen
  • Fixed some inconsistencies with textures when custom_textures was enabled.



So I think I’m going to take a week break from the updates over the holidays. This will only effect the next update, what would be on the 30th, and instead I’ll be back on the 6th. I have a list as long as my arm of code tidying jobs that I’ve been putting off as they affect gameplay 0%, but they’re important. I’m going to take advantage of a break in the updates to get all this done before the new year. We can then start 2017 with a tidied code-base ready for whatever awesome features 2017 has lined up!

I feel like 0.3 is close, but I still have a few major-ish things on my list that I’d like to get in before we roll over, including:

  • Player Animations
  • More Sounds
  • Background Update

Player animations is a huge one, however, as we know, art is where I struggle, so that one is going to be tough! It will bring so much to the game though! It detracts form the experience when you’re chopping a tree and the character is just stood there still.

So come back on the 6th on January and we’ll see what’s happening!



Well that’s me done for the year. Thank you all dearly for the support over this last year. I started working on Samphi years ago and the idea of ever getting on Steam was just a complete pipe-dream. It happened quite fast and now, reflecting on it, Samphi is on steam and there’s an awesome and supportive community around it … It’s a bit surreal. So thank you all a MILLION for your support and I look forward to us moving forward with the game more next year. :)

Have a WONDERFUL holiday and I’ll see you all in 2017. Ciao!

As always you can show your support and keep up to date with development by following me here:

Visit my websites
Greeny Games Website
Samphi Website

Follow me on Twitter
Greeny Games Twitter
Samphi Twitter